<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">In the code below, is the type returned by the return functions inferred from <br>the result type in the function type signature, i.e., just change the result<br>type to Maybe Int and the code will return a Maybe monad, (Just 4), instead of<br>a List monad?<br><br>Michael<br><br>=========<br><br>import Monad<br><br>fn :: [Int] -&gt; [Int]<br>fn l = mzero `mplus` (return (head l)) `mplus` (return (last l))<br><br>================<br><br>*Main&gt; :l test5<br>[1 of 1] Compiling Main&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( test5.hs, interpreted )<br>Ok, modules loaded: Main.<br>*Main&gt; fn [4,5,6,7,8]<br>[4,8]<br>*Main&gt; <br></td></tr></table><br>