summaryrefslogtreecommitdiff
path: root/compiler/GHC/Tc/Gen/Rule.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Tc/Gen/Rule.hs')
-rw-r--r--compiler/GHC/Tc/Gen/Rule.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/GHC/Tc/Gen/Rule.hs b/compiler/GHC/Tc/Gen/Rule.hs
index 7475b2e737..49de48cebd 100644
--- a/compiler/GHC/Tc/Gen/Rule.hs
+++ b/compiler/GHC/Tc/Gen/Rule.hs
@@ -28,6 +28,7 @@ import GHC.Tc.Utils.Unify( buildImplicationFor )
import GHC.Tc.Types.Evidence( mkTcCoVarCo )
import GHC.Core.Type
import GHC.Core.TyCon( isTypeFamilyTyCon )
+import GHC.Core.Multiplicity
import GHC.Types.Id
import GHC.Types.Var( EvVar )
import GHC.Types.Var.Set
@@ -221,7 +222,7 @@ tcRuleTmBndrs [] = return ([],[])
tcRuleTmBndrs (L _ (RuleBndr _ (L _ name)) : rule_bndrs)
= do { ty <- newOpenFlexiTyVarTy
; (tyvars, tmvars) <- tcRuleTmBndrs rule_bndrs
- ; return (tyvars, mkLocalId name ty : tmvars) }
+ ; return (tyvars, mkLocalId name Many ty : tmvars) }
tcRuleTmBndrs (L _ (RuleBndrSig _ (L _ name) rn_ty) : rule_bndrs)
-- e.g x :: a->a
-- The tyvar 'a' is brought into scope first, just as if you'd written
@@ -230,7 +231,7 @@ tcRuleTmBndrs (L _ (RuleBndrSig _ (L _ name) rn_ty) : rule_bndrs)
-- error for each out-of-scope type variable used
= do { let ctxt = RuleSigCtxt name
; (_ , tvs, id_ty) <- tcHsPatSigType ctxt rn_ty
- ; let id = mkLocalId name id_ty
+ ; let id = mkLocalId name Many id_ty
-- See Note [Typechecking pattern signature binders] in GHC.Tc.Gen.HsType
-- The type variables scope over subsequent bindings; yuk