Spec-Zone.ru › Haskell 9

Data.Proxy

Лицензия BSD-style (см. файл LICENSE в дистрибутиве)
Поддержка libraries@haskell.org
Стабильность стабильная
Переносимость переносимая
Safe Haskell Safe
Язык Haskell2010

Описание

Определение типа Proxy (поликиндного в GHC)

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

data Proxy (t :: k) Исходный код

Proxy — это тип, который не содержит данных, но имеет фантомный параметр произвольного типа (или даже рода). Его использование заключается в предоставлении информации о типе, даже если нет доступного значения этого типа (или создание такого значения может быть слишком дорогостоящим).

Исторически, Proxy :: Proxy a — более безопасная альтернатива undefined :: a конструкции.

>>> Proxy :: Proxy (Void, Int -> Int)
Proxy

Proxy может даже содержать типы более высоких родов,

>>> Proxy :: Proxy Either
Proxy
>>> Proxy :: Proxy Functor
Proxy
>>> Proxy :: Proxy complicatedStructure
Proxy

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

Proxy
Экземпляры
Подробности о экземплярах
Generic1 (Proxy :: k -> Type) Источник
Подробности о экземпляре

Определено в GHC.Internal.Generics

Связанные типы

type Rep1 (Proxy :: k -> Type)

С версии: base-4.6.0.0

Подробности о экземпляре

Определено в GHC.Internal.Generics

type Rep1 (Proxy :: k -> Type) = D1 ('MetaData "Proxy" "GHC.Internal.Data.Proxy" "ghc-internal" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: k -> Type))

Методы

from1 :: forall (a :: k). Proxy a -> Rep1 (Proxy :: k -> Type) a Источник

to1 :: forall (a :: k). Rep1 (Proxy :: k -> Type) a -> Proxy a Источник

Eq1 (Proxy :: Type -> Type) Источник

С версии: base-4.9.0.0

Подробности о экземпляре

Определено в Data.Functor.Classes

Методы

liftEq :: (a -> b -> Bool) -> Proxy a -> Proxy b -> Bool Источник

Ord1 (Proxy :: Type -> Type) Источник

С версии: base-4.9.0.0

Подробности о экземпляре

Определено в Data.Functor.Classes

Методы

liftCompare :: (a -> b -> Ordering) -> Proxy a -> Proxy b -> Ordering Источник

Read1 (Proxy :: Type -> Type) Источник

С версии: base-4.9.0.0

Подробности о экземпляре

Определено в Data.Functor.Classes

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Proxy a) Источник

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Proxy a] Источник

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Proxy a) Источник

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Proxy a] Источник

Show1 (Proxy :: Type -> Type) Источник

С версии: base-4.9.0.0

Подробности о экземпляре

Определено в Data.Functor.Classes

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Proxy a -> ShowS Источник

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Proxy a] -> ShowS Источник

Contravariant (Proxy :: Type -> Type) Источник
Instance details

Определено в Data.Functor.Contravariant

Methods

contramap :: (a' -> a) -> Proxy a -> Proxy a' Source

(>$) :: b -> Proxy b -> Proxy a Source

Alternative (Proxy :: Type -> Type) Source

Since: base-4.9.0.0

Instance details

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

Methods

empty :: Proxy a Source

(<|>) :: Proxy a -> Proxy a -> Proxy a Source

some :: Proxy a -> Proxy [a] Source

many :: Proxy a -> Proxy [a] Source

Applicative (Proxy :: Type -> Type) Source

Since: base-4.7.0.0

Instance details

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

Methods

pure :: a -> Proxy a Source

(<*>) :: Proxy (a -> b) -> Proxy a -> Proxy b Source

liftA2 :: (a -> b -> c) -> Proxy a -> Proxy b -> Proxy c Source

(*>) :: Proxy a -> Proxy b -> Proxy b Source

(<*) :: Proxy a -> Proxy b -> Proxy a Source

Functor (Proxy :: Type -> Type) Source

Since: base-4.7.0.0

Instance details

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

Methods

fmap :: (a -> b) -> Proxy a -> Proxy b Source

(<$) :: a -> Proxy b -> Proxy a Source

Monad (Proxy :: Type -> Type) Source

Since: base-4.7.0.0

Instance details

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

Methods

(>>=) :: Proxy a -> (a -> Proxy b) -> Proxy b Source

(>>) :: Proxy a -> Proxy b -> Proxy b Source

return :: a -> Proxy a Source

MonadPlus (Proxy :: Type -> Type) Source

Since: base-4.9.0.0

Instance details

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

Methods

mzero :: Proxy a Source

mplus :: Proxy a -> Proxy a -> Proxy a Source

MonadZip (Proxy :: Type -> Type) Source

Since: ghc-internal-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Control.Monad.Zip

Краткое описание методов

mzip :: Proxy a -> Proxy b -> Proxy (a, b) Исходный код

mzipWith :: (a -> b -> c) -> Proxy a -> Proxy b -> Proxy c Исходный код

munzip :: Proxy (a, b) -> (Proxy a, Proxy b) Исходный код

Foldable (Proxy :: Type -> Type) Исходный код

С версии: base-4.7.0.0

Подробности экземпляра

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

Краткое описание методов

fold :: Monoid m => Proxy m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> Proxy a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> Proxy a -> m Исходный код

foldr :: (a -> b -> b) -> b -> Proxy a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> Proxy a -> b Исходный код

foldl :: (b -> a -> b) -> b -> Proxy a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> Proxy a -> b Исходный код

foldr1 :: (a -> a -> a) -> Proxy a -> a Исходный код

foldl1 :: (a -> a -> a) -> Proxy a -> a Исходный код

toList :: Proxy a -> [a] Исходный код

null :: Proxy a -> Bool Исходный код

length :: Proxy a -> Int Исходный код

elem :: Eq a => a -> Proxy a -> Bool Исходный код

maximum :: Ord a => Proxy a -> a Исходный код

minimum :: Ord a => Proxy a -> a Исходный код

sum :: Num a => Proxy a -> a Исходный код

product :: Num a => Proxy a -> a Исходный код

Traversable (Proxy :: Type -> Type) Исходный код

С версии: base-4.7.0.0

Подробности экземпляра

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

Краткое описание методов

traverse :: Applicative f => (a -> f b) -> Proxy a -> f (Proxy b) Исходный код

sequenceA :: Applicative f => Proxy (f a) -> f (Proxy a) Исходный код

mapM :: Monad m => (a -> m b) -> Proxy a -> m (Proxy b) Исходный код

sequence :: Monad m => Proxy (m a) -> m (Proxy a) Исходный код

Monoid (Proxy s) Исходный код

С версии: base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Proxy

Методы

mempty :: Proxy s Source

mappend :: Proxy s -> Proxy s -> Proxy s Source

mconcat :: [Proxy s] -> Proxy s Source

Semigroup (Proxy s) Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Proxy

Методы

(<>) :: Proxy s -> Proxy s -> Proxy s Source

sconcat :: NonEmpty (Proxy s) -> Proxy s Source

stimes :: Integral b => b -> Proxy s -> Proxy s Source

Data t => Data (Proxy t) Source

Since: base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Proxy t -> c (Proxy t) Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Proxy t) Source

toConstr :: Proxy t -> Constr Source

dataTypeOf :: Proxy t -> DataType Source

dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (Proxy t)) Source

dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (Proxy t)) Source

gmapT :: (forall b. Data b => b -> b) -> Proxy t -> Proxy t Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r Source

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Proxy t -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Proxy t -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source

Bounded (Proxy t) Source

Since: base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Proxy

Методы

minBound :: Proxy t Source

maxBound :: Proxy t Source

Enum (Proxy s) Source

Since: base-4.7.0.0

Подробности экземпляра

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

Методы

succ :: Proxy s -> Proxy s Source

pred :: Proxy s -> Proxy s Source

toEnum :: Int -> Proxy s Source

fromEnum :: Proxy s -> Int Source

enumFrom :: Proxy s -> [Proxy s] Source

enumFromThen :: Proxy s -> Proxy s -> [Proxy s] Source

enumFromTo :: Proxy s -> Proxy s -> [Proxy s] Source

enumFromThenTo :: Proxy s -> Proxy s -> Proxy s -> [Proxy s] Source

Generic (Proxy t) Source
Подробности экземпляра

Определено в GHC.Internal.Generics

Связанные типы

type Rep (Proxy t)

Since: base-4.6.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

type Rep (Proxy t) = D1 ('MetaData "Proxy" "GHC.Internal.Data.Proxy" "ghc-internal" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: Type -> Type))

Методы

from :: Proxy t -> Rep (Proxy t) x Source

to :: Rep (Proxy t) x -> Proxy t Source

Ix (Proxy s) Source

Since: base-4.7.0.0

Подробности экземпляра

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

Методы

range :: (Proxy s, Proxy s) -> [Proxy s] Source

index :: (Proxy s, Proxy s) -> Proxy s -> Int Source

unsafeIndex :: (Proxy s, Proxy s) -> Proxy s -> Int Source

inRange :: (Proxy s, Proxy s) -> Proxy s -> Bool Source

rangeSize :: (Proxy s, Proxy s) -> Int Source

unsafeRangeSize :: (Proxy s, Proxy s) -> Int Source

Read (Proxy t) Source

Since: base-4.7.0.0

Подробности экземпляра

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

Методы

readsPrec :: Int -> ReadS (Proxy t) Источник

readList :: ReadS [Proxy t] Источник

readPrec :: ReadPrec (Proxy t) Источник

readListPrec :: ReadPrec [Proxy t] Источник

Show (Proxy s) Источник

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

Подробности экземпляра

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

Методы

showsPrec :: Int -> Proxy s -> ShowS Источник

show :: Proxy s -> String Источник

showList :: [Proxy s] -> ShowS Источник

Eq (Proxy s) Источник

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

Подробности экземпляра

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

Методы

(==) :: Proxy s -> Proxy s -> Bool Источник

(/=) :: Proxy s -> Proxy s -> Bool Источник

Ord (Proxy s) Источник

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

Подробности экземпляра

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

Методы

compare :: Proxy s -> Proxy s -> Ordering Источник

(<) :: Proxy s -> Proxy s -> Bool Источник

(<=) :: Proxy s -> Proxy s -> Bool Источник

(>) :: Proxy s -> Proxy s -> Bool Источник

(>=) :: Proxy s -> Proxy s -> Bool Источник

max :: Proxy s -> Proxy s -> Proxy s Источник

min :: Proxy s -> Proxy s -> Proxy s Источник

type Rep1 (Proxy :: k -> Тип) Источник

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

Подробности экземпляра

Определено в GHC.Internal.Generics

type Rep1 (Proxy :: k -> Тип) = D1 ('MetaData "Proxy" "GHC.Internal.Data.Proxy" "ghc-internal" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: k -> Тип))
type Rep (Proxy t) Источник

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

Подробности экземпляра

Определено в GHC.Internal.Generics

type Rep (Proxy t) = D1 ('MetaData "Proxy" "GHC.Internal.Data.Proxy" "ghc-internal" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: Тип -> Тип))

asProxyTypeOf :: a -> proxy a -> a Source

asProxyTypeOf представляет собой ограниченную по типу версию const. Обычно используется как инфиксный оператор, и его типизация требует, чтобы его первый аргумент (который, как правило, перегружен) имел тот же тип, что и метка второго.

>>> import GHC.Internal.Word
>>> :type asProxyTypeOf 123 (Proxy :: Proxy Word8)
asProxyTypeOf 123 (Proxy :: Proxy Word8) :: Word8

Обратите внимание на строчную proxy в определении. Это позволяет передавать в функцию любой тип-конструктор с одним аргументом; например, мы также можем написать

>>> import GHC.Internal.Word
>>> :type asProxyTypeOf 123 (Just (undefined :: Word8))
asProxyTypeOf 123 (Just (undefined :: Word8)) :: Word8

data KProxy t Source

Конкретный, продвинутый тип прокси, используемый на уровне рода. Для него нет инстансов, так как он предназначен только для уровня рода.

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

KProxy

© 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-Proxy.html

Spec-Zone.ru

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