Spec-Zone.ru › Haskell 9

Data.Type.Ord

License BSD-style (see the LICENSE file in the distribution)
Maintainer libraries@haskell.org
Stability stable
Portability not portable
Safe Haskell Safe
Language Haskell2010

Описание

Основные операции над порядками на уровне типов.

Since: base-4.16.0.0

type family Compare (a :: k) (b :: k) :: Ordering Source

Compare ветвится в зависимости от рода своих аргументов, чтобы сравнивать либо по Symbol или Nat.

Since: base-4.16.0.0

Экземпляры
Подробности экземпляров
type Compare (a :: Natural) (b :: Natural) Source
Подробности экземпляра

Определено в GHC.Internal.Data.Type.Ord

type Compare (a :: Natural) (b :: Natural) = CmpNat a b
type Compare (a :: Char) (b :: Char) Source
Подробности экземпляра

Определено в GHC.Internal.Data.Type.Ord

type Compare (a :: Char) (b :: Char) = CmpChar a b
type Compare (a :: Symbol) (b :: Symbol) Source
Подробности экземпляра

Определено в GHC.Internal.Data.Type.Ord

type Compare (a :: Symbol) (b :: Symbol) = CmpSymbol a b

data OrderingI (a :: k) (b :: k) where Source

Тип данных Ordering для литералов типов, который обеспечивает доказательство их порядка.

Since: base-4.16.0.0

Конструкторы

LTI :: forall {k} (a :: k) (b :: k). Compare a b ~ 'LT => OrderingI a b
EQI :: forall {k} (a :: k). Compare a a ~ 'EQ => OrderingI a a
GTI :: forall {k} (a :: k) (b :: k). Compare a b ~ 'GT => OrderingI a b
Экземпляры
Подробности экземпляров
Show (OrderingI a b) Source
Подробности экземпляра

Определено в GHC.Internal.Data.Type.Ord

Методы

showsPrec :: Int -> OrderingI a b -> ShowS Source

show :: OrderingI a b -> String Source

showList :: [OrderingI a b] -> ShowS Source

Eq (OrderingI a b) Source
Подробности экземпляра

Определено в GHC.Internal.Data.Type.Ord

Методы

(==) :: OrderingI a b -> OrderingI a b -> Bool Source

(/=) :: OrderingI a b -> OrderingI a b -> Bool Source

type (<=) (x :: t) (y :: t) = Assert (x <=? y) (LeErrMsg x y :: Constraint) infix 4 Source

Сравнение (<=) сравнимых типов, как ограничение.

Since: base-4.16.0.0

type (<=?) (m :: k) (n :: k) = OrdCond (Compare m n) 'True 'True 'False infix 4 Source

Сравнение (<=) сравнимых типов, как функция.

Since: base-4.16.0.0

type (>=) (x :: t) (y :: t) = Assert (x >=? y) (GeErrMsg x y :: Constraint) infix 4 Source

Сравнение (>=) сравнимых типов, как ограничение.

Since: base-4.16.0.0

type (>=?) (m :: k) (n :: k) = OrdCond (Compare m n) 'False 'True 'True infix 4 Source

Сравнение (>=) сравнимых типов, как функция.

С момента: base-4.16.0.0

type (>) (x :: t) (y :: t) = Assert (x >? y) (GtErrMsg x y :: Constraint) infix 4 Source

Сравнение (>) сравнимых типов, как ограничение.

С момента: base-4.16.0.0

type (>?) (m :: k) (n :: k) = OrdCond (Compare m n) 'False 'False 'True infix 4 Source

Сравнение (>) сравнимых типов, как функция.

С момента: base-4.16.0.0

type (<) (x :: t) (y :: t) = Assert (x <? y) (LtErrMsg x y :: Constraint) infix 4 Source

Сравнение (<) сравнимых типов, как ограничение.

С момента: base-4.16.0.0

type (<?) (m :: k) (n :: k) = OrdCond (Compare m n) 'True 'False 'False infix 4 Source

Сравнение (<) сравнимых типов, как функция.

С момента: base-4.16.0.0

type Max (m :: k) (n :: k) = OrdCond (Compare m n) n n m Source

Максимальное значение между двумя сравнимыми типами.

С момента: base-4.16.0.0

type Min (m :: k) (n :: k) = OrdCond (Compare m n) m m n Source

Минимальное значение между двумя сравнимыми типами.

С момента: base-4.16.0.0

type family OrdCond (o :: Ordering) (lt :: k) (eq :: k) (gt :: k) :: k where ... Source

Условное выражение для Ordering.

OrdCond c l e g — это l, когда c ~ LT, e — когда c ~ EQ, и g — когда c ~ GT.

С момента: base-4.16.0.0

Уравнения

OrdCond 'LT (lt :: k) (eq :: k) (gt :: k) = lt
OrdCond 'EQ (lt :: k) (eq :: k) (gt :: k) = eq
OrdCond 'GT (lt :: k) (eq :: k) (gt :: k) = gt

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Data-Type-Ord.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API