There are generally two ways to do serialization in FP languages
- Use type classes (e.g.
- Use handwritten profunctor-based code (e.g.
- Generate codecs (type-class or value-based codecs) via
Of the two approaches, I prefer the second one, largely because of the reasons explained in Thoughts on Type Class Codecs.