[Haskell-cafe] Haskell modules: Morton's fork?
Nikita Churaev
lamefun.x0r at gmail.com
Fri Jul 21 20:54:22 UTC 2017
Option 1:
module App.Component (Foo, Bar, Qux) -- re-exports
module App.Component.Foo (Foo, make, func1, func2)
module App.Component.Bar (Bar, make, func1, func2)
module App.Component.Qux (Qux, make, func1, func2)
API clients will have to write long import lists:
import App.Component
import qualified App.Component.Foo as Foo
import qualified App.Component.Bar as Bar
import qualified App.Component.Qux as Qux
Option 2:
module App.Component (module Foo, module Bar) -- re-exports
module App.Component.Foo (Foo, makeFoo, fooFunc1, fooFunc2)
module App.Component.Bar (Bar, makeBar, barFunc1, barFunc2)
module App.Component.Qux (Qux, makeQux, quxFunc1, quxFunc2)
Now you can import easily:
import App.Component
But now you have to prefix your functions, just like in C...
Is there another, cleaner option?
More information about the Haskell-Cafe
mailing list