(VAR x xs ) (RULES f(tt,x) -> f(isList(x),Cons(tt,x)) isList(Cons(x,xs)) -> isList(xs) isList(nil) -> tt )