Copyright | (C) 2013 Richard Eisenberg |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Ryan Scott |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | GHC2021 |
Synopsis
- class PEq a where
- class SEq a where
- type family DefaultEq (a :: k) (b :: k) :: Bool where ...
- data (==@#@$) (a1 :: TyFun a (a ~> Bool))
- data (a6989586621679137918 :: a) ==@#@$$ (b :: TyFun a Bool)
- type family (a6989586621679137918 :: a) ==@#@$$$ (a6989586621679137919 :: a) :: Bool where ...
- data (/=@#@$) (a1 :: TyFun a (a ~> Bool))
- data (a6989586621679137923 :: a) /=@#@$$ (b :: TyFun a Bool)
- type family (a6989586621679137923 :: a) /=@#@$$$ (a6989586621679137924 :: a) :: Bool where ...
- data DefaultEqSym0 (a :: TyFun k (k ~> Bool))
- data DefaultEqSym1 (a6989586621679140066 :: k) (b :: TyFun k Bool)
- type family DefaultEqSym2 (a6989586621679140066 :: k) (a6989586621679140067 :: k) :: Bool where ...
Documentation
Instances
Nothing
(%==) :: forall (t1 :: a) (t2 :: a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun a (a ~> Bool) -> Type) t1) t2) infix 4 Source #
default (%==) :: forall (t1 :: a) (t2 :: a). Apply (Apply ((==@#@$) :: TyFun a (a ~> Bool) -> Type) t1) t2 ~ Apply (Apply (TFHelper_6989586621679137938Sym0 :: TyFun a (a ~> Bool) -> Type) t1) t2 => Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun a (a ~> Bool) -> Type) t1) t2) Source #
(%/=) :: forall (t1 :: a) (t2 :: a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun a (a ~> Bool) -> Type) t1) t2) infix 4 Source #
Instances
SEq Bool => SEq All Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SEq Bool => SEq Any Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SEq Void Source # | |
Defined in Data.Eq.Singletons | |
SEq Ordering Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: Ordering) (t2 :: Ordering). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun Ordering (Ordering ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Ordering) (t2 :: Ordering). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun Ordering (Ordering ~> Bool) -> Type) t1) t2) Source # | |
SEq Natural Source # | |
Defined in GHC.TypeLits.Singletons.Internal (%==) :: forall (t1 :: Natural) (t2 :: Natural). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun Natural (Natural ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Natural) (t2 :: Natural). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun Natural (Natural ~> Bool) -> Type) t1) t2) Source # | |
SEq () Source # | |
Defined in Data.Eq.Singletons | |
SEq Bool Source # | |
Defined in Data.Eq.Singletons | |
SEq Char Source # | |
Defined in GHC.TypeLits.Singletons.Internal | |
SEq Symbol Source # | |
Defined in GHC.TypeLits.Singletons.Internal (%==) :: forall (t1 :: Symbol) (t2 :: Symbol). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun Symbol (Symbol ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Symbol) (t2 :: Symbol). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun Symbol (Symbol ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Identity a) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: Identity a) (t2 :: Identity a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Identity a) (Identity a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Identity a) (t2 :: Identity a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Identity a) (Identity a ~> Bool) -> Type) t1) t2) Source # | |
SEq (Maybe a) => SEq (First a) Source # | |
Defined in Data.Monoid.Singletons (%==) :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (First a) (First a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (First a) (First a ~> Bool) -> Type) t1) t2) Source # | |
SEq (Maybe a) => SEq (Last a) Source # | |
Defined in Data.Monoid.Singletons (%==) :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Last a) (Last a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Last a) (Last a ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Down a) Source # | |
Defined in Data.Ord.Singletons (%==) :: forall (t1 :: Down a) (t2 :: Down a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Down a) (Down a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Down a) (t2 :: Down a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Down a) (Down a ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (First a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers (%==) :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (First a) (First a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (First a) (First a ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Last a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers (%==) :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Last a) (Last a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Last a) (Last a ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Max a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers (%==) :: forall (t1 :: Max a) (t2 :: Max a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Max a) (Max a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Max a) (t2 :: Max a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Max a) (Max a ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Min a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers (%==) :: forall (t1 :: Min a) (t2 :: Min a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Min a) (Min a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Min a) (t2 :: Min a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Min a) (Min a ~> Bool) -> Type) t1) t2) Source # | |
SEq m => SEq (WrappedMonoid m) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers (%==) :: forall (t1 :: WrappedMonoid m) (t2 :: WrappedMonoid m). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (WrappedMonoid m) (WrappedMonoid m ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: WrappedMonoid m) (t2 :: WrappedMonoid m). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (WrappedMonoid m) (WrappedMonoid m ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Dual a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers (%==) :: forall (t1 :: Dual a) (t2 :: Dual a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Dual a) (Dual a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Dual a) (t2 :: Dual a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Dual a) (Dual a ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Product a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers (%==) :: forall (t1 :: Product a) (t2 :: Product a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Product a) (Product a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Product a) (t2 :: Product a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Product a) (Product a ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Sum a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers (%==) :: forall (t1 :: Sum a) (t2 :: Sum a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Sum a) (Sum a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Sum a) (t2 :: Sum a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Sum a) (Sum a ~> Bool) -> Type) t1) t2) Source # | |
(SEq a, SEq [a]) => SEq (NonEmpty a) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: NonEmpty a) (t2 :: NonEmpty a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (NonEmpty a) (NonEmpty a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: NonEmpty a) (t2 :: NonEmpty a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (NonEmpty a) (NonEmpty a ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Maybe a) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: Maybe a) (t2 :: Maybe a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Maybe a) (Maybe a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Maybe a) (t2 :: Maybe a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Maybe a) (Maybe a ~> Bool) -> Type) t1) t2) Source # | |
SEq (TYPE rep) Source # | |
Defined in Data.Singletons.Base.TypeRepTYPE (%==) :: forall (t1 :: TYPE rep) (t2 :: TYPE rep). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (TYPE rep) (TYPE rep ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: TYPE rep) (t2 :: TYPE rep). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (TYPE rep) (TYPE rep ~> Bool) -> Type) t1) t2) Source # | |
(SEq a, SEq [a]) => SEq [a] Source # | |
Defined in Data.Eq.Singletons | |
(SEq a, SEq b) => SEq (Either a b) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: Either a b) (t2 :: Either a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Either a b) (Either a b ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Either a b) (t2 :: Either a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Either a b) (Either a b ~> Bool) -> Type) t1) t2) Source # | |
SEq (Proxy s) Source # | |
Defined in Data.Proxy.Singletons (%==) :: forall (t1 :: Proxy s) (t2 :: Proxy s). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Proxy s) (Proxy s ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Proxy s) (t2 :: Proxy s). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Proxy s) (Proxy s ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Arg a b) Source # | |
Defined in Data.Semigroup.Singletons (%==) :: forall (t1 :: Arg a b) (t2 :: Arg a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Arg a b) (Arg a b ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Arg a b) (t2 :: Arg a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Arg a b) (Arg a b ~> Bool) -> Type) t1) t2) Source # | |
(SEq a, SEq b) => SEq (a, b) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: (a, b)) (t2 :: (a, b)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (a, b) ((a, b) ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: (a, b)) (t2 :: (a, b)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (a, b) ((a, b) ~> Bool) -> Type) t1) t2) Source # | |
SEq a => SEq (Const a b) Source # | |
Defined in Data.Functor.Const.Singletons (%==) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Const a b) (Const a b ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Const a b) (Const a b ~> Bool) -> Type) t1) t2) Source # | |
(SEq a, SEq b, SEq c) => SEq (a, b, c) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: (a, b, c)) (t2 :: (a, b, c)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (a, b, c) ((a, b, c) ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: (a, b, c)) (t2 :: (a, b, c)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (a, b, c) ((a, b, c) ~> Bool) -> Type) t1) t2) Source # | |
(SEq (f a), SEq (g a)) => SEq (Product f g a) Source # | |
Defined in Data.Functor.Product.Singletons (%==) :: forall (t1 :: Product f g a) (t2 :: Product f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Product f g a) (Product f g a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Product f g a) (t2 :: Product f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Product f g a) (Product f g a ~> Bool) -> Type) t1) t2) Source # | |
(SEq (f a), SEq (g a)) => SEq (Sum f g a) Source # | |
Defined in Data.Functor.Sum.Singletons (%==) :: forall (t1 :: Sum f g a) (t2 :: Sum f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Sum f g a) (Sum f g a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Sum f g a) (t2 :: Sum f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Sum f g a) (Sum f g a ~> Bool) -> Type) t1) t2) Source # | |
(SEq a, SEq b, SEq c, SEq d) => SEq (a, b, c, d) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: (a, b, c, d)) (t2 :: (a, b, c, d)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (a, b, c, d) ((a, b, c, d) ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: (a, b, c, d)) (t2 :: (a, b, c, d)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (a, b, c, d) ((a, b, c, d) ~> Bool) -> Type) t1) t2) Source # | |
SEq (f (g a)) => SEq (Compose f g a) Source # | |
Defined in Data.Functor.Compose.Singletons (%==) :: forall (t1 :: Compose f g a) (t2 :: Compose f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (Compose f g a) (Compose f g a ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: Compose f g a) (t2 :: Compose f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (Compose f g a) (Compose f g a ~> Bool) -> Type) t1) t2) Source # | |
(SEq a, SEq b, SEq c, SEq d, SEq e) => SEq (a, b, c, d, e) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: (a, b, c, d, e)) (t2 :: (a, b, c, d, e)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (a, b, c, d, e) ((a, b, c, d, e) ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: (a, b, c, d, e)) (t2 :: (a, b, c, d, e)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (a, b, c, d, e) ((a, b, c, d, e) ~> Bool) -> Type) t1) t2) Source # | |
(SEq a, SEq b, SEq c, SEq d, SEq e, SEq f) => SEq (a, b, c, d, e, f) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: (a, b, c, d, e, f)) (t2 :: (a, b, c, d, e, f)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (a, b, c, d, e, f) ((a, b, c, d, e, f) ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: (a, b, c, d, e, f)) (t2 :: (a, b, c, d, e, f)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (a, b, c, d, e, f) ((a, b, c, d, e, f) ~> Bool) -> Type) t1) t2) Source # | |
(SEq a, SEq b, SEq c, SEq d, SEq e, SEq f, SEq g) => SEq (a, b, c, d, e, f, g) Source # | |
Defined in Data.Eq.Singletons (%==) :: forall (t1 :: (a, b, c, d, e, f, g)) (t2 :: (a, b, c, d, e, f, g)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun (a, b, c, d, e, f, g) ((a, b, c, d, e, f, g) ~> Bool) -> Type) t1) t2) Source # (%/=) :: forall (t1 :: (a, b, c, d, e, f, g)) (t2 :: (a, b, c, d, e, f, g)). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((/=@#@$) :: TyFun (a, b, c, d, e, f, g) ((a, b, c, d, e, f, g) ~> Bool) -> Type) t1) t2) Source # |
type family DefaultEq (a :: k) (b :: k) :: Bool where ... Source #
One way to compute Boolean equality for types of any kind. This will
return True
if the two arguments are known to be the same type and False
if they are known to be apart. Examples:
>>>DefaultEq
Nothing
Nothing
True
>>>DefaultEq
Nothing
(Just
a)False
>>>DefaultEq
a aTrue
DefaultEq
is most suited for data types that are not inductively defined.
Four concrete examples of this are Natural
, Symbol
, Char
, and
Type
. One cannot implement boolean equality for these types by
pattern matching alone, so DefaultEq
is a good fit instead.
The downside to DefaultEq
is that it can fail to reduce if it is unable
to determine if two types are equal or apart. Here is one such example:
DefaultEq
(Just
a) (Just
b)
What should this reduce to? It depends on what a
and b
are. DefaultEq
has no way of knowing what these two types are, and as a result, this type
will be stuck. This is a pitfall that you can run into if you use
DefaultEq
to implement boolean equality for an inductive data type like
Maybe
. For this reason, it is usually recommended to implement boolean
equality for inductive data types using pattern matching and recursion, not
DefaultEq
.
Note that this definition is slightly different from the (==)
type
family from Data.Type.Equality in base
, as (==)
attempts to
distinguish applications of type constructors from other types. As a result,
a == a
does not reduce to True
for every a
, but
does reduce to DefaultEq
a aTrue
for every a
. The latter behavior is more desirable
for singletons
' purposes, so we use it instead of (==)
.
Defunctionalization symbols
data (==@#@$) (a1 :: TyFun a (a ~> Bool)) infix 4 Source #
Instances
data (a6989586621679137918 :: a) ==@#@$$ (b :: TyFun a Bool) infix 4 Source #
Instances
SEq a => SingI1 ((==@#@$$) :: a -> TyFun a Bool -> Type) Source # | |
(SEq a, SingI d) => SingI ((==@#@$$) d :: TyFun a Bool -> Type) Source # | |
Defined in Data.Eq.Singletons | |
SuppressUnusedWarnings ((==@#@$$) a6989586621679137918 :: TyFun a Bool -> Type) Source # | |
Defined in Data.Eq.Singletons suppressUnusedWarnings :: () # | |
type Apply ((==@#@$$) a6989586621679137918 :: TyFun a Bool -> Type) (a6989586621679137919 :: a) Source # | |
type family (a6989586621679137918 :: a) ==@#@$$$ (a6989586621679137919 :: a) :: Bool where ... infix 4 Source #
data (/=@#@$) (a1 :: TyFun a (a ~> Bool)) infix 4 Source #
Instances
data (a6989586621679137923 :: a) /=@#@$$ (b :: TyFun a Bool) infix 4 Source #
Instances
SEq a => SingI1 ((/=@#@$$) :: a -> TyFun a Bool -> Type) Source # | |
(SEq a, SingI d) => SingI ((/=@#@$$) d :: TyFun a Bool -> Type) Source # | |
Defined in Data.Eq.Singletons | |
SuppressUnusedWarnings ((/=@#@$$) a6989586621679137923 :: TyFun a Bool -> Type) Source # | |
Defined in Data.Eq.Singletons suppressUnusedWarnings :: () # | |
type Apply ((/=@#@$$) a6989586621679137923 :: TyFun a Bool -> Type) (a6989586621679137924 :: a) Source # | |
type family (a6989586621679137923 :: a) /=@#@$$$ (a6989586621679137924 :: a) :: Bool where ... infix 4 Source #
data DefaultEqSym0 (a :: TyFun k (k ~> Bool)) Source #
Instances
SuppressUnusedWarnings (DefaultEqSym0 :: TyFun k (k ~> Bool) -> Type) Source # | |
Defined in Data.Eq.Singletons suppressUnusedWarnings :: () # | |
type Apply (DefaultEqSym0 :: TyFun k (k ~> Bool) -> Type) (a6989586621679140066 :: k) Source # | |
Defined in Data.Eq.Singletons type Apply (DefaultEqSym0 :: TyFun k (k ~> Bool) -> Type) (a6989586621679140066 :: k) = DefaultEqSym1 a6989586621679140066 |
data DefaultEqSym1 (a6989586621679140066 :: k) (b :: TyFun k Bool) Source #
Instances
SuppressUnusedWarnings (DefaultEqSym1 a6989586621679140066 :: TyFun k Bool -> Type) Source # | |
Defined in Data.Eq.Singletons suppressUnusedWarnings :: () # | |
type Apply (DefaultEqSym1 a6989586621679140066 :: TyFun k Bool -> Type) (a6989586621679140067 :: k) Source # | |
Defined in Data.Eq.Singletons |
type family DefaultEqSym2 (a6989586621679140066 :: k) (a6989586621679140067 :: k) :: Bool where ... Source #
DefaultEqSym2 (a6989586621679140066 :: k) (a6989586621679140067 :: k) = DefaultEq a6989586621679140066 a6989586621679140067 |