0 | module Data.Container.Additive.Object.Definition
2 | import Data.Container.Base
3 | import Data.ComMonoid
14 | record AddCont where
15 | constructor MkAddCont
17 | {auto mon : InterfaceOnPositions UC ComMonoid}
20 | (.Shp) : AddCont -> Type
21 | (.Shp) c = Shp (UC c)
24 | (.Pos) : (c : AddCont) -> c.Shp -> Type
25 | (.Pos) c = Pos (UC c)
29 | UMon : (c : AddCont) -> (s : c.Shp) -> ComMonoid (c.Pos s)
30 | UMon (MkAddCont c @{MkI m}) s = m s
33 | (.Plus) : (c : AddCont) -> (s : c.Shp) -> (c.Pos s -> c.Pos s -> c.Pos s)
34 | (.Plus) c s = plus (UMon c s)
37 | (.Zero) : (c : AddCont) -> (s : c.Shp) -> c.Pos s
38 | (.Zero) c s = neutral (UMon c s)