Finite instances for the Representable stuff, and a better Finite instance for functions
generalize many of the instances: while being Representable is one way for underlying functors to be enumerable, it's not the only way, so just demand what we really want (that they're enumerable) rather than some stand-in for it like Representable