Processing Recursively Structured Data