Enumeración del producto cartesiano de los naturales en Haskell

En esta relación se definen funciones que enumeran el conjunto de los pares de números naturales; es decir, funciones biyectivas f: \mathbb{N} \to \mathbb{N} \times \mathbb{N} y g: \mathbb{N} \times \mathbb{N} \to \mathbb{N}.

Las definiciones de las funciones se hacen por comprensión y recursión. La propiedad biyectiva se comprueba mostrando que f \cdot g y g \cdot f son la identidad.