0 | module Data.Category.NaturalTransformation
2 | import public Data.Category.Functor
4 | %unbound_implicits off
7 | record (==>>) {0 cObj, dObj : Type} {0 c : Category cObj} {0 d : Category dObj}
8 | (f, g : Functor c d) where
10 | comp : (v : cObj) -> (f.F v) ~> (g.F v)
20 | 0 commutes : (0 x, y : cObj) -> (m : x ~> y) ->
21 | let 0 top : f.F x ~> g.F x
24 | 0 bot : f.F y ~> g.F y
27 | 0 left : f.F x ~> f.F y
30 | 0 right : g.F x ~> g.F y
33 | 0 comp1 : f.F x ~> g.F y
34 | comp1 = top |> right
36 | 0 comp2 : f.F x ~> g.F y