<div dir="ltr">OK. So my understanding is there is no better (good-looking) code. Thank you all.<br><br><div class="gmail_quote"><div dir="ltr">William Yager <<a href="mailto:will.yager@gmail.com">will.yager@gmail.com</a>>于2016年4月26日周二 下午4:03写道:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">You may also want to use the Lambda-case extension. It will allow you to elide the declaration of i.<div><br></div><div>--Will Yager</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 26, 2016 at 1:24 AM, Ivan Lazar Miljenovic <span dir="ltr"><<a href="mailto:ivan.miljenovic@gmail.com" target="_blank">ivan.miljenovic@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 26 April 2016 at 15:39, Magicloud Magiclouds<br>
<<a href="mailto:magicloud.magiclouds@gmail.com" target="_blank">magicloud.magiclouds@gmail.com</a>> wrote:<br>
> Hi,<br>
> Say I have code already like:<br>
> data STH = A<br>
>         | B<br>
>         | C<br>
> instance Serialize STH where<br>
>   put A = putWord8 1<br>
>   put B = putWord8 66<br>
>   put C = putWord8 111<br>
><br>
> Then what is the better way to do `get`? Is following the only one?<br>
> get = do<br>
>   i <- getWord8<br>
>   case i of<br>
>     1 -> return A<br>
>     66 -> return B<br>
>     111 -> return C<br>
<br>
I think that covers it, though having an explicit error message for<br>
any other value of `i` will probably be better than the default<br>
unmatched case one.<br>
<br>
><br>
> Thanks.<br>
><br>
> _______________________________________________<br>
> Haskell-Cafe mailing list<br>
> <a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
><br>
<span><font color="#888888"><br>
<br>
<br>
--<br>
Ivan Lazar Miljenovic<br>
<a href="mailto:Ivan.Miljenovic@gmail.com" target="_blank">Ivan.Miljenovic@gmail.com</a><br>
<a href="http://IvanMiljenovic.wordpress.com" rel="noreferrer" target="_blank">http://IvanMiljenovic.wordpress.com</a><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</font></span></blockquote></div><br></div>
</blockquote></div></div>