{-# OPTIONS_HADDOCK not-home #-}
module Ersatz.Internal.StableName
( StableName
, makeStableName'
) where
import System.Mem.StableName (StableName, makeStableName)
import Unsafe.Coerce (unsafeCoerce)
makeStableName' :: a -> IO (StableName ())
makeStableName' :: forall a. a -> IO (StableName ())
makeStableName' a
a = a
a seq :: forall a b. a -> b -> b
`seq` forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a. StableName a -> StableName ()
coerceStableName (forall a. a -> IO (StableName a)
makeStableName a
a)
where
coerceStableName :: StableName a -> StableName ()
coerceStableName :: forall a. StableName a -> StableName ()
coerceStableName = forall a b. a -> b
unsafeCoerce