{-# LANGUAGE TemplateHaskell #-}
-- Test the use of tupleDataName, tupleTypeName
module TH_tuple1a where

import Language.Haskell.TH

tp2 = sigE (appsE [conE (tupleDataName 2),
                  litE (integerL 1),
                  litE (integerL 2)])
           (appT (appT (conT (tupleTypeName 2))
                       (conT ''Integer))
                       (conT ''Integer))

tp1 = sigE (appsE [conE (tupleDataName 1),
                  litE (integerL 1)])
           (appT (conT (tupleTypeName 1))
                 (conT ''Integer))

tp2u = sigE (appsE [conE (unboxedTupleDataName 2),
                   litE (integerL 1),
                   litE (integerL 2)])
            (appT (appT (conT (unboxedTupleTypeName 2))
                        (conT ''Integer))
                  (conT ''Integer))

tp1u = sigE (appsE [conE (unboxedTupleDataName 1),
                   litE (integerL 1)])
            (appT (conT (unboxedTupleTypeName 1))
                  (conT ''Integer))
