Data.Proxy

base-4.9.0.0: Basic libraries

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

Data.Proxy

Description

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

Since: 4.7.0.0

Synopsis

- data Proxy t = Proxy
- asProxyTypeOf :: a -> Proxy a -> a
- data KProxy t = KProxy

# Documentation

data Proxy t Source

A concrete, poly-kinded proxy type

Constructors

Proxy |

Instances

Monad (Proxy (TYPE Lifted)) |
Methods (>>=) :: Proxy (TYPE Lifted) a -> (a -> Proxy (TYPE Lifted) b) -> Proxy (TYPE Lifted) b Source (>>) :: Proxy (TYPE Lifted) a -> Proxy (TYPE Lifted) b -> Proxy (TYPE Lifted) b Source return :: a -> Proxy (TYPE Lifted) a Source fail :: String -> Proxy (TYPE Lifted) a Source
Functor (Proxy (TYPE Lifted)) |
Methods fmap :: (a -> b) -> Proxy (TYPE Lifted) a -> Proxy (TYPE Lifted) b Source (<$) :: a -> Proxy (TYPE Lifted) b -> Proxy (TYPE Lifted) a Source
Applicative (Proxy (TYPE Lifted)) |
Methods pure :: a -> Proxy (TYPE Lifted) a Source (<*>) :: Proxy (TYPE Lifted) (a -> b) -> Proxy (TYPE Lifted) a -> Proxy (TYPE Lifted) b Source (*>) :: Proxy (TYPE Lifted) a -> Proxy (TYPE Lifted) b -> Proxy (TYPE Lifted) b Source (<*) :: Proxy (TYPE Lifted) a -> Proxy (TYPE Lifted) b -> Proxy (TYPE Lifted) a Source
Foldable (Proxy (TYPE Lifted)) |
Methods fold :: Monoid m => Proxy (TYPE Lifted) m -> m Source foldMap :: Monoid m => (a -> m) -> Proxy (TYPE Lifted) a -> m Source foldr :: (a -> b -> b) -> b -> Proxy (TYPE Lifted) a -> b Source foldr' :: (a -> b -> b) -> b -> Proxy (TYPE Lifted) a -> b Source foldl :: (b -> a -> b) -> b -> Proxy (TYPE Lifted) a -> b Source foldl' :: (b -> a -> b) -> b -> Proxy (TYPE Lifted) a -> b Source foldr1 :: (a -> a -> a) -> Proxy (TYPE Lifted) a -> a Source foldl1 :: (a -> a -> a) -> Proxy (TYPE Lifted) a -> a Source toList :: Proxy (TYPE Lifted) a -> [a] Source null :: Proxy (TYPE Lifted) a -> Bool Source length :: Proxy (TYPE Lifted) a -> Int Source elem :: Eq a => a -> Proxy (TYPE Lifted) a -> Bool Source maximum :: Ord a => Proxy (TYPE Lifted) a -> a Source minimum :: Ord a => Proxy (TYPE Lifted) a -> a Source sum :: Num a => Proxy (TYPE Lifted) a -> a Source product :: Num a => Proxy (TYPE Lifted) a -> a Source
Traversable (Proxy (TYPE Lifted)) |
Methods traverse :: Applicative f => (a -> f b) -> Proxy (TYPE Lifted) a -> f (Proxy (TYPE Lifted) b) Source sequenceA :: Applicative f => Proxy (TYPE Lifted) (f a) -> f (Proxy (TYPE Lifted) a) Source mapM :: Monad m => (a -> m b) -> Proxy (TYPE Lifted) a -> m (Proxy (TYPE Lifted) b) Source sequence :: Monad m => Proxy (TYPE Lifted) (m a) -> m (Proxy (TYPE Lifted) a) Source
Generic1 (Proxy *) |
Associated Types type Rep1 (Proxy * :: * -> TYPE Lifted) :: * -> * Source Methods from1 :: Proxy * a -> Rep1 (Proxy *) a Source to1 :: Rep1 (Proxy *) a -> Proxy * a Source
Bounded (Proxy k s) |
Methods minBound :: Proxy k s Source maxBound :: Proxy k s Source
Enum (Proxy k s) |
Methods succ :: Proxy k s -> Proxy k s Source pred :: Proxy k s -> Proxy k s Source toEnum :: Int -> Proxy k s Source fromEnum :: Proxy k s -> Int Source enumFrom :: Proxy k s -> [Proxy k s] Source enumFromThen :: Proxy k s -> Proxy k s -> [Proxy k s] Source enumFromTo :: Proxy k s -> Proxy k s -> [Proxy k s] Source enumFromThenTo :: Proxy k s -> Proxy k s -> Proxy k s -> [Proxy k s] Source
Eq (Proxy k s) |
Methods (==) :: Proxy k s -> Proxy k s -> Bool Source (/=) :: Proxy k s -> Proxy k s -> Bool Source
Data t => Data (Proxy (TYPE Lifted) t) |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Proxy (TYPE Lifted) t -> c (Proxy (TYPE Lifted) t) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Proxy (TYPE Lifted) t) Source toConstr :: Proxy (TYPE Lifted) t -> Constr Source dataTypeOf :: Proxy (TYPE Lifted) t -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c (Proxy (TYPE Lifted) t)) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Proxy (TYPE Lifted) t)) Source gmapT :: (forall b. Data b => b -> b) -> Proxy (TYPE Lifted) t -> Proxy (TYPE Lifted) t Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Proxy (TYPE Lifted) t -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Proxy (TYPE Lifted) t -> r Source gmapQ :: (forall d. Data d => d -> u) -> Proxy (TYPE Lifted) t -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Proxy (TYPE Lifted) t -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Proxy (TYPE Lifted) t -> m (Proxy (TYPE Lifted) t) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy (TYPE Lifted) t -> m (Proxy (TYPE Lifted) t) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy (TYPE Lifted) t -> m (Proxy (TYPE Lifted) t) Source
Ord (Proxy k s) |
Methods compare :: Proxy k s -> Proxy k s -> Ordering Source (<) :: Proxy k s -> Proxy k s -> Bool Source (<=) :: Proxy k s -> Proxy k s -> Bool Source (>) :: Proxy k s -> Proxy k s -> Bool Source (>=) :: Proxy k s -> Proxy k s -> Bool Source max :: Proxy k s -> Proxy k s -> Proxy k s Source min :: Proxy k s -> Proxy k s -> Proxy k s Source
Read (Proxy k s) |
Methods readsPrec :: Int -> ReadS (Proxy k s) Source readList :: ReadS [Proxy k s] Source readPrec :: ReadPrec (Proxy k s) Source readListPrec :: ReadPrec [Proxy k s] Source
Show (Proxy k s) |
Methods showsPrec :: Int -> Proxy k s -> ShowS Source show :: Proxy k s -> String Source showList :: [Proxy k s] -> ShowS Source
Ix (Proxy k s) |
Methods range :: (Proxy k s, Proxy k s) -> [Proxy k s] Source index :: (Proxy k s, Proxy k s) -> Proxy k s -> Int Source unsafeIndex :: (Proxy k s, Proxy k s) -> Proxy k s -> Int inRange :: (Proxy k s, Proxy k s) -> Proxy k s -> Bool Source rangeSize :: (Proxy k s, Proxy k s) -> Int Source unsafeRangeSize :: (Proxy k s, Proxy k s) -> Int
Generic (Proxy k t) |
Associated Types type Rep (Proxy k t) :: * -> * Source Methods from :: Proxy k t -> Rep (Proxy k t) x Source to :: Rep (Proxy k t) x -> Proxy k t Source
Semigroup (Proxy k s) |
Methods (<>) :: Proxy k s -> Proxy k s -> Proxy k s Source sconcat :: NonEmpty (Proxy k s) -> Proxy k s Source stimes :: Integral b => b -> Proxy k s -> Proxy k s Source
Monoid (Proxy k s) |
Methods mempty :: Proxy k s Source mappend :: Proxy k s -> Proxy k s -> Proxy k s Source mconcat :: [Proxy k s] -> Proxy k s Source
type Rep1 (Proxy k) = D1 (MetaData "Proxy" "Data.Proxy" "base" False) (C1 (MetaCons "Proxy" PrefixI False) U1) |
type Rep (Proxy k t) = D1 (MetaData "Proxy" "Data.Proxy" "base" False) (C1 (MetaCons "Proxy" PrefixI False) U1) |

asProxyTypeOf :: a -> Proxy a -> a Source

`asProxyTypeOf` is a type-restricted version of `const`. 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.

data KProxy t 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 |