Hi,<br _moz_dirty="" />I am comparing Haskell's class/instance techniques for overloading with those available Order Sorted Algebra (OSA in CafeOBJ) <br _moz_dirty="" />Using just the basic class/instance mechanism is there any way to avoid the type annotations in the evaluations below?<br _moz_dirty="" />Pat<br _moz_dirty="" /><br _moz_dirty="" />class Location a b where<br _moz_dirty="" /> move::a-&gt;b<br _moz_dirty="" /><br _moz_dirty="" />instance Location Int Int where<br _moz_dirty="" /> move e = e + 3<br _moz_dirty="" /><br _moz_dirty="" />instance Location  Float Int where<br _moz_dirty="" /> move e = floor(e + 3.1)<br _moz_dirty="" /> <br _moz_dirty="" />instance Location  [Float] [Int] where<br _moz_dirty="" />  move [] = []<br _moz_dirty="" />  move (e:l) = (move e):(move l)<br _moz_dirty="" /><br _moz_dirty="" />instance Location [Int] [Int] where<br _moz_dirty="" /> move [] = []<br _moz_dirty="" /> move (e:l) = (move e):(move l)<br _moz_dirty="" /><br _moz_dirty="" />-- evaluations<br _moz_dirty="" />-- testing float<br _moz_dirty="" />-- (move ((7.6::Float))::Int)<br _moz_dirty="" />-- ((move ([21.8,7.4,9.1]::[Float]))::[Int])<br _moz_dirty="" />--  testing integers<br _moz_dirty="" />--  move ((3::Int))::Int<br _moz_dirty="" />-- ((move ([21,7,9]::[Int]))::[Int])<br _moz_dirty="" /><br _moz_dirty="" type="_moz" />
<br clear=all> Tá an teachtaireacht seo scanta ó thaobh ábhar agus víreas ag Seirbhís Scanta Ríomhphost de chuid Seirbhísí Faisnéise, ITBÁC agus meastar í a bheith slán.  <a href="http://www.dit.ie">http://www.dit.ie</a><br>
This message has been scanned for content and viruses by the DIT Information Services E-Mail Scanning Service, and is believed to be clean.  <a href="http://www.dit.ie">http://www.dit.ie</a>