{-# OPTIONS_GHC -Wunused-imports #-} {-# LANGUAGE MagicHash #-} module Agda.Utils.Unsafe (unsafeComparePointers) where import GHC.Exts (reallyUnsafePtrEquality#, isTrue#) -- | Checks if two arguments are equal as pointers in memory. -- Please note, that this function is a hack, and it can worsen the behavior of compiler. -- See <https://gitlab.haskell.org/ghc/ghc/-/blob/d151546e59a50158f25c3df6728b00d3c27bb4b9/compiler/GHC/Builtin/primops.txt.pp#L3455>. unsafeComparePointers :: a -> a -> Bool unsafeComparePointers :: forall a. a -> a -> Bool unsafeComparePointers a x a y = a x a -> Bool -> Bool forall a b. a -> b -> b `seq` a y a -> Bool -> Bool forall a b. a -> b -> b `seq` Int# -> Bool isTrue# (a -> a -> Int# forall a b. a -> b -> Int# reallyUnsafePtrEquality# a x a y)