Church booleans and natural numbers in Haskell