# Bean Machine Retrospective, part 9

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

Original publisher: [Read original article](<https://ericlippert.com/2023/03/21/bean-machine-retrospective-part-9/>)

Author: ericlippert

Published: 2023-03-21T18:34:38Z

Content type: opinion

Language: en

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

Topics: [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>), [Python](<https://devfeed.tech/topics/python.md>), [function](<https://devfeed.tech/topics/function.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [class](<https://devfeed.tech/topics/class.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [F#](<https://devfeed.tech/topics/fsharp.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [function](<https://devfeed.tech/tags/function.md>), [object](<https://devfeed.tech/tags/object.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [python](<https://devfeed.tech/tags/python.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

## AI overview

This retrospective describes implementing concise pattern matching in Python, where patterns are represented as predicates and can return structured failure information for debugging. It also develops a type discipline and combinators for matching values, types, lists, and object attributes.

## Source excerpt

I wanted to implement concise "pattern matching" in Python, a language which unlike C#, F#, Scala, and so on, does not have any pattern matching built in. Logically a pattern is just a predicate: a function which takes a value ... Continue reading ->