Seol mar théacs é seo: Generic Programs and Proofs