Add selectable typeclass, generalize select and selectInContext