Hi! 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