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.
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.