def f : char → nat
| #"a" := 0
| #"b" := 1
| #"c" := 2
| #"d" := 3
| #"e" := 4
| _    := 5

check f.equations._eqn_1
check f.equations._eqn_2
check f.equations._eqn_3
check f.equations._eqn_4
check f.equations._eqn_5
check f.equations._eqn_6

def g : nat → nat
| 100000 := 0
| 200000 := 1
| 300000 := 2
| 400000 := 3
| _      := 5

check g.equations._eqn_1
check g.equations._eqn_2
check g.equations._eqn_3
check g.equations._eqn_4
check g.equations._eqn_5

def h : string → nat
| "hello" := 0
| "world" := 1
| "bla"   := 2
| "boo"   := 3
| _       := 5

check h.equations._eqn_1
check h.equations._eqn_2
check h.equations._eqn_3
check h.equations._eqn_4
check h.equations._eqn_5

def r : string × string → nat
| ("hello", "world") := 0
| ("world", "hello") := 1
| _                  := 2

check r.equations._eqn_1
check r.equations._eqn_2
check r.equations._eqn_3
check r.equations._eqn_4
check r.equations._eqn_5
