hask-0: Categories

Safe HaskellSafe-Inferred
LanguageHaskell2010

Hask.Tensor

Contents

Synopsis

Tensors

class (Bifunctor p, Dom p ~ Dom2 p, Dom p ~ Cod2 p) => Semitensor p where Source

Methods

associate :: (Ob (Dom p) a, Ob (Dom p) b, Ob (Dom p) c, Ob (Dom p) a', Ob (Dom p) b', Ob (Dom p) c') => Iso (Dom p) (Dom p) (->) (p (p a b) c) (p (p a' b') c') (p a (p b c)) (p a' (p b' c')) Source

Instances

Semitensor * Either 
Semitensor * (,) 
(Semitensor k t, (~) (k -> k -> *) (Dom k (k -> k) t) c, Category k c) => Semitensor (k -> *) (Day k t) 
(Composed i c, (~) (i -> i -> *) c c', (~) (i -> i -> *) c' c'') => Semitensor (i -> i) (Compose i i i c c' c'') 

type family I p :: i Source

Instances

type I * Either = Void 
type I * (,) = () 
type I (k -> k) (Compose k k k c c c) = Id k c 

class Semitensor p => Tensor' p where Source

Methods

lambda :: (Ob (Dom p) a, Ob (Dom p) a') => Iso (Dom p) (Dom p) (->) (p (I p) a) (p (I p) a') a a' Source

rho :: (Ob (Dom p) a, Ob (Dom p) a') => Iso (Dom p) (Dom p) (->) (p a (I p)) (p a' (I p)) a a' Source

Instances

Tensor' * Either 
Tensor' * (,) 
(Identified i c, Composed i c) => Tensor' (i -> i) (Compose i i i c c c) 

class (Monoid' p (I p), Tensor' p) => Tensor p Source

Instances

(Monoid' k p (I k p), Tensor' k p) => Tensor k p 

semitensorClosed :: forall c t x y. (Semitensor t, Category c, Dom t ~ c, Ob c x, Ob c y) => Dict (Ob c (t x y)) Source

Monoids

class Semitensor p => Semigroup p m where Source

Methods

mu :: Dom p (p m m) m Source

Instances

Semigroup * Either Void 
Semigroup * (,) () 
Semigroup * (,) Void 
(Identified k c, Composed k c) => Semigroup (k -> k) (Compose k k k c c c) (Id k c) 

class (Semigroup p m, Tensor' p) => Monoid' p m where Source

Methods

eta :: NatId p -> Dom p (I p) m Source

Instances

Monoid' * Either Void 
Monoid' * (,) () 
(Identified k c, Composed k c) => Monoid' (k -> k) (Compose k k k c c c) (Id k c) 

class (Monoid' p (I p), Comonoid' p (I p), Tensor' p, Monoid' p m) => Monoid p m Source

Instances

(Monoid' k p (I k p), Comonoid' k p (I k p), Tensor' k p, Monoid' k p m) => Monoid k p m 

Comonoids (Opmonoids)

class Semitensor p => Cosemigroup p w where Source

Methods

delta :: Dom p w (p w w) Source

Instances

Cosemigroup * Either Void 
Cosemigroup * (,) a 
(Identified k c, Composed k c) => Cosemigroup (k -> k) (Compose k k k c c c) (Id k c) 

class (Cosemigroup p w, Tensor' p) => Comonoid' p w where Source

Methods

epsilon :: NatId p -> Dom p w (I p) Source

Instances

Comonoid' * Either Void 
Comonoid' * (,) a 
(Identified k c, Composed k c) => Comonoid' (k -> k) (Compose k k k c c c) (Id k c) 

class (Monoid' p (I p), Comonoid' p (I p), Tensor' p, Comonoid' p w) => Comonoid p w Source

Instances

(Monoid' k p (I k p), Comonoid' k p (I k p), Tensor' k p, Comonoid' k p w) => Comonoid k p w