[Haskell-cafe] Re: Renaming constructors for readability

apfelmus apfelmus at quantentunnel.de
Wed Nov 14 03:59:05 EST 2007


Dougal Stanton wrote:
> I wonder, is there an equivalent of the 'type' keyword for
> constructors? An example:
> 
> 
> 
> -- create a pseudo-C pointer type
> -- which can point to a value or a
> -- null.
> type Pointer a = Maybe a
> 
> -- int a = 3;
> -- int *pa = &a;
> ampersand :: t -> Pointer t
> ampersand a = Just a
> 
> -- int b = *pa.
> star :: Pointer a -> a
> star (Just a) = a
> -- note this function behaves
> -- in an 'authentic' fashion ;-)
> 
> 
> To really complete the illusion it would be nice to replace the names
> Just and Nothing with PointerTo and Null. Then the constructors would
> really mean something. Is there a solution?

The thing you want is called "views". See

   http://hackage.haskell.org/trac/ghc/wiki/ViewPatterns#Relatedwork

for more.


Regards,
apfelmus



More information about the Haskell-Cafe mailing list