GHC.Internal.Prim.PtrEq

ghc-internal-9.1400.0: Basic libraries

License | see libraries/ghc-internal/LICENSE
Maintainer | ghc-devs@haskell.org
Stability | internal
Portability | non-portable (GHC Extensions)
Safe Haskell | Unsafe
Language | Haskell2010

GHC.Internal.Prim.PtrEq

Description

Comparing underlying pointers for equality.

Use GHC.Exts from the base package instead of importing this module directly.

Synopsis

- reallyUnsafePtrEquality :: a -> a -> Int#
- unsafePtrEquality# :: forall (a :: UnliftedType) (b :: UnliftedType). a -> b -> Int#
- sameArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Array# a -> Array# a -> Int#
- sameMutableArray# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MutableArray# s a -> MutableArray# s a -> Int#
- sameSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). SmallArray# a -> SmallArray# a -> Int#
- sameSmallMutableArray# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). SmallMutableArray# s a -> SmallMutableArray# s a -> Int#
- sameByteArray# :: ByteArray# -> ByteArray# -> Int#
- sameMutableByteArray# :: MutableByteArray# s -> MutableByteArray# s -> Int#
- sameMutVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MutVar# s a -> MutVar# s a -> Int#
- sameTVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). TVar# s a -> TVar# s a -> Int#
- sameMVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MVar# s a -> MVar# s a -> Int#
- samePromptTag# :: PromptTag# a -> PromptTag# a -> Int#
- eqStableName# :: forall {k :: Levity} {l :: Levity} (a :: TYPE ('BoxedRep k)) (b :: TYPE ('BoxedRep l)). StableName# a -> StableName# b -> Int#

# Documentation

reallyUnsafePtrEquality :: a -> a -> Int# Source #

Compare the underlying pointers of two values for equality.

Returns `1` if the pointers are equal and `0` otherwise.

The two values must be of the same type, of kind `Type`. See also `reallyUnsafePtrEquality#`, which doesn't have such restrictions.

unsafePtrEquality# :: forall (a :: UnliftedType) (b :: UnliftedType). a -> b -> Int# Source #

Compare the underlying pointers of two unlifted values for equality.

This is less dangerous than `reallyUnsafePtrEquality`, since the arguments are guaranteed to be evaluated. This means there is no risk of accidentally comparing a thunk. It's however still more dangerous than e.g. `sameArray#`.

sameArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Array# a -> Array# a -> Int# Source #

Compare the underlying pointers of two arrays.

sameMutableArray# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MutableArray# s a -> MutableArray# s a -> Int# Source #

Compare the underlying pointers of two mutable arrays.

sameSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). SmallArray# a -> SmallArray# a -> Int# Source #

Compare the underlying pointers of two small arrays.

sameSmallMutableArray# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). SmallMutableArray# s a -> SmallMutableArray# s a -> Int# Source #

Compare the underlying pointers of two small mutable arrays.

sameByteArray# :: ByteArray# -> ByteArray# -> Int# Source #

Compare the pointers of two byte arrays.

sameMutableByteArray# :: MutableByteArray# s -> MutableByteArray# s -> Int# Source #

Compare the underlying pointers of two mutable byte arrays.

sameMutVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MutVar# s a -> MutVar# s a -> Int# Source #

Compare the underlying pointers of two `MutVar#`s.

sameTVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). TVar# s a -> TVar# s a -> Int# Source #

Compare the underlying pointers of two `TVar#`s.

sameMVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MVar# s a -> MVar# s a -> Int# Source #

Compare the underlying pointers of two `MVar#`s.

samePromptTag# :: PromptTag# a -> PromptTag# a -> Int# Source #

Compare the underlying pointers of two `PromptTag#`s.

eqStableName# :: forall {k :: Levity} {l :: Levity} (a :: TYPE ('BoxedRep k)) (b :: TYPE ('BoxedRep l)). StableName# a -> StableName# b -> Int# Source #

Compare two stable names for equality.