...which are all just concretely typed versions of the generic implementation in Codec.Binary.Base91.
I had fun exploring some of the latest GHC extensions, as evidenced by Codec.Binary.Base91.Control, which relies on a certain amount of type trickery to reconcile the incongruence between monomorphic containers and the standard type classes.
Anyway, suggestions are very welcome. In particular, I'm interested in:
1. Whether the generic decode and encode signatures can be simplified or improved elsehow.
2. Whether there already exist classes similar in purpose to Applicative' and Foldable'.
3. Whether it makes sense to offer decode and encode variants that use lazy (left) folds--currently folding is always strict, even with lazy types.
(Testing comes nearly free courtesy of QuickCheck and the identity property of decode . encode, plus a couple of concrete examples. Please open an issue or otherwise let me know if you find a bug.)
Thank you,