0 | module Data.Container.Additive.Object.Instances
2 | import Data.List.Quantifiers
3 | import Data.Vect.Quantifiers
5 | import Data.Container.Base
6 | import Data.ComMonoid
7 | import Data.Container.Additive.Object.Definition
8 | import Data.Container.Additive.Extension.Definition
9 | import Data.Container.Additive.Product.Definitions
14 | Const2 : Type -> ComMonoid -> AddCont
15 | Const2 a (
t ** m)
= MkAddCont (Const2 a t) @{MkI $
\_ => m}
21 | Const : (a : Type) -> (mon : ComMonoid a) => AddCont
22 | Const a = Const2 a (
a ** mon)
27 | Nap : ComMonoid -> AddCont
28 | Nap b = Const2 Unit b
34 | Flat : Type -> AddCont
35 | Flat a = Const2 a (
Unit ** %search)
43 | Empty = MkAddCont Empty @{MkI absurd}
51 | Scalar = Nap (
Nat ** %search)
59 | UnitCont = Const Unit