[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