{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE IncoherentInstances #-}
unit p where
signature A where
data K a
instance Show (K (a -> b))
unit q where
signature A where
data K a
instance Show a => Show (K a)
unit r where
dependency p[A=]
dependency q[A=]
module R where
import A
f :: Show a => K a -> String
f = show
g :: K (a -> b) -> String
g = show