<div dir="ltr"><div>The type of 5:<br><br>Prelude> :t 5<br>5 :: Num a => a<br><br></div>That's why it works. The literal's type uses the type class. Other fun stuff:<br><br>Prelude> :t "asdf"<br>
"asdf" :: [Char]<br><br>Prelude> :set -XOverloadedStrings<br><br>Prelude> :t "asdf"<br><div class="" id=":wn" style><table class="" tabindex="-1"><tbody><tr><td class=""><div id=":wi" class=""><div class="nr">
<div class=""><span><span></span></span></div></div></div>"asdf" :: Data.String.IsString a => a<br><br></td></tr></tbody></table></div></div>