module T602 where -- UNSOUNDLY SAFE {-@ class Fractional a => Foo a where foo :: { x : a | x /= 0.0 } -> a @-} -- UNSAFE {- class Fractional a => Foo a where foo :: { x : a | x /= 0.0 } -> a @-} class Fractional a => Foo a where foo :: a -> a instance Foo Double where foo = id example :: Double example = foo 0.0