[1 of 3] Compiling SafeLang10_A ( SafeLang10_A.hs, SafeLang10_A.o ) [2 of 3] Compiling SafeLang10_B ( SafeLang10_B.hs, SafeLang10_B.o ) [3 of 3] Compiling Main ( SafeLang10.hs, SafeLang10.o ) SafeLang10.hs:8:13: Unsafe overlapping instances for Pos [Int] arising from a use of ‘res’ The matching instance is: instance [overlapping] [safe] Pos [Int] -- Defined at SafeLang10_B.hs:13:30 It is compiled in a Safe module and as such can only overlap instances from the same module, however it overlaps the following instances from different modules: instance Pos [a] -- Defined at SafeLang10_A.hs:13:10 In the expression: res [(1 :: Int)] In an equation for ‘r’: r = res [(1 :: Int)] In the expression: do { let r = res ...; putStrLn $ "Result: " ++ show r; putStrLn $ "Result: " ++ show function }