+moduleSoFar :: MonadModuleBuilder m => ShortByteString -> m Module
+moduleSoFar nm = do
+ s <- liftModuleState get
+ let ds = getSnocList (builderDefs s)
+ return $ defaultModule { moduleName = nm, moduleDefinitions = ds }
+
+removeDef :: MonadModuleBuilder m => Definition -> m ()
+removeDef def = liftModuleState (modify update)
+ where
+ update (ModuleBuilderState defs typeDefs) =
+ let newDefs = SnocList (delete def (getSnocList defs))
+ in ModuleBuilderState newDefs typeDefs
+