<div dir="ltr"><div><span style="font-size:14px">> writing separate genEvalNat and genEvalString functions</span><br></div><div><br></div>.. here is another possibility:<div><br></div><div><div>data GenExpr_nat a = ...</div><div>data GenExpr_string a = ...</div><div><br></div><div><br></div><div>class GenEval exp a where</div><div><span class="" style="white-space:pre">       </span>genEval ::exp a -> a</div><div><br></div><div>instance GenEval GenExpr_nat a where</div><div><span class="" style="white-space:pre">        </span>...</div><div><br></div><div>instance GenEval GenExpr_string a where</div><div><span class="" style="white-space:pre"> </span>...<span class="" style="white-space:pre">       </span></div>​</div></div>