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