Spec-Zone.ru › Haskell 8

Data.Proxy

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

Описание

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

Since: base-4.7.0.0

data Proxy t 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)

Since: base-4.6.0.0

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

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

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

type Rep1 Proxy :: k -> Type Source

Методы

from1 :: forall (a :: k0). Proxy a -> Rep1 Proxy a Source

to1 :: forall (a :: k0). Rep1 Proxy a -> Proxy a Source

Monad (Proxy :: Type -> Type)

Since: base-4.7.0.0

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

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

Методы

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

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

return :: a -> Proxy a Source

Functor (Proxy :: Type -> Type)

Since: base-4.7.0.0

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

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

Методы

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

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

Applicative (Proxy :: Type -> Type)

Since: base-4.7.0.0

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

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

Методы

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

Foldable (Proxy :: Type -> Type)

Since: base-4.7.0.0

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

Определено в 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

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

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

MonadPlus (Proxy :: Type -> Type)

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

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

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

Методы

mzero :: Proxy a Исходный код

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

Alternative (Proxy :: Type -> Type)

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

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

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

Методы

empty :: Proxy a Исходный код

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

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

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

MonadZip (Proxy :: Type -> Type)

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

Instance details

Defined in Control.Monad.Zip

Методы

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

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

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

Show1 (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Proxy a -> ShowS Source

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Proxy a] -> ShowS Source

Read1 (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Методы

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Proxy a) Source

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Proxy a] Source

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Proxy a) Source

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Proxy a] Source

Ord1 (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Методы

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

Eq1 (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Методы

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

Contravariant (Proxy :: Type -> Type)
Instance details

Defined in Data.Functor.Contravariant

Методы

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

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

Bounded (Proxy t)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Методы

minBound :: Proxy t Source

maxBound :: Proxy t Source

Enum (Proxy s)

Since: base-4.7.0.0

Instance details

Определено в 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

Eq (Proxy s)

Since: base-4.7.0.0

Instance details

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

Методы

(==) :: Proxy s -> Proxy s -> Bool Source

(/=) :: Proxy s -> Proxy s -> Bool Source

Data t => Data (Proxy t)

Since: base-4.7.0.0

Instance details

Определено в 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

Ord (Proxy s)

Since: base-4.7.0.0

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

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

Read (Proxy t)

С: base-4.7.0.0

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

Определено в 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

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

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

Методы

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

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

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

Ix (Proxy s)

С: base-4.7.0.0

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

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

Generic (Proxy t)

С: base-4.6.0.0

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

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

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

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

Методы

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

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

Semigroup (Proxy s)

С: base-4.9.0.0

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

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

Методы

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

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

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

Monoid (Proxy s)

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

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

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

Методы

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

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

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

type Rep1 (Proxy :: k -> Тип)
Подробности экземпляра

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

type Rep1 (Proxy :: k -> Тип) = D1 ('MetaData "Proxy" "Data.Proxy" "base" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: k -> Тип))
type Rep (Proxy t)
Подробности экземпляра

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

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

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

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

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

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

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

data KProxy (t :: Тип) Исходный код

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

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

KProxy

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

Spec-Zone.ru

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