| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Monoidal.Strictified
Contents
Documentation
(==) :: forall k (a :: k) (b :: k) (c :: k). CategoryOf k => (a ~> b) -> (b ~> c) -> a ~> c infixl 7 Source Github #
class (CategoryOf k, Obs as, Strictly as) => IsList (as :: [k]) where Source Github #
Methods
listCase :: (as ~ ('[] :: [k]) => r) -> (forall (a :: k). (Ob a, as ~ '[a]) => r) -> (forall (b :: k) (bs :: [k]) (c :: k) (cs :: [k]). (Ob b, Ob bs, Ob cs, as ~ (b ': bs), bs ~ (c ': cs)) => r) -> r Source Github #
sList :: SList as Source Github #
withIsList2 :: forall (bs :: [k]) r. IsList bs => (IsList (as ++ bs) => r) -> r Source Github #
swap1 :: forall (b :: k). (Ob b, SymMonoidal k) => (as ++ '[b]) ~> (b ': as) Source Github #
swap1Inv :: forall (b :: k). (Ob b, SymMonoidal k) => (b ': as) ~> (as ++ '[b]) Source Github #
swap' :: forall (bs :: [k]). (IsList bs, SymMonoidal k) => (as ++ bs) ~> (bs ++ as) Source Github #
Instances
| CategoryOf k => IsList ('[] :: [k]) Source Github # | |
Defined in Proarrow.Category.Monoidal.Strictified Methods listCase :: (('[] :: [k]) ~ ('[] :: [k]) => r) -> (forall (a :: k). (Ob a, ('[] :: [k]) ~ '[a]) => r) -> (forall (b :: k) (bs :: [k]) (c :: k) (cs :: [k]). (Ob b, Ob bs, Ob cs, ('[] :: [k]) ~ (b ': bs), bs ~ (c ': cs)) => r) -> r Source Github # sList :: SList ('[] :: [k]) Source Github # withIsList2 :: forall (bs :: [k]) r. IsList bs => (IsList (('[] :: [k]) ++ bs) => r) -> r Source Github # swap1 :: forall (b :: k). (Ob b, SymMonoidal k) => (('[] :: [k]) ++ '[b]) ~> '[b] Source Github # swap1Inv :: forall (b :: k). (Ob b, SymMonoidal k) => '[b] ~> (('[] :: [k]) ++ '[b]) Source Github # swap' :: forall (bs :: [k]). (IsList bs, SymMonoidal k) => (('[] :: [k]) ++ bs) ~> (bs ++ ('[] :: [k])) Source Github # | |
| (Ob a, CategoryOf k) => IsList ('[a] :: [k]) Source Github # | |
Defined in Proarrow.Category.Monoidal.Strictified Methods listCase :: ('[a] ~ ('[] :: [k]) => r) -> (forall (a0 :: k). (Ob a0, '[a] ~ '[a0]) => r) -> (forall (b :: k) (bs :: [k]) (c :: k) (cs :: [k]). (Ob b, Ob bs, Ob cs, '[a] ~ (b ': bs), bs ~ (c ': cs)) => r) -> r Source Github # sList :: SList '[a] Source Github # withIsList2 :: forall (bs :: [k]) r. IsList bs => (IsList ('[a] ++ bs) => r) -> r Source Github # swap1 :: forall (b :: k). (Ob b, SymMonoidal k) => ('[a] ++ '[b]) ~> '[b, a] Source Github # swap1Inv :: forall (b :: k). (Ob b, SymMonoidal k) => '[b, a] ~> ('[a] ++ '[b]) Source Github # swap' :: forall (bs :: [k]). (IsList bs, SymMonoidal k) => ('[a] ++ bs) ~> (bs ++ '[a]) Source Github # | |
| (Ob a1, IsList (a2 ': as), IsList as) => IsList (a1 ': (a2 ': as) :: [k]) Source Github # | |
Defined in Proarrow.Category.Monoidal.Strictified Methods listCase :: ((a1 ': (a2 ': as)) ~ ('[] :: [k]) => r) -> (forall (a :: k). (Ob a, (a1 ': (a2 ': as)) ~ '[a]) => r) -> (forall (b :: k) (bs :: [k]) (c :: k) (cs :: [k]). (Ob b, Ob bs, Ob cs, (a1 ': (a2 ': as)) ~ (b ': bs), bs ~ (c ': cs)) => r) -> r Source Github # sList :: SList (a1 ': (a2 ': as)) Source Github # withIsList2 :: forall (bs :: [k]) r. IsList bs => (IsList ((a1 ': (a2 ': as)) ++ bs) => r) -> r Source Github # swap1 :: forall (b :: k). (Ob b, SymMonoidal k) => ((a1 ': (a2 ': as)) ++ '[b]) ~> (b ': (a1 ': (a2 ': as))) Source Github # swap1Inv :: forall (b :: k). (Ob b, SymMonoidal k) => (b ': (a1 ': (a2 ': as))) ~> ((a1 ': (a2 ': as)) ++ '[b]) Source Github # swap' :: forall (bs :: [k]). (IsList bs, SymMonoidal k) => ((a1 ': (a2 ': as)) ++ bs) ~> (bs ++ (a1 ': (a2 ': as))) Source Github # | |
withObFold :: forall {k} (as :: [k]) r. (Monoidal k, Ob as) => (Ob (Fold as) => r) -> r Source Github #
concatFold :: forall {k} (as :: [k]) (bs :: [k]). (Ob as, Ob bs, Monoidal k) => (Fold as ** Fold bs) ~> Fold (as ++ bs) Source Github #
splitFold :: forall {k} (as :: [k]) (bs :: [k]). (Ob as, Ob bs, Monoidal k) => Fold (as ++ bs) ~> (Fold as ** Fold bs) Source Github #
data Strictified (as :: [k]) (bs :: [k]) where Source Github #
Constructors
| Str | |
Instances
| Monoidal k => Promonad (Strictified :: [k] -> [k] -> Type) Source Github # | |
Defined in Proarrow.Category.Monoidal.Strictified Methods id :: forall (a :: [k]). Ob a => Strictified a a Source Github # (.) :: forall (b :: [k]) (c :: [k]) (a :: [k]). Strictified b c -> Strictified a b -> Strictified a c Source Github # | |
| Monoidal k => MonoidalProfunctor (Strictified :: [k] -> [k] -> Type) Source Github # | |
Defined in Proarrow.Category.Monoidal.Strictified Methods one :: Strictified (Unit :: [k]) (Unit :: [k]) Source Github # (**) :: forall (x1 :: [k]) (x2 :: [k]) (y1 :: [k]) (y2 :: [k]). Strictified x1 x2 -> Strictified y1 y2 -> Strictified (x1 ** y1) (x2 ** y2) Source Github # | |
| Monoidal k => Profunctor (Strictified :: [k] -> [k] -> Type) Source Github # | |
Defined in Proarrow.Category.Monoidal.Strictified Methods dimap :: forall (c :: [k]) (a :: [k]) (b :: [k]) (d :: [k]). (c ~> a) -> (b ~> d) -> Strictified a b -> Strictified c d Source Github # lmap :: forall (c :: [k]) (a :: [k]) (b :: [k]). (c ~> a) -> Strictified a b -> Strictified c b Source Github # rmap :: forall (b :: [k]) (d :: [k]) (a :: [k]). (b ~> d) -> Strictified a b -> Strictified a d Source Github # (\\) :: forall (a :: [k]) (b :: [k]) r. ((Ob a, Ob b) => r) -> Strictified a b -> r Source Github # | |
swap2 :: forall {k} (a :: k) (b :: k). (SymMonoidal k, Ob a, Ob b) => '[a, b] ~> '[b, a] Source Github #
Orphan instances
| Monoidal k => Monoidal [k] Source Github # | List concattenation as monoidal tensor. | ||||
Associated Types
Methods withOb2 :: forall (a :: [k]) (b :: [k]) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Github # leftUnitor :: forall (a :: [k]). Ob a => ((Unit :: [k]) ** a) ~> a Source Github # leftUnitorInv :: forall (a :: [k]). Ob a => a ~> ((Unit :: [k]) ** a) Source Github # rightUnitor :: forall (a :: [k]). Ob a => (a ** (Unit :: [k])) ~> a Source Github # rightUnitorInv :: forall (a :: [k]). Ob a => a ~> (a ** (Unit :: [k])) Source Github # associator :: forall (a :: [k]) (b :: [k]) (c :: [k]). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Github # associatorInv :: forall (a :: [k]) (b :: [k]) (c :: [k]). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Github # | |||||
| SymMonoidal k => SymMonoidal [k] Source Github # | |||||
| Monoidal k => CategoryOf [k] Source Github # | The strictified monoidal category, making the unitors and associators identities. | ||||
Associated Types
| |||||