-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Default modules and hiding Prelude #35
Comments
Personally, I probably populate Prelude.hs with all those imports, including |
For me it is more about how clean is the user configuration in If we want to let the user decide everything, even that, what do you think about creating a module called Default which exports all those modules? Like module System.Console.Hawk.Config.Modules.Defaults (
module System.Console.Hawk.Representable,
module GHC.Num,
module GHC.Real,
module GHC.Types,
module Data.ByteString.Lazy.Char8,
module Data.Bool,
module Data.Char,
module Data.Either,
module Data.Eq,
module Data.Function,
module Data.Int,
module Data.Maybe,
module Data.Ord
) where
import System.Console.Hawk.Representable
import GHC.Num
import GHC.Real
import GHC.Types
import Data.ByteString.Lazy.Char8
import Data.Bool
import Data.Char
import Data.Either
import Data.Eq
import Data.Function
import Data.Int
import Data.Maybe
import Data.Ord the user can decide if he wants to import it or not. But he doesn't have to import every module line by line, he can just import our defaults modules. So a good import System.Console.Hawk.Config.Modules.Defaults
import Control.Monad
import qualified Prelude as P |
I don't mind either way. Your choice! – Samuel On 2013-08-11, at 9:45 AM, Mario Pastorelli [email protected] wrote:
|
Currently
Hawk
exposes some modules independently by what the user set on its configuration file (Prelude.hs
). This is due to the fact that I considered those modules essential for any Haskell application. What do you think, we should keep them always loaded? The list of modules is inConfig.hs
, I report it herenote that currently
Hawk
exposesPrelude
with the qualificationP
, so if we want to haveTrue
instead ofP.True
we must importData.Bool
. Same for almost all the others modules. That's why I think we should keep them automatically imported. Maybe we could, in future, give an option to the user to avoid automatic loading of default modules.The exceptions are
System.Console.Hawk.Representable
, that is automatically imported becauseHawk
cannot work without it, andData.ByteString.Lazy.Char8
that is imported becauseHawk
works on (lazy)ByteStrings
. Now, for the first module we can't do much, it must be loaded by default. ForByteString
I don't know, if we load it in this way then many functions that are usually related to lists will be for theByteString
type. This can be misleading:For me:
Prelude
with qualificationP
. If the user wants it exposed without qualification he can set it inPrelude.hs
System.Console.Hawk.Representable
,GHC.Num
,GHC.Real
,GHC.Types
,Data.Bool
,Data.Char
,Data.Either
,Data.Eq
,Data.Function
,Data.Int
,Data.Maybe
andData.Ord
should be imported by default, not matter whatPrelude.hs
contains. I don't know if this list of modules is enough or I missed something.Data.ByteString.Lazy.Char8
should not be imported by default. The user must import it inPrelude.hs
. In this way if he wantsList
exposed without qualification he can do that. The defaultPrelude.hs
should import it with qualificationBS
The text was updated successfully, but these errors were encountered: