Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class HasTypeProxy t where
- data AsType t
- proxyToAsType ∷ Proxy t → AsType t
- data Proxy (t ∷ k) = Proxy
- data FromSomeType (c ∷ Type → Constraint) b where
- FromSomeType ∷ c a ⇒ AsType a → (a → b) → FromSomeType c b
Documentation
class HasTypeProxy t where Source #
A family of singleton types used in this API to indicate which type to use where it would otherwise be ambiguous or merely unclear.
Values of this type are passed to deserialisation functions for example.
proxyToAsType ∷ Proxy t → AsType t Source #
Instances
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
idiom.undefined
:: a
>>>
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) | Since: base-4.6.0.0 |
DistributiveB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.DistributiveB | |
FunctorB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.FunctorB | |
ConstraintsB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.ConstraintsB type AllB c Proxy | |
ApplicativeB (Proxy ∷ (k → Type) → Type) | |
TraversableB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.TraversableB btraverse ∷ Applicative e ⇒ (∀ (a ∷ k0). f a → e (g a)) → Proxy f → e (Proxy g) | |
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 Source # foldMap ∷ Monoid m ⇒ (a → m) → Proxy a → 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 # | |
Traversable (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
MonadPlus (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
Alternative (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 | |
FromJSON1 (Proxy ∷ Type → Type) | |
Defined in Data.Aeson.Types.FromJSON liftParseJSON ∷ (Value → Parser a) → (Value → Parser [a]) → Value → Parser (Proxy a) liftParseJSONList ∷ (Value → Parser a) → (Value → Parser [a]) → Value → Parser [Proxy a] | |
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 | |
Representable (Proxy ∷ Type → Type) | |
Bounded (Proxy t) | Since: base-4.7.0.0 |
Enum (Proxy s) | Since: base-4.7.0.0 |
Defined in 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 |
Ord (Proxy s) | Since: base-4.7.0.0 |
Defined in Data.Proxy | |
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) | Since: base-4.6.0.0 |
Semigroup (Proxy s) | Since: base-4.9.0.0 |
Monoid (Proxy s) | Since: base-4.7.0.0 |
NFData (Proxy a) | Since: deepseq-1.4.0.0 |
Defined in Control.DeepSeq | |
Hashable (Proxy a) | |
Defined in Data.Hashable.Class | |
FromJSON (Proxy a) | |
Defined in Data.Aeson.Types.FromJSON | |
ToJSON (Proxy a) | |
Defined in Data.Aeson.Types.ToJSON toEncoding ∷ Proxy a → Encoding # toJSONList ∷ [Proxy a] → Value # toEncodingList ∷ [Proxy a] → Encoding # | |
Serialise (Proxy a) | |
Defined in Codec.Serialise.Class encodeList ∷ [Proxy a] → Encoding decodeList ∷ Decoder s [Proxy a] | |
Abelian (Proxy x) | |
Defined in Data.Group | |
Group (Proxy x) | |
MonoFoldable (Proxy a) | |
Defined in Data.MonoTraversable ofoldMap ∷ Monoid m ⇒ (Element (Proxy a) → m) → Proxy a → m ofoldr ∷ (Element (Proxy a) → b → b) → b → Proxy a → b ofoldl' ∷ (a0 → Element (Proxy a) → a0) → a0 → Proxy a → a0 otoList ∷ Proxy a → [Element (Proxy a)] oall ∷ (Element (Proxy a) → Bool) → Proxy a → Bool oany ∷ (Element (Proxy a) → Bool) → Proxy a → Bool ocompareLength ∷ Integral i ⇒ Proxy a → i → Ordering otraverse_ ∷ Applicative f ⇒ (Element (Proxy a) → f b) → Proxy a → f () ofor_ ∷ Applicative f ⇒ Proxy a → (Element (Proxy a) → f b) → f () omapM_ ∷ Applicative m ⇒ (Element (Proxy a) → m ()) → Proxy a → m () oforM_ ∷ Applicative m ⇒ Proxy a → (Element (Proxy a) → m ()) → m () ofoldlM ∷ Monad m ⇒ (a0 → Element (Proxy a) → m a0) → a0 → Proxy a → m a0 ofoldMap1Ex ∷ Semigroup m ⇒ (Element (Proxy a) → m) → Proxy a → m ofoldr1Ex ∷ (Element (Proxy a) → Element (Proxy a) → Element (Proxy a)) → Proxy a → Element (Proxy a) ofoldl1Ex' ∷ (Element (Proxy a) → Element (Proxy a) → Element (Proxy a)) → Proxy a → Element (Proxy a) headEx ∷ Proxy a → Element (Proxy a) lastEx ∷ Proxy a → Element (Proxy a) unsafeHead ∷ Proxy a → Element (Proxy a) unsafeLast ∷ Proxy a → Element (Proxy a) maximumByEx ∷ (Element (Proxy a) → Element (Proxy a) → Ordering) → Proxy a → Element (Proxy a) minimumByEx ∷ (Element (Proxy a) → Element (Proxy a) → Ordering) → Proxy a → Element (Proxy a) | |
MonoTraversable (Proxy a) | |
Defined in Data.MonoTraversable | |
MonoFunctor (Proxy a) | |
MonoPointed (Proxy a) | |
Defined in Data.MonoTraversable | |
Cyclic (Proxy x) | |
Defined in Data.Group | |
type AllB (c ∷ k → Constraint) (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.ConstraintsB | |
type Rep1 (Proxy ∷ k → Type) | |
type Rep (Proxy ∷ Type → Type) | |
Defined in Data.Functor.Rep | |
type Rep (Proxy t) | |
type Element (Proxy a) | |
Defined in Data.MonoTraversable type Element (Proxy a) = a |
data FromSomeType (c ∷ Type → Constraint) b where Source #
FromSomeType ∷ c a ⇒ AsType a → (a → b) → FromSomeType c b |