haskell-tools-builtin-refactorings-1.0.0.0: examples/Decl/InstanceOverlaps.hs
{-# LANGUAGE FlexibleInstances #-}
module Decl.InstanceOverlaps where
data A a = A a
instance {-# OVERLAPPING #-} Show (A String) where
show (A a) = a
instance {-# OVERLAPS #-} Show a => Show (A [a]) where
show (A a) = show a
instance {-# OVERLAPPABLE #-} Show (A a) where
show (A _) = "A"