con Nil() con Cons(head,tail) con Pair(e1,e2) fun length(xs)=match xs [case Nil() -> 0 case Cons(y,ys)-> 1+length(ys)] fun last(xs)=match xs [case Cons(y,ys) -> match ys [case Nil() -> y case Cons(z,zs) -> last(ys)]] fun list()=Cons(17,Cons(4,Cons(42,Nil()))) fun go()=Pair(last(list()),length(list()))