[Haskell-beginners] I have a -> f a. How to get m a -> f m a ?

Baa aquagnu at gmail.com
Mon Sep 4 12:36:42 UTC 2017


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#v:mapM
> 
> ?
> 
> 
> 
> On 4 September 2017 at 15:06, Baa <aquagnu at gmail.com> 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 at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
> >  



More information about the Beginners mailing list