(VAR X Z Y) (RULES from(X) -> cons(X) first(0,Z) -> nil first(s(X),cons(Y)) -> cons(Y) sel(0,cons(X)) -> X sel(s(X),cons(Y)) -> sel(X,Z) )