Simplified SELECTIONS module type
Added `binary_of source impl_type
Tidied up impl_provider API
Moved scope_filter to its own module