singletons-base-3.0: A promoted and singled version of the base library
Copyright(C) 2013 Richard Eisenberg
LicenseBSD-style (see LICENSE)
MaintainerRyan Scott
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Eq.Singletons

Description

Defines the promoted version of Eq, PEq, and the singleton version, SEq. Also defines the DefaultEq type family, which is useful for implementing boolean equality for non-inductively defined data types.

Synopsis

Documentation

class PEq a Source #

Associated Types

type (arg :: a) == (arg :: a) :: Bool infix 4 Source #

type a == a = Apply (Apply TFHelper_6989586621679131024Sym0 a) a

type (arg :: a) /= (arg :: a) :: Bool infix 4 Source #

type a /= a = Apply (Apply TFHelper_6989586621679131013Sym0 a) a

Instances

Instances details
PEq Bool Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq Ordering Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq Nat Source # 
Instance details

Defined in GHC.TypeLits.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq Symbol Source # 
Instance details

Defined in GHC.TypeLits.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq () Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq Void Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq All Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq Any Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq [a] Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Maybe a) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (TYPE rep) Source # 
Instance details

Defined in Data.Singletons.Base.TypeRepTYPE

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Min a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Max a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (First a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Last a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (WrappedMonoid m) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Identity a) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (First a) Source # 
Instance details

Defined in Data.Monoid.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Last a) Source # 
Instance details

Defined in Data.Monoid.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Dual a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Sum a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Product a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Down a) Source # 
Instance details

Defined in Data.Ord.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (NonEmpty a) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Either a b) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (a, b) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Arg a b) Source # 
Instance details

Defined in Data.Semigroup.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Proxy s) Source # 
Instance details

Defined in Data.Proxy.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (a, b, c) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (Const a b) Source # 
Instance details

Defined in Data.Functor.Const.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (a, b, c, d) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (a, b, c, d, e) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (a, b, c, d, e, f) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

PEq (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Data.Eq.Singletons

Associated Types

type arg == arg :: Bool Source #

type arg /= arg :: Bool Source #

class SEq a where Source #

Minimal complete definition

Nothing

Methods

(%==) :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t :: Bool) infix 4 Source #

default (%==) :: forall (t :: a) (t :: a). (Apply (Apply (==@#@$) t) t :: Bool) ~ Apply (Apply TFHelper_6989586621679131024Sym0 t) t => Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t :: Bool) Source #

(%/=) :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t :: Bool) infix 4 Source #

default (%/=) :: forall (t :: a) (t :: a). (Apply (Apply (/=@#@$) t) t :: Bool) ~ Apply (Apply TFHelper_6989586621679131013Sym0 t) t => Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t :: Bool) Source #

Instances

Instances details
SEq Bool Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: Bool) (t :: Bool). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Bool) (t :: Bool). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq Ordering Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: Ordering) (t :: Ordering). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Ordering) (t :: Ordering). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq Nat Source # 
Instance details

Defined in GHC.TypeLits.Singletons.Internal

Methods

(%==) :: forall (t :: Nat) (t :: Nat). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Nat) (t :: Nat). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq Symbol Source # 
Instance details

Defined in GHC.TypeLits.Singletons.Internal

Methods

(%==) :: forall (t :: Symbol) (t :: Symbol). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Symbol) (t :: Symbol). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq () Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: ()) (t :: ()). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: ()) (t :: ()). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq Void Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: Void) (t :: Void). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Void) (t :: Void). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq Bool => SEq All Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: All) (t :: All). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: All) (t :: All). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq Bool => SEq Any Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: Any) (t :: Any). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Any) (t :: Any). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq [a]) => SEq [a] Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: [a]) (t :: [a]). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: [a]) (t :: [a]). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Maybe a) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: Maybe a) (t :: Maybe a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Maybe a) (t :: Maybe a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq (TYPE rep) Source # 
Instance details

Defined in Data.Singletons.Base.TypeRepTYPE

Methods

(%==) :: forall (t :: TYPE rep) (t :: TYPE rep). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: TYPE rep) (t :: TYPE rep). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Min a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: Min a) (t :: Min a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Min a) (t :: Min a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Max a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: Max a) (t :: Max a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Max a) (t :: Max a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (First a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: First a) (t :: First a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: First a) (t :: First a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Last a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: Last a) (t :: Last a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Last a) (t :: Last a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq m => SEq (WrappedMonoid m) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: WrappedMonoid m) (t :: WrappedMonoid m). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: WrappedMonoid m) (t :: WrappedMonoid m). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Identity a) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: Identity a) (t :: Identity a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Identity a) (t :: Identity a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq (Maybe a) => SEq (First a) Source # 
Instance details

Defined in Data.Monoid.Singletons

Methods

(%==) :: forall (t :: First a) (t :: First a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: First a) (t :: First a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq (Maybe a) => SEq (Last a) Source # 
Instance details

Defined in Data.Monoid.Singletons

Methods

(%==) :: forall (t :: Last a) (t :: Last a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Last a) (t :: Last a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Dual a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: Dual a) (t :: Dual a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Dual a) (t :: Dual a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Sum a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: Sum a) (t :: Sum a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Sum a) (t :: Sum a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Product a) Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

(%==) :: forall (t :: Product a) (t :: Product a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Product a) (t :: Product a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Down a) Source # 
Instance details

Defined in Data.Ord.Singletons

Methods

(%==) :: forall (t :: Down a) (t :: Down a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Down a) (t :: Down a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq [a]) => SEq (NonEmpty a) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: NonEmpty a) (t :: NonEmpty a). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: NonEmpty a) (t :: NonEmpty a). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq b) => SEq (Either a b) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: Either a b) (t :: Either a b). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Either a b) (t :: Either a b). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq b) => SEq (a, b) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: (a, b)) (t :: (a, b)). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: (a, b)) (t :: (a, b)). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Arg a b) Source # 
Instance details

Defined in Data.Semigroup.Singletons

Methods

(%==) :: forall (t :: Arg a b) (t :: Arg a b). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Arg a b) (t :: Arg a b). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq (Proxy s) Source # 
Instance details

Defined in Data.Proxy.Singletons

Methods

(%==) :: forall (t :: Proxy s) (t :: Proxy s). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Proxy s) (t :: Proxy s). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq b, SEq c) => SEq (a, b, c) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: (a, b, c)) (t :: (a, b, c)). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: (a, b, c)) (t :: (a, b, c)). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

SEq a => SEq (Const a b) Source # 
Instance details

Defined in Data.Functor.Const.Singletons

Methods

(%==) :: forall (t :: Const a b) (t :: Const a b). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: Const a b) (t :: Const a b). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq b, SEq c, SEq d) => SEq (a, b, c, d) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: (a, b, c, d)) (t :: (a, b, c, d)). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: (a, b, c, d)) (t :: (a, b, c, d)). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq b, SEq c, SEq d, SEq e) => SEq (a, b, c, d, e) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: (a, b, c, d, e)) (t :: (a, b, c, d, e)). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: (a, b, c, d, e)) (t :: (a, b, c, d, e)). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq b, SEq c, SEq d, SEq e, SEq f) => SEq (a, b, c, d, e, f) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: (a, b, c, d, e, f)) (t :: (a, b, c, d, e, f)). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: (a, b, c, d, e, f)) (t :: (a, b, c, d, e, f)). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) Source #

(SEq a, SEq b, SEq c, SEq d, SEq e, SEq f, SEq g) => SEq (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

(%==) :: forall (t :: (a, b, c, d, e, f, g)) (t :: (a, b, c, d, e, f, g)). Sing t -> Sing t -> Sing (Apply (Apply (==@#@$) t) t) Source #

(%/=) :: forall (t :: (a, b, c, d, e, f, g)) (t :: (a, b, c, d, e, f, g)). Sing t -> Sing t -> Sing (Apply (Apply (/=@#@$) t) t) 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 a
True

DefaultEq is most suited for data types that are not inductively defined. Three concrete examples of this are Nat, Symbol, 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 DefaultEq a a does reduce to True for every a. The latter behavior is more desirable for singletons' purposes, so we use it instead of (==).

Equations

DefaultEq a a = 'True 
DefaultEq a b = 'False 

Defunctionalization symbols

data (==@#@$) :: (~>) a ((~>) a Bool) infix 4 Source #

Instances

Instances details
SEq a => SingI ((==@#@$) :: TyFun a (a ~> Bool) -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

sing :: Sing (==@#@$) #

SuppressUnusedWarnings ((==@#@$) :: TyFun a (a ~> Bool) -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply ((==@#@$) :: TyFun a (a ~> Bool) -> Type) (a6989586621679131004 :: a) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply ((==@#@$) :: TyFun a (a ~> Bool) -> Type) (a6989586621679131004 :: a) = (==@#@$$) a6989586621679131004

data (==@#@$$) (a6989586621679131004 :: a) :: (~>) a Bool infix 4 Source #

Instances

Instances details
(SEq a, SingI d) => SingI ((==@#@$$) d :: TyFun a Bool -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

sing :: Sing ((==@#@$$) d) #

SuppressUnusedWarnings ((==@#@$$) a6989586621679131004 :: TyFun a Bool -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply ((==@#@$$) a6989586621679131004 :: TyFun a Bool -> Type) (a6989586621679131005 :: a) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply ((==@#@$$) a6989586621679131004 :: TyFun a Bool -> Type) (a6989586621679131005 :: a) = a6989586621679131004 == a6989586621679131005

type family (a6989586621679131004 :: a) ==@#@$$$ (a6989586621679131005 :: a) :: Bool where ... infix 4 Source #

Equations

a6989586621679131004 ==@#@$$$ a6989586621679131005 = (==) a6989586621679131004 a6989586621679131005 

data (/=@#@$) :: (~>) a ((~>) a Bool) infix 4 Source #

Instances

Instances details
SEq a => SingI ((/=@#@$) :: TyFun a (a ~> Bool) -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

sing :: Sing (/=@#@$) #

SuppressUnusedWarnings ((/=@#@$) :: TyFun a (a ~> Bool) -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply ((/=@#@$) :: TyFun a (a ~> Bool) -> Type) (a6989586621679131009 :: a) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply ((/=@#@$) :: TyFun a (a ~> Bool) -> Type) (a6989586621679131009 :: a) = (/=@#@$$) a6989586621679131009

data (/=@#@$$) (a6989586621679131009 :: a) :: (~>) a Bool infix 4 Source #

Instances

Instances details
(SEq a, SingI d) => SingI ((/=@#@$$) d :: TyFun a Bool -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

Methods

sing :: Sing ((/=@#@$$) d) #

SuppressUnusedWarnings ((/=@#@$$) a6989586621679131009 :: TyFun a Bool -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply ((/=@#@$$) a6989586621679131009 :: TyFun a Bool -> Type) (a6989586621679131010 :: a) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply ((/=@#@$$) a6989586621679131009 :: TyFun a Bool -> Type) (a6989586621679131010 :: a) = a6989586621679131009 /= a6989586621679131010

type family (a6989586621679131009 :: a) /=@#@$$$ (a6989586621679131010 :: a) :: Bool where ... infix 4 Source #

Equations

a6989586621679131009 /=@#@$$$ a6989586621679131010 = (/=) a6989586621679131009 a6989586621679131010 

data DefaultEqSym0 :: (~>) k ((~>) k Bool) Source #

Instances

Instances details
SuppressUnusedWarnings (DefaultEqSym0 :: TyFun k (k ~> Bool) -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply (DefaultEqSym0 :: TyFun k (k ~> Bool) -> Type) (a6989586621679133266 :: k) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply (DefaultEqSym0 :: TyFun k (k ~> Bool) -> Type) (a6989586621679133266 :: k) = DefaultEqSym1 a6989586621679133266

data DefaultEqSym1 (a6989586621679133266 :: k) :: (~>) k Bool Source #

Instances

Instances details
SuppressUnusedWarnings (DefaultEqSym1 a6989586621679133266 :: TyFun k Bool -> Type) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply (DefaultEqSym1 a6989586621679133266 :: TyFun k Bool -> Type) (a6989586621679133267 :: k) Source # 
Instance details

Defined in Data.Eq.Singletons

type Apply (DefaultEqSym1 a6989586621679133266 :: TyFun k Bool -> Type) (a6989586621679133267 :: k) = DefaultEq a6989586621679133266 a6989586621679133267

type family DefaultEqSym2 (a6989586621679133266 :: k) (a6989586621679133267 :: k) :: Bool where ... Source #

Equations

DefaultEqSym2 a6989586621679133266 a6989586621679133267 = DefaultEq a6989586621679133266 a6989586621679133267