Comment lire cette «preuve» du GHC Core?

J'ai écrit ce petit morceau de Haskell pour comprendre comment GHC prouve que pour les nombres naturels, vous ne pouvez que diviser par deux les nombres pairs: {-# LANGUAGE DataKinds, GADTs, KindSignatures, TypeFamilies #-} module Nat where data Nat = Z | S Nat data Parity = Even | Odd type family...