[Haskell] do notation and type synonym

Wolfgang Jeltsch wolfgang at jeltsch.net
Sun Aug 7 16:25:24 EDT 2005


Am Sonntag, 7. August 2005 20:40 schrieb Lemmih:
> [...]

> > second one:
> > is it possible to write something like
> > type Point = (Float, Float)
> > type Vector = (Float, Float)
> > and still have type safety (i.e. not be able to mix Point and Vector)
> > (and still have (*,*) without constructor)?
>
> No, that's not possible.

Note that while newtype declared types use some kind of data constructor, 
internally the newtype declared type is normally represented the same way as 
the "encapsulated" type.  So newtype normally doesn't introduce any overhead 
concerning execution time and space but, of course, it introduces overhead 
concerning typing. :-)

Best regards,
Wolfgang


More information about the Haskell mailing list