proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.FinSet

Documentation

data FINSET Source Github #

Constructors

FS Nat 

Instances

Instances details
Monoidal FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type Unit = 'FS Nat1
type (a :: FINSET) ** (b :: FINSET) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type (a :: FINSET) ** (b :: FINSET) = a && b

Methods

withOb2 :: forall (a :: FINSET) (b :: FINSET) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Github #

leftUnitor :: forall (a :: FINSET). Ob a => ((Unit :: FINSET) ** a) ~> a Source Github #

leftUnitorInv :: forall (a :: FINSET). Ob a => a ~> ((Unit :: FINSET) ** a) Source Github #

rightUnitor :: forall (a :: FINSET). Ob a => (a ** (Unit :: FINSET)) ~> a Source Github #

rightUnitorInv :: forall (a :: FINSET). Ob a => a ~> (a ** (Unit :: FINSET)) Source Github #

associator :: forall (a :: FINSET) (b :: FINSET) (c :: FINSET). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Github #

associatorInv :: forall (a :: FINSET) (b :: FINSET) (c :: FINSET). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Github #

SymMonoidal FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

swap :: forall (a :: FINSET) (b :: FINSET). (Ob a, Ob b) => (a ** b) ~> (b ** a) Source Github #

CopyDiscard FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

copy :: forall (a :: FINSET). Ob a => a ~> (a ** a) Source Github #

discard :: forall (a :: FINSET). Ob a => a ~> (Unit :: FINSET) Source Github #

Distributive FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

distL :: forall (a :: FINSET) (b :: FINSET) (c :: FINSET). (Ob a, Ob b, Ob c) => (a ** (b || c)) ~> ((a ** b) || (a ** c)) Source Github #

distR :: forall (a :: FINSET) (b :: FINSET) (c :: FINSET). (Ob a, Ob b, Ob c) => ((a || b) ** c) ~> ((a ** c) || (b ** c)) Source Github #

distL0 :: forall (a :: FINSET). Ob a => (a ** (InitialObject :: FINSET)) ~> (InitialObject :: FINSET) Source Github #

distR0 :: forall (a :: FINSET). Ob a => ((InitialObject :: FINSET) ** a) ~> (InitialObject :: FINSET) Source Github #

CategoryOf FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type (~>) = FinSet
type Ob (a :: FINSET) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type Ob (a :: FINSET) = (Is 'FS a, SNatI (UN 'FS a))
HasBinaryCoproducts FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type ('FS a :: FINSET) || ('FS b :: FINSET) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type ('FS a :: FINSET) || ('FS b :: FINSET) = 'FS (Plus a b)

Methods

withObCoprod :: forall (a :: FINSET) (b :: FINSET) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: FINSET) (b :: FINSET). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: FINSET) (b :: FINSET). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: FINSET) (a :: FINSET) (y :: FINSET). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: FINSET) (b :: FINSET) (x :: FINSET) (y :: FINSET). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryProducts FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type (a :: FINSET) && (b :: FINSET) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type (a :: FINSET) && (b :: FINSET) = 'FS (Mult (UN 'FS a) (UN 'FS b))

Methods

withObProd :: forall (a :: FINSET) (b :: FINSET) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Github #

fst :: forall (a :: FINSET) (b :: FINSET). (Ob a, Ob b) => (a && b) ~> a Source Github #

snd :: forall (a :: FINSET) (b :: FINSET). (Ob a, Ob b) => (a && b) ~> b Source Github #

(&&&) :: forall (a :: FINSET) (x :: FINSET) (y :: FINSET). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Github #

(***) :: forall (a :: FINSET) (b :: FINSET) (x :: FINSET) (y :: FINSET). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Github #

Closed FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type ('FS a :: FINSET) ~~> ('FS b :: FINSET) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type ('FS a :: FINSET) ~~> ('FS b :: FINSET) = 'FS (Exp b a)

Methods

withObExp :: forall (a :: FINSET) (b :: FINSET) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Github #

curry :: forall (a :: FINSET) (b :: FINSET) (c :: FINSET). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Github #

apply :: forall (a :: FINSET) (b :: FINSET). (Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Github #

(^^^) :: forall (a :: FINSET) (b :: FINSET) (x :: FINSET) (y :: FINSET). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Github #

HasInitialObject FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

initiate :: forall (a :: FINSET). Ob a => (InitialObject :: FINSET) ~> a Source Github #

HasPullbacks FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

pullback :: forall (o :: FINSET) (a :: FINSET) (b :: FINSET). (a ~> o) -> (b ~> o) -> Cosink '[a, b] Source Github #

HasPushouts FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

pushout :: forall (o :: FINSET) (a :: FINSET) (b :: FINSET). (o ~> a) -> (o ~> b) -> Sink '[a, b] Source Github #

HasTerminalObject FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

terminate :: forall (a :: FINSET). Ob a => a ~> (TerminalObject :: FINSET) Source Github #

Promonad FinSet Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

id :: forall (a :: FINSET). Ob a => FinSet a a Source Github #

(.) :: forall (b :: FINSET) (c :: FINSET) (a :: FINSET). FinSet b c -> FinSet a b -> FinSet a c Source Github #

MonoidalProfunctor FinSet Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

par0 :: FinSet (Unit :: FINSET) (Unit :: FINSET) Source Github #

par :: forall (x1 :: FINSET) (x2 :: FINSET) (y1 :: FINSET) (y2 :: FINSET). FinSet x1 x2 -> FinSet y1 y2 -> FinSet (x1 ** y1) (x2 ** y2) Source Github #

Profunctor FinSet Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

dimap :: forall (c :: FINSET) (a :: FINSET) (b :: FINSET) (d :: FINSET). (c ~> a) -> (b ~> d) -> FinSet a b -> FinSet c d Source Github #

(\\) :: forall (a :: FINSET) (b :: FINSET) r. ((Ob a, Ob b) => r) -> FinSet a b -> r Source Github #

FunctorForRep Fun Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Associated Types

type Fun @ ('FS a :: FINSET) 
Instance details

Defined in Proarrow.Category.Instance.FinRel

type Fun @ ('FS a :: FINSET) = 'FR a

Methods

fmap :: forall (a :: FINSET) (b :: FINSET). (a ~> b) -> (Fun @ a) ~> (Fun @ b) Source Github #

InternalIn BOOL FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type C0 BOOL 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type C0 BOOL = 'FS Nat2
type C1 BOOL 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type C1 BOOL = 'FS Nat3
MonoidalProfunctor (Rep Fun) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

par0 :: Rep Fun (Unit :: FINREL) (Unit :: FINSET) Source Github #

par :: forall (x1 :: FINREL) (x2 :: FINSET) (y1 :: FINREL) (y2 :: FINSET). Rep Fun x1 x2 -> Rep Fun y1 y2 -> Rep Fun (x1 ** y1) (x2 ** y2) Source Github #

SNatI a => Comonoid ('FS a :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

counit :: 'FS a ~> (Unit :: FINSET) Source Github #

comult :: 'FS a ~> ('FS a ** 'FS a) Source Github #

Monoid ('FS Nat1) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

MonoidalProfunctor (Coprod (Rep Fun)) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

par0 :: Coprod (Rep Fun) (Unit :: COPROD FINREL) (Unit :: COPROD FINSET) Source Github #

par :: forall (x1 :: COPROD FINREL) (x2 :: COPROD FINSET) (y1 :: COPROD FINREL) (y2 :: COPROD FINSET). Coprod (Rep Fun) x1 x2 -> Coprod (Rep Fun) y1 y2 -> Coprod (Rep Fun) (x1 ** y1) (x2 ** y2) Source Github #

type Unit Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type Unit = 'FS Nat1
type (~>) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type (~>) = FinSet
type InitialObject Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type TerminalObject Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type Ob (a :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type Ob (a :: FINSET) = (Is 'FS a, SNatI (UN 'FS a))
type (a :: FINSET) ** (b :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type (a :: FINSET) ** (b :: FINSET) = a && b
type (a :: FINSET) && (b :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type (a :: FINSET) && (b :: FINSET) = 'FS (Mult (UN 'FS a) (UN 'FS b))
type C0 BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type C0 BOOL = 'FS Nat2
type C1 BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type C1 BOOL = 'FS Nat3
type UN 'FS ('FS n :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type UN 'FS ('FS n :: FINSET) = n
type Fun @ ('FS a :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

type Fun @ ('FS a :: FINSET) = 'FR a
type ('FS a :: FINSET) || ('FS b :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type ('FS a :: FINSET) || ('FS b :: FINSET) = 'FS (Plus a b)
type ('FS a :: FINSET) ~~> ('FS b :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type ('FS a :: FINSET) ~~> ('FS b :: FINSET) = 'FS (Exp b a)

data FinSet (a :: FINSET) (b :: FINSET) where Source Github #

Constructors

FinSet 

Fields

Instances

Instances details
Promonad FinSet Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

id :: forall (a :: FINSET). Ob a => FinSet a a Source Github #

(.) :: forall (b :: FINSET) (c :: FINSET) (a :: FINSET). FinSet b c -> FinSet a b -> FinSet a c Source Github #

MonoidalProfunctor FinSet Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

par0 :: FinSet (Unit :: FINSET) (Unit :: FINSET) Source Github #

par :: forall (x1 :: FINSET) (x2 :: FINSET) (y1 :: FINSET) (y2 :: FINSET). FinSet x1 x2 -> FinSet y1 y2 -> FinSet (x1 ** y1) (x2 ** y2) Source Github #

Profunctor FinSet Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

dimap :: forall (c :: FINSET) (a :: FINSET) (b :: FINSET) (d :: FINSET). (c ~> a) -> (b ~> d) -> FinSet a b -> FinSet c d Source Github #

(\\) :: forall (a :: FINSET) (b :: FINSET) r. ((Ob a, Ob b) => r) -> FinSet a b -> r Source Github #

Show (FinSet a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

showsPrec :: Int -> FinSet a b -> ShowS Github #

show :: FinSet a b -> String Github #

showList :: [FinSet a b] -> ShowS Github #

Eq (FinSet a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

(==) :: FinSet a b -> FinSet a b -> Bool Github #

(/=) :: FinSet a b -> FinSet a b -> Bool Github #

mult :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Fin n -> Fin m -> Fin (Mult n m) Source Github #

unmult :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Fin (Mult n m) -> (Fin n, Fin m) Source Github #

type family Exp (a :: Nat) (b :: Nat) :: Nat where ... Source Github #

Equations

Exp a 'Z = 'S 'Z 
Exp a ('S n) = Mult a (Exp a n) 

exp :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Vec n (Fin m) -> Fin (Exp m n) Source Github #

unExp :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Fin (Exp m n) -> Vec n (Fin m) Source Github #

findIso :: forall (n :: Nat). SNatI n => [(Fin n, Fin n)] -> Maybe (Iso' ('FS n) ('FS n)) Source Github #

findArr :: forall (n :: Nat). SNatI n => [(Fin n, Fin n)] -> Maybe ('FS n ~> 'FS n) Source Github #

findIndex :: forall a (n :: Nat). (a -> Bool) -> Vec n a -> Fin n Source Github #

type Finite (k1 :: k) = InternalIn k1 FINSET Source Github #