[WIP] Surjections

Memoizing surjective functions.

- [ ] It’d be nice if linear search/binary search/hash table lookup were somehow configurable.
Would be nice to somehow use the _actual_ flip function (no doubt located in [Prelude](https://github.com/robrix/Prelude)) or else rename this.