idType :: Id -> Type
splitSigmaTy :: GenType t u -> ([t], [(Class,GenType t u)], GenType t u)
splitFunTy :: GenType t u -> ([GenType t u], GenType t u)
idType :: Id -> Type
splitSigmaTy :: GenType t u -> ([t], [(Class,GenType t u)], GenType t u)
splitFunTy :: GenType t u -> ([GenType t u], GenType t u)