I have a -> f a. How to get m a -> f m a ?

Hello List! I have function a -> IO a. How to get function: Maybe a -> IO (Maybe a) ? I found in Haskell mails archive such thing: class IFunctor f where imap :: Idiom i => (s -> i t) -> f s -> i (f t) which looks similar, but I didn't find any helpfull instances of `IFunctor` class in its package (and unfortunately I don't know what are the indexed types: IMonad, IFunctor, etc). Sure, there is the primitive solution like: myfunc :: a -> IO a ... f x = case x of Nothing -> return Nothing Just x' -> Just <$> myfunc x' but more interesting is to know more standard and Haskelish solution (like lift's, etc). May be I miss something very obvious.. === Best regards, Paul

I have function a -> IO a. How to get function: Maybe a -> IO (Maybe a) ?
Will mapM work:
http://hackage.haskell.org/package/base-4.10.0.0/docs/Data-Traversable.html#...
?
On 4 September 2017 at 15:06, Baa
Hello List!
I have function a -> IO a. How to get function:
Maybe a -> IO (Maybe a) ?
I found in Haskell mails archive such thing:
class IFunctor f where imap :: Idiom i => (s -> i t) -> f s -> i (f t)
which looks similar, but I didn't find any helpfull instances of `IFunctor` class in its package (and unfortunately I don't know what are the indexed types: IMonad, IFunctor, etc). Sure, there is the primitive solution like:
myfunc :: a -> IO a ... f x = case x of Nothing -> return Nothing Just x' -> Just <$> myfunc x'
but more interesting is to know more standard and Haskelish solution (like lift's, etc). May be I miss something very obvious..
=== Best regards, Paul _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners

Hello, Imants! Exactly :) Thanks!
I have function a -> IO a. How to get function: Maybe a -> IO (Maybe a) ?
Will mapM work:
http://hackage.haskell.org/package/base-4.10.0.0/docs/Data-Traversable.html#...
?
On 4 September 2017 at 15:06, Baa
wrote: Hello List!
I have function a -> IO a. How to get function:
Maybe a -> IO (Maybe a) ?
I found in Haskell mails archive such thing:
class IFunctor f where imap :: Idiom i => (s -> i t) -> f s -> i (f t)
which looks similar, but I didn't find any helpfull instances of `IFunctor` class in its package (and unfortunately I don't know what are the indexed types: IMonad, IFunctor, etc). Sure, there is the primitive solution like:
myfunc :: a -> IO a ... f x = case x of Nothing -> return Nothing Just x' -> Just <$> myfunc x'
but more interesting is to know more standard and Haskelish solution (like lift's, etc). May be I miss something very obvious..
=== Best regards, Paul _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
participants (2)
-
Baa
-
Imants Cekusins