This module exports
scopeLookup, which will find a variable or
value constructor for you and present it for your use. E.g. at some
point in the history of the acid-state package,
openLocalState; for compatibility with both, you could
openState :: IO (AcidState st) openState = case $(scopeLookup "openLocalState") of Just open -> open defaultState Nothing -> case $(scopeLookup "openAcidState") of Just open -> open defaultState Nothing -> error "openState: runtime name resolution has its drawbacks :/"
Produces a spliceable expression which expands to 'Just val' if
the given string refers to a value
val in scope, or
'scopeLookup' = 'fmap' 'liftMaybe' '.' 'scopeLookup''
Finds the first string in the list that names a value, and produces a spliceable expression of that value, or reports a compile error if it fails.