# Constructors in GHC (fwd)

**Hal Daume III
**
hdaume@ISI.EDU

*Wed, 11 Dec 2002 08:36:05 -0800 (PST)*

...this seemed not to make it to the mailing list (ghc-users@haskell.org
isn't valid)...
--
Hal Daume III
"Computer science is no more about computers | hdaume@isi.edu
than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume
---------- Forwarded message ----------
Date: Wed, 11 Dec 2002 08:33:50 -0800 (PST)
From: Hal Daume III <hdaume@isi.edu>
To: Simon Peyton-Jones <simonpj@microsoft.com>
Cc: ghc-users@haskell.org, Kirsten Chevalier <krc@uclink.berkeley.edu>
Subject: Re: Constructors in GHC
Hi,
It finally makes sense now :)
>* We could make this more consistent in two ways. Alternative (A): One
*>* way would be to make it clearer that $wMkT was the real constructor:
*>*
*>* data T = $wMkT Int Int
*>* MkT p = case p of (x,y) -> $wMkT x y
*>* f x y = $wMkT x y
*>* g t = case t of $wMkT x y -> x
*>*
*>* Alternative (B): The other alternative would be to make the original
*>* Haskell constructors into the $w things:
*>*
*>* data T = MkT Int Int
*>* $wMkT p = case p of (x,y) -> MkT x y
*>* f x y = MkT x y
*>* g t = case t of MkT x y -> x
*
As someone using external core, I can resoundly say: I don't really care
:*). I would probably prefer (B), as you seem to, but it's not a strong
*preference.