Sustainability enhancements

- Break up Pattern protocol; ideas were not tightly intertwined after
  all
- Be more explicit in literal and type names
- Breaking change, hopefully should be irrelevant.