Viktor Kuncak wrote:

 | >  let (e1', e2', e3') = specTypes (e1, e2, e3)
 | >  in ... e1' ... e2'... e3'....
 :
 | >specTypes :: (Either a b, (a,b), [b]) -> (Either a b, (a,b), [b])
 | >specTypes = id

Note that you are just hinting the type checker here,
nothing more, so a simpler solution (and easier to
extend) might be:

> let () = specTypes (e1, e2, e3)
> in ... e1 ... e2 ... e3 ...

> specTypes :: (Either a b, (a,b), [b]) -> ()
> specTypes = id

Or even:

> (e1, e2, e3) `specTypesIn` ... e1 ... e2 ... e3 ...

> specTypesIn :: (Either a b, (a,b), [b]) -> x -> x
> specTypesIn _ = id

Regards,
Koen.

--
Koen Claessen         http://www.cs.chalmers.se/~koen     
phone:+46-31-772 5424      e-mail:[EMAIL PROTECTED]
-----------------------------------------------------
Chalmers University of Technology, Gothenburg, Sweden


Reply via email to