Copyright | (c) Fumiaki Kinoshita 2018 |
---|---|
License | BSD3 |
Maintainer | Fumiaki Kinoshita <fumiexcel@gmail.com> |
Safe Haskell | None |
Language | Haskell2010 |
Synopsis
- module Data.Extensible.Class
- module Data.Extensible.Dictionary
- module Data.Extensible.Field
- module Data.Extensible.Inclusion
- module Data.Extensible.Label
- module Data.Extensible.Match
- module Data.Extensible.Nullable
- module Data.Extensible.Product
- module Data.Extensible.Record
- module Data.Extensible.Sum
- module Data.Extensible.Tangle
- module Data.Extensible.TH
- module Data.Extensible.Wrapper
- data Proxy (t :: k) :: forall k. k -> Type = Proxy
- class KnownSymbol (n :: Symbol)
Documentation
module Data.Extensible.Class
module Data.Extensible.Dictionary
module Data.Extensible.Field
module Data.Extensible.Inclusion
module Data.Extensible.Label
module Data.Extensible.Match
module Data.Extensible.Nullable
module Data.Extensible.Product
module Data.Extensible.Record
module Data.Extensible.Sum
module Data.Extensible.Tangle
module Data.Extensible.TH
module Data.Extensible.Wrapper
data Proxy (t :: k) :: forall k. k -> Type #
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,
is a safer alternative to the
Proxy
:: Proxy
a'undefined :: a'
idiom.
>>>
Proxy :: Proxy (Void, Int -> Int)
Proxy
Proxy can even hold types of higher kinds,
>>>
Proxy :: Proxy Either
Proxy
>>>
Proxy :: Proxy Functor
Proxy
>>>
Proxy :: Proxy complicatedStructure
Proxy
Instances
Generic1 (Proxy :: k -> Type) | |
Wrapper (Proxy :: k -> Type) Source # | |
k ~ l => IsLabel k (Proxy l) Source # | |
Defined in Data.Extensible.Label | |
Bits r => FromBits r (Proxy a) Source # | |
Monad (Proxy :: Type -> Type) | Since: base-4.7.0.0 |
Functor (Proxy :: Type -> Type) | Since: base-4.7.0.0 |
Applicative (Proxy :: Type -> Type) | Since: base-4.7.0.0 |
Foldable (Proxy :: Type -> Type) | Since: base-4.7.0.0 |
Defined in Data.Foldable fold :: Monoid m => Proxy m -> 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 # elem :: Eq a => a -> Proxy a -> Bool # maximum :: Ord a => Proxy a -> a # minimum :: Ord a => Proxy a -> a # | |
Traversable (Proxy :: Type -> Type) | Since: base-4.7.0.0 |
ToJSON1 (Proxy :: Type -> Type) | |
Defined in Data.Aeson.Types.ToJSON liftToJSON :: (a -> Value) -> ([a] -> Value) -> Proxy a -> Value # liftToJSONList :: (a -> Value) -> ([a] -> Value) -> [Proxy a] -> Value # liftToEncoding :: (a -> Encoding) -> ([a] -> Encoding) -> Proxy a -> Encoding # liftToEncodingList :: (a -> Encoding) -> ([a] -> Encoding) -> [Proxy a] -> Encoding # | |
FromJSON1 (Proxy :: Type -> Type) | |
Alternative (Proxy :: Type -> Type) | Since: base-4.9.0.0 |
MonadPlus (Proxy :: Type -> Type) | Since: base-4.9.0.0 |
Eq1 (Proxy :: Type -> Type) | Since: base-4.9.0.0 |
Ord1 (Proxy :: Type -> Type) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Read1 (Proxy :: Type -> Type) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Show1 (Proxy :: Type -> Type) | Since: base-4.9.0.0 |
NFData1 (Proxy :: Type -> Type) | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
Hashable1 (Proxy :: Type -> Type) | |
Defined in Data.Hashable.Class | |
Cosieve (Tagged :: Type -> Type -> Type) (Proxy :: Type -> Type) | |
Defined in Data.Profunctor.Sieve | |
Bounded (Proxy t) | Since: base-4.7.0.0 |
Enum (Proxy s) | Since: base-4.7.0.0 |
Eq (Proxy s) | Since: base-4.7.0.0 |
Ord (Proxy s) | Since: base-4.7.0.0 |
Read (Proxy t) | Since: base-4.7.0.0 |
Show (Proxy s) | Since: base-4.7.0.0 |
Ix (Proxy s) | Since: base-4.7.0.0 |
Generic (Proxy t) | |
Semigroup (Proxy s) | Since: base-4.9.0.0 |
Monoid (Proxy s) | Since: base-4.7.0.0 |
Hashable (Proxy a) | |
Defined in Data.Hashable.Class | |
ToJSON (Proxy a) | |
Defined in Data.Aeson.Types.ToJSON | |
FromJSON (Proxy a) | |
NFData (Proxy a) | Since: deepseq-1.4.0.0 |
Defined in Control.DeepSeq | |
Last xs ∈ xs => Bounded (xs :/ (Proxy :: k -> Type)) Source # | |
Enum (xs :/ (Proxy :: k -> Type)) Source # | |
Defined in Data.Extensible.Sum succ :: (xs :/ Proxy) -> xs :/ Proxy # pred :: (xs :/ Proxy) -> xs :/ Proxy # toEnum :: Int -> xs :/ Proxy # fromEnum :: (xs :/ Proxy) -> Int # enumFrom :: (xs :/ Proxy) -> [xs :/ Proxy] # enumFromThen :: (xs :/ Proxy) -> (xs :/ Proxy) -> [xs :/ Proxy] # enumFromTo :: (xs :/ Proxy) -> (xs :/ Proxy) -> [xs :/ Proxy] # enumFromThenTo :: (xs :/ Proxy) -> (xs :/ Proxy) -> (xs :/ Proxy) -> [xs :/ Proxy] # | |
type Rep1 (Proxy :: k -> Type) | Since: base-4.6.0.0 |
type Repr (Proxy :: k -> Type) (x :: k) Source # | |
Defined in Data.Extensible.Wrapper | |
type Rep (Proxy t) | Since: base-4.6.0.0 |
type BitWidth (Proxy a) Source # | |
Defined in Data.Extensible.Bits |
class KnownSymbol (n :: Symbol) #
This class gives the string associated with a type-level symbol. There are instances of the class for every concrete literal: "hello", etc.
Since: base-4.7.0.0
symbolSing