| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Data.Type.Witness.Specific.List.Sum
Synopsis
- type family ListSum (w :: [Type]) = (r :: Type) | r -> w where ...
- injectiveListSum :: forall (a :: [Type]) (b :: [Type]). ListSum a ~ ListSum b => a :~: b
- listSumEq :: forall w (t :: [Type]). (forall a. w a -> Dict (Eq a)) -> ListType w t -> Dict (Eq (ListSum t))
- listSumShow :: forall w (t :: [Type]). (forall a. w a -> Dict (Show a)) -> ListType w t -> Dict (Show (ListSum t))
- mapListSum :: forall w (t :: [Type]). ListType w t -> (forall a. w a -> a -> a) -> ListSum t -> ListSum t
- data ListSumType (wit :: Type -> Type) t where
- MkListSumType :: forall (wit :: Type -> Type) (lt :: [Type]). ListType wit lt -> ListSumType wit (ListSum lt)
Documentation
injectiveListSum :: forall (a :: [Type]) (b :: [Type]). ListSum a ~ ListSum b => a :~: b Source #
workaround for https://gitlab.haskell.org/ghc/ghc/issues/10833
listSumEq :: forall w (t :: [Type]). (forall a. w a -> Dict (Eq a)) -> ListType w t -> Dict (Eq (ListSum t)) Source #
listSumShow :: forall w (t :: [Type]). (forall a. w a -> Dict (Show a)) -> ListType w t -> Dict (Show (ListSum t)) Source #
mapListSum :: forall w (t :: [Type]). ListType w t -> (forall a. w a -> a -> a) -> ListSum t -> ListSum t Source #
data ListSumType (wit :: Type -> Type) t where Source #
Constructors
| MkListSumType :: forall (wit :: Type -> Type) (lt :: [Type]). ListType wit lt -> ListSumType wit (ListSum lt) |
Instances
| WitnessConstraint Eq w => WitnessConstraint Eq (ListSumType w :: Type -> Type) Source # | |
Defined in Data.Type.Witness.Specific.List.Sum Methods witnessConstraint :: ListSumType w t -> Dict (Eq t) Source # | |
| TestEquality wit => TestEquality (ListSumType wit :: Type -> Type) Source # | |
Defined in Data.Type.Witness.Specific.List.Sum Methods testEquality :: ListSumType wit a -> ListSumType wit b -> Maybe (a :~: b) # | |
| Representative w => Representative (ListSumType w :: Type -> Type) Source # | |
Defined in Data.Type.Witness.Specific.List.Sum Methods getRepWitness :: Subrepresentative (ListSumType w) (ListSumType w) Source # | |
| Representative w => Is (ListSumType w :: Type -> Type) Void Source # | |
Defined in Data.Type.Witness.Specific.List.Sum Methods representative :: ListSumType w Void Source # | |
| (Is w a, Is (ListSumType w) ar) => Is (ListSumType w :: Type -> Type) (Either a ar :: Type) Source # | |
Defined in Data.Type.Witness.Specific.List.Sum Methods representative :: ListSumType w (Either a ar) Source # | |