Function Contracts

Runtime check your assumptions

TODO