úΧNoneAAn empty type used only to signify a multiparameter typeclass in  .  className cxt types methods produces an instance , of the given class if and only if one doesn't already exist. See # for a simple way to construct the  and  [] parameters. ! is a more convenient version of  ( that takes the context and type from a   with the intention ) that it be supplied using a type-quote. To define an instance Show a => Show (Wrapper a), you'd use:  0 safeInstance ''Show [t| Show a => Wrapper a |]  [d| show _ = "stuff" |] ;To define an instance of a multi-param type class, use the   type constructor with a tuple:  safeInstance ''MonadState 6 [t| MonadState s m => MultiParams (s, MaybeT m) |]  [d| put = ... |] None2Produces a spliceable expression which expands to 'Just val' if $ the given string refers to a value val in scope, or   otherwise. A useful variant of   that returns  instead of B halting compilation when an error occurs (e.g. because the given  name was not in scope).          notcpp-0.0.1NotCPP.OrphanEvasionNotCPP.ScopeLookup MultiParams safeInstance' safeInstance scopeLookup maybeReifytemplate-haskellLanguage.Haskell.TH.SyntaxCxtTypeQbase Data.MaybeNothingreify