Copyright | (c) Fumiaki Kinoshita 2018 |
---|---|
License | BSD3 |
Maintainer | Fumiaki Kinoshita <[email protected]> |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Data.Extensible.Plain
Description
Synopsis
- type AllOf (xs :: [Type]) = xs :& Identity
- type OneOf (xs :: [Type]) = xs :/ Identity
- (<%) :: forall x (xs :: [Type]). x -> AllOf xs -> AllOf (x ': xs)
- pluck :: forall x (xs :: [Type]). x ∈ xs => AllOf xs -> x
- bury :: forall x (xs :: [Type]). x ∈ xs => x -> OneOf xs
- (<%|) :: forall x r (xs :: [Type]). (x -> r) -> (OneOf xs -> r) -> OneOf (x ': xs) -> r
- accessing :: forall x a (xs :: [Type]) f p t. (Coercible x a, x ∈ xs, Extensible f p t, ExtensibleConstr t xs Identity x) => (a -> x) -> Optic' p f (t xs Identity) a