{-# OPTIONS_HADDOCK not-home #-} module Hedgehog.Internal.Opaque ( Opaque(..) ) where -- | Opaque values. -- -- Useful if you want to put something without a 'Show' instance inside -- something which you'd like to be able to display. -- -- For example: -- -- @ -- data State v = -- State { -- stateRefs :: [Var (Opaque (IORef Int)) v] -- } deriving (Eq, Show) -- @ -- newtype Opaque a = Opaque { unOpaque :: a } deriving (Eq, Ord) instance Show (Opaque a) where showsPrec _ (Opaque _) = showString "Opaque"