module Debug.TraceEmbrace.Internal.Rewrap where
import GHC.Exts
class Rewrap (t :: TYPE r) b | t -> b where
wrap :: t -> b
unwrap :: b -> t
instance Rewrap Int# Int where
wrap :: Int# -> Int
wrap = Int# -> Int
I#
unwrap :: Int -> Int#
unwrap (I# Int#
x#) = Int#
x#
instance Rewrap Double# Double where
wrap :: Double# -> Double
wrap = Double# -> Double
D#
unwrap :: Double -> Double#
unwrap (D# Double#
x#) = Double#
x#
instance Rewrap Float# Float where
wrap :: Float# -> Float
wrap = Float# -> Float
F#
unwrap :: Float -> Float#
unwrap (F# Float#
x#) = Float#
x#
instance Rewrap Addr# (Ptr ()) where
wrap :: Addr# -> Ptr ()
wrap = Addr# -> Ptr ()
forall a. Addr# -> Ptr a
Ptr
unwrap :: Ptr () -> Addr#
unwrap (Ptr Addr#
x#) = Addr#
x#
instance Rewrap Char# Char where
wrap :: Char# -> Char
wrap = Char# -> Char
C#
unwrap :: Char -> Char#
unwrap (C# Char#
x#) = Char#
x#
instance Rewrap Word# Word where
wrap :: Word# -> Word
wrap = Word# -> Word
W#
unwrap :: Word -> Word#
unwrap (W# Word#
x#) = Word#
x#
instance Rewrap a a where
wrap :: a -> a
wrap = a -> a
forall a. a -> a
id
unwrap :: a -> a
unwrap = a -> a
forall a. a -> a
id