Home liberachat/#haskell: Logs Calendar

Logs on 2024-04-23 (liberachat/#haskell)

00:01:01 peterbecich joins (~Thunderbi@47.229.123.186)
00:15:05 Ptival joins (~ptival@64.16.51.186)
00:16:22 ChaiTRex joins (~ChaiTRex@user/chaitrex)
00:17:50 × peterbecich quits (~Thunderbi@47.229.123.186) (Ping timeout: 245 seconds)
00:20:52 bilegeek joins (~bilegeek@2600:1008:b048:47a6:69f5:273e:c742:c5f5)
00:24:23 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 256 seconds)
00:29:29 ephemient joins (uid407513@user/ephemient)
00:30:46 y04nn joins (~username@2a03:1b20:8:f011::e10d)
00:31:55 sroso joins (~sroso@user/SrOso)
00:41:56 <yin> is it possible to run all operations that are not depedent on side effects at compile time?
00:45:13 <geekosaur> hypothetically. in practice, (a) bottoms at compile time will make you very unhappy (b) since `main :: IO a`, it's likely that most of your operations are ultimately dependent on `IO`
00:46:56 × y04nn quits (~username@2a03:1b20:8:f011::e10d) (Ping timeout: 260 seconds)
00:48:23 <yin> but something like `primes = filter isPrime [0..100]` has no reason not to
00:48:24 <c_wraith> GHC really doesn't like to do recursion at compile time.
00:48:33 <c_wraith> mostly because.. it might bottom out
00:48:49 <c_wraith> Or proceed for an arbitrarily long time
00:49:03 <EvanR> this language zig really believes in doing a bunch of computation at compile time, so much so it's kind of hard to tell when it's going to do that
00:49:20 <jackdk> But also, in some sense, isn't this what optimisers do? Rewrite expressions into equivalent but faster forms? I saw something the other day that showed rustc could detect and optimise closed-form sums
00:49:40 <yin> C++ has consteval
00:49:52 <EvanR> yeah zig seems to take consteval to an extreme
00:49:57 <c_wraith> there's also the fact that simple things like [1 .. 1000000] are slower compile as constants than calculate.
00:50:30 <geekosaur> another point is that, while an operation might not depend on `IO` directly, its use might depend on it, and one aspect of laziness is that means your expression indeed depends on `IO`
00:52:27 × Inst quits (~Inst@user/Inst) (Read error: Connection reset by peer)
00:52:39 <c_wraith> and from the other side... GHC *does* give you the tool to compile a lot of things as constants via template haskell, if you really need it. (not everything can be compiled that way, but a lot of things can)
00:52:57 <yin> ok i'm convinced it's not the best idea
00:55:10 <c_wraith> This isn't the hardest template haskell, though it *is* important to know why beta substitution doesn't work through quotes: primes = $(let x = filter isPrime [0..100] in [| x |])
00:58:08 <c_wraith> actually, you'd probably want to use typed template haskell for that so it would infer the type from context correctly. But still.
01:01:07 <c_wraith> huh. apparently typed template haskell doesn't play nicely with let generalization. Weird.
01:01:47 × ystael quits (~ystael@user/ystael) (Ping timeout: 264 seconds)
01:09:05 × nullobject quits (~josh@user/nullobject) (Ping timeout: 245 seconds)
01:09:24 Inst joins (~Inst@user/Inst)
01:15:28 tertek joins (~tertek@user/tertek)
01:15:59 zlqrvx joins (~zlqrvx@user/zlqrvx)
01:22:33 × foul_owl quits (~kerry@185.219.141.164) (Ping timeout: 252 seconds)
01:28:49 × Ptival quits (~ptival@64.16.51.186) (Remote host closed the connection)
01:29:35 Ptival joins (~ptival@64.16.51.186)
01:31:54 Ptival_ joins (~ptival@64.16.51.186)
01:32:13 × hueso quits (~root@user/hueso) (Quit: hueso)
01:32:23 × xff0x quits (~xff0x@2405:6580:b080:900:f58b:ec5b:d9ae:c39) (Ping timeout: 256 seconds)
01:34:05 × Ptival quits (~ptival@64.16.51.186) (Ping timeout: 245 seconds)
01:34:32 smoge joins (~smoge@2603:7000:4b42:1100::1)
01:35:44 × yin quits (~yin@user/zero) (Ping timeout: 252 seconds)
01:36:10 × Ptival_ quits (~ptival@64.16.51.186) (Ping timeout: 245 seconds)
01:36:35 foul_owl joins (~kerry@157.97.134.165)
01:36:49 hueso joins (~root@user/hueso)
01:37:42 yin joins (~yin@user/zero)
01:37:50 × otto_s quits (~user@p5b04489f.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
01:39:35 otto_s joins (~user@p5b044a05.dip0.t-ipconnect.de)
01:44:06 Ptival joins (~ptival@2601:1c0:4580:7650:4c3d:464d:57f8:c38)
01:45:14 × smoge quits (~smoge@2603:7000:4b42:1100::1) (Quit: Client closed)
01:45:58 demesne joins (~demesne@50.35.88.207)
01:48:15 × Ptival quits (~ptival@2601:1c0:4580:7650:4c3d:464d:57f8:c38) (Ping timeout: 245 seconds)
01:49:48 × yin quits (~yin@user/zero) (Ping timeout: 255 seconds)
01:51:48 yin joins (~yin@user/zero)
01:55:35 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:56:29 peterbecich joins (~Thunderbi@47.229.123.186)
02:13:29 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:36:48 × td_ quits (~td@i53870931.versanet.de) (Ping timeout: 252 seconds)
02:38:29 td_ joins (~td@i5387090C.versanet.de)
02:40:47 × yin quits (~yin@user/zero) (Ping timeout: 268 seconds)
02:46:26 × tolt quits (~weechat-h@li219-154.members.linode.com) (Quit: WeeChat 2.9)
02:46:42 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
02:47:27 yin joins (~yin@user/zero)
02:47:48 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds)
02:48:05 tolt joins (~weechat-h@li219-154.members.linode.com)
02:52:43 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
02:53:27 × tolt quits (~weechat-h@li219-154.members.linode.com) (Quit: WeeChat 2.9)
02:54:44 tolt joins (~weechat-h@li219-154.members.linode.com)
02:58:41 demesne joins (~demesne@50.35.88.207)
03:01:27 rosco joins (~rosco@yp-146-6.tm.net.my)
03:06:17 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
03:06:36 demesne joins (~demesne@50.35.88.207)
03:09:36 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
03:09:53 demesne joins (~demesne@50.35.88.207)
03:11:29 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
03:11:43 demesne joins (~demesne@50.35.88.207)
03:13:09 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
03:15:01 demesne joins (~demesne@50.35.88.207)
03:15:11 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
03:16:58 demesne joins (~demesne@50.35.88.207)
03:18:54 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
03:19:24 demesne joins (~demesne@50.35.88.207)
03:22:10 Axman6 joins (~Axman6@user/axman6)
03:26:38 × rosco quits (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal)
03:29:27 <Inst> why doesn't IO memory leak horrifically in Haskell?
03:29:47 <Inst> a naive look at Haskell's semantics implies that Haskell has to build the full IO value before it can execute
03:30:31 <EvanR> do you mean something like someprimitive >>= f
03:30:50 <Inst> https://hackage.haskell.org/package/base-4.19.1.0/docs/src/GHC.Base.html#thenIO
03:30:54 <EvanR> it has to execute someprimitive before going on
03:31:21 × peterbecich quits (~Thunderbi@47.229.123.186) (Ping timeout: 268 seconds)
03:31:29 <Inst> yeah, i know, because that's how I understand how Haskell actually works, but taking the lambdas literally it implies massive thunk buildup
03:31:34 <EvanR> that doesn't look like semantics to me xD
03:32:19 <EvanR> massive thunk buildup?
03:33:01 <Inst> it feels like there's some kind of magic going on because it feels like when you call main
03:33:15 × aforemny_ quits (~aforemny@2001:9e8:6cde:9300:d77b:b228:6e32:ed32) (Ping timeout: 245 seconds)
03:33:46 <Inst> it'd have to fully evaluate your program (since all Haskell programs are single values of type IO a)
03:34:10 <EvanR> how can it even evaluate anything when it doesn't know the result of the first IO call
03:34:12 aforemny joins (~aforemny@2001:9e8:6cc5:7800:75d6:e4cb:e12d:1704)
03:34:18 <EvanR> to pass to the f
03:35:03 <Inst> well it has to go through all the thens and binds in IO
03:35:10 <c_wraith> Why?
03:35:17 <c_wraith> they're hidden behind lambdas
03:35:27 <Inst> derp
03:35:29 <EvanR> logically, it only has to hold the top most lambda
03:35:39 <Inst> so i don't understand lambda laziness then
03:35:53 <Inst> back to watching Alexis King, I guess
03:35:56 <EvanR> WHNF means the inside of a lambda isn't evaluated
03:36:06 <EvanR> yet
03:37:32 <Inst> https://www.youtube.com/watch?v=fSqE-HSh_NU
03:38:00 <EvanR> "Laziness. Is it good?"
03:38:21 <Inst> i read somewhere that you can accumulate thunks based on the chained function calls inside?
03:38:28 <EvanR> betteridge's law implies No
03:39:31 <haskellbridge> <i​rregularsphere> 1+1=2?
03:40:15 <Inst> (+) _ _ = _
03:41:20 <EvanR> 1 + 1 + 1 + 1 + 1 + 1, but that's not a lambda
03:41:31 <EvanR> it's a bunch of applications
03:44:51 <haskellbridge> <i​rregularsphere> Inst: anyway, first of all, `do` is syntax sugar: `do { putStrLn a; b <- getLine; c <- getLine; return b ++ c }` -> `putStrLn a >>= \_ -> (getLine >>= \b -> (getLine >>= \c -> (return b ++ c)))` so no you really won't, moreover _should not_ have to evaluate the entire IO before executing
03:45:07 <Inst> i'm familiar with do, i'm just reviewing what i know to patch gaps
03:45:32 <haskellbridge> <i​rregularsphere> (...is sending multiline messages over the matrix <-> irc bridge acceptable?)
03:46:07 <Inst> iirc it should also be foo >> (bar >> (baz... ))), no?
03:46:27 <haskellbridge> <i​rregularsphere> a >> b is defined as a >>= \_ -> b
03:46:48 <monochrom> You will need a very good model of IO to see why for example "main = putStrLn "hi" >>= \_ -> main" is productive.
03:46:49 <haskellbridge> <i​rregularsphere> s/_/\_
03:47:49 <haskellbridge> <i​rregularsphere> to be fair i just know IO as a magic state monad that uses the RealWorld
03:48:15 × yin quits (~yin@user/zero) (Ping timeout: 245 seconds)
03:48:17 <haskellbridge> <i​rregularsphere> ~~I wonder if you can create your own `RealWorld`s~~
03:48:49 <Inst> ruwRW# :3
03:49:07 <monochrom> The "RealWorld -> (a, RealWorld)" model will not explain why putStrLn actually prints anything.
03:49:35 <Inst> or rather, GHC.Prim.html
03:49:42 <Inst> erm, GHC.Prim.realWorld#
03:49:45 <haskellbridge> <i​rregularsphere> fair, that's why i said "to be fair i just know"
03:49:51 <monochrom> By extension, you can create your own RealWorld's, there is enough stuff in GHC.* modules for that. And that still doesn't let you print anything.
03:49:56 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
03:50:14 <monochrom> Although, beginning with 9.6, it is enough for you to play with shift-reset.
03:50:18 yin joins (~yin@user/zero)
03:51:34 <Inst> also technically, >>= \_ -> main should be less efficient than >> main, no?
03:51:43 <Inst> since there is a specific thenIO#
03:51:50 <EvanR> if RealWorld Haskell was written by Inst it would be called IO Haskell
03:54:02 <monochrom> Not sure how knowing about thenIO# answers the questions you asked unless you intend to answer them by studying GHC source code and then GHC RTS source code.
03:56:55 <haskellbridge> <i​rregularsphere> looking at the source, `bindIO` and `thenIO` look similar, so I guess it'd not be that much of a performance penalty (or, any at all)
03:57:06 <Inst> on main = putStrLn "hi" >> main, >> is the function actually running, when then creates a lambda of IO (\s -> case runRW# (putStrLn "hi") s of (new_s, _) -> unIO main new_s)
03:57:43 <haskellbridge> <i​rregularsphere> I'm not familiar with haskell's internals unfortunately
03:58:48 <Inst> main unwraps, applies the state token
03:59:14 <Inst> forces the lambda to case runRW# (putStrLn "hi") s, running the effect
03:59:50 <Inst> pattern matches on a fictive new state, then unIO unwraps main and the evaluation engine tries to go to the next main
03:59:53 <Inst> wrong?
04:01:32 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:01:32 <Inst> ironically I do have to wonder if foo >> bar >> baz has different performance characteristics to foo >> (bar >> baz)
04:01:40 <Inst> or rather foo; bar; baz
04:01:46 <glguy> You don't have to wonder
04:02:06 <Inst> since it's infixl
04:02:17 <Inst> thus the bar baz >> is "in control"
04:02:57 <haskellbridge> <i​rregularsphere> I don't know what infix has to do with this
04:03:55 <Inst> infixl should mean it renders as (foo >> bar) >> baz
04:04:25 <Inst> by lazy semantics, (foo >> bar) is treated as a thunk, then evaluated first, no?
04:04:34 <Inst> then foo >> bar is part of its evaluation
04:04:54 <Inst> whereas foo; bar; baz is effectively foo >> (bar >> baz)
04:05:03 <Inst> and evaluates more cleannly
04:05:26 peterbecich joins (~Thunderbi@47.229.123.186)
04:05:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
04:05:39 <glguy> Inst: you don't have to guess; you can just ask GHC to show you what it did
04:06:47 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:08:42 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
04:09:02 demesne joins (~demesne@50.35.88.207)
04:09:29 <monochrom> My https://mail.haskell.org/pipermail/haskell-cafe/2013-April/107775.html is a great example.
04:09:43 <monochrom> of how armchair philosophy is always broken.
04:11:18 michalz joins (~michalz@185.246.207.218)
04:14:05 <glguy> monochrom: ugh, it didn't bother eval = fval ??
04:14:38 <monochrom> Heh, I don't know why, but perhaps just because it was 2013.
04:15:47 <monochrom> With todays "f = (... >> ...) >> ...; g = ... >> (... >> ...)" example and recent GHC, yeah it just does "f = f1; g = f1; f1 = ..."
04:19:08 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
04:20:08 <monochrom> OK today's GHC does "eval = fval". :)
04:22:40 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
04:24:56 <Inst> oh wow, what happend to fllvm?
04:25:28 <glguy> I give uo
04:25:31 <glguy> up
04:27:40 <monochrom> You wanna have fun listening to a new fable I'm making up just now? >:)
04:27:58 <Inst> it's -ddump-simpl to see logs?
04:28:05 <Inst> sorry, I got distracted by trying to search for how to get the IR out
04:28:11 <Inst> ended up just stealing it off monochrom's link
04:28:21 <Inst> then i ended up playing around with trying to get -fllvm working
04:28:28 <Inst> which i suspect really should be called -O3
04:28:37 <monochrom> I'm going to tell it anyway! Someone asks why 20 mod 10 = 0.
04:28:57 <monochrom> So everyone tries to explain like 20 is a multiple of 10 so the remainder is 0.
04:30:07 <monochrom> But the asker decided to not listen, instead compile with gcc -O2, and say "btw as shown by gcc -O2, isn't it more efficient to multiple by 1717986919 then do this left-shift then do this right-shift then ..."
04:30:07 glguy prepares for enlightenment
04:35:03 <Inst> has your enlightenment arrived?
04:38:45 <jackdk> Enlightenment came for me in the early 2000s, when I discovered the BlueSteel theme
04:38:59 <Inst> okay, looking at the IR of sample foo programs, which calls boo and baz
04:41:03 <Inst> cool, only at O0 do you see the different encodings
04:41:32 <Inst> but am i wrong if i say that fflvm is haskell's hidden O3 mode?
04:42:39 <dolio> Yes.
04:45:01 <Inst> why?
04:45:33 <dolio> Why would you even think that it is?
04:45:56 <Inst> since fflvm apparently grants some performance improvements when using vector
04:46:11 <c_wraith> and worse performance in other cases
04:46:30 <Inst> and i'm annoyed that when i benchmarked it via time, Haskell seems to run at 4x rust
04:46:35 <dolio> Anyhow, I haven't been paying close attention, but I recall seeing ghc people lamenting about how no one is even working on it anymore, so it may be getting worse over time.
04:46:42 <Inst> i know
04:46:53 <Inst> i'm also told llvm is terrible for FP, although someone's talking about setting up recursive macros
04:46:57 <dolio> And yeah, some examples might be better, others might be worse.
04:47:51 Square joins (~Square@user/square)
04:49:01 <Inst> if kuribas were here, i'd mention they claimed that they could get Haskell reliably within 50% of rust
04:49:05 <Inst> with trivial effort
04:49:16 <dolio> I wouldn't be surprised if no one's verified that -fllvm is actually better for vector in like 7 years.
04:49:53 <dolio> But, I mean, it might be. It's pretty particular code.
04:51:50 <Inst> minority of minority of performance obsessed haskellers
04:53:00 rosco joins (~rosco@yp-146-6.tm.net.my)
04:53:26 <haskellbridge> <i​rregularsphere> Inst: "4x rust" would you please send us both codes that have been benchmarked
04:55:29 <haskellbridge> <i​rregularsphere> "if kuribas were here, i'd mention they claimed that they could get Haskell reliably within 50% of rust" I'm sorry, what does "get Haskell within 50% of Rust" mean
04:56:27 <EvanR> 4 times faster than rust is nothing to complain about!
04:57:32 <haskellbridge> <i​rregularsphere> I won't believe it till I replicate it
04:58:32 <EvanR> it would have to be something that benefits from skipping most of the work thanks to laziness, in which case the rust version could be excused for being written wrong
04:59:09 <EvanR> and not explicitly skipping work the long way
05:01:22 <Inst> i mean flatparse seems to outperform nom for some reason
05:01:28 <Inst> i can't find where chrisdone hid his benchmarks
05:03:08 <Inst> here we go
05:03:08 <Inst> https://gist.github.com/chrisdone/8551675bb99a0d66cf075fdcb1e6b757
05:04:37 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:05:17 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
05:06:49 euleritian joins (~euleritia@dynamic-176-006-008-103.176.6.pool.telefonica.de)
05:07:07 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 260 seconds)
05:11:07 kritzefitz_ joins (~kritzefit@debian/kritzefitz)
05:13:11 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 264 seconds)
05:14:49 <haskellbridge> <i​rregularsphere> "it would have to be something that benefits from skipping most of the work thanks to laziness, in which case the rust version could be excused for being written wrong" yeah anything written in any language can be written in rust, or C if you're brave enough
05:14:59 × bilegeek quits (~bilegeek@2600:1008:b048:47a6:69f5:273e:c742:c5f5) (Quit: Leaving)
05:15:58 kritzefitz_ is now known as kritzefitz
05:16:39 <haskellbridge> <i​rregularsphere> Rust is eager by default and Haskell is lazy by default, I would say
05:17:35 <haskellbridge> <i​rregularsphere> anyway I'm much more interested in the type system, and I don't even program seriously anyway
05:17:48 <Axman6> -fllvm can be useful for certain kinds of code, mostly code which uses lots of loops and/or numerical things that it can vectorise. But a lot of Haskell code sees no improvement
05:20:10 <Inst> now the challenge for me is to figure out how to get -fllvm working
05:21:44 <Axman6> do you have an error?
05:21:52 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:22:06 <Axman6> generally it's as simple as having llvm installed, and GHC just calls `opt` on its llvm output files
05:22:18 <Axman6> (oversimplification but roughly true)
05:23:48 <Inst> looks like this
05:23:48 <Inst> https://media.discordapp.net/attachments/968989726633779215/1232200171152998470/image.png?ex=66289755&is=662745d5&hm=f955be2486c61606a8c246e9b92e4b187f392a395b561d8352e5abd4577a8d3e&=&format=webp&quality=lossless&width=1036&height=373
05:24:29 <Inst> thanks for offering to help, Axman6
05:25:07 <haskellbridge> <i​rregularsphere> unsupported llvm version?
05:25:19 <Inst> i have no idea why this is
05:25:28 <haskellbridge> <i​rregularsphere> I could only guess...
05:25:54 × mei quits (~mei@user/mei) (Killed (mercury.libera.chat (Nickname regained by services)))
05:25:55 <Inst> i heard 9.10 or 9.12 supports up to llvm 18
05:25:57 <haskellbridge> <i​rregularsphere> s/could/can
05:25:59 mei joins (~mei@user/mei)
05:26:19 <Inst> so i have clang14 installed via pacman and am trying to figure out how to change system default clang version
05:27:53 <dolio> -fllvm doesn't compile to C, though. It uses a GHC-specific calling convention in general llvm.
05:28:51 × rosco quits (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal)
05:30:07 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:32:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
05:33:12 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
05:39:27 × peterbecich quits (~Thunderbi@47.229.123.186) (Ping timeout: 256 seconds)
05:45:03 × demesne quits (~demesne@50.35.88.207) (Remote host closed the connection)
05:49:37 <Axman6> if you can use an older LLVM install in your path and/or alias opt=opt-14 or something then that might work
05:50:38 <Axman6> or you can use -pgmlo opt-14 -pgmlc llc-14 as GHC arguments
05:50:57 × dunj3 quits (~dunj3@kingdread.de) (Ping timeout: 252 seconds)
05:51:05 <Axman6> https://downloads.haskell.org/ghc/latest/docs/users_guide/phases.html?highlight=pgm#ghc-flag--pgmlo%20⟨cmd⟩
05:52:17 peterbecich joins (~Thunderbi@47.229.123.186)
05:53:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:54:22 rosco joins (~rosco@yp-146-6.tm.net.my)
05:55:48 dunj3 joins (~dunj3@kingdread.de)
05:58:15 <glguy> You can fix a particular GHC to use a particular llc and opt executable by editing your local settings file, e.g. .ghcup/ghc/9.4.8/lib/ghc-9.4.8/lib/settings
05:58:35 acidjnk joins (~acidjnk@p200300d6e714dc429de1f5b63f3ace20.dip0.t-ipconnect.de)
05:59:10 <Inst> thanks
06:00:16 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
06:06:46 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:08:07 × peterbecich quits (~Thunderbi@47.229.123.186) (Ping timeout: 255 seconds)
06:11:10 × philopsos quits (~caecilius@user/philopsos) (Ping timeout: 245 seconds)
06:11:11 julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752)
06:14:45 danza joins (~francesco@151.35.152.107)
06:17:35 oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
06:20:05 leah2 joins (~leah@vuxu.org)
06:26:57 mima joins (~mmh@aftr-62-216-211-1.dynamic.mnet-online.de)
06:29:33 <mauke> glguy: "Note on syntax — the reader should understand why we need the brackets in f(2, 3). Not to make a list — that is done by the comma. Nor to denote functional application — mere juxtaposition does that. They are there because functional application binds more tightly than comma — without them we should be applying f to 2 only and not to the whole list."
06:30:38 <mauke> it's not exactly the same, but the parentheses in @xs = (2, 3); are also there purely because of precedence
06:37:13 × ft quits (~ft@p4fc2a20e.dip0.t-ipconnect.de) (Quit: leaving)
06:38:19 <glguy> mauke: Simple Authentication and Security Layer (SASL) ?
06:40:02 zetef joins (~quassel@5.2.182.98)
06:41:30 <Inst> thanks glguy
06:41:31 × zetef quits (~quassel@5.2.182.98) (Remote host closed the connection)
06:41:44 <Inst> settings = opt-14 / llc-14
06:41:45 <Inst> sigh
06:45:45 × dtman34 quits (~dtman34@2601:447:d001:ed50:5054:ff:fee3:b667) (Ping timeout: 256 seconds)
06:48:23 × jle` quits (~jle`@2603:8001:3b02:84d4:9428:fb32:50c:b0cc) (Ping timeout: 260 seconds)
06:49:04 jle` joins (~jle`@2603:8001:3b02:84d4:99e7:4463:681a:66ac)
06:51:15 paddymahoney joins (~paddymaho@pool-99-250-26-190.cpe.net.cable.rogers.com)
06:53:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:58:57 oo_miguel1 joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
07:02:51 × oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 245 seconds)
07:02:51 oo_miguel1 is now known as oo_miguel
07:04:01 <mauke> glguy: https://web.archive.org/web/20150402133901/http://www.eis.mdx.ac.uk/staffpages/dat/saslman.pdf
07:04:42 <mauke> predecessor of KRC, Miranda, Haskell
07:05:41 <danza> hah a language that can define only data structures. Fancy
07:06:31 Square2 joins (~Square4@user/square)
07:06:37 × euleritian quits (~euleritia@dynamic-176-006-008-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
07:06:55 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
07:07:36 <danza> considering the state of the web, i thought about downloading that document. Might not find it again eventually
07:16:48 AlexZenon_2 joins (~alzenon@178.34.161.189)
07:17:42 Square3 joins (~Square4@user/square)
07:18:15 × AlexZenon quits (~alzenon@178.34.161.189) (Ping timeout: 245 seconds)
07:18:18 × dsrt^ quits (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 255 seconds)
07:18:40 × Square2 quits (~Square4@user/square) (Ping timeout: 245 seconds)
07:21:06 dsrt^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net)
07:22:46 danza_ joins (~francesco@151.35.253.181)
07:23:12 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
07:23:55 × danza quits (~francesco@151.35.152.107) (Read error: Connection reset by peer)
07:24:20 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
07:30:08 dtman34 joins (~dtman34@2601:447:d001:ed50:e2b0:b15b:8890:6869)
07:31:09 × tzh quits (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
07:37:58 × rosco quits (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal)
07:43:15 × Square3 quits (~Square4@user/square) (Ping timeout: 245 seconds)
07:43:40 × yin quits (~yin@user/zero) (Ping timeout: 245 seconds)
07:47:34 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 255 seconds)
07:50:13 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
07:50:35 yin joins (~yin@user/zero)
07:51:24 philopsos joins (~caecilius@user/philopsos)
07:51:46 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
07:51:58 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
07:56:21 rosco joins (~rosco@yp-146-6.tm.net.my)
08:01:32 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
08:02:24 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
08:04:46 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:04:51 gmg joins (~user@user/gehmehgeh)
08:05:48 Guest64 joins (~Guest95@217.7.130.9)
08:14:19 chele joins (~chele@user/chele)
08:18:40 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
08:19:08 FragByte joins (~christian@user/fragbyte)
08:19:41 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
08:20:33 × AlexZenon_2 quits (~alzenon@178.34.161.189) (Ping timeout: 252 seconds)
08:24:31 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
08:25:20 AlexZenon joins (~alzenon@178.34.161.189)
08:34:30 × danza_ quits (~francesco@151.35.253.181) (Ping timeout: 245 seconds)
08:41:35 × philopsos quits (~caecilius@user/philopsos) (Ping timeout: 245 seconds)
08:45:48 × julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
08:49:33 × demon-cat quits (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 268 seconds)
08:54:01 <haskellbridge> <i​rregularsphere> is there a dump channel/room for annoying thoughts regarding Haskell
08:54:27 julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752)
08:56:21 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:a472:8995:2c6:603d)
08:56:50 danse-nr3 joins (~danse-nr3@151.35.253.181)
08:57:13 × danse-nr3 quits (~danse-nr3@151.35.253.181) (Remote host closed the connection)
08:57:34 <haskellbridge> <i​rregularsphere> "saslman.pdf" ...the entire prelude listing is 4 pages long
08:57:39 danse-nr3 joins (~danse-nr3@151.35.253.181)
08:57:39 <haskellbridge> <i​rregularsphere> i can appreciate that
09:00:46 <Inst> wow, this is nuts
09:00:48 <Inst> https://www.youtube.com/watch?v=Xceng7i98Y0
09:00:58 <Inst> the part about seq not actually forcing thunks but only annotating a data dependency
09:07:11 × julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
09:07:12 madeleine-sydney joins (~madeleine@c-76-155-235-153.hsd1.co.comcast.net)
09:07:45 julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752)
09:10:45 × superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Quit: WeeChat 4.2.1)
09:14:13 superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net)
09:14:19 × julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
09:15:09 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:15:50 × Inst quits (~Inst@user/Inst) (Read error: Connection reset by peer)
09:16:11 Inst joins (~Inst@user/Inst)
09:20:43 <Inst> irregularsphere: I guess #haskell-offtopic might be tolerant
09:21:21 <danse-nr3> maybe not towards intolerance though
09:21:40 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
09:21:40 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
09:22:16 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
09:22:30 pastly joins (~pastly@gateway/tor-sasl/pastly)
09:22:30 <Inst> hopefully not toward intolerance
09:23:15 <haskellbridge> <i​rregularsphere> heh, might set up an IRC account soon :-)
09:30:33 julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752)
09:34:00 <Inst> okay, ran some toy benchmarks
09:34:23 <Inst> haskell is ~100 ms on fib 100_000, so's rust
09:35:25 <danse-nr3> i thought you were busy with an ambitious project? That platform for apps or something along those lines
09:35:57 <Inst> need to learn html, now sidetracked with learning linux
09:36:24 <danse-nr3> do you have an estimation about how much will the project take?
09:37:21 <Inst> probably never :(
09:37:26 <Inst> i have tons of idea and just spout vaporware
09:37:43 <Inst> thanks for being actually supportive, though!
09:38:04 <danse-nr3> i was not even supportive, barely mindful
09:38:50 <Inst> well, implicitly you were somehow expecting that i'd actually do something
09:38:59 <Inst> you make me want to make a shoddy mockup, then iterate through it
09:39:18 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
09:39:51 <danse-nr3> if you develop it as an evolutionary prototype it could get somewher
09:39:54 <danse-nr3> e
09:41:23 ec joins (~ec@gateway/tor-sasl/ec)
09:41:24 <Inst> it exists, it's not pure BS, maybe someone could steal the concept and go somewhere with it, or I could iterate it to get it to suck less until it doesn't suck
09:42:06 <danse-nr3> well the concept might be the most mutable part of that prototype
09:42:35 <geekosaur> (it will always suck, because you'll always be comparing it to a vision that might not even be realizable)
09:43:23 × causal quits (~eric@50.35.88.207) (Quit: WeeChat 4.1.1)
09:43:26 <Inst> well i learned not to be so hard on myself
09:43:31 <geekosaur> that's the problem with Grand Ideas
09:43:46 <Inst> no point in having standards you'll never meet, because that' sdemoralizing and provides an excuse for failure
09:43:47 <danse-nr3> yeah and sucking is a good feature for such a prototype...
09:43:55 ph88 joins (~ph88@ip5b403f30.dynamic.kabel-deutschland.de)
09:44:14 <ph88> when i use do-notation for Either is it using applicative-do or monad ?
09:44:16 <danse-nr3> just a matter of steering it until it sucks money. That's how the industry works at the moment
09:44:37 <danse-nr3> monad ph88
09:45:14 <ph88> thx
09:45:32 <danse-nr3> i wonder how you got that doubt though
09:46:09 <ph88> can i make a monad like Either for data Err a = Fail String | Success a or is it not possible because there is no second type variable?
09:47:00 <danse-nr3> huh this is a conversation that came up here some weeks ago
09:47:20 <danse-nr3> there exist already multiple types for that
09:47:38 <danse-nr3> basically Eithers with different monadic semantics
09:48:08 <ph88> i have to work with a type given by a library
09:50:29 × ph88 quits (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
09:51:10 ph88 joins (~ph88@ip5b403f30.dynamic.kabel-deutschland.de)
09:53:37 × ph88 quits (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
09:55:07 ph88 joins (~ph88@ip5b403f30.dynamic.kabel-deutschland.de)
10:00:04 Nixkernal joins (~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch)
10:00:14 × ph88 quits (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
10:00:27 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
10:00:35 euleritian joins (~euleritia@dynamic-176-006-008-103.176.6.pool.telefonica.de)
10:00:58 × euleritian quits (~euleritia@dynamic-176-006-008-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
10:01:15 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
10:02:54 <ncf> that's just Either String
10:06:47 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:a472:8995:2c6:603d) (Remote host closed the connection)
10:07:00 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:a472:8995:2c6:603d)
10:07:53 <danse-nr3> sometimes one wants different monadic semantics that "first Left quits", there are other types but i do not use them often
10:09:33 <ncf> the question seemed more basic than that, since they asked about "a monad like Either"
10:09:34 <danse-nr3> *different semantics than*
10:10:15 <danse-nr3> that's what i was talking about, but they said "can i make". Of course one can be made, but there are already several
10:10:23 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:a472:8995:2c6:603d) (Remote host closed the connection)
10:10:35 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:a472:8995:2c6:603d)
10:14:23 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 264 seconds)
10:22:43 sawilagar joins (~sawilagar@user/sawilagar)
10:24:37 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
10:25:34 × julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Ping timeout: 250 seconds)
10:30:00 waldo joins (~waldo@user/waldo)
10:32:41 yeitrafferin joins (~user@2a04:4540:720b:c200:f675:174e:dfd1:276b)
10:36:50 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
10:40:21 <Inst> oh
10:40:26 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
10:41:35 <Inst> that's the reason foldl' generates thunks, i.e, it has to first traverse the list to generate nested function applications, then it has to execute the nested function applications in the same way foldr would have to
10:42:49 <jackdk> doesn't the `'` at the end of `foldl'` indicate that it forces the accumulator to WHNF as it processes each element?
10:43:38 <Inst> erm, fold
10:43:42 <Inst> foldl, not foldl'
10:44:59 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
10:45:44 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:46:37 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
10:47:56 ph88 joins (~ph88@ip5b403f30.dynamic.kabel-deutschland.de)
10:48:39 Lord_of_Life_ is now known as Lord_of_Life
10:49:21 <ph88> is there a type class that allows me to take one element of a list/vector/"any other type with multiple inner elements" do something on it and then decide whether to continue to the next or return some result
10:49:48 <ncf> traverse with Either
10:50:14 <ncf> to answer your earlier question, Err is just Either String so you can copy the Monad instance for Either e
10:50:38 <ph88> Yes that worked for Err
10:50:58 <ncf> to answer your earlier earlier question, do notation can use Applicative with the ApplicativeDo notation (provided you have the right dependency structure)
10:51:02 <ph88> i have this function already https://bpa.st/5LOA i want to make something similar but not for Either but my own type. How do i do that ?
10:51:15 <ncf> the ApplicativeDo extension*
10:52:18 <ncf> isn't that foldlM?
10:52:37 <ncf> or some `coerce`ion thereof
10:53:20 <ph88> does foldlM allow to abort early or are you forced to go over all the elements ?
10:53:47 <ncf> (note that foldM = foldlM)
10:54:02 <ncf> it aborts early if you're in a monad that allows aborting early, like ExceptT e m
10:54:18 <danse-nr3> Either allows early quits
10:55:07 <ph88> i made my own monad https://bpa.st/QPBA
10:55:39 <ncf> foldlEitherM = coerce (foldlM @_ @(ExceptT e m))
10:56:33 <ncf> Result ≃ Either (Either Text Text)
10:57:52 <ph88> i don't think this https://bpa.st/5LOA is the same as foldM
10:59:24 <ncf> why not?
10:59:42 <ph88> hmm actually the type signatures do line up
10:59:54 <ncf> well you have to nudge the compiler to see that the monad is ExceptT m e and not just m
11:00:22 __monty__ joins (~toonn@user/toonn)
11:00:53 <ph88> ah no they don't line up, i'll make a paste
11:03:02 <ph88> https://bpa.st/O5PQ
11:03:55 rvalue- joins (~rvalue@user/rvalue)
11:04:35 <ph88> almost though, that's pretty good
11:04:40 <ncf> you don't change b, you change m
11:04:55 <ncf> (to ExceptT e m)
11:05:00 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
11:05:16 <ncf> (which is isomorphic to m (Either e b))
11:05:32 <ph88> yes that works for Either how can i do something like that for my own monad? https://bpa.st/QPBA
11:05:51 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:a472:8995:2c6:603d) (Ping timeout: 256 seconds)
11:06:06 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Ping timeout: 260 seconds)
11:06:11 <ncf> write a ResultT transformer? why not use Either though?
11:06:11 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:a472:8995:2c6:603d)
11:07:24 <ph88> 1. because the left side is always of the same type and it makes my code cleaner 2. because i need 2 stop conditions, with Either i only have Right, sure i could make (Either Text (Either A B)) but that makes it even uglier. I like descriptive types
11:07:48 <ph88> ncf, ok i can try to write a ResultT transformer. I have never wrote a transformer before
11:08:18 <ncf> data Failure = ParseFail Text | AnalysisFail Text; type Result = Either Failure
11:08:32 pastly joins (~pastly@gateway/tor-sasl/pastly)
11:09:48 rvalue- is now known as rvalue
11:12:06 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
11:12:14 euleritian joins (~euleritia@dynamic-176-006-008-103.176.6.pool.telefonica.de)
11:12:36 × euleritian quits (~euleritia@dynamic-176-006-008-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
11:12:53 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:12:56 <ph88> ncf, do you mean like this? https://bpa.st/GJBA
11:13:46 xff0x joins (~xff0x@ai082039.d.east.v6connect.net)
11:15:05 × danse-nr3 quits (~danse-nr3@151.35.253.181) (Read error: Connection reset by peer)
11:16:10 <ncf> no
11:24:32 <jackdk> ph88: writing your own transformer is good practice. https://github.com/qfpl/applied-fp-course/blob/master/bonus/mtl.md may help
11:26:38 × waldo quits (~waldo@user/waldo) (Quit: waldo)
11:44:25 × sroso quits (~sroso@user/SrOso) (Quit: Leaving :))
11:45:10 danse-nr3 joins (~danse-nr3@151.37.229.99)
11:45:27 × danse-nr3 quits (~danse-nr3@151.37.229.99) (Remote host closed the connection)
11:45:38 ystael joins (~ystael@user/ystael)
11:45:52 danse-nr3 joins (~danse-nr3@151.37.229.99)
11:47:13 × michalz quits (~michalz@185.246.207.218) (Ping timeout: 256 seconds)
11:47:24 michalz_ joins (~michalz@185.246.207.215)
11:52:22 × yin quits (~yin@user/zero) (Ping timeout: 246 seconds)
11:54:27 yin joins (~yin@user/zero)
11:59:20 <ph88> thx
12:07:34 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
12:24:50 × danse-nr3 quits (~danse-nr3@151.37.229.99) (Remote host closed the connection)
12:26:20 danse-nr3 joins (~danse-nr3@151.37.229.99)
12:30:53 × danse-nr3 quits (~danse-nr3@151.37.229.99) (Remote host closed the connection)
12:31:17 danse-nr3 joins (~danse-nr3@151.37.229.99)
12:38:50 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:42:28 myxokephale joins (~myxos@65.28.251.121)
12:43:13 × mei quits (~mei@user/mei) (Remote host closed the connection)
12:44:30 × myxos quits (~myxos@172.93.132.84) (Ping timeout: 268 seconds)
12:44:42 × danse-nr3 quits (~danse-nr3@151.37.229.99) (Remote host closed the connection)
12:45:06 danse-nr3 joins (~danse-nr3@151.37.229.99)
12:45:37 mei joins (~mei@user/mei)
12:51:34 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 260 seconds)
12:53:50 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
13:03:54 demon-cat joins (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net)
13:08:10 × demon-cat quits (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 256 seconds)
13:11:38 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
13:21:14 <yin> do people still MTL?
13:21:32 <danse-nr3> pretty much
13:21:45 <yin> i was never a fan
13:22:37 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
13:22:58 <danse-nr3> bloat comes, bloat stays. I hope we will be lucky with the new generation of machine-learned assisted frameworks
13:23:39 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
13:27:50 × yin quits (~yin@user/zero) (Ping timeout: 245 seconds)
13:28:59 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
13:35:34 random-jellyfish joins (~developer@2a02:2f04:11e:c600:6701:651f:491d:25a1)
13:35:34 × random-jellyfish quits (~developer@2a02:2f04:11e:c600:6701:651f:491d:25a1) (Changing host)
13:35:34 random-jellyfish joins (~developer@user/random-jellyfish)
13:36:59 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
14:15:21 dxld parts (a6d27c8ee6@2a03:6000:1812:100::52) ()
14:15:23 billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
14:20:03 × Buggys quits (Buggys@shelltalk.net) (Ping timeout: 272 seconds)
14:26:17 tri joins (~tri@ool-18bbef1a.static.optonline.net)
14:26:21 raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
14:28:54 yin joins (~yin@user/zero)
14:30:34 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 246 seconds)
14:34:50 <ph88> danse-nr3, what to use instead of mtl when it's bloat ?
14:37:50 <Hecate> Effectful, of course
14:37:55 <Hecate> What Else?™
14:40:21 matthias1 joins (~igloo@104.28.196.78)
14:41:52 eron joins (~eron@168.196.116.143)
14:41:59 <ph88> haha nice Hecate :D
14:42:07 <ph88> do you use effectful ?
14:43:21 <Hecate> ph88: sure!
14:43:31 <Hecate> I speak as a happy consumer
14:43:37 <Hecate> *and* contributor to its ecosystem
14:43:37 <ph88> Hecate, link me some code :)
14:44:08 <ph88> Hecate, i started to use it too, still new for me. I mainly started to use it because of the promise of performance
14:45:11 × matthias1 quits (~igloo@104.28.196.78) (Remote host closed the connection)
14:47:14 <Hecate> ph88: https://github.com/Kleidukos/get-tested/blob/main/app/Main.hs
14:49:00 <Hecate> https://github.com/change-metrics/monocle also uses it
14:49:00 <Hecate> https://tristancacqueray.github.io/blog/introducing-effects
14:49:16 <Hecate> https://github.com/anoma/juvix/pull/2663 nice example as well
14:49:18 <hippoid> I have a project setup like A/B, where A and B are dirs. B is a haskell project. The cabal file lives in B. From A, I want to do a `cabal run...` such that it runs the cabal project in B. how ?
14:49:46 <Hecate> some examples in this codebase as well, ph88 : https://github.com/flora-pm/flora-server/blob/65fee43f571a94fc8823be8f7d575f676484eb5e/src/core/Flora/Publish.hs#L27-L34
14:50:10 <ph88> cool Hecate
14:50:36 <Hecate> hippoid: make a cabal.project file at the top-level that lists the various packages (in A, manifestly). Then cabal should be able to traverse the hierarchy of directories and run the stuff related to A
14:55:47 matthias1 joins (~igloo@104.28.196.78)
14:56:41 zetef joins (~quassel@5.2.182.99)
14:59:01 <hippoid> Hecate: thanks, I got that to work!
14:59:30 <Hecate> hippoid: hurray
15:00:57 × matthias1 quits (~igloo@104.28.196.78) (Ping timeout: 252 seconds)
15:06:25 × hippoid quits (~hippoid@user/hippoid) (Quit: WeeChat 4.2.1)
15:07:09 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
15:07:09 hippoid joins (~hippoid@user/hippoid)
15:10:41 chexum joins (~quassel@gateway/tor-sasl/chexum)
15:17:45 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
15:19:00 × madeleine-sydney quits (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Remote host closed the connection)
15:20:20 × rosco quits (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal)
15:21:29 × ncf quits (~n@monade.li) (Quit: Fairfarren.)
15:21:44 cs joins (~AdminUser@46.191.138.60)
15:21:56 ncf joins (~n@monade.li)
15:22:04 × Square quits (~Square@user/square) (Ping timeout: 268 seconds)
15:24:47 × ncf quits (~n@monade.li) (Client Quit)
15:24:49 × raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 256 seconds)
15:24:59 ncf joins (~n@monade.li)
15:28:55 Guest13 joins (~Guest13@cpc93370-hers8-2-0-cust590.6-3.cable.virginm.net)
15:30:27 <Guest13> hi there, I have a beginner Haskell question: I have a list of indices and a 2d list to update. so far I have been using zip and map combined, but this gets quite confusing for the 2d case. is there a better way of doing this?
15:31:28 <EvanR> another way to represent a grid of A is Map (Int,Int) A
15:32:18 <Guest13> this is probably a better way to do it in hindsight. I was used to treating a grid as a 2d array
15:32:37 <EvanR> a list, or nested list, is certainly not that
15:32:55 <EvanR> but you could also use an actual array
15:33:08 <Guest13> but it would take me a long time to update the code to use this, is the only other option to concat and zip ?
15:33:58 <danse-nr3> for an efficient solution it would be helpful to know whether you expect more indexes or more elements
15:34:11 <EvanR> if you're only going to accept very specific answers you'll need to get much more specific with the question
15:35:38 <Guest13> I am trying to fill in areas that I designate as "not in loop" as a default object. I have the loop as a path which is a list of indices and the grid is a [[Tile]] where Tile is simply Pipe Char or Empty
15:35:51 <ncf> a list of indices into the 2D list? as in a list of pairs of natural numbers?
15:35:56 <Guest13> yes
15:36:36 <Guest13> the goal is to map those indices only to a default value, or equally anything that is not in those indices
15:36:50 <Guest13> I have indices for the loop and notLoop
15:37:10 × cs quits (~AdminUser@46.191.138.60) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
15:37:18 <Guest13> if it helps, this is again for an AOC problem on day 10 part 2 '=D
15:37:56 <EvanR> when using a list like that, I always make a "update ith element with function or replacement" function, which isn't included in prelude by default. Probably to discourage using lists like this
15:38:16 <EvanR> since it's 2D you would implement the 2D version by chaining that function once
15:38:30 <EvanR> nesting
15:38:36 <ncf> yeah use a better data structure. if you really want to use lists then use lens probably
15:39:10 <EvanR> AOC uses grids so much better get a proper grid structure sooner than later
15:39:14 <Guest13> yeah I made a mistake at the start by using list like this because I didn't know it wouldn't be a good idea for a grid
15:39:21 <Guest13> its the first grid problem
15:39:33 <Guest13> or the previous one was easy enough where it didn't matter
15:39:38 <EvanR> for default entries in a grid, you don't even need to store anything, just consider "nothing there" as the default value
15:39:52 <EvanR> aka `total map'
15:40:05 <Guest13> I have something like data Tile = Pipe Char | Empty deriving(Show, Eq)
15:40:12 <Guest13> and type Maze = [[Tile]]
15:40:29 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
15:40:40 <Guest13> bad design choice that is causing me a lot of pain, because zipping the 2d list is not that easy yet I'm still new to haskell
15:40:58 <EvanR> another pattern is to have your data structure and a set of functions to operate on it
15:41:03 <Guest13> I just liked that I could transpose it I thought it helped a lot
15:41:04 <EvanR> which you might be trying to avoid here
15:41:15 <EvanR> but whether you use a list or a Map, it would be a good pattern
15:41:56 <EvanR> it helps separate reusable code from problem-at-hand code
15:42:23 <Guest13> yeah my code is really ugly
15:42:27 <Guest13> I have something like dfs :: Maze -> Set.Set Position -> Set.Set Position -> [Position] -> [Position]
15:42:44 × danse-nr3 quits (~danse-nr3@151.37.229.99) (Read error: Connection reset by peer)
15:42:48 euleritian joins (~euleritia@dynamic-176-006-018-204.176.6.pool.telefonica.de)
15:43:13 <Guest13> next time I see a problem like this I will think more about data than functions
15:43:36 <Guest13> 2d array is perfect for it, but indexing seems to be for losers in haskell
15:43:41 danse-nr3 joins (~danse-nr3@151.47.250.177)
15:43:49 <Guest13> cool kids use maps and folds
15:43:58 <EvanR> usually 2D array is not perfect, because it makes you decide the dimensions ahead of time
15:44:05 <EvanR> unlike Map or total map
15:44:34 <EvanR> for AOC it's usually more convenient than an array
15:44:55 <Guest13> yeah with a map I could just fold on the list of indices it would be so easy
15:44:57 <c_wraith> Guest13: you might be surprised how little time it takes to change a data structure. this is a thing Haskell is really good at
15:45:12 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:45:17 <Guest13> I am worried because I have a lot of functions that will break
15:45:33 <c_wraith> but the compiler will point you at every one of them
15:45:36 <Guest13> I should change it though, I'm doing AOC to get better at Haskell mainly
15:45:44 <c_wraith> you can't fail to update one.
15:45:48 <Guest13> and this seems like a prime case of skill issue
15:45:51 <c_wraith> there's nothing to be afraid of
15:47:19 <Guest13> I will update the code to use Map
15:47:47 <Guest13> type Grid = Map (Int, Int) Tile
15:48:00 <Guest13> not sure if I should new type or type, still not clear on that one
15:48:12 <EvanR> 👍
15:48:48 <EvanR> newtype might add bureaucracy that is not worth it in this case
15:49:08 <EvanR> in larger projects it can help catch type mismatches
15:49:58 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
15:50:27 × nschoe quits (~nschoe@2a01:e0a:8e:a190:1a14:5923:b0ce:d13e) (Quit: ZNC 1.8.2 - https://znc.in)
15:50:44 nschoe joins (~nschoe@2a01:e0a:8e:a190:f3a1:c501:e8bd:2571)
15:51:13 <Guest13> thank you for the help! I think my code will be a lot cleaner after defining better type and helper functions
15:51:23 <Guest13> I repeat a lot of concat zip stuff for indexing
15:51:28 <Guest13> folder concat zip
15:51:37 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
15:51:56 EvanR joins (~EvanR@user/evanr)
15:55:25 × yin quits (~yin@user/zero) (Ping timeout: 256 seconds)
15:56:02 SurfBlueCrab parts (~SurfBlueC@nyc.nanobit.org) (Leaving)
15:57:29 tzh joins (~tzh@c-73-164-206-160.hsd1.or.comcast.net)
15:57:50 × manwithluck quits (manwithluc@gateway/vpn/protonvpn/manwithluck) (Remote host closed the connection)
15:58:12 × mei quits (~mei@user/mei) (Remote host closed the connection)
15:58:53 pastly joins (~pastly@gateway/tor-sasl/pastly)
15:58:54 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:00:36 mei joins (~mei@user/mei)
16:01:21 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
16:02:00 × danse-nr3 quits (~danse-nr3@151.47.250.177) (Ping timeout: 252 seconds)
16:03:04 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
16:04:12 × Guest13 quits (~Guest13@cpc93370-hers8-2-0-cust590.6-3.cable.virginm.net) (Quit: Client closed)
16:19:47 × billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Ping timeout: 256 seconds)
16:22:04 billchenchina joins (~billchenc@103.152.35.21)
16:22:58 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds)
16:26:20 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds)
16:29:33 Ptival joins (~ptival@64.16.51.186)
16:30:27 × Guest64 quits (~Guest95@217.7.130.9) (Quit: Client closed)
16:33:08 × billchenchina quits (~billchenc@103.152.35.21) (Remote host closed the connection)
16:34:47 manwithluck joins (manwithluc@gateway/vpn/protonvpn/manwithluck)
16:40:05 philopsos joins (~caecilius@user/philopsos)
16:41:21 gmg joins (~user@user/gehmehgeh)
16:44:30 nickiminjaj joins (~kvirc@user/laxhh)
16:53:19 × nickiminjaj quits (~kvirc@user/laxhh) (Quit: KVIrc 5.2.2 Quasar http://www.kvirc.net/)
17:01:32 yin joins (~yin@user/zero)
17:12:55 × puke quits (~puke@user/puke) (Quit: puke)
17:16:01 × end quits (~end@user/end/x-0094621) (Quit: end)
17:16:01 × bcksl quits (~bcksl@user/bcksl) (Quit: \)
17:17:26 puke joins (~puke@user/puke)
17:20:48 myxos joins (~myxos@172.93.132.83)
17:21:18 × myxokephale quits (~myxos@65.28.251.121) (Ping timeout: 255 seconds)
17:26:27 × hueso quits (~root@user/hueso) (Quit: hueso)
17:26:53 × yin quits (~yin@user/zero) (Ping timeout: 240 seconds)
17:28:23 Guest|10 joins (~Guest|10@dynamic-095-114-003-052.95.114.pool.telefonica.de)
17:29:20 × philopsos quits (~caecilius@user/philopsos) (Ping timeout: 260 seconds)
17:30:35 hueso joins (~root@user/hueso)
17:31:13 <Guest|10> Hello, I cannot download GHCup: [ Info ] Installing GHC (this may take a while)
17:31:14 <Guest|10> [ ghc-configure ] not found (too old?)
17:31:14 <Guest|10> [ ghc-configure ] checking for gcc... gcc
17:31:15 <Guest|10> [ ghc-configure ] checking whether the C compiler works... no
17:31:15 <Guest|10> [ ghc-configure ] configure: error: in `/Users/marleys/.ghcup/tmp/ghc...
17:31:16 <Guest|10> [ ghc-configure ] configure: error: C compiler cannot create executab...
17:31:16 <Guest|10> [ ghc-configure ] See `config.log' for more details
17:31:17 <Guest|10> [ Error ] [GHCup-00841] Process "sh" with arguments ["./configure",
17:31:17 <Guest|10> [ ... ] "--prefix=/Users/marleys/.ghcup/ghc/9.4.8",
17:31:18 <Guest|10> [ ... ] "--disable-ld-override"] failed with exit code 77.
17:31:18 <Guest|10> [ Error ] Also check the logs in /Users/marleys/.ghcup/logs
17:31:19 <Guest|10> "ghcup --metadata-fetching-mode=Strict --cache install ghc recommended" failed!
17:31:57 <haskellbridge> <m​aerwald> you need to install Xcode
17:32:13 <Guest|10> Xcode?
17:33:11 bcksl joins (~bcksl@user/bcksl)
17:34:25 <haskellbridge> <m​aerwald> xcode-select --install
17:36:06 myxokephale joins (~myxos@65.28.251.121)
17:37:01 × myxos quits (~myxos@172.93.132.83) (Ping timeout: 272 seconds)
17:38:36 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
17:40:48 end joins (~end@user/end/x-0094621)
17:42:25 <mesaoptimizer> I finally found a use-case for Haskell after learning its basics. I've been using Hakyll to build my personal website. It was a surprisingly good experience compared to using zola and hugo, both of which I couldn't get to work with themes for some reason. (Also hakyll seems significantly less complicated than zola and hugo for some reason)
17:43:32 <EvanR> how is your experience with Hakyll and "themes" ?
17:44:59 × ski quits (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 260 seconds)
17:45:00 <mesaoptimizer> I modified the CSS manually
17:45:16 <mesaoptimizer> (and the templates)
17:47:09 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
17:48:30 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
17:50:07 ski joins (~ski@ext-1-033.eduroam.chalmers.se)
17:52:50 <haskellbridge> <s​m> hmm
17:53:22 yin joins (~yin@user/zero)
17:53:34 <haskellbridge> <s​m> well, yay!
17:54:25 × euleritian quits (~euleritia@dynamic-176-006-018-204.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
17:54:42 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
17:56:10 × Guest|10 quits (~Guest|10@dynamic-095-114-003-052.95.114.pool.telefonica.de) (Ping timeout: 245 seconds)
18:02:41 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
18:03:50 chiselfuse joins (~chiselfus@user/chiselfuse)
18:07:25 × eron quits (~eron@168.196.116.143) (Quit: Client closed)
18:10:19 <[exa]> mesaoptimizer: haha I went for the same use-case like half a year ago. Eventually I ended up with just pandoc + mustache + some minor manual scriptage, completely ejecting hakyll (needed some very special file placement). works nicely.
18:10:57 × Ptival quits (~ptival@64.16.51.186) (Remote host closed the connection)
18:11:00 tri joins (~tri@ool-18bbef1a.static.optonline.net)
18:14:10 Ptival joins (~ptival@64.16.51.186)
18:15:39 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 252 seconds)
18:31:18 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds)
18:32:53 yin_ joins (~yin@user/zero)
18:33:13 yin_ is now known as zzz
18:33:22 gmg joins (~user@user/gehmehgeh)
18:36:50 sprout_ joins (~quassel@84-80-106-227.fixed.kpn.net)
18:38:39 × sprout quits (~quassel@2a02-a448-3a80-0-d844-6577-cb5e-d92a.fixed6.kpn.net) (Ping timeout: 260 seconds)
18:38:55 raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
18:41:32 Square joins (~Square@user/square)
18:42:23 madeleine-sydney joins (~madeleine@c-76-155-235-153.hsd1.co.comcast.net)
18:46:25 × zetef quits (~quassel@5.2.182.99) (Remote host closed the connection)
18:48:17 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
18:59:57 yin is now known as yin[citation_nee
19:00:18 yin[citation_nee is now known as [citation_needed
19:00:33 [citation_needed is now known as citation_needed
19:00:58 euphores joins (~SASL_euph@user/euphores)
19:05:40 mc47 joins (~mc47@xmonad/TheMC47)
19:07:47 citation_needed is now known as yin
19:08:31 target_i joins (~target_i@user/target-i/x-6023099)
19:11:40 Guest|10 joins (~Guest|10@dynamic-095-114-003-052.95.114.pool.telefonica.de)
19:11:49 Buggys joins (~Buggys@Buggy.shelltalk.net)
19:12:56 × aforemny quits (~aforemny@2001:9e8:6cc5:7800:75d6:e4cb:e12d:1704) (Quit: ZNC 1.8.2 - https://znc.in)
19:13:12 aforemny joins (~aforemny@2001:9e8:6cc5:7800:397f:89d3:8c7e:e3e5)
19:14:02 <Guest|10> CAN'T DOWNLOAD HASKELL( I downloaded Xcode): Installation may take a while.
19:14:03 <Guest|10> [ Info ] verifying digest of: ghc-9.4.8-aarch64-apple-darwin.tar.xz
19:14:03 <Guest|10> [ Info ] Unpacking: ghc-9.4.8-aarch64-apple-darwin.tar.xz to /Users/marleys/.ghcup/tmp/ghcup-35622ce44eacd505
19:14:04 <Guest|10> [ Info ] Installing GHC (this may take a while)
19:14:04 <Guest|10> [ ghc-configure ] not found (too old?)
19:14:05 <Guest|10> [ ghc-configure ] checking for gcc... gcc
19:14:05 <Guest|10> [ ghc-configure ] checking whether the C compiler works... no
19:14:06 <Guest|10> [ ghc-configure ] configure: error: in `/Users/marleys/.ghcup/tmp/ghcup-35622ce44eacd505/ghc-9.4.8-aarch64-apple-darwin':
19:14:06 <Guest|10> [ ghc-configure ] configure: error: C compiler cannot create executables
19:14:07 <Guest|10> [ ghc-configure ] See `config.log' for more details
19:14:07 <Guest|10> [ Error ] [GHCup-00841] Process "sh" with arguments ["./configure",
19:14:08 <Guest|10> [ ... ] "--prefix=/Users/marleys/.ghcup/ghc/9.4.8",
19:14:08 <Guest|10> [ ... ] "--disable-ld-override"] failed with exit code 77.
19:14:09 <Guest|10> [ Error ] Also check the logs in /Users/marleys/.ghcup/logs
19:14:09 <Guest|10> "ghcup --metadata-fetching-mode=Strict --cache install ghc recommended" failed!
19:14:21 <mesaoptimizer> I recommend using a pastebin
19:14:47 <haskellbridge> <m​aerwald> did you install xcode?
19:14:56 <haskellbridge> <m​aerwald> your C compiler is broken
19:15:19 <Guest|10> I'm new to the game so I don't know how to handle this by myself
19:15:31 <Guest|10> What can I do to fix this/ get Haskel?
19:15:36 × Guest|10 quits (~Guest|10@dynamic-095-114-003-052.95.114.pool.telefonica.de) (Client Quit)
19:15:57 Guest|10 joins (~Guest|10@dynamic-095-114-003-052.95.114.pool.telefonica.de)
19:16:18 <Guest|10> What can I do?
19:18:10 ft joins (~ft@p4fc2a20e.dip0.t-ipconnect.de)
19:18:21 <Ptival> xcode-select --install
19:20:10 <Guest|10> I'm an absolute beginner, a little bit more information
19:21:06 <[exa]> Guest|10: which howto were you following?
19:22:22 <Guest|10> This: https://www.haskell.org/ghcup/
19:23:07 <Ptival> GHCup is complaining that it does not know how to run your C compiler, which is needs to be able to do. On MacOS, Apple does all sorts of weird things to trick users into using clang when they call gcc. Overall, this means that you need to have their Xcode development environment properly set up for GHCup setup to work. It seems like you either don't have Xcode set up at all, or don't have it set up correctly. So a thing to try would be running
19:23:07 <Ptival> the above command `xcode-select --install` (assuming you understand how to get to a terminal). Then either this will have fixed things for you, or you may need a more aggressive cleanup of some system folders.
19:24:59 <Ptival> so try running that command, and try to guess from the output (which I expect may be quite complicated...) whether it succeeded or failed, then if it looks like it succeeded, you can try the original command you got from the GHCup website again
19:25:15 <Guest|10> I downloaded Xcode per the App Store but I assume that getting Xcode per terminal is the right choice? So I should delete the App Store Xcode and run the code
19:27:06 tri joins (~tri@ool-18bbef1a.static.optonline.net)
19:30:59 × ocra8 quits (ocra8@user/ocra8) (Quit: WeeChat 4.2.2)
19:31:21 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds)
19:32:43 ocra8 joins (ocra8@user/ocra8)
19:33:49 × chele quits (~chele@user/chele) (Remote host closed the connection)
19:35:56 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.1.2)
19:38:43 × Ptival quits (~ptival@64.16.51.186) (Remote host closed the connection)
19:38:48 × mc47 quits (~mc47@xmonad/TheMC47) (Read error: Connection reset by peer)
19:39:38 Ptival joins (~ptival@64.16.51.186)
19:40:59 × yeitrafferin quits (~user@2a04:4540:720b:c200:f675:174e:dfd1:276b) (Quit: Leaving)
19:47:25 × Ptival quits (~ptival@64.16.51.186) (Ping timeout: 245 seconds)
19:48:52 Guest11 joins (~Guest11@pool-108-26-34-33.syrcny.east.verizon.net)
19:50:00 <sm> Guest|10: yes, perhaps so. You don't need the full Xcode IDE for haskell, that is a big app. Just the smaller https://mac.install.guide/commandlinetools .
19:50:14 × dsrt^ quits (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
19:51:51 × Guest11 quits (~Guest11@pool-108-26-34-33.syrcny.east.verizon.net) (Client Quit)
19:53:16 × yin quits (~yin@user/zero) (Ping timeout: 246 seconds)
19:54:28 × zzz quits (~yin@user/zero) (Ping timeout: 260 seconds)
19:54:46 Nixkernal_ joins (~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch)
19:55:39 × Nixkernal quits (~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 255 seconds)
19:55:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:01:07 phaazon is now known as hadronized
20:01:10 yin joins (~yin@user/zero)
20:01:40 zzz joins (~yin@user/zero)
20:02:42 Ptival joins (~ptival@64.16.51.186)
20:02:55 × Ptival quits (~ptival@64.16.51.186) (Remote host closed the connection)
20:03:02 Ptival joins (~ptival@64.16.51.186)
20:04:37 × infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection)
20:05:06 sprout_ is now known as sprout
20:05:39 peterbecich joins (~Thunderbi@47.229.123.186)
20:06:44 infinity0 joins (~infinity0@pwned.gg)
20:10:53 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
20:14:06 × Nixkernal_ quits (~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 255 seconds)
20:14:40 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Client Quit)
20:16:48 × peterbecich quits (~Thunderbi@47.229.123.186) (Ping timeout: 255 seconds)
20:19:42 × Guest|10 quits (~Guest|10@dynamic-095-114-003-052.95.114.pool.telefonica.de) (Quit: Connection closed)
20:20:19 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
20:24:09 sata joins (~sata@185.57.29.142)
20:26:07 × Square quits (~Square@user/square) (Ping timeout: 272 seconds)
20:26:16 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:41:32 pavonia joins (~user@user/siracusa)
20:45:09 jinsun_ joins (~jinsun@user/jinsun)
20:45:09 × jinsun quits (~jinsun@user/jinsun) (Killed (iridium.libera.chat (Nickname regained by services)))
20:45:09 jinsun_ is now known as jinsun
20:45:24 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:45:36 zetef joins (~quassel@5.2.182.98)
20:47:08 × raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 256 seconds)
20:50:21 × Ptival quits (~ptival@64.16.51.186) ()
20:52:53 × madeleine-sydney quits (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Konversation terminated!)
20:53:29 madeleine-sydney joins (~madeleine@c-76-155-235-153.hsd1.co.comcast.net)
20:54:00 × madeleine-sydney quits (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Client Quit)
20:54:25 madeleine-sydney joins (~madeleine@c-76-155-235-153.hsd1.co.comcast.net)
20:59:07 × yin quits (~yin@user/zero) (Ping timeout: 260 seconds)
20:59:33 × zzz quits (~yin@user/zero) (Ping timeout: 255 seconds)
21:00:13 tri joins (~tri@ool-18bbef1a.static.optonline.net)
21:02:54 zzz joins (~yin@user/zero)
21:02:54 yin joins (~yin@user/zero)
21:03:26 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds)
21:03:27 × madeleine-sydney quits (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Konversation terminated!)
21:03:54 madeleine-sydney joins (~madeleine@c-76-155-235-153.hsd1.co.comcast.net)
21:04:01 chexum joins (~quassel@gateway/tor-sasl/chexum)
21:04:45 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
21:05:26 docelalt^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net)
21:13:57 × michalz_ quits (~michalz@185.246.207.215) (Quit: ZNC 1.8.2 - https://znc.in)
21:32:54 ChaiTRex joins (~ChaiTRex@user/chaitrex)
21:42:47 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
21:44:53 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
21:49:32 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:54:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:54:08 × sata quits (~sata@185.57.29.142) (Ping timeout: 250 seconds)
22:01:39 × acidjnk quits (~acidjnk@p200300d6e714dc429de1f5b63f3ace20.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
22:07:48 xstill_1 joins (xstill@fimu/xstill)
22:07:50 × xstill_ quits (xstill@fimu/xstill) (Ping timeout: 268 seconds)
22:07:50 × xsarnik quits (xsarnik@lounge.fi.muni.cz) (Ping timeout: 268 seconds)
22:07:51 xstill_1 is now known as xstill_
22:08:06 xsarnik joins (xsarnik@lounge.fi.muni.cz)
22:09:44 Sgeo joins (~Sgeo@user/sgeo)
22:20:03 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:24:34 × xal quits (~xal@mx1.xal.systems) ()
22:26:12 xal joins (~xal@mx1.xal.systems)
22:29:55 philopsos joins (~caecilius@user/philopsos)
22:35:27 causal joins (~eric@50.35.88.207)
22:39:05 × zzz quits (~yin@user/zero) (Ping timeout: 245 seconds)
22:39:30 × yin quits (~yin@user/zero) (Ping timeout: 245 seconds)
22:41:13 zzz joins (~yin@user/zero)
22:41:18 yin joins (~yin@user/zero)
22:42:01 × docelalt^ quits (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
22:45:30 × ph88 quits (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Remote host closed the connection)
22:47:58 × zzz quits (~yin@user/zero) (Quit: leaving)
22:56:53 × oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 240 seconds)
22:58:30 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:03:06 × zetef quits (~quassel@5.2.182.98) (Remote host closed the connection)
23:05:51 zetef joins (~quassel@5.2.182.98)
23:15:05 × zetef quits (~quassel@5.2.182.98) (Remote host closed the connection)
23:17:28 raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
23:19:55 × madeleine-sydney quits (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Konversation terminated!)
23:19:56 yin is now known as zwrv
23:32:53 × trev quits (~trev@user/trev) (Ping timeout: 240 seconds)
23:35:20 trev joins (~trev@user/trev)
23:42:00 × zwrv quits (~yin@user/zero) (Ping timeout: 245 seconds)
23:44:12 zwrv joins (~yin@user/zero)
23:55:26 peterbecich joins (~Thunderbi@47.229.123.186)

All times are in UTC on 2024-04-23.