Shower thought: can types be viewed as a subset of contracts?