0 | module Data.Container.Base.Quantifiers
3 | import Data.List.Quantifiers
4 | import Data.Vect.Quantifiers
6 | import Data.Container.Base.Object.Definition
15 | data AllPos : {cs : List Cont} -> All Shp cs -> Type where
17 | (::) : Pos c s -> AllPos {cs=cs} ss -> AllPos {cs=(c::cs)} (s :: ss)
20 | head : AllPos {cs=c::cs} (s :: ss) -> c.Pos s
24 | tail : AllPos {cs=c::cs} (s :: ss) -> AllPos {cs=cs} ss
28 | data AnyPos : {cs : List Cont} -> All Shp cs -> Type where
29 | Here : c.Pos s -> AnyPos {cs=(c::cs)} (s :: ss)
30 | There : AnyPos ss -> AnyPos (s :: ss)
34 | data AnyShpPos : {cs : List Cont} -> Any Shp cs -> Type where
35 | Here : c.Pos s -> AnyShpPos (Here {x=c} {xs=cs} s)
36 | There : AnyShpPos ss -> AnyShpPos (There ss)
43 | data AllPos : {cs : Vect n Cont} -> All Shp cs -> Type where
45 | (::) : Pos c s -> AllPos {cs=cs} ss -> AllPos {cs=(c::cs)} (s :: ss)
48 | head : {0 cs : Vect n Cont} -> {0 ss : All Shp cs} ->
49 | AllPos {cs=c::cs} (s :: ss) -> c.Pos s
53 | tail : {0 cs : Vect n Cont} -> {0 ss : All Shp cs} ->
54 | AllPos {cs=c::cs} (s :: ss) -> AllPos {cs=cs} ss
59 | data AnyPos : {cs : Vect n Cont} -> All Shp cs -> Type where
60 | Here : c.Pos s -> AnyPos {cs=(c::cs)} (s :: ss)
61 | There : AnyPos ss -> AnyPos {cs=(c::cs)} (s :: ss)
64 | data AnyShpPos : {cs : Vect n Cont} -> Any Shp cs -> Type where
65 | Here : c.Pos s -> AnyShpPos (Here {x=c} {xs=cs} s)
66 | There : AnyShpPos ss -> AnyShpPos (There ss)