BFPG Meetup - November 2025 - Serializotron + FP in Python
Join the BFPG Discord: https://discord.gg/yYz2d8w7FY
Agenda
18:00: Welcome and setup
Presentation #1: Serializotron: Protobuf‑Backed, Zero‑Boilerplate Serialization with GHC Generics - Carlo Hamalainen
Presentation #2:
tmefunc: Syntactic Sugar for Functional Programming (FP) in Python - T. Mark Ellison and Siva Kalyan20:00ish: Pack down, head to Criterion pub.
Serializotron: Protobuf‑Backed, Zero‑Boilerplate Serialization with GHC Generics
Meet Serializotron, a new serialization library that pairs a stable Protobuf wire format with a Generics‑derived, structure‑aware layer—no hand‑written instances, no schema thrash. Using GHC Generics, it auto‑derives encoders/decoders with minimal runtime overhead while preserving rich type information for safe evolution. The result: robust deserialization of old data, predictable schema changes, and clean interoperability with other languages. We’ll unpack the sum‑of‑products model, how Generics map to Protobuf, and practical migration patterns so your data keeps working as your types grow.
tmefunc: Syntactic Sugar for Functional Programming (FP) in Python
There are two possible strategies for choosing a language for FP. You can choose a pure functional language, for example Haskell. This comes predesigned to make FP easy. But it requires you to code in a pure functional way at all times. An alternative is to add constructions to make FP easy in a language that isn't purely functional. In this talk, we describe a library tmefunc developed for Python. This library provides a class and decorator called F which can wrap native Python functions, providing syntactic sugar and some fixed utility functions.
Crucially, the class provides a composition (pipeline) operation. It has been said that “the core of FP is thinking about data-flow rather than control-flow”, and pipes make it easy to express data-flow by allowing us to do multi-function composition in an intuitive way. Another feature lacking in previous Python FP packages is 'autocurrying', de rigueur in native FP languages. We will (where possible) offer a formal picture of what the library is doing, but our focus will be on how it makes FP more fun and easy in Python.