1
このGHCコアの「証拠」を読む方法は?
私は、GHCが自然数の場合、偶数を半分にすることしかできないことをどのように証明するかを理解するために、このHaskellの小さなビットを書きました。 {-# LANGUAGE DataKinds, GADTs, KindSignatures, TypeFamilies #-} module Nat where data Nat = Z | S Nat data Parity = Even | Odd type family Flip (x :: Parity) :: Parity where Flip Even = Odd Flip Odd = Even data ParNat :: Parity -> * where PZ :: …