Safe Haskell | None |
---|---|
Language | Haskell2010 |
Grisette.Internal.Core.Data.Class.AsKey
Synopsis
- class KeyEq a where
- class KeyEq a => KeyOrd a where
- keyCompare :: a -> a -> Ordering
- class KeyEq a => KeyHashable a where
- keyHashWithSalt :: Int -> a -> Int
- class KeyEq1 (f :: Type -> Type) where
- class KeyEq1 f => KeyOrd1 (f :: Type -> Type) where
- liftKeyCompare :: (a -> b -> Ordering) -> f a -> f b -> Ordering
- class KeyEq1 f => KeyHashable1 (f :: Type -> Type) where
- liftKeyHashWithSalt :: (Int -> a -> Int) -> Int -> f a -> Int
- newtype AsKey a = AsKey {
- getAsKey :: a
- newtype AsKey1 (f :: Type -> Type) a = AsKey1 {
- getAsKey1 :: f a
- shouldUseAsKeyError :: HasCallStack => String -> String -> a
- shouldUseAsKeyHasSymbolicVersionError :: HasCallStack => String -> String -> String -> a
- shouldUseSymbolicVersionError :: HasCallStack => String -> String -> String -> a
Documentation
Type class for identity equality for terms.
Instances
class KeyEq a => KeyOrd a where Source #
Type class for comparing terms based on their identity.
Methods
keyCompare :: a -> a -> Ordering infix 4 Source #
class KeyEq a => KeyHashable a where Source #
Type class for hashing terms based on their identity.
Methods
keyHashWithSalt :: Int -> a -> Int infixl 0 Source #
Instances
class KeyEq1 f => KeyOrd1 (f :: Type -> Type) where Source #
Methods
liftKeyCompare :: (a -> b -> Ordering) -> f a -> f b -> Ordering Source #
class KeyEq1 f => KeyHashable1 (f :: Type -> Type) where Source #
Instances
Use a term as a key with identity equality.
For example,
uses the term identity
for AsKey
SymBool
SymBool
.
Instances
newtype AsKey1 (f :: Type -> Type) a Source #
Use a union as a key with identity equality.
Instances
shouldUseAsKeyError :: HasCallStack => String -> String -> a Source #
shouldUseAsKeyHasSymbolicVersionError :: HasCallStack => String -> String -> String -> a Source #
shouldUseSymbolicVersionError :: HasCallStack => String -> String -> String -> a Source #