<div class="gmail_quote">Hi Folks,<div><br></div><div>Total newbie here. I don't know if I am having a syntactic problem or a conceptual problem.</div><div><br></div><div>This code:</div><div><div><br></div><div><font face="'courier new', monospace">data Test = Test</font></div>
<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">data Test2 = Test2</font></div><div><font face="'courier new', monospace"><br>
</font></div><div><font face="'courier new', monospace">class MyClass a where</font></div><div><font face="'courier new', monospace"> getChild :: (MyClass b) => a -> b</font></div>
<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">instance MyClass Test where</font></div><div><font face="'courier new', monospace"> getChild = Test2</font></div>
<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">instance MyClass Test2 where</font></div><div><font face="'courier new', monospace"> getChild = Test</font></div>
<div><br></div><div>results in:</div><div><br></div><div><div><font face="'courier new', monospace">[1 of 1] Compiling Main ( test.hs, interpreted )</font></div><div><font face="'courier new', monospace"><br>
</font></div><div><font face="'courier new', monospace">test.hs:10:15:</font></div><div><font face="'courier new', monospace"> Couldn't match expected type `Test -> b'</font></div>
<div><font face="'courier new', monospace"> against inferred type `Test2'</font></div><div><font face="'courier new', monospace"> In the expression: Test2</font></div>
<div><font face="'courier new', monospace"> In the definition of `getChild': getChild = Test2</font></div><div><font face="'courier new', monospace"> In the instance declaration for `MyClass Test'</font></div>
<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">test.hs:13:15:</font></div><div><font face="'courier new', monospace"> Couldn't match expected type `Test2 -> b'</font></div>
<div><font face="'courier new', monospace"> against inferred type `Test'</font></div><div><font face="'courier new', monospace"> In the expression: Test</font></div>
<div><font face="'courier new', monospace"> In the definition of `getChild': getChild = Test</font></div><div><font face="'courier new', monospace"> In the instance declaration for `MyClass Test2'</font></div>
<div><font face="'courier new', monospace">Failed, modules loaded: none.</font></div><div><br></div><div>Is this a reasonable thing to try and do in Haskell? If not, I have a lot more questions... ;)</div>
<div><br></div><div>many thanks,</div><div><br></div><div>David</div><div><br></div></div></div>
</div><br>