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

Michael Snoyman michael at snoyman.com
Tue Jul 12 18:57:38 CEST 2011


Precisely.

On Tue, Jul 12, 2011 at 7:44 PM, Dan Ross <dan at rosspixelworks.com> wrote:
> 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