[Template-haskell] TupleT type constructor

Alfonso Acosta alfonso.acosta at gmail.com
Mon Nov 5 13:57:01 EST 2007

I've been thinking about it for a while and the special TupleT
constructor still seems pretty useful.

However, I think it should only be kept if there's a way to guarantee
that reify is consistent with the definition of Type (i.e. it should
alwa produce TupleT and not "ConT ''(,,,)" and friends )

Furthermore I would find it more appropiate to split Type into
Constructors and Types themselves (just like it happens in
Data.Typeable and Language.Haskell.Syntax)

data Cons = Cons Name | SpecialCons

data SpecialCons = Arrow | Tuple Int | List

data Type = ForallT [Name] Cxt Type | VarT ConT Cons | AppT Type Type

On 11/2/07, Alfonso Acosta <alfonso.acosta at gmail.com> wrote:
> On 11/2/07, Simon Peyton-Jones <simonpj at microsoft.com> wrote:
> > I agree.  As in: I would not be opposed to removing it.  But we'd just need to be sure there was a convenient way of conjuring up the appropriate data constructor for an n-tuple.
> TH.Syntax already provides:
> tupleTypeName :: Int -> Name
> tupleDataName :: Int -> Name
> IMHO, that should be enough

More information about the template-haskell mailing list