Commit 9008f5e5 authored by simonmar's avatar simonmar
Browse files

[project @ 2005-10-06 10:38:54 by simonmar]

add splitHsFunType

From: Autrijus Tang <>
parent 25311512
......@@ -17,7 +17,7 @@ module HsTypes (
mkExplicitHsForAllTy, mkImplicitHsForAllTy,
hsTyVarName, hsTyVarNames, replaceTyVarName,
hsLTyVarName, hsLTyVarNames, hsLTyVarLocName, hsLTyVarLocNames,
splitHsInstDeclTy, splitHsFunType,
-- Type place holder
PostTcType, placeHolderType,
......@@ -235,6 +235,13 @@ splitHsInstDeclTy inst_ty
split_tau tvs cxt (HsPredTy (HsClassP cls tys)) = (tvs, cxt, cls, tys)
split_tau tvs cxt (HsParTy (L _ ty)) = split_tau tvs cxt ty
-- Splits HsType into the (init, last) parts
splitHsFunType :: LHsType name -> ([LHsType name], LHsType name)
splitHsFunType (L l (HsFunTy x y)) = (x:args, res)
(args, res) = splitHsFunType y
splitHsFunType other = ([], other)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment