nlHsTyApps: for applying a function both on type- and term-level arguments
authorDr. ERDI Gergo <gergo@erdi.hu>
Fri, 7 Nov 2014 14:49:52 +0000 (22:49 +0800)
committerDr. ERDI Gergo <gergo@erdi.hu>
Thu, 13 Nov 2014 15:38:39 +0000 (23:38 +0800)
compiler/hsSyn/HsUtils.lhs

index 12e2388..df2406f 100644 (file)
@@ -28,7 +28,7 @@ module HsUtils(
   mkHsOpApp, mkHsDo, mkHsComp, mkHsWrapPat, mkHsWrapPatCo,
   mkLHsPar, mkHsCmdCast,
 
-  nlHsTyApp, nlHsVar, nlHsLit, nlHsApp, nlHsApps, nlHsIntLit, nlHsVarApps,
+  nlHsTyApp, nlHsTyApps, nlHsVar, nlHsLit, nlHsApp, nlHsApps, nlHsIntLit, nlHsVarApps,
   nlHsDo, nlHsOpApp, nlHsLam, nlHsPar, nlHsIf, nlHsCase, nlList,
   mkLHsTupleExpr, mkLHsVarTuple, missingTupArg,
   toHsType, toHsKind,
@@ -177,6 +177,9 @@ mkSimpleHsAlt pat expr
 nlHsTyApp :: name -> [Type] -> LHsExpr name
 nlHsTyApp fun_id tys = noLoc (HsWrap (mkWpTyApps tys) (HsVar fun_id))
 
+nlHsTyApps :: name -> [Type] -> [LHsExpr name] -> LHsExpr name
+nlHsTyApps fun_id tys xs = foldl nlHsApp (nlHsTyApp fun_id tys) xs
+
 --------- Adding parens ---------
 mkLHsPar :: LHsExpr name -> LHsExpr name
 -- Wrap in parens if hsExprNeedsParens says it needs them