{-# LANGUAGE DataKinds, MagicHash, RoleAnnotations #-}
module Data.Ref.Impl (module Data.Ref.Impl) where
import GHC.Base (MutVar#, RealWorld, sameMutVar#, isTrue#)
type role Ref nominal representational
data Ref r a = Ref (MutVar# RealWorld a)
instance Eq (Ref r a) where
Ref MutVar# RealWorld a
ref1# == :: Ref r a -> Ref r a -> Bool
== Ref MutVar# RealWorld a
ref2# = Int# -> Bool
isTrue# (MutVar# RealWorld a -> MutVar# RealWorld a -> Int#
forall s a. MutVar# s a -> MutVar# s a -> Int#
sameMutVar# MutVar# RealWorld a
ref1# MutVar# RealWorld a
ref2#)