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

Dan Ross dan at rosspixelworks.com
Tue Jul 12 18:44:31 CEST 2011


Ah. Because Integer is an instance of Integral right?

So using Integer would be more restrictive.

On Tue, 12 Jul 2011 19:22:36 +0300, Michael Snoyman wrote:
> 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