{-
************************************************************************
*                                                                      *
            The List type
   Special syntax, deeply wired in,
   but otherwise an ordinary algebraic data type
*                                                                      *
************************************************************************

       data [] a = [] | a : (List a)
-}

mkListTy :: Type -> Type
mkListTy ty = mkTyConApp listTyCon [ty]
mkListTy :: Type -> Type
mkListTy ty = mkTyConApp listTyCon [ty]
mkListTy ty = mkTyConApp listTyCon [ty]