[Haskell-beginners] How does the Deriving being implemented in Haskell?
Mihai Maruseac
mihai.maruseac at gmail.com
Tue Jun 14 14:11:59 CEST 2011
On Tue, Jun 14, 2011 at 3:07 PM, Haisheng Wu <freizl at gmail.com> wrote:
> Hi guys,
> What I understanding `deriving` is Haskell automatically make a type to be
> a instance of a particular typeclass.
> If that's the case, the question is How does Haskell do that underline?
>
> Take code below as sample, the type Day is now an instance of Bounded.
>
> data Day = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
> Sunday
> deriving (Bounded, Enum)
>
> Therefore, minBound :: Day will produce Monday.
>
> Just be curious how it is being implemented.
>
It takes into account the order of the constructors. Don't know
exactly right now, but I think that behind the scenes each of them is
tagged appropriately and minBound simply takes the minimum tag or
something like that. I'd look into the sources but I am unable to do
so right now.
More information about the Beginners
mailing list