0 | ||| A boundary is a pair of types, they are the object of the category of lenses
5 | ||| Type boundaries
12 | ||| First projection of a boundary
17 | ||| Second projection of a boundary
22 | ||| Cartesian product of two boundaries
23 | ||| cartesian (a , b) (c, d) = (a * c, b * d)
28 | ||| Build a boundary out of a single type
33 | ||| The unit boundary is a pair of units
38 | ||| Cocartesian product of boundaries
39 | ||| cocartesian (a, b) (c, d) = (a + c, b + d)