singletons-2.2: 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 kproxy ~ Proxy => PEq kproxy 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 (Proxy * Bool) Source # 

Associated Types

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

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

PEq Ordering (Proxy * Ordering) Source # 

Associated Types

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

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

PEq () (Proxy * ()) Source # 

Associated Types

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

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

PEq [k0] (Proxy * [k0]) Source # 

Associated Types

type ((Proxy * [k0]) :== (x :: Proxy * [k0])) (y :: Proxy * [k0]) :: Bool Source #

type ((Proxy * [k0]) :/= (x :: Proxy * [k0])) (y :: Proxy * [k0]) :: Bool Source #

PEq (Maybe k0) (Proxy * (Maybe k0)) Source # 

Associated Types

type ((Proxy * (Maybe k0)) :== (x :: Proxy * (Maybe k0))) (y :: Proxy * (Maybe k0)) :: Bool Source #

type ((Proxy * (Maybe k0)) :/= (x :: Proxy * (Maybe k0))) (y :: Proxy * (Maybe k0)) :: Bool Source #

PEq (NonEmpty k0) (Proxy * (NonEmpty k0)) Source # 

Associated Types

type ((Proxy * (NonEmpty k0)) :== (x :: Proxy * (NonEmpty k0))) (y :: Proxy * (NonEmpty k0)) :: Bool Source #

type ((Proxy * (NonEmpty k0)) :/= (x :: Proxy * (NonEmpty k0))) (y :: Proxy * (NonEmpty k0)) :: Bool Source #

PEq (Either k0 k1) (Proxy * (Either k0 k1)) Source # 

Associated Types

type ((Proxy * (Either k0 k1)) :== (x :: Proxy * (Either k0 k1))) (y :: Proxy * (Either k0 k1)) :: Bool Source #

type ((Proxy * (Either k0 k1)) :/= (x :: Proxy * (Either k0 k1))) (y :: Proxy * (Either k0 k1)) :: Bool Source #

PEq (k0, k1) (Proxy * (k0, k1)) Source # 

Associated Types

type ((Proxy * (k0, k1)) :== (x :: Proxy * (k0, k1))) (y :: Proxy * (k0, k1)) :: Bool Source #

type ((Proxy * (k0, k1)) :/= (x :: Proxy * (k0, k1))) (y :: Proxy * (k0, k1)) :: Bool Source #

PEq (k0, k1, k2) (Proxy * (k0, k1, k2)) Source # 

Associated Types

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

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

PEq (k0, k1, k2, k3) (Proxy * (k0, k1, k2, k3)) Source # 

Associated Types

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

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

PEq (k0, k1, k2, k3, k4) (Proxy * (k0, k1, k2, k3, k4)) Source # 

Associated Types

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

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

PEq (k0, k1, k2, k3, k4, k5) (Proxy * (k0, k1, k2, k3, k4, k5)) Source # 

Associated Types

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

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

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

Associated Types

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

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

data (:==$) l Source #

Instances

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

Methods

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

type Apply a1627662065 (TyFun a1627662065 Bool -> Type) ((:==$) a1627662065) l0 Source # 
type Apply a1627662065 (TyFun a1627662065 Bool -> Type) ((:==$) a1627662065) l0 = (:==$$) a1627662065 l0

data l :==$$ l Source #

Instances

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

Methods

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

type Apply a1627662065 Bool ((:==$$) a1627662065 l1) l0 Source # 
type Apply a1627662065 Bool ((:==$$) a1627662065 l1) l0 = (:==$$$) a1627662065 l1 l0

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

data (:/=$) l Source #

Instances

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

Methods

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

type Apply a1627662065 (TyFun a1627662065 Bool -> Type) ((:/=$) a1627662065) l0 Source # 
type Apply a1627662065 (TyFun a1627662065 Bool -> Type) ((:/=$) a1627662065) l0 = (:/=$$) a1627662065 l0

data l :/=$$ l Source #

Instances

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

Methods

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

type Apply a1627662065 Bool ((:/=$$) a1627662065 l1) l0 Source # 
type Apply a1627662065 Bool ((:/=$$) a1627662065 l1) l0 = (:/=$$$) a1627662065 l1 l0

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