Я читал о полиморфных константах / нулевых полиморфных функциях в Learn You Haskell . Он дал несколько примеров встроенных, таких как:
ghci> 20 :: Float
20.0
ghci> 20 :: Int
20
ghci> minBound :: Int
-2147483648
ghci> maxBound :: (Bool, Int, Char)
(True,2147483647,'\1114111')
Однако он не объясняет, как определять свои собственные. Как они определены?