TcRules: Typechecking transformation rules
\begin{code}
-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
-
module TcRules ( tcRules ) where
-#include "HsVersions.h"
-
import HsSyn
import TcRnMonad
import TcSimplify
import Name
import SrcLoc
import Outputable
+import FastString
\end{code}
\begin{code}
tcRule :: RuleDecl Name -> TcM (RuleDecl TcId)
tcRule (HsRule name act vars lhs fv_lhs rhs fv_rhs)
= addErrCtxt (ruleCtxt name) $ do
- traceTc (ptext SLIT("---- Rule ------") <+> ppr name)
+ traceTc (ptext (sLit "---- Rule ------") <+> ppr name)
rule_ty <- newFlexiTyVarTy openTypeKind
-- Deal with the tyvars mentioned in signatures
(mkHsDictLet lhs_binds lhs') fv_lhs
(mkHsDictLet rhs_binds rhs') fv_rhs)
-
+tcRuleBndrs :: [RuleBndr Name] -> ([Id] -> TcM a) -> TcM a
tcRuleBndrs [] thing_inside = thing_inside []
tcRuleBndrs (RuleBndr var : vars) thing_inside
= do { ty <- newFlexiTyVarTy openTypeKind
tcExtendIdEnv [id] $
tcRuleBndrs vars (\ids -> thing_inside (id:ids)) }
-ruleCtxt name = ptext SLIT("When checking the transformation rule") <+>
+ruleCtxt :: FastString -> SDoc
+ruleCtxt name = ptext (sLit "When checking the transformation rule") <+>
doubleQuotes (ftext name)
\end{code}