Hello,

Why not allow an arbitrary monad?

readM :: (Monad m, Read a) => String -> String -> m a
readM errMsg s = case reads s of
    [(x, "")] -> return x
    _ -> fail errMsg

-Jeff


libraries-bounces@haskell.org wrote on 02/07/2008 01:46:48 PM:

> This function is typically defined once per project. So its
> about time this safe variant of 'read' made it into the base.
>
>     maybeRead :: Read a => String -> Maybe a
>     maybeRead s = case reads s of
>         [(x, "")] -> Just x
>         _         -> Nothing
>
> Consideration period: 1 week.
>
> Patch to Text.Read attached.
>
> [attachment "maybeRead.patch" deleted by Jeff Polakow/db/dbcom]
> _______________________________________________
> Libraries mailing list
> Libraries@haskell.org
> http://www.haskell.org/mailman/listinfo/libraries

---

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.