úÎ F‘     generalized newtype deriving experimentalEdward Kmett <ekmett@gmail.com>NoneA  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 :: Tagged n a -> Tagged (Succ n) a  retagSucc = retag  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 . generalized newtype deriving experimentalEdward Kmett <ekmett@gmail.com>None ?Some times you need to change the proxy you have lying around. C 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 Convert from a % representation to a representation  based on a . )Convert from a representation based on a  to a   representation.  ! is a type-restricted version of . K It is usually used as an infix operator, and its typing forces its first J argument (which is usually overloaded) to have the same type as the tag  of the second.       !       !"#$ tagged-0.3 Data.Tagged Data.ProxyTaggedunTaggedretaguntagtagSelfasTaggedTypeOf untagSelfProxyreproxyproxyunproxy asProxyTypeOfbaseGHC.Baseconst$fTraversableTagged$fFoldableTagged $fMonadTagged$fApplicativeTagged$fFunctorTagged $fReadTagged$fSemigroupTagged $fShowTagged$fTraversableProxy$fFoldableProxy $fMonadProxy $fMonoidProxy$fApplicativeProxy$fFunctorProxy$fBoundedProxy $fIxProxy$fSemigroupProxy $fEnumProxy