base-4.9.1.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 *) # |
Methods (>>=) :: Proxy * a -> (a -> Proxy * b) -> Proxy * b Source # (>>) :: Proxy * a -> Proxy * b -> Proxy * b Source # return :: a -> Proxy * a Source # fail :: String -> Proxy * a Source #
Functor (Proxy *) # |
Methods fmap :: (a -> b) -> Proxy * a -> Proxy * b Source # (<$) :: a -> Proxy * b -> Proxy * a Source #
Applicative (Proxy *) # |
Methods pure :: a -> Proxy * a Source # (<*>) :: Proxy * (a -> b) -> Proxy * a -> Proxy * b Source # (*>) :: Proxy * a -> Proxy * b -> Proxy * b Source # (<*) :: Proxy * a -> Proxy * b -> Proxy * a Source #
Foldable (Proxy *) # |
Methods fold :: Monoid m => Proxy * m -> m Source # foldMap :: Monoid m => (a -> m) -> Proxy * a -> m Source # foldr :: (a -> b -> b) -> b -> Proxy * a -> b Source # foldr' :: (a -> b -> b) -> b -> Proxy * a -> b Source # foldl :: (b -> a -> b) -> b -> Proxy * a -> b Source # foldl' :: (b -> a -> b) -> b -> Proxy * a -> b Source # foldr1 :: (a -> a -> a) -> Proxy * a -> a Source # foldl1 :: (a -> a -> a) -> Proxy * a -> a Source # toList :: Proxy * a -> [a] Source # null :: Proxy * a -> Bool Source # length :: Proxy * a -> Int Source # elem :: Eq a => a -> Proxy * a -> Bool Source # maximum :: Ord a => Proxy * a -> a Source # minimum :: Ord a => Proxy * a -> a Source # sum :: Num a => Proxy * a -> a Source # product :: Num a => Proxy * a -> a Source #
Traversable (Proxy *) # |
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 #
Generic1 (Proxy *) # |
Associated Types type Rep1 (Proxy * :: * -> *) :: * -> * Source # Methods from1 :: Proxy * a -> Rep1 (Proxy *) a Source # to1 :: Rep1 (Proxy *) a -> Proxy * a Source #
MonadPlus (Proxy *) # |
Methods mzero :: Proxy * a Source # mplus :: Proxy * a -> Proxy * a -> Proxy * a Source #
Alternative (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 #
MonadZip (Proxy *) # |
Methods 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 *) # | Since: 4.9.0.0
Methods liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Proxy * a -> ShowS Source # liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Proxy * a] -> ShowS Source #
Read1 (Proxy *) # | Since: 4.9.0.0
Methods liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Proxy * a) Source # liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Proxy * a] Source #
Ord1 (Proxy *) # | Since: 4.9.0.0
Methods liftCompare :: (a -> b -> Ordering) -> Proxy * a -> Proxy * b -> Ordering Source #
Eq1 (Proxy *) # | Since: 4.9.0.0
Methods liftEq :: (a -> b -> Bool) -> Proxy * a -> Proxy * b -> Bool 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 * t) # |
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 -> Constr Source # dataTypeOf :: Proxy * t -> DataType Source # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Proxy * t)) Source # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t 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 :: (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 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 *) # |
type Rep1 (Proxy *) = D1 (MetaData "Proxy" "Data.Proxy" "base" False) (C1 (MetaCons "Proxy" PrefixI False) U1)
type Rep (Proxy k t) # |
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 |