Spec-Zone.ru › Haskell 9

Data.Proxy

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

Описание

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

Начиная с: base-4.7.0.0

data Proxy (t :: k) Source

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)

Since: 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) Источник

Since: base-4.9.0.0

Сведения об экземпляре

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

Методы

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

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

Since: base-4.9.0.0

Сведения об экземпляре

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

Методы

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

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

Since: 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) Источник

Since: 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) Источник
Сведения об экземпляре

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

Методы

contramap :: (a' -> a) -> Proxy a -> Proxy a' Источник

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

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

Since: base-4.9.0.0

Сведения об экземпляре

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

Методы

empty :: Proxy a Источник

(<|>) :: Proxy a -> Proxy a -> Proxy a Источник

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

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

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

Since: base-4.7.0.0

Сведения об экземпляре

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

Методы

pure :: a -> Proxy a Источник

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

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

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

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

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

Since: base-4.7.0.0

Сведения об экземпляре

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

Методы

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

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

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

Since: base-4.7.0.0

Сведения об экземпляре

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

Методы

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

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

return :: a -> Proxy a Источник

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

Since: base-4.9.0.0

Сведения об экземпляре

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

Методы

mzero :: Proxy a Источник

mplus :: Proxy a -> Proxy a -> Proxy a Источник

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

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) Источник

Since: 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

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

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

Методы

mempty :: Proxy s Исходный код

mappend :: Proxy s -> Proxy s -> Proxy s Исходный код

mconcat :: [Proxy s] -> Proxy s Исходный код

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

Начиная с: base-4.9.0.0

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

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

Методы

(<>) :: Proxy s -> Proxy s -> Proxy s Исходный код

sconcat :: NonEmpty (Proxy s) -> Proxy s Исходный код

stimes :: Integral b => b -> Proxy s -> Proxy s Исходный код

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 Исходный код

Data t => Data (Proxy t) Исходный код

Начиная с: base-4.7.0.0

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

Определено в 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) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Proxy t) Исходный код

toConstr :: Proxy t -> Constr Исходный код

dataTypeOf :: Proxy t -> DataType Исходный код

dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (Proxy t)) Исходный код

dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (Proxy t)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> Proxy t -> Proxy t Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> Proxy t -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> Proxy t -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Исходный код

Bounded (Proxy t) Исходный код

Начиная с: base-4.7.0.0

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

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

Методы

minBound :: Proxy t Исходный код

maxBound :: Proxy t Исходный код

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

Начиная с: base-4.7.0.0

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

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

Методы

succ :: Proxy s -> Proxy s Исходный код

pred :: Proxy s -> Proxy s Исходный код

toEnum :: Int -> Proxy s Исходный код

fromEnum :: Proxy s -> Int Исходный код

enumFrom :: Proxy s -> [Proxy s] Исходный код

enumFromThen :: Proxy s -> Proxy s -> [Proxy s] Исходный код

enumFromTo :: Proxy s -> Proxy s -> [Proxy s] Исходный код

enumFromThenTo :: Proxy s -> Proxy s -> Proxy s -> [Proxy s] Исходный код

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

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

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

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 :: Type -> Type))

Методы

from :: Proxy t -> Rep (Proxy t) x Исходный код

to :: Rep (Proxy t) x -> Proxy t Исходный код

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

Начиная с: base-4.7.0.0

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

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

Методы

range :: (Proxy s, Proxy s) -> [Proxy s] Исходный код

index :: (Proxy s, Proxy s) -> Proxy s -> Int Исходный код

unsafeIndex :: (Proxy s, Proxy s) -> Proxy s -> Int Исходный код

inRange :: (Proxy s, Proxy s) -> Proxy s -> Bool Исходный код

rangeSize :: (Proxy s, Proxy s) -> Int Исходный код

unsafeRangeSize :: (Proxy s, Proxy s) -> Int Исходный код

Read (Proxy t) Исходный код

Начиная с: 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 Исходный код

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))
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 :: Type -> Type))

asProxyTypeOf :: a -> proxy a -> a Исходный код

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 Исходный код

Конкретный прокси-тип с возможностью повышения уровня, предназначенный для использования на уровне kind. У него нет экземпляров, поскольку он предназначен только для уровня kind

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

KProxy

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/Data-Proxy.html

Spec-Zone.ru

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