¿Cómo leer esta “prueba” de GHC Core?

Escribí este pequeño fragmento de Haskell para descubrir cómo GHC demuestra que para los números naturales, solo puedes dividir a la mitad los pares: {-# LANGUAGE DataKinds, GADTs, KindSignatures, TypeFamilies #-} module Nat where data Nat = Z | S Nat data Parity = Even | Odd type family...