0 | module Data.Container.Base.Quantifiers
3 | import Data.List.Quantifiers
4 | import Data.Vect.Quantifiers
6 | import Data.Container.Base.Object.Definition
16 | data AllPos : {cs : List Cont} -> All Shp cs -> Type where
18 | (::) : Pos c s -> AllPos {cs=cs} ss -> AllPos {cs=(c::cs)} (s :: ss)
21 | head : AllPos {cs=c::cs} (s :: ss) -> c.Pos s
25 | tail : AllPos {cs=c::cs} (s :: ss) -> AllPos {cs=cs} ss
29 | data AnyPos : {cs : List Cont} -> All Shp cs -> Type where
30 | Here : c.Pos s -> AnyPos {cs=(c::cs)} (s :: ss)
31 | There : AnyPos ss -> AnyPos (s :: ss)
35 | data AnyShpPos : {cs : List Cont} -> Any Shp cs -> Type where
36 | Here : c.Pos s -> AnyShpPos (Here {x=c} {xs=cs} s)
37 | There : AnyShpPos ss -> AnyShpPos (There ss)
44 | data AllPos : {cs : Vect n Cont} -> All Shp cs -> Type where
46 | (::) : Pos c s -> AllPos {cs=cs} ss -> AllPos {cs=(c::cs)} (s :: ss)
49 | head : {0 cs : Vect n Cont} -> {0 ss : All Shp cs} ->
50 | AllPos {cs=c::cs} (s :: ss) -> c.Pos s
54 | tail : {0 cs : Vect n Cont} -> {0 ss : All Shp cs} ->
55 | AllPos {cs=c::cs} (s :: ss) -> AllPos {cs=cs} ss
60 | data AnyPos : {cs : Vect n Cont} -> All Shp cs -> Type where
61 | Here : c.Pos s -> AnyPos {cs=(c::cs)} (s :: ss)
62 | There : AnyPos ss -> AnyPos {cs=(c::cs)} (s :: ss)
65 | data AnyShpPos : {cs : Vect n Cont} -> Any Shp cs -> Type where
66 | Here : c.Pos s -> AnyShpPos (Here {x=c} {xs=cs} s)
67 | There : AnyShpPos ss -> AnyShpPos (There ss)