EHC (и, возможно, также его преемник, UHC) имеют лямбды на уровне типов, но они недокументированы и не так мощны, как в языке с зависимой типизацией. Я рекомендую вам использовать язык с зависимой типизацией, такой как Agda (похожий на Haskell) или Coq (другой, но все же чистый функционал по своей сути, и может интерпретироваться и компилироваться либо лениво , либо строго!) Я склонен к таким языкам, и это, вероятно, 100-кратное превышение того, что вы просите здесь!