add procedure deep-reverse