<div dir="ltr">You can turn anything into an IO action with return, or you could catch the exception at a level where you are performing IO. Would this be what you&#39;re after?</div><div class="gmail_extra"><br><br><div class="gmail_quote">

On Sun, Jul 14, 2013 at 7:47 PM, Kees Bleijenberg <span dir="ltr">&lt;<a href="mailto:k.bleijenberg@lijbrandt.nl" target="_blank">k.bleijenberg@lijbrandt.nl</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div lang="NL" link="blue" vlink="purple"><div><p class="MsoNormal">The app I’am working on, converts a jsonString to another string encoding. <u></u><u></u></p><p class="MsoNormal">The function I want to write is  jsonString -&gt; (encoding, errorMsg)  so String-&gt; (String, String) <u></u><u></u></p>

<p class="MsoNormal">For this purpose I have a typeable datastructure Glass. Because it is typeable I can do (decodeJSON jsonString) :: Glass<u></u><u></u></p><p class="MsoNormal">But sometimes the jsonString is not valid (misformed or wrong fields). decodeJSON then throws a exception.  I want to<u></u><u></u></p>

<p class="MsoNormal">catch that exection and transform the result to something like (“” , theErrorMsg). Unfortunately all catch functions want IO parameters. <u></u><u></u></p><p class="MsoNormal">What can I do?<span class="HOEnZb"><font color="#888888"><u></u><u></u></font></span></p>

<span class="HOEnZb"><font color="#888888"><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Kees<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p></font></span></div></div><br>_______________________________________________<br>


Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br></div>