[Haskell-cafe] When using Cereal, what is the right way to write `get` for multi-constructor type?
Ivan Lazar Miljenovic
ivan.miljenovic at gmail.com
Tue Apr 26 06:24:27 UTC 2016
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
More information about the Haskell-Cafe
mailing list