read -package:base-prelude -package:io-streams package:pipes

Parse Readable values, only forwarding the value if the parse succeeds
Wrap the base monad in ReaderT
read values from stdin, ignoring failed parses
Run ReaderT in the base monad