Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- keepRedundantConstraint ∷ c ⇒ proxy c → ()
- data Proxy (t ∷ k) = Proxy
Documentation
keepRedundantConstraint ∷ c ⇒ proxy c → () Source #
Can be used to silence individual "redundant constraint" warnings
foo :: ConstraintUsefulForDebugging => ... foo = .. where _ = keepRedundantConstraint (Proxy @ConstraintUsefulForDebugging))
Convenience re-export
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) | |
RepeatWithIndex Void (Proxy ∷ Type → Type) | |
SemialignWithIndex Void (Proxy ∷ Type → Type) | |
Defined in Data.Semialign.Internal | |
ZipWithIndex Void (Proxy ∷ Type → Type) | |
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 # 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 # | |
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 |
Show1 (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
Contravariant (Proxy ∷ Type → Type) | |
Traversable (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
Alternative (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
Applicative (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
Functor (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
Monad (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
MonadPlus (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 | |
Align (Proxy ∷ Type → Type) | |
Defined in Data.Semialign.Internal | |
Repeat (Proxy ∷ Type → Type) | |
Defined in Data.Semialign.Internal | |
Semialign (Proxy ∷ Type → Type) | |
Unalign (Proxy ∷ Type → Type) | |
Unzip (Proxy ∷ Type → Type) | |
Zip (Proxy ∷ Type → Type) | |
Monoid (Proxy s) | Since: base-4.7.0.0 |
Semigroup (Proxy s) | Since: base-4.9.0.0 |
Bounded (Proxy t) | Since: base-4.7.0.0 |
Enum (Proxy s) | Since: base-4.7.0.0 |
Defined in Data.Proxy | |
Generic (Proxy t) | |
Ix (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 |
NFData (Proxy a) | Since: deepseq-1.4.0.0 |
Defined in Control.DeepSeq | |
Eq (Proxy s) | Since: base-4.7.0.0 |
Ord (Proxy s) | Since: base-4.7.0.0 |
Hashable (Proxy a) | |
Serialise (Proxy a) | Since: serialise-0.2.0.0 |
type Rep1 (Proxy ∷ k → Type) | Since: base-4.6.0.0 |
type Rep (Proxy t) | Since: base-4.6.0.0 |