Derive Foldable and Traversable for AST data types