Can somebody explain to me why ghc/hugs fails to compile the following Haskell program? As long as MyInt is not an instance of Num the compilations should succed... but it don't. :-( Why?
$ cat multi.hs data MyInt = MyInt Int deriving Show
class Op_plus a b where plus :: a -> b -> Int
instance Op_plus MyInt MyInt where (MyInt a) `plus` (MyInt b) = a + b
instance (Num a) => Op_plus a MyInt where i `plus` (MyInt b) = i + b
instance (Num a) => Op_plus MyInt a where (MyInt b) `plus` i = i + b
$ ghci \ -fglasgow-exts \ -fallow-overlapping-instances \ -fallow-undecidable-instances multi.hs
___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 5.04.2, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help.
Loading package base ... linking ... done. Loading package haskell98 ... linking ... done. Compiling Main ( multi.hs, interpreted )
multi.hs:1: Warning: No 'main' defined in module Main
Overlapping instance declarations: multi.hs:9: Op_plus a MyInt multi.hs:12: Op_plus MyInt a Failed, modules loaded: none. Prelude>
Thanks and regards, Razvan ME
_______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell