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, Proxy :: Proxy a is a safer alternative to the
undefined :: a idiom.
Proxy :: Proxy (Void, Int -> Int)Proxy
Proxy can even hold types of higher kinds,
Proxy :: Proxy EitherProxy
Proxy :: Proxy FunctorProxy
Proxy :: Proxy complicatedStructureProxy
Instances66Generic1, FoldableWithIndex, FunctorWithIndex, TraversableWithIndex, Monad, Functor, …
Generic1 ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldableWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexMonad ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyFunctor ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyApplicative ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyFoldable ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableAlternative ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyMonadPlus ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyMonadZip ProxyDefined in base-4.20.2.0 · Control.Monad.ZipEq1 ProxyDefined in base-4.20.2.0 · Data.Functor.ClassesOrd1 ProxyDefined in base-4.20.2.0 · Data.Functor.ClassesRead1 ProxyDefined in base-4.20.2.0 · Data.Functor.ClassesShow1 ProxyDefined in base-4.20.2.0 · Data.Functor.ClassesContravariant ProxyDefined in base-4.20.2.0 · Data.Functor.ContravariantNFData1 ProxyDefined in deepseq-1.5.0.0 · Control.DeepSeqHashable1 ProxyDefined in hashable-1.4.7.0 · Data.Hashable.ClassDistributive ProxyDefined in distributive-0.6.2.1 · Data.DistributiveDecidable ProxyDefined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible ProxyDefined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleAlt ProxyDefined in semigroupoids-6.0.1 · Data.Functor.AltApply ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend ProxyDefined in semigroupoids-6.0.1 · Data.Functor.ExtendConclude ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeDecide ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDivise ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DivisePlus ProxyDefined in semigroupoids-6.0.1 · Data.Functor.PlusRepresentable ProxyDefined in adjunctions-4.4.3 · Data.Functor.RepRepresentable ProxyDefined in adjunctions-4.4.3 · Data.Functor.Contravariant.RepInvariant ProxyDefined in invariant-0.6.4 · Data.Functor.Invariantfrom Data.Proxy
Selective ProxyDefined in selective-0.7.0.1 · Control.SelectiveAdjustable ProxyDefined in keys-3.12.3 · Data.KeyFoldableWithKey ProxyDefined in keys-3.12.3 · Data.KeyIndexable ProxyDefined in keys-3.12.3 · Data.KeyKeyed ProxyDefined in keys-3.12.3 · Data.KeyLookup ProxyDefined in keys-3.12.3 · Data.KeyTraversableWithKey ProxyDefined in keys-3.12.3 · Data.KeyZip ProxyDefined in keys-3.12.3 · Data.KeyZipWithKey ProxyDefined in keys-3.12.3 · Data.KeyPointed ProxyDefined in pointed-5.0.4 · Data.PointedCosieve Tagged ProxyDefined in profunctors-5.6.3 · Data.Profunctor.SieveBounded (Proxy t)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyEnum (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyEq (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyData t => Data (Proxy t)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyRead (Proxy t)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyShow (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyIx (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyGeneric (Proxy t)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyMonoid (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyNFData (Proxy a)Defined in deepseq-1.5.0.0 · Control.DeepSeqHashable (Proxy a)Defined in hashable-1.4.7.0 · Data.Hashable.ClassDefault (Proxy a)Defined in data-default-0.8.0.1 · Data.Default.InternalAbelian (Proxy x)Defined in groups-0.5.3 · Data.GroupCyclic (Proxy x)Defined in groups-0.5.3 · Data.GroupGroup (Proxy x)Defined in groups-0.5.3 · Data.GroupTrivial group, Functor style.
type Rep (Proxy t) = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics"Proxy"
"GHC.Internal.Data.Proxy"
"ghc-internal"
'False) (C1 ('MetaCons"Proxy"
'PrefixI 'False) U1)type Rep1 Proxy = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics"Proxy"
"GHC.Internal.Data.Proxy"
"ghc-internal"
'False) (C1 ('MetaCons"Proxy"
'PrefixI 'False) U1)type Rep Proxy = VoidDefined in adjunctions-4.4.3 · Data.Functor.Reptype Rep Proxy = ()Defined in adjunctions-4.4.3 · Data.Functor.Contravariant.Reptype Key Proxy = VoidDefined in keys-3.12.3 · Data.Key