Movatterモバイル変換


[0]ホーム

URL:


base-4.12.0.0: Basic libraries

LicenseBSD-style (see the LICENSE file in the distribution)
Maintainerlibraries@haskell.org
Stabilityexperimental
Portabilityportable
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Proxy

Description

Definition of a Proxy type (poly-kinded in GHC)

Since: 4.7.0.0

Synopsis

Documentation

dataProxy tSource#

Proxy is a type that holds no data, but has a phantom parameter of arbitrary type (or even kind). Its use is to provide type information, even though there is no value available of that type (or it may be too costly to create one).

Historically,Proxy ::Proxy a is a safer alternative to the'undefined :: a' idiom.

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

Proxy can even hold types of higher kinds,

>>>Proxy :: Proxy EitherProxy
>>>Proxy :: Proxy FunctorProxy
>>>Proxy :: Proxy complicatedStructureProxy

Constructors

Proxy 
Instances
Generic1 (Proxy :: k ->Type)Source# 
Instance details

Defined inGHC.Generics

Associated Types

typeRep1Proxy :: k ->TypeSource#

Monad (Proxy ::Type ->Type)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Methods

(>>=) ::Proxy a -> (a ->Proxy b) ->Proxy bSource#

(>>) ::Proxy a ->Proxy b ->Proxy bSource#

return :: a ->Proxy aSource#

fail ::String ->Proxy aSource#

Functor (Proxy ::Type ->Type)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Methods

fmap :: (a -> b) ->Proxy a ->Proxy bSource#

(<$) :: a ->Proxy b ->Proxy aSource#

Applicative (Proxy ::Type ->Type)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Methods

pure :: a ->Proxy aSource#

(<*>) ::Proxy (a -> b) ->Proxy a ->Proxy bSource#

liftA2 :: (a -> b -> c) ->Proxy a ->Proxy b ->Proxy cSource#

(*>) ::Proxy a ->Proxy b ->Proxy bSource#

(<*) ::Proxy a ->Proxy b ->Proxy aSource#

Foldable (Proxy ::Type ->Type)Source#

Since: 4.7.0.0

Instance details

Defined inData.Foldable

Methods

fold ::Monoid m =>Proxy m -> mSource#

foldMap ::Monoid m => (a -> m) ->Proxy a -> mSource#

foldr :: (a -> b -> b) -> b ->Proxy a -> bSource#

foldr' :: (a -> b -> b) -> b ->Proxy a -> bSource#

foldl :: (b -> a -> b) -> b ->Proxy a -> bSource#

foldl' :: (b -> a -> b) -> b ->Proxy a -> bSource#

foldr1 :: (a -> a -> a) ->Proxy a -> aSource#

foldl1 :: (a -> a -> a) ->Proxy a -> aSource#

toList ::Proxy a -> [a]Source#

null ::Proxy a ->BoolSource#

length ::Proxy a ->IntSource#

elem ::Eq a => a ->Proxy a ->BoolSource#

maximum ::Ord a =>Proxy a -> aSource#

minimum ::Ord a =>Proxy a -> aSource#

sum ::Num a =>Proxy a -> aSource#

product ::Num a =>Proxy a -> aSource#

Traversable (Proxy ::Type ->Type)Source#

Since: 4.7.0.0

Instance details

Defined inData.Traversable

Methods

traverse ::Applicative f => (a -> f b) ->Proxy a -> f (Proxy b)Source#

sequenceA ::Applicative f =>Proxy (f a) -> f (Proxy a)Source#

mapM ::Monad m => (a -> m b) ->Proxy a -> m (Proxy b)Source#

sequence ::Monad m =>Proxy (m a) -> m (Proxy a)Source#

MonadPlus (Proxy ::Type ->Type)Source#

Since: 4.9.0.0

Instance details

Defined inData.Proxy

Alternative (Proxy ::Type ->Type)Source#

Since: 4.9.0.0

Instance details

Defined inData.Proxy

MonadZip (Proxy ::Type ->Type)Source#

Since: 4.9.0.0

Instance details

Defined inControl.Monad.Zip

Methods

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

mzipWith :: (a -> b -> c) ->Proxy a ->Proxy b ->Proxy cSource#

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

Show1 (Proxy ::Type ->Type)Source#

Since: 4.9.0.0

Instance details

Defined inData.Functor.Classes

Methods

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

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

Read1 (Proxy ::Type ->Type)Source#

Since: 4.9.0.0

Instance details

Defined inData.Functor.Classes

Ord1 (Proxy ::Type ->Type)Source#

Since: 4.9.0.0

Instance details

Defined inData.Functor.Classes

Methods

liftCompare :: (a -> b ->Ordering) ->Proxy a ->Proxy b ->OrderingSource#

Eq1 (Proxy ::Type ->Type)Source#

Since: 4.9.0.0

Instance details

Defined inData.Functor.Classes

Methods

liftEq :: (a -> b ->Bool) ->Proxy a ->Proxy b ->BoolSource#

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

Defined inData.Functor.Contravariant

Methods

contramap :: (a -> b) ->Proxy b ->Proxy aSource#

(>$) :: b ->Proxy b ->Proxy aSource#

Bounded (Proxy t)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Enum (Proxy s)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Eq (Proxy s)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Methods

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

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

Data t =>Data (Proxy t)Source#

Since: 4.7.0.0

Instance details

Defined inData.Data

Methods

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 ->ConstrSource#

dataTypeOf ::Proxy t ->DataTypeSource#

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 tSource#

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

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

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

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

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)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Methods

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)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Show (Proxy s)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Ix (Proxy s)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

Generic (Proxy t)Source# 
Instance details

Defined inGHC.Generics

Associated Types

typeRep (Proxy t) ::Type ->TypeSource#

Methods

from ::Proxy t ->Rep (Proxy t) xSource#

to ::Rep (Proxy t) x ->Proxy tSource#

Semigroup (Proxy s)Source#

Since: 4.9.0.0

Instance details

Defined inData.Proxy

Monoid (Proxy s)Source#

Since: 4.7.0.0

Instance details

Defined inData.Proxy

typeRep1 (Proxy :: k ->Type)Source#

Since: 4.6.0.0

Instance details

Defined inGHC.Generics

typeRep1 (Proxy :: k ->Type) =D1 (MetaData "Proxy" "Data.Proxy" "base"False) (C1 (MetaCons "Proxy"PrefixIFalse) (U1 :: k ->Type))
typeRep (Proxy t)Source#

Since: 4.6.0.0

Instance details

Defined inGHC.Generics

typeRep (Proxy t) =D1 (MetaData "Proxy" "Data.Proxy" "base"False) (C1 (MetaCons "Proxy"PrefixIFalse) (U1 ::Type ->Type))

asProxyTypeOf :: a -> proxy a -> aSource#

asProxyTypeOf is a type-restricted version ofconst. It is usually used as an infix operator, and its typing forces its first argument (which is usually overloaded) to have the same type as the tag of the second.

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

Note the lower-caseproxy in the definition. This allows any type constructor with just one argument to be passed to the function, for example we could also write

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

dataKProxy (t ::Type)Source#

A concrete, promotable proxy type, for use at the kind level There are no instances for this because it is intended at the kind level only

Constructors

KProxy 

Produced byHaddock version 2.20.0


[8]ページ先頭

©2009-2025 Movatter.jp