Text this: Typed Contracts for Functional Programming