+mkClosureType :: Type -> Type -> VM Type
+mkClosureType arg_ty res_ty
+ = do
+ tc <- builtin closureTyCon
+ return $ mkTyConApp tc [arg_ty, res_ty]
+
+mkClosureTypes :: [Type] -> Type -> VM Type
+mkClosureTypes arg_tys res_ty
+ = do
+ tc <- builtin closureTyCon
+ return $ foldr (mk tc) res_ty arg_tys
+ where
+ mk tc arg_ty res_ty = mkTyConApp tc [arg_ty, res_ty]
+