[Haskell-cafe] Supplying a default implementation for a typeclass based on another class

Martin Huschenbett huschi at gmx.org
Sun Mar 1 12:42:34 EST 2009


Hi,

you could do something like

 > instance (Show a,Read a) => Binary a where
 >  put = put . show
 >  get = fmap read get

But then you will need the following language extensions: 
FlexibleInstances, OverlappingInstances, UndecidableInstances

I don't know how safe this is but it seems to work.

Regards,

Martin.

Svein Ove Aas schrieb:
> I'm in the process of writing a distributed filesystem (in haskell,
> yay), which of course means I'm using Binary for de/serialization.
> 
> Now, that's fine enough, but for simplicity (and for wireshark), I'd
> like to be able to have Binary fall back on an instance based on
> Show/Read for any type that lacks any other Binary instance..
> 
> Well, I understand why this would be somewhere between extremely hard
> and impossible in haskell '98, but I'm not entirely up on all the
> extensions, so I thought I'd ask - given every extension implemented
> in ghc 6.10.1, is there any reasonable way to do this?
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe


More information about the Haskell-Cafe mailing list