singletons-2.3.1: A framework for generating singleton types

Copyright(C) 2014 Jan Stolarek
LicenseBSD-style (see LICENSE)
MaintainerJan Stolarek (jan.stolarek@p.lodz.pl)
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Promotion.Prelude.Eq

Description

Provided promoted definitions related to type-level equality.

Synopsis

Documentation

class PEq a #

The promoted analogue of Eq. If you supply no definition for '(:==)', then it defaults to a use of '(==)', from Data.Type.Equality.

Associated Types

type (x :: a) :== (y :: a) :: Bool infix 4 #

type (x :: a) :/= (y :: a) :: Bool infix 4 #

Instances

PEq Bool # 

Associated Types

type (Bool :== (x :: Bool)) (y :: Bool) :: Bool #

type (Bool :/= (x :: Bool)) (y :: Bool) :: Bool #

PEq Ordering # 

Associated Types

type (Ordering :== (x :: Ordering)) (y :: Ordering) :: Bool #

type (Ordering :/= (x :: Ordering)) (y :: Ordering) :: Bool #

PEq () # 

Associated Types

type (() :== (x :: ())) (y :: ()) :: Bool #

type (() :/= (x :: ())) (y :: ()) :: Bool #

PEq [k] # 

Associated Types

type ([k] :== (x :: [k])) (y :: [k]) :: Bool #

type ([k] :/= (x :: [k])) (y :: [k]) :: Bool #

PEq (Maybe k) # 

Associated Types

type ((Maybe k) :== (x :: Maybe k)) (y :: Maybe k) :: Bool #

type ((Maybe k) :/= (x :: Maybe k)) (y :: Maybe k) :: Bool #

PEq (NonEmpty k) # 

Associated Types

type ((NonEmpty k) :== (x :: NonEmpty k)) (y :: NonEmpty k) :: Bool #

type ((NonEmpty k) :/= (x :: NonEmpty k)) (y :: NonEmpty k) :: Bool #

PEq (Either k1 k2) # 

Associated Types

type ((Either k1 k2) :== (x :: Either k1 k2)) (y :: Either k1 k2) :: Bool #

type ((Either k1 k2) :/= (x :: Either k1 k2)) (y :: Either k1 k2) :: Bool #

PEq (k1, k2) # 

Associated Types

type ((k1, k2) :== (x :: (k1, k2))) (y :: (k1, k2)) :: Bool #

type ((k1, k2) :/= (x :: (k1, k2))) (y :: (k1, k2)) :: Bool #

PEq (k1, k2, k3) # 

Associated Types

type ((k1, k2, k3) :== (x :: (k1, k2, k3))) (y :: (k1, k2, k3)) :: Bool #

type ((k1, k2, k3) :/= (x :: (k1, k2, k3))) (y :: (k1, k2, k3)) :: Bool #

PEq (k1, k2, k3, k4) # 

Associated Types

type ((k1, k2, k3, k4) :== (x :: (k1, k2, k3, k4))) (y :: (k1, k2, k3, k4)) :: Bool #

type ((k1, k2, k3, k4) :/= (x :: (k1, k2, k3, k4))) (y :: (k1, k2, k3, k4)) :: Bool #

PEq (k1, k2, k3, k4, k5) # 

Associated Types

type ((k1, k2, k3, k4, k5) :== (x :: (k1, k2, k3, k4, k5))) (y :: (k1, k2, k3, k4, k5)) :: Bool #

type ((k1, k2, k3, k4, k5) :/= (x :: (k1, k2, k3, k4, k5))) (y :: (k1, k2, k3, k4, k5)) :: Bool #

PEq (k1, k2, k3, k4, k5, k6) # 

Associated Types

type ((k1, k2, k3, k4, k5, k6) :== (x :: (k1, k2, k3, k4, k5, k6))) (y :: (k1, k2, k3, k4, k5, k6)) :: Bool #

type ((k1, k2, k3, k4, k5, k6) :/= (x :: (k1, k2, k3, k4, k5, k6))) (y :: (k1, k2, k3, k4, k5, k6)) :: Bool #

PEq (k1, k2, k3, k4, k5, k6, k7) # 

Associated Types

type ((k1, k2, k3, k4, k5, k6, k7) :== (x :: (k1, k2, k3, k4, k5, k6, k7))) (y :: (k1, k2, k3, k4, k5, k6, k7)) :: Bool #

type ((k1, k2, k3, k4, k5, k6, k7) :/= (x :: (k1, k2, k3, k4, k5, k6, k7))) (y :: (k1, k2, k3, k4, k5, k6, k7)) :: Bool #

data (:==$) (l :: TyFun a6989586621679257339 (TyFun a6989586621679257339 Bool -> Type)) #

Instances

SuppressUnusedWarnings (TyFun a6989586621679257339 (TyFun a6989586621679257339 Bool -> Type) -> *) ((:==$) a6989586621679257339) # 

Methods

suppressUnusedWarnings :: Proxy ((:==$) a6989586621679257339) t -> () #

type Apply a6989586621679257339 (TyFun a6989586621679257339 Bool -> Type) ((:==$) a6989586621679257339) l # 
type Apply a6989586621679257339 (TyFun a6989586621679257339 Bool -> Type) ((:==$) a6989586621679257339) l = (:==$$) a6989586621679257339 l

data (l :: a6989586621679257339) :==$$ (l :: TyFun a6989586621679257339 Bool) #

Instances

SuppressUnusedWarnings (a6989586621679257339 -> TyFun a6989586621679257339 Bool -> *) ((:==$$) a6989586621679257339) # 

Methods

suppressUnusedWarnings :: Proxy ((:==$$) a6989586621679257339) t -> () #

type Apply a Bool ((:==$$) a l1) l2 # 
type Apply a Bool ((:==$$) a l1) l2 = (:==) a l1 l2

type (:==$$$) (t :: a6989586621679257339) (t :: a6989586621679257339) = (:==) t t #

data (:/=$) (l :: TyFun a6989586621679257339 (TyFun a6989586621679257339 Bool -> Type)) #

Instances

SuppressUnusedWarnings (TyFun a6989586621679257339 (TyFun a6989586621679257339 Bool -> Type) -> *) ((:/=$) a6989586621679257339) # 

Methods

suppressUnusedWarnings :: Proxy ((:/=$) a6989586621679257339) t -> () #

type Apply a6989586621679257339 (TyFun a6989586621679257339 Bool -> Type) ((:/=$) a6989586621679257339) l # 
type Apply a6989586621679257339 (TyFun a6989586621679257339 Bool -> Type) ((:/=$) a6989586621679257339) l = (:/=$$) a6989586621679257339 l

data (l :: a6989586621679257339) :/=$$ (l :: TyFun a6989586621679257339 Bool) #

Instances

SuppressUnusedWarnings (a6989586621679257339 -> TyFun a6989586621679257339 Bool -> *) ((:/=$$) a6989586621679257339) # 

Methods

suppressUnusedWarnings :: Proxy ((:/=$$) a6989586621679257339) t -> () #

type Apply a Bool ((:/=$$) a l1) l2 # 
type Apply a Bool ((:/=$$) a l1) l2 = (:/=) a l1 l2

type (:/=$$$) (t :: a6989586621679257339) (t :: a6989586621679257339) = (:/=) t t #