úÎ!­Ú     portable experimentalEdward Kmett <ekmett@gmail.com> Trustworthy?Some times you need to change the proxy you have lying around. B Idiomatic usage is to make a new combinator for the relationship ? between the proxies that you want to enforce, and define that  combinator using .  data Succ n * reproxySucc :: proxy n -> Proxy (Succ n)  reproxySucc = reproxy ! is a type-restricted version of . J It is usually used as an infix operator, and its typing forces its first I argument (which is usually overloaded) to have the same type as the tag  of the second.  ! !portable experimentalEdward Kmett <ekmett@gmail.com> TrustworthyA  s b value is a value b with an attached phantom type s. J This can be used in place of the more traditional but less safe idiom of @ passing in an undefined value with the type, because unlike an (s -> b),  a  s b can't try to use the argument s as a real value. Moreover, you don'8t have to rely on the compiler to inline away the extra " argument, because the newtype is "free" =Some times you need to change the tag you have lying around. N Idiomatic usage is to make a new combinator for the relationship between the A tags that you want to enforce, and define that combinator using .   data Succ n  retagSucc ::  n a ->  (Succ n) a  retagSucc =   Alias for  Tag a value with its own type.  ! is a type-restricted version of ¢. It is usually used as an infix operator, and its typing forces its first argument (which is usually overloaded) to have the same type as the tag of the second.  ! is a type-restricted version of . Convert from a $ representation to a representation  based on a . )Convert from a representation based on a  to a   representation. "#$ %&'()*+,-./0123456    "#$ %&'()*+,-./01234567      !"#$%&'()*+,-./0123456789: tagged-0.7 Data.Proxy Data.TaggedProxyreproxy asProxyTypeOfTaggedunTaggedretaguntagtagSelfasTaggedTypeOfwitness untagSelfproxyunproxybaseGHC.Baseconst proxyTyCon proxyConstr proxyDataType$fTraversableProxy$fFoldableProxy $fMonadProxy $fMonoidProxy$fApplicativeProxy$fFunctorProxy$fBoundedProxy $fIxProxy $fEnumProxy $fDataProxy$fTypeable1Proxy $fReadProxy $fShowProxy $fOrdProxy $fEqProxy taggedTyCon taggedConstrtaggedDataType$fRealFloatTagged$fRealFracTagged$fFloatingTagged$fFractionalTagged$fIntegralTagged $fRealTagged $fNumTagged $fEnumTagged$fTraversableTagged$fFoldableTagged $fMonadTagged$fApplicativeTagged$fFunctorTagged$fMonoidTagged $fReadTagged $fShowTagged $fDataTagged$fTypeable2Tagged