| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
GHC.TypeLits.Normalise.Compat
Synopsis
- data LookedUpTyCons = LookedUpTyCons {
- assertTyCon :: TyCon
- ordCondTyCon :: TyCon
- leqTyCon :: TyCon
- cmpNatTyCon :: TyCon
- c0TyCon :: TyCon
- c0DataCon :: DataCon
- lookupTyCons :: TcPluginM 'Init LookedUpTyCons
- upToGivens :: TyConSubst -> (TyCon -> [Type] -> Maybe (a, [Coercion])) -> Type -> Maybe (a, [Coercion])
- mkLEqNat :: LookedUpTyCons -> Type -> Type -> PredType
- type Relation = ((Type, Type), Maybe Bool)
- isNatRel :: LookedUpTyCons -> TyConSubst -> PredType -> Maybe (Relation, [Coercion])
- data UniqMap k a
- intersectUniqMap_C :: (a -> b -> c) -> UniqMap k a -> UniqMap k b -> UniqMap k c
- listToUniqMap :: Uniquable k => [(k, a)] -> UniqMap k a
- nonDetUniqMapToList :: UniqMap k a -> [(k, a)]
- mkTcPluginSolveResult :: [Ct] -> [(EvTerm, Ct)] -> [Ct] -> TcPluginSolveResult
Documentation
data LookedUpTyCons Source #
Constructors
| LookedUpTyCons | |
Fields
| |
upToGivens :: TyConSubst -> (TyCon -> [Type] -> Maybe (a, [Coercion])) -> Type -> Maybe (a, [Coercion]) Source #
isNatRel :: LookedUpTyCons -> TyConSubst -> PredType -> Maybe (Relation, [Coercion]) Source #
Is this an equality or inequality between two natural numbers?
See Note [Recognising Nat inequalities].
Maps indexed by Uniquable keys
Instances
| Functor (UniqMap k) | |
| (NFData k, NFData a) => NFData (UniqMap k a) | |
Defined in GHC.Types.Unique.Map | |
| ToJExpr a => ToJExpr (UniqMap FastString a) | |
Defined in GHC.JS.Make Methods toJExpr :: UniqMap FastString a -> JStgExpr # toJExprFromList :: [UniqMap FastString a] -> JStgExpr # | |
| (Outputable k, Outputable a) => Outputable (UniqMap k a) | |
Defined in GHC.Types.Unique.Map | |
| Monoid (UniqMap k a) | |
| Semigroup (UniqMap k a) | |
| (Data k, Data a) => Data (UniqMap k a) | |
Defined in GHC.Types.Unique.Map Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UniqMap k a -> c (UniqMap k a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (UniqMap k a) # toConstr :: UniqMap k a -> Constr # dataTypeOf :: UniqMap k a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (UniqMap k a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (UniqMap k a)) # gmapT :: (forall b. Data b => b -> b) -> UniqMap k a -> UniqMap k a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UniqMap k a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UniqMap k a -> r # gmapQ :: (forall d. Data d => d -> u) -> UniqMap k a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UniqMap k a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UniqMap k a -> m (UniqMap k a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UniqMap k a -> m (UniqMap k a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UniqMap k a -> m (UniqMap k a) # | |
| (Eq k, Eq a) => Eq (UniqMap k a) | |
intersectUniqMap_C :: (a -> b -> c) -> UniqMap k a -> UniqMap k b -> UniqMap k c #
Intersection with a combining function.
listToUniqMap :: Uniquable k => [(k, a)] -> UniqMap k a #
nonDetUniqMapToList :: UniqMap k a -> [(k, a)] #
mkTcPluginSolveResult :: [Ct] -> [(EvTerm, Ct)] -> [Ct] -> TcPluginSolveResult Source #