Copyright | (c) Sirui Lu 2021-2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.Internal.SymPrim.Prim.Internal.Utils
Description
Synopsis
- pattern Dyn :: (Typeable a, Typeable b) => a -> b
- cmpHetero :: (Typeable a, Typeable b) => (a -> a -> Bool) -> a -> b -> Bool
- eqHetero :: (Typeable a, Typeable b, Eq a) => a -> b -> Bool
- cmpHeteroRep :: TypeRep a -> TypeRep b -> (a -> a -> Bool) -> a -> b -> Bool
- eqHeteroRep :: Eq a => TypeRep a -> TypeRep b -> a -> b -> Bool
- eqTypeRepBool :: forall ka kb (a :: ka) (b :: kb). TypeRep a -> TypeRep b -> Bool
- type WeakThreadId = Word64
- weakThreadId :: ThreadId -> Word64
- type WeakThreadIdRef = Weak ThreadId
- myWeakThreadId :: IO WeakThreadId
- weakThreadRefAlive :: WeakThreadIdRef -> IO Bool
- mkWeakThreadIdRefWithFinalizer :: ThreadId -> IO () -> IO (Weak ThreadId)
- addStableNameFinalizer :: StableName a -> IO () -> IO ()
- addThreadIdFinalizer :: ThreadId -> IO () -> IO ()
- mkWeakStableNameRefWithFinalizer :: StableName a -> IO () -> IO (Weak (StableName a))
- data SomeStableName where
- SomeStableName :: forall a. StableName a -> SomeStableName
- mkWeakSomeStableNameRefWithFinalizer :: SomeStableName -> IO () -> IO (Weak SomeStableName)
- mkWeakSomeStableNameRef :: SomeStableName -> IO (Weak SomeStableName)
Documentation
cmpHetero :: (Typeable a, Typeable b) => (a -> a -> Bool) -> a -> b -> Bool Source #
Compare two values of different types.
eqHetero :: (Typeable a, Typeable b, Eq a) => a -> b -> Bool Source #
Compare two values of different types for equality.
cmpHeteroRep :: TypeRep a -> TypeRep b -> (a -> a -> Bool) -> a -> b -> Bool Source #
Compare two values of different types, resolve the type equality using the type representation.
eqHeteroRep :: Eq a => TypeRep a -> TypeRep b -> a -> b -> Bool Source #
Compare two values of different types for equality, resolve the type equality using the type representation.
eqTypeRepBool :: forall ka kb (a :: ka) (b :: kb). TypeRep a -> TypeRep b -> Bool Source #
Compare two type representations for equality.
type WeakThreadId = Word64 Source #
A weak identifier to a thread id that doesn't prevent its garbage collection.
weakThreadId :: ThreadId -> Word64 Source #
Get an id of a thread that doesn't prevent its garbage collection.
type WeakThreadIdRef = Weak ThreadId Source #
A weak reference to a thread id that doesn't prevent its garbage collection.
myWeakThreadId :: IO WeakThreadId Source #
Get a weak identifier to the current thread id.
weakThreadRefAlive :: WeakThreadIdRef -> IO Bool Source #
Check if a weak reference to a thread id is still alive.
mkWeakThreadIdRefWithFinalizer :: ThreadId -> IO () -> IO (Weak ThreadId) Source #
Create a weak reference to a thread id with a finalizer.
addStableNameFinalizer :: StableName a -> IO () -> IO () Source #
Add a finalizer to a stable name.
mkWeakStableNameRefWithFinalizer :: StableName a -> IO () -> IO (Weak (StableName a)) Source #
Create a weak reference to a stable name with a finalizer.
data SomeStableName where Source #
A type-erased stable name.
Constructors
SomeStableName :: forall a. StableName a -> SomeStableName |
Instances
Eq SomeStableName Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Utils Methods (==) :: SomeStableName -> SomeStableName -> Bool # (/=) :: SomeStableName -> SomeStableName -> Bool # |
mkWeakSomeStableNameRefWithFinalizer :: SomeStableName -> IO () -> IO (Weak SomeStableName) Source #
Create a weak reference to a stable name with a finalizer.
mkWeakSomeStableNameRef :: SomeStableName -> IO (Weak SomeStableName) Source #
Create a weak reference to a stable name.