[Haskell] Correct interpretation of the curry-howard isomorphism

Bruno Oliveira bruno.oliveira at comlab.ox.ac.uk
Fri Apr 23 19:08:59 EDT 2004


Hi Frank!

But then I have a paradox ...

>>>> coerce :: a -> b
>>>> coerce x = undefined
>>>>
>>>> As an obvious consequence, Haskell type system would be unsound.
>>>>
>>>> So, I assumed that this would be a wrong interpretation.
>>
>>> This is the part of your email which frightens me the most. Of
>>> course Haskell's type system is unsound! What factors lead you to
>>> this kind of assumption?
>>
>> Clearly a misconception of mine.

>I'm afraid the misconception is Conor's.

>Haskell's type system is (so far as we know) sound: this means programs 
>will not crash.

If this interpretation of the curry-howard isomorphism is true:

----------------------------------
if we can write a function:

coerce :: a -> b 

then, this would mean (by the curry-howard isomorphism) that the type system is not sound.
----------------------------------

and haskell type system is sound 

then we cannot write coerce. 

Which as been shown in the last emails that it is not true.

So, either the interpretation of the isomorphism is wrong, or Haskell type system is in fact unsound. Right ?
They cannot be both true!

Well, the other possibility is, there are two different meanings for soundness :)

Best regards,

Bruno Oliveira




More information about the Haskell mailing list