module AOP.Internal.StableNamesEq where

import System.Mem.StableName
import System.IO.Unsafe

-- | Equality of functions based on the StableName API
stableNamesEq :: a -> b -> Bool
stableNamesEq a b = unsafePerformIO $ do
                        pa <- makeStableName a
                        pb <- makeStableName b
                        return (hashStableName pa == hashStableName pb)