+ UnboxedTupleT n
+ | length tys' == n -- Saturated
+ -> if n==1 then return (head tys') -- Singleton tuples treated
+ -- like nothing (ie just parens)
+ else returnL (HsTupleTy Unboxed tys')
+ | n == 1
+ -> failWith (ptext (sLit "Illegal 1-unboxed-tuple type constructor"))
+ | otherwise
+ -> mk_apps (HsTyVar (getRdrName (tupleTyCon Unboxed n))) tys'