| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Optic
Synopsis
- data OPTIC j k (c :: (j +-> k) -> Constraint) = OPT k j
- type family OptL (p :: OPTIC j k c) :: k where ...
- type family OptR (p :: OPTIC j k c) :: j where ...
- data Optic_ (ab :: OPTIC j k c) (st :: OPTIC j k c) where
- type Optic (c :: (j +-> k) -> Constraint) (s :: k) (t :: j) (a :: k) (b :: j) = Optic_ ('OPT a b :: OPTIC j k c) ('OPT s t :: OPTIC j k c)
- type Optic' (c :: (j +-> j) -> Constraint) (s :: j) (a :: j) = Optic c s s a a
- class (c1 p, c2 p) => ((c1 :: k -> Constraint) :&&: (c2 :: k -> Constraint)) (p :: k)
- (%) :: forall {j} {k} (c1 :: (j +-> k) -> Constraint) (s :: k) (t :: j) (a :: k) (b :: j) (c2 :: (j +-> k) -> Constraint) (c :: k) (d :: j). Optic c1 s t a b -> Optic c2 a b c d -> Optic (c1 :&&: c2) s t c d
- type (:=>) (c :: (j +-> k) -> Constraint) (d :: (j +-> k) -> Constraint) = forall (p :: j +-> k). c p => d p
- type Iso (s :: k) (t :: j) (a :: k) (b :: j) = Optic (Profunctor :: (j +-> k) -> Constraint) s t a b
- type Iso' (s :: j) (a :: j) = Iso s s a a
- iso :: forall {j} {k} (s :: k) (t :: j) (a :: k) (b :: j). (CategoryOf j, CategoryOf k) => (s ~> a) -> (b ~> t) -> Iso s t a b
- data Re (p :: k -> k1 -> Type) (s :: k1) (t :: k) (a :: k1) (b :: k) where
- class (forall (p :: k +-> j) (a :: k) (b :: j). coc p => c (Re p a b)) => InvertableOptic (c :: (j +-> k) -> Constraint) (coc :: (k +-> j) -> Constraint) | c -> coc
- re :: forall {j} {k} (a :: j) (b :: k) (c :: (k +-> j) -> Constraint) (coc :: (j +-> k) -> Constraint) (s :: j) (t :: k). (Ob a, Ob b, InvertableOptic c coc) => Optic c s t a b -> Optic coc b a t s
Documentation
data OPTIC j k (c :: (j +-> k) -> Constraint) Source Github #
Constructors
| OPT k j |
Instances
| (CategoryOf j, CategoryOf k) => CategoryOf (OPTIC j k c) Source Github # | |
Defined in Proarrow.Optic | |
| (CategoryOf j, CategoryOf k) => Promonad (Optic_ :: OPTIC j k c -> OPTIC j k c -> Type) Source Github # | |
| (CategoryOf j, CategoryOf k) => Profunctor (Optic_ :: OPTIC j k c -> OPTIC j k c -> Type) Source Github # | |
Defined in Proarrow.Optic | |
| type (~>) Source Github # | |
| type Ob (opt :: OPTIC j k c) Source Github # | |
data Optic_ (ab :: OPTIC j k c) (st :: OPTIC j k c) where Source Github #
Constructors
| Optic | |
Instances
| (CategoryOf j, CategoryOf k) => Promonad (Optic_ :: OPTIC j k c -> OPTIC j k c -> Type) Source Github # | |
| (CategoryOf j, CategoryOf k) => Profunctor (Optic_ :: OPTIC j k c -> OPTIC j k c -> Type) Source Github # | |
Defined in Proarrow.Optic | |
type Optic (c :: (j +-> k) -> Constraint) (s :: k) (t :: j) (a :: k) (b :: j) = Optic_ ('OPT a b :: OPTIC j k c) ('OPT s t :: OPTIC j k c) Source Github #
class (c1 p, c2 p) => ((c1 :: k -> Constraint) :&&: (c2 :: k -> Constraint)) (p :: k) Source Github #
Instances
| (c1 p, c2 p) => ((c1 :: k -> Constraint) :&&: (c2 :: k -> Constraint)) (p :: k) Source Github # | |
Defined in Proarrow.Optic | |
(%) :: forall {j} {k} (c1 :: (j +-> k) -> Constraint) (s :: k) (t :: j) (a :: k) (b :: j) (c2 :: (j +-> k) -> Constraint) (c :: k) (d :: j). Optic c1 s t a b -> Optic c2 a b c d -> Optic (c1 :&&: c2) s t c d Source Github #
Compose optics if different kinds
type (:=>) (c :: (j +-> k) -> Constraint) (d :: (j +-> k) -> Constraint) = forall (p :: j +-> k). c p => d p Source Github #
type Iso (s :: k) (t :: j) (a :: k) (b :: j) = Optic (Profunctor :: (j +-> k) -> Constraint) s t a b Source Github #
iso :: forall {j} {k} (s :: k) (t :: j) (a :: k) (b :: j). (CategoryOf j, CategoryOf k) => (s ~> a) -> (b ~> t) -> Iso s t a b Source Github #
data Re (p :: k -> k1 -> Type) (s :: k1) (t :: k) (a :: k1) (b :: k) where Source Github #
Constructors
| Re | |
class (forall (p :: k +-> j) (a :: k) (b :: j). coc p => c (Re p a b)) => InvertableOptic (c :: (j +-> k) -> Constraint) (coc :: (k +-> j) -> Constraint) | c -> coc Source Github #
Instances
| InvertableOptic (Profunctor :: (j +-> k) -> Constraint) (Profunctor :: (k +-> j) -> Constraint) Source Github # | |
Defined in Proarrow.Optic | |
| InvertableOptic (Costrong m :: (j +-> k) -> Constraint) (Strong m :: (k +-> j) -> Constraint) Source Github # | |
Defined in Proarrow.Category.Monoidal.Optic | |
| InvertableOptic (Strong m :: (j +-> k) -> Constraint) (Costrong m :: (k +-> j) -> Constraint) Source Github # | |
Defined in Proarrow.Category.Monoidal.Optic | |
| (InvertableOptic l l', InvertableOptic r r') => InvertableOptic (l :&&: r :: (j +-> k) -> Constraint) (l' :&&: r' :: (k +-> j) -> Constraint) Source Github # | |
Defined in Proarrow.Optic | |
re :: forall {j} {k} (a :: j) (b :: k) (c :: (k +-> j) -> Constraint) (coc :: (j +-> k) -> Constraint) (s :: j) (t :: k). (Ob a, Ob b, InvertableOptic c coc) => Optic c s t a b -> Optic coc b a t s Source Github #