2
이 같은 Data.Maybe.monad
을 사용하는 기능이 있습니다 유사한 단락이 모나드 계산에 "재미"의 경우
typeCheck ν (f · e) =
typeCheck ν e >>= λ { (u , e′) →
typeCheck ν f >>= λ { (u′ ▷ t , f′) →
u !≡ₜ u′ >>= λ { refl →
pure (, (f′ · e′)) };
_ → nothing }}
가
_ → nothing
케이스를 제거하거나 방법이있다, 또는 적어도 더 위로 이동을 (Idris에게) 다음과 비슷한 것을 얻으십시오 :
typeCheck ν (f · e) =
typeCheck ν e >>= λ { (u , e′) →
typeCheck ν f >>= λ { _ → nothing; (u′ ▷ t , f′) →
u ≡!ₜ u′ >>= λ { refl →
pure (, (f′ · e′)) }}}