ghc-7.10.2: The GHC API

Safe HaskellNone
LanguageHaskell2010

TcSMonad

Synopsis

Documentation

data WorkList

Constructors

WL 

Fields

wl_eqs :: [Ct]
 
wl_funeqs :: [Ct]
 
wl_rest :: [Ct]
 
wl_implics :: Bag Implication
 

Instances

runFlatten :: TcS a -> TcS a

runTcS :: TcS a -> TcM (a, Bag EvBind)

failTcS :: SDoc -> TcS a

tryTcS :: TcS a -> TcS a

nestTcS :: TcS a -> TcS a

recoverTcS :: TcS a -> TcS a -> TcS a

panicTcS :: SDoc -> TcS a

traceTcS :: String -> SDoc -> TcS ()

wrapErrTcS :: TcM a -> TcS a

wrapWarnTcS :: TcM a -> TcS a

data XEvTerm

Constructors

XEvTerm 

Fields

ev_preds :: [PredType]
 
ev_comp :: [EvTerm] -> EvTerm
 
ev_decomp :: EvTerm -> [EvTerm]
 

data Freshness

Constructors

Fresh 
Cached 

data InertSet

Constructors

IS 

Instances

data InertCans

Constructors

IC 

updInertDicts :: (DictMap Ct -> DictMap Ct) -> TcS ()

updInertIrreds :: (Cts -> Cts) -> TcS ()

splitInertCans :: InertCans -> ([Ct], [Ct], [Ct])

Extract the (given, derived, wanted) inert constraints

removeInertCts :: [Ct] -> InertCans -> InertCans

Remove inert constraints from the InertCans, for use when a typechecker plugin wishes to discard a given.

insertFunEq :: FunEqMap a -> TyCon -> [Type] -> a -> FunEqMap a

type EqualCtList = [Ct]

findDictsByClass :: DictMap a -> Class -> Bag a

addDict :: DictMap a -> Class -> [Type] -> a -> DictMap a

addDictsByClass :: DictMap Ct -> Class -> Bag Ct -> DictMap Ct

delDict :: DictMap a -> Class -> [Type] -> DictMap a

partitionDicts :: (Ct -> Bool) -> DictMap Ct -> (Bag Ct, DictMap Ct)

updInertFunEqs :: (FunEqMap Ct -> FunEqMap Ct) -> TcS ()

findFunEq :: FunEqMap a -> TyCon -> [Type] -> Maybe a

sizeFunEqMap :: FunEqMap a -> Int

findFunEqsByTyCon :: FunEqMap a -> TyCon -> [a]

findFunEqs :: FunEqMap a -> TyCon -> [Type] -> Maybe a

partitionFunEqs :: (Ct -> Bool) -> FunEqMap Ct -> ([Ct], FunEqMap Ct)

newTcRef :: a -> TcS (TcRef a)

readTcRef :: TcRef a -> TcS a

updTcRef :: TcRef a -> (a -> a) -> TcS ()