wip -- moving logic into trait code
wip -- start using coercion as a fallback
wip -- almost passing all tests
Update test to make regions invariant