let l = "l.l" in let ln = "ln.l" in letx id2l = idx(l) + (| { Exp.id : "id" ; } -> l [Exp -> Exp] { Exp.id = '\x.x' ; |) in letx ln2id = idx(l) + (| ln -> src(id2l) [Exp -> Exp] Exp.zero = 'id' ; Exp.succ = '\x.$1' ; Exp.pred = '($1 id)' ; |) in (id2l o ln2id)