2009/12/3 Gregory Crosswhite <[email protected]>:
> But it seems to me like the whole point of using "newtype" is because you 
> *don't* want your new type to be used everywhere that the old type can be 
> used;  otherwise you would just use "type" to create an alias.  The only 
> convincing exception I have heard to this (as you helpfully explained to me) 
> is that one might be forced to use newtype to make a piece of code use a 
> different instance declaration for a type.

You might also be forced to use a newtype because you need to use it
recursively - i.e. you need an alternative to equirecursive types. I
hit this quite often when building datatype using
fixpoints-of-a-functor and regularly wish for the ability to write:

type Fix f = f (Fix f)

Cheers,
Max
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to