(VAR a k x y) (DATATYPES a = µX. < empty, cons(b,X) > b = < > ) (SIGNATURES f :: a x a -> a ) (RULES f(x,empty) -> x f(empty,cons(a,k)) -> f(cons(a,k),k) f(cons(a,k),y) -> f(y,k) )