[Haskell-beginners] (Integral a) => a vs Integer

Michael Snoyman michael at snoyman.com
Tue Jul 12 18:22:36 CEST 2011


On Tue, Jul 12, 2011 at 7:20 PM, Dan Ross <dan at rosspixelworks.com> wrote:
> Hi all-
>
> I'm going through Learn You a Haskell for Great Good and I don't understand
> the advantage of using (Integral a)=> a vs just Integer as I show below.
>
> Could someone explain this to me?
>
> Thanks,
>
> Dan
>
> lucky :: (Integral a) => a -> String
> lucky 7 = "LUCKY NUMBER SEVEN!"
> lucky x = "Sorry, you're out of luck, pal!"
>
> lucky :: Integer -> String
> lucky 7 = "LUCKY NUMBER SEVEN!"
> lucky x = "Sorry, you're out of luck, pal!"

Hi Dan,

The first version is polymorphic, and will work on *any* instance of
Integral. This would allow people to use Int, Int32, Int64, etc. The
second version requires the user to pass in specifically an Integer.

Michael



More information about the Beginners mailing list