summaryrefslogtreecommitdiff
path: root/src/Inky/Data/Assoc.idr
blob: a009515903108a67919d42ecb81cd812bc8adc0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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