import "JavaBuiltin" as Java infixl 7 (*) infixl 6 (+) class Additive a where (+) :: a -> a -> a class (Additive a) => Ring a where (*) :: a -> a -> a instance Additive Double where x + y = Java.dadd x y instance Ring Double where x * y = Java.dmul x y instance Additive Integer where x + y = Java.iadd x y instance Ring Integer where x * y = Java.imul x y main = (1.0 :: Double)*(2.0 :: Double)+(3.0 :: Double)*(4.0 :: Double) -- 14.0