Copyright | (c) Fumiaki Kinoshita 2018 |
---|---|
License | BSD3 |
Maintainer | Fumiaki Kinoshita <[email protected]> |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Data.Extensible.Dictionary
Contents
Description
Reification of constraints using extensible data types. Also includes orphan instances.
Documentation
library :: forall c xs. Forall c xs => xs :& Compose Dict c Source #
Reify a collection of dictionaries, as you wish.
type WrapForall c h = Forall (Instance1 c h) Source #
Forall upon a wrapper
class c (h x) => Instance1 c h x Source #
Composition for a class and a wrapper
Instances
c (h x) => Instance1 (c :: k1 -> Constraint) (h :: k2 -> k1) (x :: k2) Source # | |
Defined in Data.Extensible.Dictionary |
class (f x, g x) => And f g x Source #
Instances
(f x, g x) => And (f :: k -> Constraint) (g :: k -> Constraint) (x :: k) Source # | |
Defined in Data.Extensible.Dictionary |
Orphan instances
(Lookup xs k v, Wrapper h, Repr h v ~ a) => HasField (k :: k) (RecordOf h xs) a Source # | |
WrapForall (Lift :: Type -> Constraint) h xs => Lift (xs :& h :: Type) Source # | |
WrapForall (Lift :: Type -> Constraint) h xs => Lift (xs :/ h :: Type) Source # | |
WrapForall Unbox h (x ': xs) => Vector Vector ((x ': xs) :& h) Source # | |
Methods basicUnsafeFreeze :: Mutable Vector s ((x ': xs) :& h) -> ST s (Vector ((x ': xs) :& h)) basicUnsafeThaw :: Vector ((x ': xs) :& h) -> ST s (Mutable Vector s ((x ': xs) :& h)) basicLength :: Vector ((x ': xs) :& h) -> Int basicUnsafeSlice :: Int -> Int -> Vector ((x ': xs) :& h) -> Vector ((x ': xs) :& h) basicUnsafeIndexM :: Vector ((x ': xs) :& h) -> Int -> Box ((x ': xs) :& h) basicUnsafeCopy :: Mutable Vector s ((x ': xs) :& h) -> Vector ((x ': xs) :& h) -> ST s () elemseq :: Vector ((x ': xs) :& h) -> ((x ': xs) :& h) -> b -> b | |
WrapForall Unbox h (x ': xs) => MVector MVector ((x ': xs) :& h) Source # | |
Methods basicLength :: MVector s ((x ': xs) :& h) -> Int basicUnsafeSlice :: Int -> Int -> MVector s ((x ': xs) :& h) -> MVector s ((x ': xs) :& h) basicOverlaps :: MVector s ((x ': xs) :& h) -> MVector s ((x ': xs) :& h) -> Bool basicUnsafeNew :: Int -> ST s (MVector s ((x ': xs) :& h)) basicInitialize :: MVector s ((x ': xs) :& h) -> ST s () basicUnsafeReplicate :: Int -> ((x ': xs) :& h) -> ST s (MVector s ((x ': xs) :& h)) basicUnsafeRead :: MVector s ((x ': xs) :& h) -> Int -> ST s ((x ': xs) :& h) basicUnsafeWrite :: MVector s ((x ': xs) :& h) -> Int -> ((x ': xs) :& h) -> ST s () basicClear :: MVector s ((x ': xs) :& h) -> ST s () basicSet :: MVector s ((x ': xs) :& h) -> ((x ': xs) :& h) -> ST s () basicUnsafeCopy :: MVector s ((x ': xs) :& h) -> MVector s ((x ': xs) :& h) -> ST s () basicUnsafeMove :: MVector s ((x ': xs) :& h) -> MVector s ((x ': xs) :& h) -> ST s () basicUnsafeGrow :: MVector s ((x ': xs) :& h) -> Int -> ST s (MVector s ((x ': xs) :& h)) | |
WrapForall Arbitrary h xs => Arbitrary (xs :& h) Source # | |
WrapForall Arbitrary h xs => Arbitrary (xs :/ h) Source # | |
Forall (KeyTargetAre KnownSymbol (Instance1 FromJSON h)) xs => FromJSON (xs :& (Field h :: Assoc Symbol v -> Type)) Source # |
|
Forall (KeyTargetAre KnownSymbol (Instance1 FromJSON h)) xs => FromJSON (xs :& Nullable (Field h :: Assoc Symbol v -> Type)) Source # | |
Forall (KeyTargetAre KnownSymbol (Instance1 ToJSON h)) xs => ToJSON (xs :& (Field h :: Assoc Symbol v -> Type)) Source # | |
Forall (KeyTargetAre KnownSymbol (Instance1 ToJSON h)) xs => ToJSON (xs :& Nullable (Field h :: Assoc Symbol v -> Type)) Source # | |
(WrapForall Semigroup h xs, WrapForall Monoid h xs) => Monoid (xs :& h) Source # | |
WrapForall Semigroup h xs => Semigroup (xs :& h) Source # | |
WrapForall Bounded h xs => Bounded (xs :& h) Source # | |
WrapForall Show h xs => Show (xs :& h) Source # | |
WrapForall Show h xs => Show (xs :/ h) Source # | |
Forall (KeyTargetAre KnownSymbol (Instance1 FromField h)) xs => FromNamedRecord (xs :& (Field h :: Assoc Symbol v -> Type)) Source # | |
Methods parseNamedRecord :: NamedRecord -> Parser (xs :& Field h) # | |
WrapForall FromField h xs => FromRecord (xs :& h) Source # | |
Methods parseRecord :: Record -> Parser (xs :& h) # | |
Forall (KeyTargetAre KnownSymbol (Instance1 ToField h)) xs => ToNamedRecord (xs :& (Field h :: Assoc Symbol v -> Type)) Source # | |
Methods toNamedRecord :: (xs :& Field h) -> NamedRecord # | |
WrapForall ToField h xs => ToRecord (xs :& h) Source # | |
WrapForall NFData h xs => NFData (xs :& h) Source # | |
WrapForall NFData h xs => NFData (xs :/ h) Source # | |
WrapForall Eq h xs => Eq (xs :& h) Source # | |
WrapForall Eq h xs => Eq (xs :/ h) Source # | |
(Eq (xs :& h), WrapForall Ord h xs) => Ord (xs :& h) Source # | |
(Eq (xs :/ h), WrapForall Ord h xs) => Ord (xs :/ h) Source # | |
(WrapForall Eq h xs, WrapForall Hashable h xs) => Hashable (xs :& h) Source # | |
(WrapForall Eq h xs, WrapForall Hashable h xs) => Hashable (xs :/ h) Source # | |
WrapForall Incremental h xs => Incremental (xs :& h) Source # | |
WrapForall Pretty h xs => Pretty (xs :& h) Source # | |
WrapForall Pretty h xs => Pretty (xs :/ h) Source # | |
WrapForall Unbox h (x ': xs) => Unbox ((x ': xs) :& h) Source # | |
Forall (KeyIs KnownSymbol :: Assoc Symbol v -> Constraint) xs => DefaultOrdered (RecordOf h xs) Source # | |
Methods headerOrder :: RecordOf h xs -> Header # |