Safe Haskell | None |
---|
- convertDecls :: TiData -> IdMap Properties -> ClassHierarchy -> Map Name Type -> DataTable -> [HsDecl] -> IO [(Name, TVr, E)]
- convertRules :: Module -> TiData -> ClassHierarchy -> Map Name Type -> DataTable -> [HsDecl] -> IO Rules
- createInstanceRules :: Monad m => DataTable -> ClassHierarchy -> [(TVr, E)] -> m Rules
- procAllSpecs :: Monad m => DataTable -> [Rule] -> [(TVr, E)] -> m ([(TVr, E)], Rules)
- getMainFunction :: Monad m => DataTable -> Name -> Map Name (TVr, E) -> m (TVr, E)
Documentation
convertDecls :: TiData -> IdMap Properties -> ClassHierarchy -> Map Name Type -> DataTable -> [HsDecl] -> IO [(Name, TVr, E)]Source
convertRules :: Module -> TiData -> ClassHierarchy -> Map Name Type -> DataTable -> [HsDecl] -> IO RulesSource
createInstanceRules :: Monad m => DataTable -> ClassHierarchy -> [(TVr, E)] -> m RulesSource
create a RULE for each instance attached to the class methods. These rules allow early specialization of monomorphic code, and are eventually used in E.TypeAnalysis.expandPlaceholder to fill out the generic class method bodies.