Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Store
- new :: IO Store
- wrap :: Store -> InterfaceAA -> IO ()
- load :: FilePath -> IO (Either Error InterfaceAA)
- data Meta = Meta {}
- getMeta :: Store -> IO [Meta]
- getModuleNames :: Store -> IO [ModuleName]
- getInterfaces :: Store -> IO [InterfaceAA]
- data Super = Super {}
- findSuper :: Store -> Name -> [ModuleName] -> IO [Super]
Documentation
Abstract API to a collection of module interfaces.
This lives in IO land because in future we want to demand-load the inferface files as needed, rather than loading the full dependency tree. Keeping it in IO means that callers must also be in IO.
wrap :: Store -> InterfaceAA -> IO () Source
Add a pre-loaded interface file to the store.
Metadata for interfaces currently loaded into the store.
getModuleNames :: Store -> IO [ModuleName] Source
Get names of the modules currently in the store.
getInterfaces :: Store -> IO [InterfaceAA] Source
Get the fully loaded interfaces.
Interface for some top-level super.
Super | |
|
:: Store | |
-> Name | Name of desired super. |
-> [ModuleName] | Names of modules to search. |
-> IO [Super] |
See if a super is defined in any of the given modules, and if so return the module name and super type.
NOTE: This function returns an IO [Super] in preparation for the case where we load data from interface files on demand. We want to ensure that the caller is also in IO, to make the refactoring easier later.