You don&#39;t need a type class, you can just define your functions with pattern matching:<div><br></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">rad :: Angle a -&gt; a</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">rad (Radians x) = x</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">rad (Degrees x) = </font><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">pi * (deg x) / 180</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">deg :: Angle a -&gt; a</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">deg (Radians x) = </font></span><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">180 * (rad x) / pi</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">deg (Degrees x) = x</font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br>
</font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="arial, helvetica, sans-serif">Alternatively, you can define Radians and Degrees as separate types and use a type class:</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">data Radians a = Radians a</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">data Degrees a = Degrees a</font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br>
</font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">class Angular a where</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    rad :: a b -&gt; b</font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    deg :: a b -&gt; b</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">instance Angular Radians where</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    rad (Radians x) = x</font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    deg (Radians x) = </font></span><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">180 * (rad x) / pi</font></span></div>
<div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="border-collapse: separate; font-size: small; "><div style="font-family: arial; ">
<span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">instance Angular Degrees where</font></span></div><div style="font-family: arial; ">
<span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    rad (Degrees x) = </font></span><span class="Apple-style-span" style="font-family: &#39;courier new&#39;, monospace; font-size: 12px; border-collapse: collapse; ">pi * (deg x) / 180</span></div>
<div style="font-family: arial; "><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    deg (Degrees x) = </font></span><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">x</font></span></div>
<div style="font-family: arial; "><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></span></div><div><span class="Apple-style-span" style="font-size: 12px; border-collapse: collapse; "><font class="Apple-style-span" face="arial, helvetica, sans-serif">This would be extensible, but it this case not really useful.</font></span></div>
</span></font></span></div><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8">