(VAR g h x xs ) (RULES ap(ap(f,x),x) -> ap(ap(x,ap(f,x)),ap(ap(cons,x),nil)) ap(ap(ap(foldr,g),h),nil) -> h ap(ap(ap(foldr,g),h),ap(ap(cons,x),xs)) -> ap(ap(g,x),ap(ap(ap(foldr,g),h),xs)) )