При чтении Real Haskell Я придумал эту заметку:
ghci> :info (+)
class (Eq a, Show a) => Num a where
(+) :: a -> a -> a
...
-- Defined in GHC.Num
infixl 6 +
Но как Haskell может определить +
как не-нативную функцию? На некотором уровне вы должны сказать, что 2 + 3
станет ассемблером, то есть машинным кодом.