<div dir="ltr"><div class="gmail_default" style="font-family:times new roman,serif;font-size:large">Would a specialization of return work, as in <br><br>f = return :: Maybe a -> IO (Maybe a)?<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 4, 2017 at 7:00 AM,  <span dir="ltr"><<a href="mailto:beginners-request@haskell.org" target="_blank">beginners-request@haskell.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Send Beginners mailing list submissions to<br>
        <a href="mailto:beginners@haskell.org">beginners@haskell.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/beginners</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:beginners-request@haskell.org">beginners-request@haskell.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:beginners-owner@haskell.org">beginners-owner@haskell.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of Beginners digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1.  I have a -> f a. How to get m a -> f m a  ? (Baa)<br>
   2. Re:  I have a -> f a. How to get m a -> f m a ? (Imants Cekusins)<br>
<br>
<br>
------------------------------<wbr>------------------------------<wbr>----------<br>
<br>
Message: 1<br>
Date: Mon, 4 Sep 2017 15:06:34 +0300<br>
From: Baa <<a href="mailto:aquagnu@gmail.com">aquagnu@gmail.com</a>><br>
To: <a href="mailto:beginners@haskell.org">beginners@haskell.org</a><br>
Subject: [Haskell-beginners] I have a -> f a. How to get m a -> f m a<br>
        ?<br>
Message-ID: <20170904150634.230dd5ff@Pavel<wbr>><br>
Content-Type: text/plain; charset=US-ASCII<br>
<br>
Hello List!<br>
<br>
I have function a -> IO a. How to get function:<br>
<br>
  Maybe a -> IO (Maybe a)  ?<br>
<br>
I found in Haskell mails archive such thing:<br>
<br>
   class IFunctor f where<br>
     imap :: Idiom i => (s -> i t) -> f s -> i (f t)<br>
<br>
which looks similar, but I didn't find any helpfull instances of<br>
`IFunctor` class in its package (and unfortunately I don't know what are<br>
the indexed types: IMonad, IFunctor, etc). Sure, there is the primitive<br>
solution like:<br>
<br>
   myfunc :: a -> IO a<br>
   ...<br>
   f x = case x of Nothing -> return Nothing<br>
                   Just x' -> Just <$> myfunc x'<br>
<br>
but more interesting is to know more standard and Haskelish solution<br>
(like lift's, etc). May be I miss something very obvious..<br>
<br>
===<br>
Best regards, Paul<br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Mon, 4 Sep 2017 15:14:42 +0300<br>
From: Imants Cekusins <<a href="mailto:imantc@gmail.com">imantc@gmail.com</a>><br>
To: The Haskell-Beginners Mailing List - Discussion of primarily<br>
        beginner-level topics related to Haskell <<a href="mailto:beginners@haskell.org">beginners@haskell.org</a>><br>
Subject: Re: [Haskell-beginners] I have a -> f a. How to get m a -> f<br>
        m a ?<br>
Message-ID:<br>
        <<a href="mailto:CAP1qinaEhE6HqvS0O9-CfV9Vc2x8ZvfQ_SRFXQgVH-yhapZZtg@mail.gmail.com">CAP1qinaEhE6HqvS0O9-<wbr>CfV9Vc2x8ZvfQ_SRFXQgVH-<wbr>yhapZZtg@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
> I have function a -> IO a. How to get function:<br>
>  Maybe a -> IO (Maybe a)  ?<br>
<br>
Will mapM work:<br>
<br>
<a href="http://hackage.haskell.org/package/base-4.10.0.0/docs/Data-Traversable.html#v:mapM" rel="noreferrer" target="_blank">http://hackage.haskell.org/<wbr>package/base-4.10.0.0/docs/<wbr>Data-Traversable.html#v:mapM</a><br>
<br>
?<br>
<br>
<br>
<br>
On 4 September 2017 at 15:06, Baa <<a href="mailto:aquagnu@gmail.com">aquagnu@gmail.com</a>> wrote:<br>
<br>
> Hello List!<br>
><br>
> I have function a -> IO a. How to get function:<br>
><br>
>   Maybe a -> IO (Maybe a)  ?<br>
><br>
> I found in Haskell mails archive such thing:<br>
><br>
>    class IFunctor f where<br>
>      imap :: Idiom i => (s -> i t) -> f s -> i (f t)<br>
><br>
> which looks similar, but I didn't find any helpfull instances of<br>
> `IFunctor` class in its package (and unfortunately I don't know what are<br>
> the indexed types: IMonad, IFunctor, etc). Sure, there is the primitive<br>
> solution like:<br>
><br>
>    myfunc :: a -> IO a<br>
>    ...<br>
>    f x = case x of Nothing -> return Nothing<br>
>                    Just x' -> Just <$> myfunc x'<br>
><br>
> but more interesting is to know more standard and Haskelish solution<br>
> (like lift's, etc). May be I miss something very obvious..<br>
><br>
> ===<br>
> Best regards, Paul<br>
> ______________________________<wbr>_________________<br>
> Beginners mailing list<br>
> <a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/beginners</a><br>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://mail.haskell.org/pipermail/beginners/attachments/20170904/f82f05da/attachment-0001.html" rel="noreferrer" target="_blank">http://mail.haskell.org/<wbr>pipermail/beginners/<wbr>attachments/20170904/f82f05da/<wbr>attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
______________________________<wbr>_________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/beginners</a><br>
<br>
<br>
------------------------------<br>
<br>
End of Beginners Digest, Vol 111, Issue 4<br>
******************************<wbr>***********<br>
</blockquote></div><br></div>