hedgehog-1.7: src/Hedgehog/Internal/Opaque.hs
{-# 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"