WIP: object contracts
functions can wrap object contracts around parameters and return values
  -- comma separated list of hash-rocketed key/combinator pairs
removes some cruft