packages feed

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"