Seol mar théacs é seo: Typed Contracts for Functional Programming