import "JavaBuiltin" as Java infixl 6 (+) class Additive a where (+) :: a -> a -> a instance Additive Double where x + y = Java.dadd x y instance Additive Integer where x + y = Java.iadd x y instance (Additive a, Additive b) => Additive (a,b) where (x1,y1) + (x2,y2) = (x1+x2,y1+y2) main = (1.0::Double,3::Integer) + (2.0::Double,4::Integer) -- (3.0,7)