liquidhaskell- Liquid Types for Haskell

Safe HaskellNone




class Symbolic a => GhcLookup a where Source


lookupName :: HscEnv -> ModName -> a -> IO [Name] Source

srcSpan :: a -> SrcSpan Source

lookupGhcThing :: (GhcLookup a, MonadState BareEnv m, MonadError (TError t) m, MonadIO m) => [Char] -> (TyThing -> Maybe b) -> a -> m b Source

lookupGhcVar :: GhcLookup a => a -> BareM Var Source

It's possible that we have already resolved the Name we are looking for, but have had to turn it back into a String, e.g. to be used in an Expr, as in {v:Ordering | v = EQ}. In this case, the fully-qualified Name (GHC.Types.EQ) will likely not be in scope, so we store our own mapping of fully-qualified Names to Vars and prefer pulling Vars from it.