yeah, they sound remarkably similar to interfaces
i like a lot of functional models but i think they don't cover you for actually that much... very nice for this kind of thing, but not so good for saving time and bugfixing on writing operations on mostly similar data types such as codecs
IMO, understanding how to write efficient codecs is a good thing for understanding how useful your programming language is, and i put an emphasis on efficient... inefficient, naive implementations are not difficult and easy to make bug-free but making them efficient often is a bit of voodoo haha