search package:countable

This module also includes these orphan instances:
It turns out there are Searchable instances that are not Finite. The (c -> s) instance is based on the algorithm at http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/.