úοÀ    NoneTurns  ! into an expression representing  , and    x! into an expression representing   applied to the  expression in x. 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). Turns a possibly-failing  action into one returning a   value. Returns ' Just (VarE n)'' if the info relates to a value called n,  or  - if it relates to a different sort of thing. NoneNone2Produces a spliceable expression which expands to 'Just val' if $ the given string refers to a value val in scope, or    otherwise. 7 'scopeLookup' = 'fmap' 'liftMaybe' '.' 'scopeLookup'' DFinds the first string in the list that names a value, and produces F a spliceable expression of that value, or reports a compile error if  it fails.  Produces   x% if the given string names the value x,  or   otherwise. None AAn 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 = ... |]          notcpp-0.1.0.1NotCPP.LookupValueNameNotCPP.ScopeLookupNotCPP.OrphanEvasion NotCPP.Utilstemplate-haskellLanguage.Haskell.TH.SyntaxlookupValueName liftMaybe maybeReify recoverMaybe infoToExpbestValueGuess scopeLookup scopeLookups scopeLookup' MultiParams safeInstance' safeInstancebase Data.MaybeNothingJustreifyQMaybeCxtType