import TcBinds ( tcSpecSigs )
import TcClassDcl ( tcMethodBind, checkFromThisClass )
import TcMonad
-import RnMonad ( RnNameSupply, Fixities )
+import RnMonad ( RnNameSupply, FixityEnv )
import Inst ( Inst, InstOrigin(..),
newDicts, newClassDicts,
LIE, emptyLIE, plusLIE, plusLIEs )
import VarSet ( mkVarSet, varSetElems )
import TysPrim ( byteArrayPrimTyCon, mutableByteArrayPrimTyCon )
import TysWiredIn ( stringTy, isFFIArgumentTy, isFFIResultTy )
-import Unique ( Unique, cCallableClassKey, cReturnableClassKey, Uniquable(..) )
+import Unique ( Unique, cCallableClassKey, cReturnableClassKey, hasKey, Uniquable(..) )
import Outputable
\end{code}
tcInstDecls1 :: ValueEnv -- Contains IdInfo for dfun ids
-> [RenamedHsDecl]
-> ModuleName -- module name for deriving
- -> Fixities
+ -> FixityEnv
-> RnNameSupply -- for renaming derivings
-> TcM s (Bag InstInfo,
RenamedHsBinds)
| -- CCALL CHECK
-- A user declaration of a CCallable/CReturnable instance
-- must be for a "boxed primitive" type.
- (getUnique clas == cCallableClassKey && not (ccallable_type first_inst_tau)) ||
- (getUnique clas == cReturnableClassKey && not (creturnable_type first_inst_tau))
+ (clas `hasKey` cCallableClassKey && not (ccallable_type first_inst_tau)) ||
+ (clas `hasKey` cReturnableClassKey && not (creturnable_type first_inst_tau))
= addErrTc (nonBoxedPrimCCallErr clas first_inst_tau)
-- DERIVING CHECK