Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Bcc.Api.HasTypeProxy
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 #
Associated Types
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.
Methods
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
Constructors
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 Associated Types type AllB c Proxy | |
ApplicativeB (Proxy ∷ (k → Type) → Type) | |
TraversableB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.TraversableB Methods 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 Methods 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 Methods 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 Methods 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 Methods 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 Methods toEncoding ∷ Proxy a → Encoding # toJSONList ∷ [Proxy a] → Value # toEncodingList ∷ [Proxy a] → Encoding # | |
Serialise (Proxy a) | |
Defined in Codec.Serialise.Class | |
Abelian (Proxy x) | |
Defined in Data.Group | |
Group (Proxy x) | |
MonoFoldable (Proxy a) | |
Defined in Data.MonoTraversable Methods 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 #
Constructors
FromSomeType ∷ c a ⇒ AsType a → (a → b) → FromSomeType c b |