[Haskell-cafe] Re: Fun with multi-parameter type classes

karczma karczma at info.unicaen.fr
Fri Aug 20 12:27:17 EDT 2004


Henning Thielemann writes: 

> On Thu, 19 Aug 2004, Sam Mason wrote: 
> 
>>    class Foo t where
>>       encode :: String -> t
>>       decode :: t -> String 
>> 
>>    test = decode . encode 
>> 
>> This currently fails, because the type checker insists on trying
>> to figure out what its type should be - even though it shouldn't
>> be needed.
>  
> 
> In contrast to that, 
> 
>  test = encode . decode 
> 
> should not fail. :-)

Rright. The source file: 

bz = read . show 

is accepted. It even "works": 

Ok, modules loaded: Main.
*Main> :t bz
bz :: forall a a1. (Show a1, Read a) => a1 -> a 

*Main> bz 8
8 

But try to use it for something more exquisite: 

*Main> bz 8.23
*** Exception: Prelude.read: no parse 

Of course a signature put by hand helps. But then what's
the advantage of classes? 

Actually, I would like to know what was the purpose of all
that... 

Jerzy Karczmarczuk


More information about the Haskell-Cafe mailing list