-- treelist
treelist(BL)      = Cons(Nil,Nil)
treelist(BN(l,r)) = lettreelist(appn(treelist(l),treelist(r)))
lettreelist(Pair(n,Cons(r,rs))) = Cons(n,Cons(r,rs))

incL(Nil)        = Cons(B0,Nil)
incL(Cons(B0,x)) = Cons(B1,x)
incL(Cons(B1,x)) = Cons(B0,incL(x))

appn(Nil,ys)            = Pair(Nil,ys)
appn(Cons(x,xs),ys)     = letappend(appn(xs,ys),x)
letappend(Pair(n,zs),x) = Pair(incL(n),Cons(x,zs))

