[Haskell-cafe] ANNOUNCE: module-management-0.9.3 - clean import lists, split and merge modules

Marc Weber marco-oweber at gmx.de
Fri Jun 28 03:06:35 CEST 2013

let me give you an example:

  splitModule :: MonadClean m => ModuleName -> m ()

  Split each of a module's declarations into a new module. Update the
  imports of all the modules in the moduVerse to reflect the split.

Why do I want that? What does it mean?

=== start file ==
  module Start where

  a = 1
  b = 2
  c = 3

will calling that function yield

  module foobar where
  a = 1

  module baz.something.idont.know where
  b =2

  module 3rd where
  c =3

I want to say: I have no idea 
  - how the new modules will be named
  - which paths the new modules will have

Function's return type is m (), so doesn't help much.

Consider improving that documentation.

More questions: input/output.

  findPaths "Language" >>= runMonadClean . mapM cleanImports . toList

Whose task is it to write the "new cleaned up module" to disk again?
does runMonadClean do it for me? Docs don't tell yet.

Marc Weber

More information about the Haskell-Cafe mailing list