singletons-2.3: 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 Source #

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 Source #

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

Instances

PEq Bool Source # 

Associated Types

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

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

PEq Ordering Source # 

Associated Types

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

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

PEq () Source # 

Associated Types

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

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

PEq [k] Source # 

Associated Types

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

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

PEq (Maybe k) Source # 

Associated Types

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

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

PEq (NonEmpty k) Source # 

Associated Types

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

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

PEq (Either k1 k2) Source # 

Associated Types

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

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

PEq (k1, k2) Source # 

Associated Types

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

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

PEq (k1, k2, k3) Source # 

Associated Types

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

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

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

Associated Types

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

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

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

Associated Types

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

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

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

Associated Types

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

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

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

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 Source #

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 Source #

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

Instances

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

Methods

suppressUnusedWarnings :: Proxy ((:==$) a6989586621679294693) t -> () Source #

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

data (l :: a6989586621679294693) :==$$ (l :: TyFun a6989586621679294693 Bool) Source #

Instances

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

Methods

suppressUnusedWarnings :: Proxy ((:==$$) a6989586621679294693) t -> () Source #

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

type (:==$$$) (t :: a6989586621679294693) (t :: a6989586621679294693) = (:==) t t Source #

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

Instances

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

Methods

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

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

data (l :: a6989586621679294693) :/=$$ (l :: TyFun a6989586621679294693 Bool) Source #

Instances

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

Methods

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

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

type (:/=$$$) (t :: a6989586621679294693) (t :: a6989586621679294693) = (:/=) t t Source #