Related question - are there some interesting alternatives to module hierarchy compared to one in base?
I mean, Data and Control don't feel very intuitive, and that explanation in terms of linearity doesn't help that much :big_smile:
Is "Prelude" considered the standard lib in Haskell ? I sometimes see basesometimes preludeand it looks like the community is recommending relude instead of prelude, but as a newcomer I'm a bit confused
base is the package containing a module named Prelude. Whatever module by that name is in the library path will be imported when the runtime starts, unless otherwise specified. base is the standard that's distributed with GHC, but you still have to add it to the cabal dependencies, which is why you can switch in relude.
by the way what is the difference between cabal and stack ? I'm rather using stack since I started with it, but then I discovered that there was another tool, cabal, and it looks like stack is using cabal under the hood. My understanding is that stack is adding dependency versionning on top of cabal. Is it correct ?
If you were allowed to change anything in standard librar(ies), what would it be?
s/base/relude/
Linking my previous comment on pain points in
base
: https://funprog.zulipchat.com/#narrow/stream/201385-Haskell/topic/Growing.20the.20Haskell.20Community/near/210682360Related question - are there some interesting alternatives to module hierarchy compared to one in
base
?I mean,
Data
andControl
don't feel very intuitive, and that explanation in terms of linearity doesn't help that much :big_smile:Personally I would probably like
Data
/Class
distinction - I find it to be closer to what we actually doI think I like the Control name (from control flow, which is what you usually do with Applicatives or Monads)
Class feels weird, is it meant to imply that all the tcs live in there?
I kinda like purescript's more fine-tuned class hierarchy, esp. the monad and numeric trees
Is "Prelude" considered the standard lib in Haskell ? I sometimes see
base
sometimesprelude
and it looks like the community is recommendingrelude
instead ofprelude
, but as a newcomer I'm a bit confusedbase
is the package containing a module namedPrelude
. Whatever module by that name is in the library path will be imported when the runtime starts, unless otherwise specified.base
is the standard that's distributed with GHC, but you still have to add it to the cabal dependencies, which is why you can switch inrelude
.ok
by the way what is the difference between cabal and stack ? I'm rather using stack since I started with it, but then I discovered that there was another tool, cabal, and it looks like stack is using cabal under the hood. My understanding is that stack is adding dependency versionning on top of cabal. Is it correct ?
yes, although nowadays cabal is considered similarly capable, it used to be that stack made up for cabal's shortcomings
both tool can access the same dependencies ?
stack queries the stackage service for additional versioning information, but they both have access to all packages
ok thank you !