<font size="2"><span style="font-family: trebuchet ms,sans-serif;">Hi guys,<br>  What I understanding `deriving` is Haskell automatically make a type to be a instance of a particular typeclass.<br>  If that&#39;s the case, the question is How does Haskell do that underline?<br>

<br>  Take code below as sample, the type Day is now an instance of Bounded.<br><br><span style="font-family: courier new,monospace;"> data Day = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">            deriving (Bounded, Enum)</span><br><br>  Therefore,<span style="font-family: courier new,monospace;"> <u>minBound :: Day</u></span> will produce <u><span style="font-family: courier new,monospace;">Monday</span></u>.<br>

<br> Just be curious how it is being implemented.<br><br>Thanks.<br>Simon<br></span></font><span style="font-family: trebuchet ms,sans-serif;"></span>