# Bean Machine Retrospective, part 8

DevFeed: [Bean Machine Retrospective, part 8](<https://devfeed.tech/articles/bean-machine-retrospective-part-8-38666.md>)

Original publisher: [Read original article](<https://ericlippert.com/2023/02/23/bean-machine-retrospective-part-8/>)

Author: ericlippert

Published: 2023-02-23T20:54:17Z

Content type: article

Language: en

Sources: [Eric Lippert](<https://devfeed.tech/sources/eric-lippert.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Code review](<https://devfeed.tech/topics/code-review.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [functional](<https://devfeed.tech/tags/functional.md>), [source](<https://devfeed.tech/tags/source.md>), [test](<https://devfeed.tech/tags/test.md>), [transformation](<https://devfeed.tech/tags/transformation.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

## AI overview

This retrospective explains Beanstalk's combinator-inspired source code transformation system. It uses functional programming for AST transformations, with patterns, partial transformation rules, and combinators. The approach aims to make rewriting logic concise, testable, and easy to adapt to different traversal strategies.

## Source excerpt

Before getting into the details of how my combinator-inspired source code transformation system works, I should say first, what is a general overview of the system? and second, why did I build it at all? In my experience, a typical ... Continue reading ->