Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : type-nats
http://hackage.haskell.org/trac/ghc/changeset/3a775041ddaa02bfd75917c60427fc87b04eada4 >--------------------------------------------------------------- commit 3a775041ddaa02bfd75917c60427fc87b04eada4 Author: Iavor S. Diatchki <iavor.diatc...@gmail.com> Date: Sun Nov 11 12:27:34 2012 -0800 Add type-level '-' as a known name for GHC. >--------------------------------------------------------------- compiler/prelude/PrelNames.lhs | 14 ++++++++++---- compiler/prelude/TysWiredIn.lhs | 4 ++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/compiler/prelude/PrelNames.lhs b/compiler/prelude/PrelNames.lhs index 14a5108..ff3cc39 100644 --- a/compiler/prelude/PrelNames.lhs +++ b/compiler/prelude/PrelNames.lhs @@ -288,6 +288,7 @@ basicKnownKeyNames typeNatAddTyFamName, typeNatMulTyFamName, typeNatExpTyFamName, + typeNatSubTyFamName, fromNat1TyFamName, -- Implicit parameters @@ -1092,7 +1093,9 @@ isStringClassName = clsQual dATA_STRING (fsLit "IsString") isStringClassKey -- Type-level naturals typeNatKindConName, typeStringKindConName, singIClassName, typeNatLeqTyFamName, - typeNatAddTyFamName, typeNatMulTyFamName, typeNatExpTyFamName :: Name + typeNatAddTyFamName, typeNatMulTyFamName, typeNatExpTyFamName, + typeNatSubTyFamName + :: Name typeNatKindConName = tcQual gHC_TYPELITS (fsLit "Nat") typeNatKindConNameKey typeStringKindConName = tcQual gHC_TYPELITS (fsLit "Symbol") typeStringKindConNameKey @@ -1101,6 +1104,7 @@ typeNatLeqTyFamName = clsQual gHC_TYPELITS (fsLit "<=?") typeNatLeqTyFamNameKey typeNatAddTyFamName = tcQual gHC_TYPELITS (fsLit "+") typeNatAddTyFamNameKey typeNatMulTyFamName = tcQual gHC_TYPELITS (fsLit "*") typeNatMulTyFamNameKey typeNatExpTyFamName = tcQual gHC_TYPELITS (fsLit "^") typeNatExpTyFamNameKey +typeNatSubTyFamName = tcQual gHC_TYPELITS (fsLit "-") typeNatSubTyFamNameKey fromNat1TyFamName :: Name fromNat1TyFamName = tcQual gHC_TYPELITS (fsLit "FromNat1") fromNat1TyFamNameKey @@ -1417,7 +1421,8 @@ typeNatKindConNameKey, typeStringKindConNameKey, typeNatLeqTyFamNameKey, typeNatAddTyFamNameKey, typeNatMulTyFamNameKey, - typeNatExpTyFamNameKey + typeNatExpTyFamNameKey, + typeNatSubTyFamNameKey :: Unique typeNatKindConNameKey = mkPreludeTyConUnique 160 typeStringKindConNameKey = mkPreludeTyConUnique 161 @@ -1425,10 +1430,11 @@ typeNatLeqTyFamNameKey = mkPreludeTyConUnique 162 typeNatAddTyFamNameKey = mkPreludeTyConUnique 163 typeNatMulTyFamNameKey = mkPreludeTyConUnique 164 typeNatExpTyFamNameKey = mkPreludeTyConUnique 165 +typeNatSubTyFamNameKey = mkPreludeTyConUnique 166 nat1TyConKey, fromNat1TyFamNameKey :: Unique -nat1TyConKey = mkPreludeTyConUnique 166 -fromNat1TyFamNameKey = mkPreludeTyConUnique 167 +nat1TyConKey = mkPreludeTyConUnique 167 +fromNat1TyFamNameKey = mkPreludeTyConUnique 168 ---------------- Template Haskell ------------------- -- USES TyConUniques 200-299 diff --git a/compiler/prelude/TysWiredIn.lhs b/compiler/prelude/TysWiredIn.lhs index 2bcfb93..d371a86 100644 --- a/compiler/prelude/TysWiredIn.lhs +++ b/compiler/prelude/TysWiredIn.lhs @@ -74,6 +74,7 @@ module TysWiredIn ( -- * Type families used to compute at the type level. typeNatLeqTyCon, typeNatAddTyCon, typeNatMulTyCon, typeNatExpTyCon, + typeNatSubTyCon, fromNat1TyCon, -- * Lifted booleans @@ -804,6 +805,9 @@ typeNatMulTyCon = mkTypeNatFunTyCon typeNatMulTyFamName typeNatExpTyCon :: TyCon typeNatExpTyCon = mkTypeNatFunTyCon typeNatExpTyFamName +typeNatSubTyCon :: TyCon +typeNatSubTyCon = mkTypeNatFunTyCon typeNatSubTyFamName + fromNat1TyCon :: TyCon fromNat1TyCon = mkSynTyCon fromNat1TyFamName (mkArrowKinds [ nat1Kind ] typeNatKind ) _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc