[Haskell-cafe] Type synonyms

Dan Doel dan.doel at gmail.com
Wed Mar 26 10:39:35 EDT 2008


On Wednesday 26 March 2008, Hugo Pacheco wrote:
> Hi guys,
>
> There is something I think not to fully understand: what are the
> differences between these two type synonyms?
>
> type FInt x = Either One x
> type FInt = Either One
>
> Their kind is the same, so do they differ or are exactly the same type?

The difference comes in that type synonyms must be fully applied to all the 
type parameters listed in their declaration. So, for instance, with the 
second, you could declare (with a type synonym instances extension), say:

    instance Monad FInt where ...

But you could not with the first, because FInt would be partially applied; the 
first needs to always appear as 'FInt x' for some x.

-- Dan


More information about the Haskell-Cafe mailing list