Logs: freenode/#haskell
| 2020-09-17 16:53:16 | <maerwald> | yes |
| 2020-09-17 16:53:27 | <ezzieyguywuf> | 😍 ery cool |
| 2020-09-17 16:53:33 | → | _ks joins (~kevin@nyc-0.mil.lat) |
| 2020-09-17 16:54:04 | <ezzieyguywuf> | so I want to try using just cabal install of stack. If I want to install xmonad do I just do cabal install xmonad? |
| 2020-09-17 16:54:25 | <ezzieyguywuf> | is there a different install command if I want/need to install a package in a 'sandbox' for a particular project? |
| 2020-09-17 16:54:39 | <maerwald> | ezzieyguywuf: sandboxes are removed |
| 2020-09-17 16:54:53 | <ezzieyguywuf> | so things..."just work"? |
| 2020-09-17 16:55:17 | <maerwald> | you can point it to a different store dir to emulate that, but that's more like something you'd do in CI, not on your local machine |
| 2020-09-17 16:55:36 | <maerwald> | ezzieyguywuf: https://cabal.readthedocs.io/en/3.4/nix-local-build-overview.html |
| 2020-09-17 16:55:47 | × | nineonine quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection) |
| 2020-09-17 16:56:06 | <sclv> | xmonad is the one tricky thing because it doesn't work out of the box with new-build stuff in terms of its auto-reload on config chang estuff |
| 2020-09-17 16:56:18 | <sclv> | there's some writeups of different techniques around the web |
| 2020-09-17 16:56:37 | <ezzieyguywuf> | aw man |
| 2020-09-17 16:56:39 | <sclv> | but that's now a cabal/new-build problem, its a "xmonad hasn't been updated to deal with new functionality well" problem |
| 2020-09-17 16:56:58 | <ezzieyguywuf> | s/now/not/ I assume |
| 2020-09-17 16:56:59 | <sclv> | i don't know offhand the "canonical" way to make it work, but i do know there are solutions |
| 2020-09-17 16:57:03 | <sclv> | yes, typo |
| 2020-09-17 16:58:01 | <ezzieyguywuf> | maerwald: thanks for the link reading now |
| 2020-09-17 16:58:01 | <carter> | Ski dolio what makes them multiplicative vs additive? |
| 2020-09-17 16:58:22 | <ski> | carter : i'd say, the distributive law(s) |
| 2020-09-17 16:58:42 | <dolio> | Multiplicatives are tuple-like, and additives are choice-like. |
| 2020-09-17 16:58:52 | <ski> | the replicated connective is multiplicative. the connective it's replicating over is additive |
| 2020-09-17 16:58:53 | <sclv> | ezzieyguywuf: here's one xmonad ticket with some discussion on the issue -- using a build-script seems like the right approach but idk https://github.com/xmonad/xmonad/issues/199 |
| 2020-09-17 16:59:42 | <zebrag> | If `m` is an applicative, there really are `Int` in `m Int`. And it really puzzles me that it is always so. If it were only a functor it wouldn't be so. I'm wondering where, on the way from functor to applicative, is this property added. |
| 2020-09-17 16:59:45 | <dolio> | Multiplicative conjunction values are like pairs of values. Multiplicative disjunction continuations are like pairs of continuations. |
| 2020-09-17 16:59:57 | <ski> | yes, additives have to do with choice (internal or external). or information/exformation, if you want. while multiplicatives have to do with aggregation and communication/composition |
| 2020-09-17 17:00:02 | <carter> | dolio: ok that makes more sense to me |
| 2020-09-17 17:00:10 | <maerwald> | there are two kinds of oss projects: 1. unmaintained, 2. pedantic dictatorship maintained |
| 2020-09-17 17:00:26 | <carter> | maerwald: reductive but not false? |
| 2020-09-17 17:00:31 | <carter> | well, depends on what maintained means |
| 2020-09-17 17:00:32 | <maerwald> | I chose 2. and went with i3 |
| 2020-09-17 17:00:39 | <ski> | zebrag : "If `m` is an applicative, there really are `Int` in `m Int`." -- nope |
| 2020-09-17 17:01:08 | <carter> | ski: dolio ... but does this flavor of additive vs multiplicative have a formal meaning? |
| 2020-09-17 17:01:14 | <Uniaika> | phadej: glorious, thank you! |
| 2020-09-17 17:01:34 | <zebrag> | ski: What makes me thing that is that ocaml has some sort of do-notation for applicatives |
| 2020-09-17 17:01:43 | <amf> | I'm using sortBy, but I need to order by 2 fields in a specific order, what is the technique? and would this be called a compound sort? (wasnt sure what to google) |
| 2020-09-17 17:01:43 | <ski> | carter : .. dunno ? |
| 2020-09-17 17:01:59 | <zebrag> | ski: can you give me an example |
| 2020-09-17 17:02:01 | <zebrag> | ? |
| 2020-09-17 17:02:14 | <ezzieyguywuf> | what about installing, say, hoogle or ghcid |
| 2020-09-17 17:02:14 | <ski> | zebrag : okay ? iirc, OCaml also has GADTs, no ? |
| 2020-09-17 17:02:18 | <ezzieyguywuf> | just cabal install ghcid? |
| 2020-09-17 17:02:27 | <ski> | zebrag : well, `IO' is a canonical example, in Haskell |
| 2020-09-17 17:02:36 | → | qqqqqq joins (~Me@185.142.40.143) |
| 2020-09-17 17:02:39 | <qqqqqq> | 6 To be happy and lifted from hell and misery, Islam is your Jewel of the seas. Say no God except one(Allah)~ 4 To get blessings thru monotheism, He is the Only creator of heaven & earth. 6 He Designed the Universe 4 with Superb ingenuity. 6Lets praise Allah; 3he is our God, thee one; he is the god of Moses; Noah; Jesus & Mohammed; he sent us our Book 7 Quran, 10Monotheism is cleared by all prophets ~ 6 We get heaven by praying to the one god 6& by Sa |
| 2020-09-17 17:02:39 | × | qqqqqq quits (~Me@185.142.40.143) (Killed (Sigyn (Spam is off topic on freenode.))) |
| 2020-09-17 17:02:49 | <ski> | zebrag : there is no `String' inside `getLine :: IO String' |
| 2020-09-17 17:02:55 | <geekosaur> | amf, combine the comparison operations with <> |
| 2020-09-17 17:03:48 | <amf> | geekosaur: doh! yep, that was it, thanks!! |
| 2020-09-17 17:04:09 | → | nineonine joins (~nineonine@216.81.48.202) |
| 2020-09-17 17:04:19 | <zebrag> | ski: getLine >>= \x -> f? (isn't x substituted for a string along the way?) |
| 2020-09-17 17:04:43 | × | nan` quits (~nan`@unaffiliated/nan/x-5405850) (Ping timeout: 272 seconds) |
| 2020-09-17 17:05:06 | <carter> | Oh I see. Cause cause additive zero is void |
| 2020-09-17 17:05:11 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:b0dc:6c54:247b:ece) (Remote host closed the connection) |
| 2020-09-17 17:05:17 | <monochrom> | maerwald: What is i3? |
| 2020-09-17 17:05:26 | <ski> | zebrag : yes, but `getLine' itself does not contain that `String' |
| 2020-09-17 17:05:27 | <ezzieyguywuf> | monochrom: I window manager like xmonad |
| 2020-09-17 17:05:29 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 2020-09-17 17:05:38 | <carter> | And that zeros out multiplicative things |
| 2020-09-17 17:05:40 | <maerwald> | monochrom: a tiling wm built by a german |
| 2020-09-17 17:05:48 | <maerwald> | without window icons |
| 2020-09-17 17:05:54 | <dolio> | carter: I'm not sure either. There are differences in the formal stuff, but I'm not sure that qualifies, and I mostly have informal explanations of them. |
| 2020-09-17 17:06:04 | <ezzieyguywuf> | maerwald: I don' understand your statement about (1) vs (2) though - you're saying xmonad is unmaintained? |
| 2020-09-17 17:06:07 | <monochrom> | I understand now. Was not reading it in context. |
| 2020-09-17 17:06:17 | <maerwald> | ezzieyguywuf: yeah :p |
| 2020-09-17 17:06:25 | <ezzieyguywuf> | i like i3 and have been using it for years, just considering xmonad b/c i love haskell, lol |
| 2020-09-17 17:06:26 | <monochrom> | I went with ghcup for the same reason teeheehee! |
| 2020-09-17 17:06:31 | <dolio> | Like, multiplicative stuff involves concatenating contexts, and additive involves sharing them. |
| 2020-09-17 17:06:34 | <carter> | Dolio: i think that’s the reason why the distributive law only works that way? |
| 2020-09-17 17:06:35 | <maerwald> | well, it's a slim core, so there's not much to maintain? |
| 2020-09-17 17:06:40 | <ezzieyguywuf> | monochrom: lol. |
| 2020-09-17 17:06:45 | <carter> | Hrmm |
| 2020-09-17 17:06:53 | <carter> | I guess that worms |
| 2020-09-17 17:06:55 | <ski> | carter : only works which way ? |
| 2020-09-17 17:06:55 | <dolio> | That's 'formal', but it doesn't say much. |
| 2020-09-17 17:06:55 | <carter> | Works |
| 2020-09-17 17:07:40 | <carter> | Hrmm |
| 2020-09-17 17:07:47 | <ezzieyguywuf> | worms, lol |
| 2020-09-17 17:07:58 | <carter> | I’ll explain after lunch ski |
| 2020-09-17 17:08:19 | <geekosaur> | there's plenty of changes to xmonad-contrib, we just don't release very often unless there's a breaking change in ghc (or even more rarely an external library) |
| 2020-09-17 17:08:20 | <dolio> | Another informal description is, I think, that additive stuff involves one thing happening among many, while multiplicative stuff involves all things happening. |
| 2020-09-17 17:08:24 | <ezzieyguywuf> | btw, `cabal install xmonad` worked once I made sure I had all the non-haskell dependencies avaliable |
| 2020-09-17 17:08:49 | → | ubert joins (~Thunderbi@178.165.131.132.wireless.dyn.drei.com) |
| 2020-09-17 17:08:58 | <geekosaur> | and yes, the core is kept very minimal and basically never changes except when a new ghc breaks something |
| 2020-09-17 17:09:01 | <dolio> | So, like A \par B is a branching construct where all the branches happen, unlike A + B where only one branch happens. |
| 2020-09-17 17:09:10 | <carter> | That’s true |
| 2020-09-17 17:09:12 | <carter> | Ish |
| 2020-09-17 17:09:27 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 2020-09-17 17:09:38 | <ski> | yes |
| 2020-09-17 17:09:38 | <carter> | Fork io is kinda a value of type par |
| 2020-09-17 17:09:47 | <carter> | If you think In CPS |
| 2020-09-17 17:09:51 | <ski> | yes |
| 2020-09-17 17:10:18 | <zebrag> | ski: But if, instead of `IO String`, which is a monad, we would have only a functor, then that property of being able to substitute something for a string along the way wouldn't be granted (like if the functor is some constant functor sending every type on the same constant type) |
| 2020-09-17 17:10:19 | <sclv> | as a general gripe, i'm tired of people thinking "infrequently updated" means "unmaintained" as opposed to the cases when it can mean "stable, and working, so not being actively worked on" |
| 2020-09-17 17:10:43 | <ski> | (but `par :: a -> b -> b' is not, i think) |
| 2020-09-17 17:11:29 | <dolio> | carter, ski: That kind of explains why it's related to functions, too. You have two branches: the code in the function, and the code that uses the function's results, and they both happen. |
| 2020-09-17 17:11:42 | <ski> | zebrag : (nitpick, `IO' is the monad. not `IO String', and not `getLine') .. we could still substitute something for all zero occurances of `String's |
| 2020-09-17 17:12:20 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds) |
| 2020-09-17 17:12:28 | Lord_of_Life_ | is now known as Lord_of_Life |
| 2020-09-17 17:12:33 | → | igghibu joins (~igghibu@37.120.201.90) |
All times are in UTC.