Add a repr on selection nodes

- drop Instances from the collection tree
- parametrized funcs should map to items based on callspec id (public
  version of _genid)
- embed shell in a more confined scope
- move shell defn outside of the hook