Skip to content

Commit d62e45d

Browse files
buzdengallais
authored andcommitted
[ contrib ] Make sorted map be able to store dependently typed values
1 parent 031508a commit d62e45d

File tree

4 files changed

+456
-281
lines changed

4 files changed

+456
-281
lines changed

libs/base/Data/DPair.idr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module Data.DPair
22

3+
import Decidable.Equality
4+
35
%default total
46

57
namespace DPair
@@ -16,6 +18,12 @@ namespace DPair
1618
bimap : {0 p : a -> Type} -> {0 q : b -> Type} -> (f : a -> b) -> (forall x. p x -> q (f x)) -> (x : a ** p x) -> (y : b ** q y)
1719
bimap f g (x ** y) = (f x ** g y)
1820

21+
public export
22+
DecEq k => ({x : k} -> Eq (v x)) => Eq (DPair k v) where
23+
(k1 ** v1) == (k2 ** v2) = case decEq k1 k2 of
24+
Yes Refl => v1 == v2
25+
No _ => False
26+
1927
namespace Exists
2028

2129
||| A dependent pair in which the first field (witness) should be

0 commit comments

Comments
 (0)