Copyright | (c) Fumiaki Kinoshita 2018 |
---|---|
License | BSD3 |
Maintainer | Fumiaki Kinoshita <fumiexcel@gmail.com> |
Safe Haskell | None |
Language | Haskell2010 |
Reification of constraints using extensible data types. Also includes orphan instances.
Documentation
library :: forall c xs. Forall c xs => xs :& Comp 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 :: k2 -> Constraint) (h :: k1 -> k2) (x :: k1) 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
Unbox a => Vector Vector (Identity a) Source # | |
basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (Identity a) -> m (Vector (Identity a)) basicUnsafeThaw :: PrimMonad m => Vector (Identity a) -> m (Mutable Vector (PrimState m) (Identity a)) basicLength :: Vector (Identity a) -> Int basicUnsafeSlice :: Int -> Int -> Vector (Identity a) -> Vector (Identity a) basicUnsafeIndexM :: Monad m => Vector (Identity a) -> Int -> m (Identity a) basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (Identity a) -> Vector (Identity a) -> m () | |
Unbox a => MVector MVector (Identity a) Source # | |
basicLength :: MVector s (Identity a) -> Int basicUnsafeSlice :: Int -> Int -> MVector s (Identity a) -> MVector s (Identity a) basicOverlaps :: MVector s (Identity a) -> MVector s (Identity a) -> Bool basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (Identity a)) basicInitialize :: PrimMonad m => MVector (PrimState m) (Identity a) -> m () basicUnsafeReplicate :: PrimMonad m => Int -> Identity a -> m (MVector (PrimState m) (Identity a)) basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (Identity a) -> Int -> m (Identity a) basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (Identity a) -> Int -> Identity a -> m () basicClear :: PrimMonad m => MVector (PrimState m) (Identity a) -> m () basicSet :: PrimMonad m => MVector (PrimState m) (Identity a) -> Identity a -> m () basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (Identity a) -> MVector (PrimState m) (Identity a) -> m () basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (Identity a) -> MVector (PrimState m) (Identity a) -> m () basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (Identity a) -> Int -> m (MVector (PrimState m) (Identity a)) | |
WrapForall Unbox h (x ': xs) => Vector Vector ((x ': xs) :& h) Source # | |
basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) ((x ': xs) :& h) -> m (Vector ((x ': xs) :& h)) basicUnsafeThaw :: PrimMonad m => Vector ((x ': xs) :& h) -> m (Mutable Vector (PrimState m) ((x ': xs) :& h)) basicLength :: Vector ((x ': xs) :& h) -> Int basicUnsafeSlice :: Int -> Int -> Vector ((x ': xs) :& h) -> Vector ((x ': xs) :& h) basicUnsafeIndexM :: Monad m => Vector ((x ': xs) :& h) -> Int -> m ((x ': xs) :& h) basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) ((x ': xs) :& h) -> Vector ((x ': xs) :& h) -> m () elemseq :: Vector ((x ': xs) :& h) -> ((x ': xs) :& h) -> b -> b | |
WrapForall Unbox h (x ': xs) => MVector MVector ((x ': xs) :& h) Source # | |
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 :: PrimMonad m => Int -> m (MVector (PrimState m) ((x ': xs) :& h)) basicInitialize :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) -> m () basicUnsafeReplicate :: PrimMonad m => Int -> ((x ': xs) :& h) -> m (MVector (PrimState m) ((x ': xs) :& h)) basicUnsafeRead :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) -> Int -> m ((x ': xs) :& h) basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) -> Int -> ((x ': xs) :& h) -> m () basicClear :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) -> m () basicSet :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) -> ((x ': xs) :& h) -> m () basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) -> MVector (PrimState m) ((x ': xs) :& h) -> m () basicUnsafeMove :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) -> MVector (PrimState m) ((x ': xs) :& h) -> m () basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) -> Int -> m (MVector (PrimState m) ((x ': xs) :& h)) | |
Unbox a => Unbox (Identity a) Source # | |
WrapForall Bounded h xs => Bounded (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 Show h xs => Show (xs :/ h) Source # | |
WrapForall Show h xs => Show (xs :& h) Source # | |
WrapForall Semigroup h xs => Semigroup (xs :& h) Source # | |
(WrapForall Semigroup h xs, WrapForall Monoid h xs) => Monoid (xs :& h) Source # | |
WrapForall Lift h xs => Lift (xs :/ h) Source # | |
WrapForall Lift h xs => Lift (xs :& h) Source # | |
WrapForall NFData h xs => NFData (xs :/ h) Source # | |
WrapForall NFData h xs => NFData (xs :& h) Source # | |
WrapForall Hashable h xs => Hashable (xs :/ h) Source # | |
WrapForall Hashable h xs => Hashable (xs :& h) Source # | |
WrapForall Pretty h xs => Pretty (xs :/ h) Source # | |
pretty :: (xs :/ h) -> Doc ann prettyList :: [xs :/ h] -> Doc ann | |
WrapForall Pretty h xs => Pretty (xs :& h) Source # | |
pretty :: (xs :& h) -> Doc ann prettyList :: [xs :& h] -> Doc ann | |
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 :& Nullable (Field h :: Assoc Symbol v -> Type)) Source # | |
Forall (KeyTargetAre KnownSymbol (Instance1 FromJSON h)) xs => FromJSON (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 # | |
Forall (KeyTargetAre KnownSymbol (Instance1 ToJSON h)) xs => ToJSON (xs :& (Field h :: Assoc Symbol v -> Type)) Source # | |
toJSON :: (xs :& Field h) -> Value toEncoding :: (xs :& Field h) -> Encoding toJSONList :: [xs :& Field h] -> Value toEncodingList :: [xs :& Field h] -> Encoding | |
Forall (KeyTargetAre KnownSymbol (Instance1 FromField h)) xs => FromNamedRecord (xs :& (Field h :: Assoc Symbol v -> Type)) Source # | |
parseNamedRecord :: NamedRecord -> Parser (xs :& Field h) | |
WrapForall FromField h xs => FromRecord (xs :& h) Source # | |
parseRecord :: Record -> Parser (xs :& h) | |
Forall (KeyTargetAre KnownSymbol (Instance1 ToField h)) xs => ToNamedRecord (xs :& (Field h :: Assoc Symbol v -> Type)) Source # | |
toNamedRecord :: (xs :& Field h) -> NamedRecord | |
WrapForall ToField h xs => ToRecord (xs :& h) Source # | |
WrapForall Unbox h (x ': xs) => Unbox ((x ': xs) :& h) Source # | |