diff options
author | Greg Brown <greg.brown01@ed.ac.uk> | 2024-10-28 15:34:16 +0000 |
---|---|---|
committer | Greg Brown <greg.brown01@ed.ac.uk> | 2024-10-28 15:34:16 +0000 |
commit | e258c78a5ab9529242b4c8fa168eda85430e641e (patch) | |
tree | 939ced9a71c94736222d05616a46dfc7292accd0 /src/Inky/Data/Assoc.idr | |
parent | d926ce9f2d1144f329598a30b3ed2e48899519b2 (diff) |
Make everything relevant.
Too few proofs were relevant. Now they are.
Diffstat (limited to 'src/Inky/Data/Assoc.idr')
-rw-r--r-- | src/Inky/Data/Assoc.idr | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/Inky/Data/Assoc.idr b/src/Inky/Data/Assoc.idr new file mode 100644 index 0000000..a009515 --- /dev/null +++ b/src/Inky/Data/Assoc.idr @@ -0,0 +1,26 @@ +module Inky.Data.Assoc + +export +infix 2 :- + +public export +record Assoc (a : Type) where + constructor (:-) + name : String + value : a + +public export +Functor Assoc where + map f x = x.name :- f x.value + +namespace Irrelevant + public export + record Assoc0 (0 p : a -> Type) (x : Assoc a) where + constructor (:-) + 0 name : String + {auto 0 prf : x.name = name} + value : p x.value + + public export + map : (forall x. p x -> q x) -> forall x. Assoc0 p x -> Assoc0 q x + map f (n :- px) = n :- f px |