[Haskell-cafe] When using Cereal, what is the right way to write `get` for multi-constructor type?
William Yager
will.yager at gmail.com
Tue Apr 26 08:03:41 UTC 2016
You may also want to use the Lambda-case extension. It will allow you to
elide the declaration of i.
--Will Yager
On Tue, Apr 26, 2016 at 1:24 AM, Ivan Lazar Miljenovic <
ivan.miljenovic at gmail.com> wrote:
> On 26 April 2016 at 15:39, Magicloud Magiclouds
> <magicloud.magiclouds at gmail.com> wrote:
> > Hi,
> > Say I have code already like:
> > data STH = A
> > | B
> > | C
> > instance Serialize STH where
> > put A = putWord8 1
> > put B = putWord8 66
> > put C = putWord8 111
> >
> > Then what is the better way to do `get`? Is following the only one?
> > get = do
> > i <- getWord8
> > case i of
> > 1 -> return A
> > 66 -> return B
> > 111 -> return C
>
> I think that covers it, though having an explicit error message for
> any other value of `i` will probably be better than the default
> unmatched case one.
>
> >
> > Thanks.
> >
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> >
>
>
>
> --
> Ivan Lazar Miljenovic
> Ivan.Miljenovic at gmail.com
> http://IvanMiljenovic.wordpress.com
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160426/0f0b3ed8/attachment.html>
More information about the Haskell-Cafe
mailing list