Home liberachat/#haskell: Logs Calendar

Logs on 2024-12-10 (liberachat/#haskell)

00:00:55 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
00:01:18 troojg joins (~troojg@user/troojg)
00:01:36 <c_wraith> too high?
00:02:09 <dpratt> c_wraith yeah and maybe I just found where the bug might live...
00:03:13 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:03:15 × KicksonButt quits (~quassel@187.21.174.221) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
00:04:54 <glguy> dpratt: What answers do you get for this input? 11223
00:04:58 yaroot_ joins (~yaroot@2400:4052:ac0:d901:1cf4:2aff:fe51:c04c)
00:05:39 × yaroot quits (~yaroot@p2987138-ipngn7501souka.saitama.ocn.ne.jp) (Ping timeout: 252 seconds)
00:05:40 yaroot_ is now known as yaroot
00:06:29 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:3da5:f38:dd5d:1da3) (Remote host closed the connection)
00:06:37 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:3da5:f38:dd5d:1da3)
00:07:24 <dpratt> glguy 47
00:07:57 <glguy> OK, that's right for p2, so that'd indicate you aren't relocating things to the right :)
00:09:57 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
00:10:27 <dpratt> glguy I should've clarified I got the right answer for p1 on the real input, p2 is the problem
00:14:45 rstromlund joins (~user@user/rstromlund)
00:15:19 <glguy> There are other mistakes possible for p2, that's just a common one so I thouight I'd ask about it first
00:18:55 × _________ quits (~nobody@user/noodly) (Ping timeout: 260 seconds)
00:18:55 × rstromlund quits (~user@user/rstromlund) (Ping timeout: 252 seconds)
00:19:52 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:3da5:f38:dd5d:1da3) (Remote host closed the connection)
00:20:02 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:3da5:f38:dd5d:1da3)
00:21:15 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:23:50 × xff0x quits (~xff0x@2405:6580:b080:900:23ee:dfe8:3f69:3c79) (Ping timeout: 272 seconds)
00:24:49 <Axman6> what's the problem for day 9? I never got into AoC but did enjoy Andres' and Edsko's solutions on youtube
00:25:31 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:27:01 <glguy> You're given a description of a little filesystem and you have to defragment
00:27:04 <glguy> it
00:27:17 <c_wraith> It's basically a direction-following exercise. Can you do this data manipulation exactly according to the rules they give?
00:27:46 <c_wraith> (I could not. My first attempt simplified it and resulted in better results, but wasn't the requested operation)
00:27:53 <jackdk> I've always liked jle` 's blog posts, where he taps the problem with the right algebraic hammer and the whole thing falls in half
00:31:35 _________ joins (~nobody@user/noodly)
00:32:07 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:3da5:f38:dd5d:1da3) (Read error: Connection reset by peer)
00:32:36 × acidjnk_new quits (~acidjnk@p200300d6e7283f552879c496916057ac.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
00:33:06 × sprotte24 quits (~sprotte24@p200300d16f2d2100180c9c45abd3e2c7.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
00:36:36 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:37:32 JeremyB99 joins (~JeremyB99@128.211.253.132)
00:40:26 biberu\ joins (~biberu@user/biberu)
00:40:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
00:41:23 dostoevsky joins (~dostoevsk@user/dostoevsky)
00:42:13 × JeremyB99 quits (~JeremyB99@128.211.253.132) (Ping timeout: 265 seconds)
00:43:30 × biberu quits (~biberu@user/biberu) (Ping timeout: 252 seconds)
00:43:30 biberu\ is now known as biberu
00:44:32 rstromlund joins (~user@user/rstromlund)
00:49:19 × rstromlund quits (~user@user/rstromlund) (Ping timeout: 264 seconds)
00:50:36 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 264 seconds)
00:51:45 stiell joins (~stiell@gateway/tor-sasl/stiell)
00:51:54 × raym quits (~ray@user/raym) (Ping timeout: 265 seconds)
00:52:01 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:52:19 raym joins (~ray@user/raym)
00:56:31 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
01:00:40 × Flow quits (~none@gentoo/developer/flow) (Ping timeout: 252 seconds)
01:01:26 notzmv joins (~umar@user/notzmv)
01:01:48 Flow joins (~none@gentoo/developer/flow)
01:03:18 vanishingideal joins (~vanishing@user/vanishingideal)
01:07:18 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
01:07:19 × forell quits (~forell@user/forell) (Ping timeout: 264 seconds)
01:07:21 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:07:51 × _________ quits (~nobody@user/noodly) (Ping timeout: 265 seconds)
01:07:53 × bcksl quits (~bcksl@user/bcksl) (Quit: \)
01:08:20 × auri quits (~auri@fsf/member/auri) (Remote host closed the connection)
01:08:48 × ski quits (~ski@remote11.chalmers.se) (Ping timeout: 244 seconds)
01:08:50 forell joins (~forell@user/forell)
01:08:56 _________ joins (~nobody@user/noodly)
01:09:30 auri joins (~auri@fsf/member/auri)
01:10:29 ski joins (~ski@remote11.chalmers.se)
01:10:53 bcksl joins (~bcksl@user/bcksl)
01:11:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
01:12:09 sroso joins (~sroso@user/SrOso)
01:17:24 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
01:17:41 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
01:19:16 rstromlund joins (~user@user/rstromlund)
01:20:46 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:21:55 × troojg quits (~troojg@user/troojg) (Ping timeout: 260 seconds)
01:22:45 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:23:22 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 272 seconds)
01:26:09 prsteele joins (~prsteele@pool-173-48-172-223.bstnma.fios.verizon.net)
01:27:07 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:28:11 matsurago joins (~matsurago@240b:10:b701:8b00:7bc3:8f18:3c0f:757f)
01:35:55 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
01:38:08 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:39:08 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds)
01:44:44 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:49:59 × alp quits (~alp@2001:861:8ca0:4940:de88:f2d6:60c9:dbbc) (Ping timeout: 272 seconds)
01:56:12 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:56:50 × fmira quits (~user@user/fmira) (Remote host closed the connection)
01:59:18 fmira joins (~user@user/fmira)
01:59:36 weary-traveler joins (~user@user/user363627)
02:00:37 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:03:03 × vanishingideal quits (~vanishing@user/vanishingideal) (Quit: destroyed by tinsoldier)
02:04:05 × weary-traveler quits (~user@user/user363627) (Ping timeout: 244 seconds)
02:07:42 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds)
02:11:34 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:13:32 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
02:14:03 rvalue joins (~rvalue@user/rvalue)
02:15:58 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
02:25:01 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
02:26:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:28:57 × krei-se quits (~krei-se@p5085dd86.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
02:29:12 krei-se joins (~krei-se@p5085d4fd.dip0.t-ipconnect.de)
02:31:06 alp joins (~alp@2001:861:8ca0:4940:6d7a:e132:36fd:d9fd)
02:31:09 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
02:31:28 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
02:31:30 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
02:35:15 × matsurago quits (~matsurago@240b:10:b701:8b00:7bc3:8f18:3c0f:757f) (Quit: Leaving)
02:42:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:44:03 × OftenFaded quits (~OftenFade@user/tisktisk) (Quit: Client closed)
02:45:04 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 272 seconds)
02:45:28 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
02:46:48 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
02:47:46 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
02:50:21 billchenchina joins (~billchenc@113.57.152.160)
02:50:38 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
02:56:42 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
02:57:41 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:58:43 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
03:00:24 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
03:00:34 billchenchina- joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042)
03:02:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:02:40 r-sta joins (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net)
03:02:54 × billchenchina quits (~billchenc@113.57.152.160) (Ping timeout: 246 seconds)
03:02:56 <r-sta> hi
03:02:58 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
03:03:08 <r-sta> i am having problems making an infinite constraint terminate
03:03:08 <r-sta> https://paste.tomsmeding.com/egNnQEOs
03:03:24 <r-sta> i cant seems to choose between two options with a type family
03:03:27 <r-sta> i cant tell why
03:04:21 × rstromlund quits (~user@user/rstromlund) (Ping timeout: 248 seconds)
03:04:38 <r-sta> should it be able to match in a type family like;
03:04:39 <r-sta>  Choice s c l c a = ()
03:04:47 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
03:04:51 <r-sta> on the variable `c'
03:04:54 nucleus joins (~grigory@77-174-131-220.fixed.kpn.net)
03:05:19 <r-sta> (this is when the cursor variable c meets the end e, in s c l e a
03:05:21 <r-sta> )
03:05:59 <r-sta> should I be using equality on Nats directly, and make the "choice" some other way?
03:06:51 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
03:08:15 <r-sta> chatGPT isnt much help https://chatgpt.com/share/6757b090-1b74-800b-82fa-8efe8de56a3e
03:09:04 × nucleus quits (~grigory@77-174-131-220.fixed.kpn.net) (Ping timeout: 252 seconds)
03:10:02 <geekosaur> chatgpt is almost never helpful when it comes to Haskell
03:10:07 <geekosaur> just don't
03:11:19 <probie> I don't think GHC can do what you want here, but even if it could, it would fail. Assume c = e. That gives you `Constr c l a => (forall c'.Carrage s c' l e a -> IO [[Double]]) -> IO ()`.
03:12:21 <r-sta> but thats correct!
03:13:03 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:13:09 <probie> When you recursively call `movingCarrage @s @(S c) @l @e @a f` it needs to have a `(InfiniteConstraint s (S c) l e a)`, but that's _not_ in your constraint.
03:14:02 <r-sta> but infinite constraint includes that
03:16:27 <probie> No. What does `InfiniteConstraint Z Z Z Z a` reduce to? `(Constr Z Z a, ())` which is `Constr Z Z a`. How does it go from `Constr Z Z a` to `InfiniteConstraint Z (S Z) Z Z a`?
03:17:28 <r-sta> well it shouldnt
03:17:33 <r-sta> thats when the recursion terminates
03:17:50 <r-sta> you can use (S c) == e if you like
03:18:17 <r-sta> oh shoot! your right
03:18:24 <r-sta> movingCarrage should be in a class
03:19:31 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
03:25:20 <r-sta> even if you do this it still hangs, which i cant understand
03:25:21 <r-sta> https://paste.tomsmeding.com/CnH4XFk6
03:25:34 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
03:25:38 <r-sta> probie: i mean, it should certainly be possible to do what im trying to
03:26:00 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 246 seconds)
03:26:06 <r-sta> it should just terminate in its creating the infiniteConstraint
03:26:22 <r-sta> im not even calling it with any values though (eg, so i cant guarantee c < e)
03:26:31 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
03:26:33 <r-sta> so i dont get why it tries to solve anything
03:26:41 <r-sta> it clearly tries to solve something it cant
03:26:45 <r-sta> since it hangs
03:28:53 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
03:28:54 <r-sta> here is the full code so you can reproduce the error
03:28:55 <r-sta> https://github.com/munston/store/tree/main/store/store%20v3
03:30:04 <r-sta> can anyone figure out how to implement the working solution?
03:31:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:31:24 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 244 seconds)
03:35:45 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
03:35:52 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
03:36:35 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
03:41:39 <r-sta> do you think the forall is making the infinite case?
03:41:48 <r-sta> the quantified constraint in the function?
03:42:07 <r-sta> i cant see why else it would enter into an evaluation with *any* (arbitrary?) choice
03:42:11 <probie> What is "the working solution"? Just something which typechecks, or does it need to use specific things?
03:42:21 × terrorjack4 quits (~terrorjac@2a01:4f8:c17:dc9f::) (Quit: The Lounge - https://thelounge.chat)
03:42:38 <r-sta> it should basically recurse along the sequence updating the cursor, until it reaches the end
03:42:39 <r-sta> er...
03:42:42 <r-sta> thats not right sorry
03:43:04 × homo quits (~homo@user/homo) (Quit: homo)
03:43:16 homo joins (~homo@user/homo)
03:43:17 <r-sta> it should fill the container, from c to c+l
03:43:30 <r-sta> as long as s <= c < e
03:43:43 <r-sta> and it should recurse to do so
03:43:55 <r-sta> from c ~ s, to (S c) ~ e
03:43:58 terrorjack4 joins (~terrorjac@2a01:4f8:c17:dc9f::)
03:44:12 <r-sta> it should not be trying to solve a constraint for c >= e
03:44:20 <r-sta> since there should be no recursive call
03:46:29 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:47:44 <r-sta> its a cool problem, but im totally defeated by it
03:51:32 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
03:51:33 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
03:51:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
03:53:28 × sonolin quits (~michael@user/sonolin) (Ping timeout: 272 seconds)
03:53:39 <r-sta> can anyone explain where it conjours the Nats from
03:53:54 <r-sta> if it enters an infinite loop, what choice of numbers is it using and why!?
03:54:53 <r-sta> i get the feeling it cant prove the lessthan constrain, so it then goes on to try to prove the recurive constraints instead
03:54:59 <r-sta> where it should actually guard against this
03:55:05 <r-sta> thats why i was using a type family
03:55:11 <r-sta> so they would be evaluated in order
03:56:18 <probie> Untested and probably containing typos, but maybe something like https://paste.tomsmeding.com/GxWHwaLiwill lead you down the right path
03:57:05 sonolin joins (~michael@user/sonolin)
03:57:28 × td_ quits (~td@i5387091A.versanet.de) (Ping timeout: 252 seconds)
03:57:57 <r-sta> this version compiles!
03:57:58 <r-sta> https://pastebin.com/raw/S4UAW8AW
03:58:09 <r-sta> probie: dead link
03:58:50 <r-sta> maybe the solver was being confused somehow... idk why the previous versions didnt work
03:58:55 <r-sta> maybe GHC is cursed!
03:59:23 td_ joins (~td@i5387090D.versanet.de)
04:00:42 <r-sta> (alert the args in recurse are the wrong way round! but it still works tother way round also!)
04:00:56 <r-sta> what a fiasco!
04:01:09 <r-sta> now i just have to write an example to prove it terminates
04:01:12 × r-sta quits (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Quit: Client closed)
04:01:52 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:02:08 <probie> r-sta: insert a space before the world "will" (https://paste.tomsmeding.com/GxWHwaLi)
04:06:13 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
04:06:51 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
04:07:05 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
04:09:48 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:11:11 × sonolin quits (~michael@user/sonolin) (Ping timeout: 244 seconds)
04:14:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
04:15:39 × dostoevsky quits (~dostoevsk@user/dostoevsky) (Quit: dostoevsky)
04:22:27 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
04:24:14 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
04:25:05 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:29:22 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:40:25 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:43:16 Guest14 joins (~Guest14@h96-61-125-220.mdtnwi.broadband.dynamic.tds.net)
04:45:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
04:45:28 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
04:45:54 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
04:55:50 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:03:05 OftenFaded joins (OftenFaded@user/tisktisk)
05:03:08 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
05:04:54 tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl)
05:08:23 × billchenchina- quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Read error: Connection reset by peer)
05:08:34 billchenchina joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042)
05:08:55 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
05:08:56 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:10:22 sonolin joins (~michael@user/sonolin)
05:11:38 × tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 244 seconds)
05:13:53 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:15:26 × billchenchina quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Read error: Connection reset by peer)
05:15:34 billchenchina- joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042)
05:17:50 × fmira quits (~user@user/fmira) (Quit: fmira)
05:18:14 mari-estel joins (~mari-este@user/mari-estel)
05:18:21 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
05:19:29 × billchenchina- quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Read error: Connection reset by peer)
05:19:42 billchenchina joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042)
05:23:33 billchenchina- joins (~billchenc@113.57.152.160)
05:26:20 × billchenchina quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Ping timeout: 260 seconds)
05:27:13 Digit joins (~user@user/digit)
05:29:14 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:29:38 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
05:31:32 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
05:32:06 × prsteele quits (~prsteele@pool-173-48-172-223.bstnma.fios.verizon.net) (Quit: Client closed)
05:33:13 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
05:33:51 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
05:37:33 housemate joins (~housemate@2405:6e00:243c:c71e:c9eb:cfe5:9dd3:39cd)
05:38:36 × housemate quits (~housemate@2405:6e00:243c:c71e:c9eb:cfe5:9dd3:39cd) (Max SendQ exceeded)
05:42:09 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Remote host closed the connection)
05:42:17 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
05:44:38 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:47:17 <iqubic> I love that you can do pattern matching in a list comprehension. "onlyJusts xs = [x | Just x <- xs]"
05:47:36 <iqubic> "onlyJusts :: [Maybe a] -> [a]
05:48:50 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
05:49:18 budabudabee joins (~budabudab@136.38.236.196)
05:49:57 × budabudabee quits (~budabudab@136.38.236.196) (Client Quit)
05:51:17 <probie> Also works with do notation if the monad in question implements MonadFail
05:52:00 × sonolin quits (~michael@user/sonolin) (Quit: WeeChat 4.4.4)
05:52:02 <probie> > (\xs->do{Just x<-xs;[x]}) [if even x && x > 5 then Just x else Nothing | x <- [1..10]]
05:52:04 <lambdabot> [6,8,10]
05:54:14 <probie> > map (\y->do{Right x<- pure y; Just x}) [Left 1, Right 2]
05:54:16 <lambdabot> [Nothing,Just 2]
06:00:01 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:02:06 <iqubic> Yeah, I thought that might be the case.
06:03:06 <iqubic> Something I noticed a few days ago is that every list comprehension can be rewritten as a do block with the usage of guard.
06:03:09 <iqubic> :t guard
06:03:11 <lambdabot> Alternative f => Bool -> f ()
06:03:40 <iqubic> I guess that's why the MonadicComprehensions Language extension exists.
06:04:12 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Remote host closed the connection)
06:04:20 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
06:04:37 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
06:06:54 <monochrom> No, MonadComprehension is the other way round. You can use [foo | pat <- bar] for any monad, i.e., bar can be Maybe a, State s a, IO a, ...
06:08:42 <monochrom> Whereas using do-notation for [] has been around since [] was made a Monad instance.
06:08:48 falafel joins (~falafel@2603:8000:b4f0:62a0:ce8c:8339:2f19:ada5)
06:09:56 <probie> List comprehensions in Haskell predate monads in Haskell. I think if they hadn't existed prior, we probably wouldn't have had them, and would have just used do notation
06:10:24 × zenmov quits (~zenmov@user/zenmov) (Ping timeout: 245 seconds)
06:10:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:12:30 zenmov joins (~zenmov@user/zenmov)
06:13:03 michalz joins (~michalz@185.246.207.217)
06:15:16 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
06:16:25 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Read error: Connection reset by peer)
06:17:22 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:23:25 MyNetAz joins (~MyNetAz@user/MyNetAz)
06:26:04 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:26:43 × mari-estel quits (~mari-este@user/mari-estel) (Quit: break)
06:30:24 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
06:31:10 × Guest14 quits (~Guest14@h96-61-125-220.mdtnwi.broadband.dynamic.tds.net) (Ping timeout: 240 seconds)
06:32:59 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Read error: Connection reset by peer)
06:37:02 nucleus joins (~grigory@77-174-131-220.fixed.kpn.net)
06:38:01 housemate joins (~housemate@ppp203-122-213-191.static.internode.on.net)
06:38:46 × housemate quits (~housemate@ppp203-122-213-191.static.internode.on.net) (Max SendQ exceeded)
06:39:40 housemate joins (~housemate@ppp203-122-213-191.static.internode.on.net)
06:41:27 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:46:11 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
06:46:31 matsurago joins (~matsurago@240b:10:b701:8b00:7bc3:8f18:3c0f:757f)
06:47:46 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Remote host closed the connection)
06:47:54 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
06:51:00 × housemate quits (~housemate@ppp203-122-213-191.static.internode.on.net) (Quit: Nothing to see here. I wasn't there. I take IRC seriously. https://files.catbox.moe/4e9k81.pdf)
06:51:58 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
06:54:42 acidjnk_new joins (~acidjnk@p200300d6e7283f80158cd9c34330b2d1.dip0.t-ipconnect.de)
06:55:23 × matsurago quits (~matsurago@240b:10:b701:8b00:7bc3:8f18:3c0f:757f) (Quit: Leaving)
06:57:01 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:00:17 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Remote host closed the connection)
07:00:26 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
07:02:00 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
07:03:07 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
07:05:27 × leif quits (~leif@210.54.33.112) (Ping timeout: 246 seconds)
07:11:43 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:15:13 × michalz quits (~michalz@185.246.207.217) (Ping timeout: 252 seconds)
07:16:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
07:18:55 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
07:22:54 michalz joins (~michalz@185.246.207.200)
07:23:01 Square joins (~Square@user/square)
07:26:12 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
07:27:00 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
07:27:05 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:28:57 × nucleus quits (~grigory@77-174-131-220.fixed.kpn.net) (Quit: Lost terminal)
07:29:02 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
07:30:57 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:31:27 × bliminse quits (~bliminse@user/bliminse) (Quit: leaving)
07:32:02 Square2 joins (~Square4@user/square)
07:32:23 × fun-safe-math quits (~fun-safe-@24.21.106.247) (Ping timeout: 244 seconds)
07:33:59 bliminse joins (~bliminse@user/bliminse)
07:34:14 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
07:35:01 × Square quits (~Square@user/square) (Ping timeout: 252 seconds)
07:36:06 housemate joins (~housemate@120.20.144.118)
07:37:37 × housemate quits (~housemate@120.20.144.118) (Read error: Connection reset by peer)
07:40:37 housemate joins (~housemate@2405:6e00:2430:ae5b:c6c6:748c:9662:796d)
07:41:50 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
07:42:00 <kqr> I was under the assumption that attoparsec could consume streaming input and that this would allow it to have a nearly constant memory footprint even for large inputs. The haddocks say, near the top, "Incremental input [...] gives much more control to users of the library over matters such as resource usage". This is then corroborated with the later point "The usual use for lazy bytestrings would
07:42:03 <kqr> be to allow consumption of very large input without a large footprint. For this need, attoparsec's incremental input provides an excellent substitute, with much more control over when input takes place." However, under the Incremental input heading, it goes on to say "incremental input does not imply that attoparsec will release portions of its internal state for garbage collection as it proceeds.
07:42:05 <kqr> Its internal representation is equivalent to a single ByteString: if you feed incremental input to a parser, it will require memory proportional to the amount of input you supply."
07:42:08 <kqr> I'm very confused by this. Does it not contradict itself?
07:42:53 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
07:44:58 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 245 seconds)
07:45:24 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:47:55 mari-estel joins (~mari-este@user/mari-estel)
07:47:59 <probie> The amount of memory retained depends on your parser. It needs to retain enough previous input so that it can backtrack, so where and how the parser backtracks is important here. As long as backtracking can't occur, previous inputs can be GC-ed
07:48:11 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 244 seconds)
07:51:49 briandaed joins (~root@user/briandaed)
07:52:51 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
07:54:35 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
08:00:00 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:37 caconym joins (~caconym@user/caconym)
08:03:27 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:05:54 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
08:08:19 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
08:08:21 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
08:09:19 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:10:49 × falafel quits (~falafel@2603:8000:b4f0:62a0:ce8c:8339:2f19:ada5) (Ping timeout: 252 seconds)
08:11:42 × notzmv quits (~umar@user/notzmv) (Ping timeout: 276 seconds)
08:12:44 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:17:07 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
08:17:29 leungbk joins (~user@2603:8000:1201:2dd2:43af:9155:ebaf:770c)
08:19:54 × housemate quits (~housemate@2405:6e00:2430:ae5b:c6c6:748c:9662:796d) (Read error: Connection reset by peer)
08:24:39 <kqr> Aha, I see. That makes more sense! Thanks
08:35:46 vanishingideal joins (~vanishing@user/vanishingideal)
08:48:15 sord937 joins (~sord937@gateway/tor-sasl/sord937)
08:50:01 CiaoSen joins (~Jura@2a05:5800:2e1:d800:ca4b:d6ff:fec1:99da)
08:52:39 × ft quits (~ft@p508db9c7.dip0.t-ipconnect.de) (Quit: leaving)
09:01:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:04:08 × gorignak quits (~gorignak@user/gorignak) (Ping timeout: 244 seconds)
09:05:54 × yangby quits (~secret@115.196.174.150) (Ping timeout: 240 seconds)
09:07:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:13:44 merijn joins (~merijn@77.242.116.146)
09:15:35 drdo3 joins (~drdo@bl9-110-63.dsl.telepac.pt)
09:15:39 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
09:16:12 × drdo quits (~drdo@bl9-110-63.dsl.telepac.pt) (Ping timeout: 252 seconds)
09:16:13 drdo3 is now known as drdo
09:16:13 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
09:16:31 gorignak joins (~gorignak@user/gorignak)
09:17:12 bwern joins (~bwern@2405:201:5c16:894:a059:4458:a01:2a23)
09:19:53 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds)
09:21:18 lxsameer joins (~lxsameer@Serene/lxsameer)
09:25:58 × alp quits (~alp@2001:861:8ca0:4940:6d7a:e132:36fd:d9fd) (Changing host)
09:25:58 alp joins (~alp@user/alp)
09:26:50 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:29:21 × pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 248 seconds)
09:34:23 × homo quits (~homo@user/homo) (Read error: Connection reset by peer)
09:36:03 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:38:14 × JamesMowery439 quits (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Ping timeout: 244 seconds)
09:42:35 pabs3 joins (~pabs3@user/pabs3)
09:45:59 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 265 seconds)
09:46:33 vanishingideal joins (~vanishing@user/vanishingideal)
09:51:35 × mange quits (~user@user/mange) (Quit: Zzz...)
09:52:21 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds)
09:52:52 <kqr> Can I force attoparsec to not backtrack past a certain point? There are certain points in my input data where I know if it has successfully parsed up until then, it should never go back behind it again.
09:57:35 tomsmeding . o O ( Prolog's `cut` )
09:57:37 housemate joins (~housemate@2405:6e00:243d:47f:54d8:971f:e178:87e9)
09:59:05 <tomsmeding> kqr: with a bit of finicking I think you can manually write a value of type Parser that does the thing, by mapping Failure to Fail
10:00:20 <kqr> Hm. That sounds like an idea. Although I realised in this case I can get around the problem by successfully parsing a sentinel value
10:00:36 <kqr> (instead of the failure that caused it to backtrack in the first place)
10:01:18 <tomsmeding> kqr: look at the definition of `plus` here, which is the (<|>) on Parser https://hackage.haskell.org/package/attoparsec-0.14.4/docs/src/Data.Attoparsec.Internal.Types.html#plus
10:01:30 <tomsmeding> instead of passing lose', pass something that returns Fail immediately
10:05:46 <kqr> Hm, but that constructor is not exported for public use, is it?
10:06:16 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:07:40 <tomsmeding> "public"
10:07:42 <tomsmeding> it isn't
10:07:54 <tomsmeding> write `cut` and send a PR :p
10:08:02 <tomsmeding> _make_ it public
10:10:58 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
10:14:45 merijn joins (~merijn@77.242.116.146)
10:18:22 <kqr> I'm thinking maybe I'm wanting the wrong thing, though. I was trying to work around a bad parser by not backtracking, but maybe the solution is to write a better parser! If nobody else has needed a Prolog cut in attoparsec then maybe it's just not needed...
10:19:31 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
10:23:41 notzmv joins (~umar@user/notzmv)
10:24:58 ljdarj joins (~Thunderbi@user/ljdarj)
10:25:00 × bwern quits (~bwern@2405:201:5c16:894:a059:4458:a01:2a23) (Ping timeout: 260 seconds)
10:30:41 × billchenchina- quits (~billchenc@113.57.152.160) (Quit: Leaving)
10:39:28 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
10:41:34 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
10:43:57 <probie> The problem is that `cut` breaks the `Alternative` laws, which are certainly assumed for parsers
10:52:40 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
10:55:52 xff0x joins (~xff0x@2405:6580:b080:900:1d57:63dc:1fef:3969)
10:59:32 __monty__ joins (~toonn@user/toonn)
11:01:30 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
11:02:08 <dminuoso> kqr: You might be interested in flatparse, by the way.
11:02:31 <dminuoso> https://hackage.haskell.org/package/flatparse-0.5.1.1/docs/FlatParse-Basic.html#v:cut
11:03:34 <kqr> probie, Right, yeah, that makes sense.
11:03:49 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds)
11:05:29 vanishingideal joins (~vanishing@user/vanishingideal)
11:06:50 × housemate quits (~housemate@2405:6e00:243d:47f:54d8:971f:e178:87e9) (Read error: Connection reset by peer)
11:06:50 <kqr> dminuoso, that certainly looks interesting. The reason I noticed the backtracking in the first place was that I was wrapping an attoparsec in a StateT, but embedding ST in the parser the way flatparse does it seems like the better way to go about it
11:12:02 Guest58 joins (~Guest58@46.240.130.155)
11:15:45 merijn joins (~merijn@77.242.116.146)
11:16:09 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
11:16:17 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
11:18:55 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
11:20:59 housemate joins (~housemate@2405:6e00:243d:47f:73c8:515d:b485:4db3)
11:22:36 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
11:24:11 billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
11:27:02 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
11:29:23 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
11:29:45 × sroso quits (~sroso@user/SrOso) (Quit: Leaving :))
11:38:05 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:4809:246d:953b:928)
11:41:03 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
11:41:03 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
11:43:00 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
11:44:37 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
11:45:28 × housemate quits (~housemate@2405:6e00:243d:47f:73c8:515d:b485:4db3) (Quit: Nothing to see here. I wasn't there. I take IRC seriously. https://files.catbox.moe/4e9k81.pdf)
11:46:02 <briandaed> is there a command to ask bot for list of recommended books?
11:46:57 <mauke> @where books
11:46:57 <lambdabot> https://www.extrema.is/articles/haskell-books is the best list of Haskell books. See also: LYAH, HTAC, RWH, PH, YAHT, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, FSAF, HftVB, TwT, FoP, PFAD, WYAH,
11:46:57 <lambdabot> non-haskell-books
11:47:01 <mauke> @where book
11:47:01 <lambdabot> http://haskellbook.com/
11:47:03 <mauke> hmm
11:47:34 <mauke> @where pcph
11:47:34 <lambdabot> "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive.
11:47:34 <lambdabot> org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/>
11:47:43 <briandaed> mauke: thank you
11:51:13 merijn joins (~merijn@77.242.116.146)
11:59:10 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
11:59:33 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
12:00:08 × caconym quits (~caconym@user/caconym) (Quit: bye)
12:00:35 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
12:01:01 × mari-estel quits (~mari-este@user/mari-estel) ()
12:01:31 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
12:01:32 caconym joins (~caconym@user/caconym)
12:04:18 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
12:06:49 housemate joins (~housemate@2405:6e00:243d:47f:23f5:b14e:1d2c:dddb)
12:06:58 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
12:08:12 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
12:17:24 × CiaoSen quits (~Jura@2a05:5800:2e1:d800:ca4b:d6ff:fec1:99da) (Ping timeout: 276 seconds)
12:19:08 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
12:21:50 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
12:26:40 × Guest58 quits (~Guest58@46.240.130.155) (Ping timeout: 240 seconds)
12:31:17 × housemate quits (~housemate@2405:6e00:243d:47f:23f5:b14e:1d2c:dddb) (Read error: Connection reset by peer)
12:35:58 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Ping timeout: 244 seconds)
12:36:26 ubert1 joins (~Thunderbi@2a02:8109:ab8a:5a00:e6b3:18ff:fe83:8f33)
12:40:57 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:4809:246d:953b:928) (Ping timeout: 265 seconds)
12:40:57 ubert1 is now known as ubert
12:42:08 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
12:44:20 × notzmv quits (~umar@user/notzmv) (Ping timeout: 265 seconds)
12:44:47 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
12:45:42 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
12:49:22 <lxsameer> hey folks, I was wondering how does haskell laziness works. Is it a compile time thing or runtime? for instance, if we have a list of functions A and a function f which randomly picks the first n functions of list A and apply them to a value. what will ghc do with the list, how does laziness work here?
12:52:09 <int-e> There are heap representations for unevaluated values, so-called thunks; after a thunk is evaluated, the heap object is replaced by the value (possibly via an indirection)
12:52:13 <int-e> so it's mostly a runtime thing
12:55:12 <lxsameer> int-e: so ghc includes some logic to compile the code in runtime? or it compiles thunks on compile time and just eval them on runtime?
12:55:40 SlackCoder joins (~SlackCode@208.26.70.132)
12:58:33 × SlackCoder quits (~SlackCode@208.26.70.132) (Client Quit)
12:58:39 <int-e> There's no runtime code generation. But a thunk (which is a heap object, so data) contains a pointer to code that evaluates it.
12:58:44 CiaoSen joins (~Jura@2a05:5800:2e1:d800:ca4b:d6ff:fec1:99da)
12:59:36 <kuribas> lxsameer: It's both. ghc can do optimizations which preserve lazy semantics. It can also infer that a function is really strict, so generate strict code.
12:59:37 <lxsameer> int-e: so every function in list A will be compiled in compiletime to a thunk
13:00:28 <lxsameer> kuribas: so it actually looks at the function body and compiles it everthough it might not get evaluate at all at runtime
13:00:30 <lxsameer> correct?
13:00:32 <mauke> not sure what that means
13:00:45 × gorignak quits (~gorignak@user/gorignak) (Ping timeout: 260 seconds)
13:01:45 <lxsameer> talking about the list A again, GHC will compile all the functions in list A and optimize them even without the knowledge whether they will be evaluated at runtime or not
13:01:49 mari-estel joins (~mari-este@user/mari-estel)
13:02:03 <lxsameer> did I get it correctly?
13:02:33 <kuribas> lxsameer: yes, it's the code the thunk refers to.
13:03:25 <kuribas> lxsameer: A think is a pointer to a code address, and a data address with the closure over that function.
13:03:52 <lxsameer> cool, I was reading about the problems of Fexprs and I was wondering how does ghc handles a lazy code that it does not know much about whether it gets evaluated or not
13:04:33 <lxsameer> kuribas: I'm familiar with thunks, my main issue is with how does ghc knows what to compile and what to ignore
13:04:36 <geekosaur> lxsameer: ghc generates a graph of thunks/code to be evaluated, and uses a graph reduction engine at runtime to reduce the graph as parts are needed
13:05:08 <geekosaur> https://en.wikipedia.org/wiki/Graph_reduction
13:05:10 <lxsameer> geekosaur: interesting, is it based on a paper or something?
13:05:49 <lxsameer> cool, thanks folks
13:05:59 <geekosaur> https://dl.acm.org/doi/pdf/10.1145/99370.99385
13:06:10 <mauke> @where stg
13:06:10 <lambdabot> http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.3729
13:06:13 <lxsameer> perfect, thank you
13:06:18 <geekosaur> note: this paper is not so much about the theory as it is an implementation
13:06:28 <geekosaur> the wikipedia page will be better for the fundamentals
13:06:39 <lxsameer> cheers. will read both
13:07:25 <mauke> is that citeseer page broken for anyone else?
13:07:40 <lxsameer> it's broken for me too
13:07:55 <geekosaur> also here
13:08:20 <geekosaur> the ACM one works
13:08:44 SlackCoder joins (~SlackCode@208.26.70.132)
13:09:00 <mauke> @where+ stg https://dl.acm.org/doi/pdf/10.1145/99370.99385
13:09:00 <lambdabot> Done.
13:09:35 <lxsameer> thank you folks
13:10:01 <kuribas> lxsameer: if it inlines code, it can remove code which doesn't get called.
13:10:40 <kuribas> lxsameer: for example "head [1..]", it can inline the definition of [1..] into head, to rewrite it to 1.
13:12:44 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Read error: Connection reset by peer)
13:14:57 Digitteknohippie joins (~user@user/digit)
13:15:45 × leungbk quits (~user@2603:8000:1201:2dd2:43af:9155:ebaf:770c) (Ping timeout: 246 seconds)
13:16:16 × Digit quits (~user@user/digit) (Ping timeout: 244 seconds)
13:17:26 <kuribas> lxsameer: but for a not inlined function, it has to include the whole definition, because it only knows at runtime what to call.
13:19:08 sindu joins (~sindu@176.75.224.1)
13:19:45 MyNetAz joins (~MyNetAz@user/MyNetAz)
13:23:32 dostoevsky joins (~dostoevsk@user/dostoevsky)
13:23:37 × dostoevsky quits (~dostoevsk@user/dostoevsky) (Max SendQ exceeded)
13:25:23 <lxsameer> kuribas: cheers
13:27:02 dostoevsky joins (~dostoevsk@user/dostoevsky)
13:27:16 Guest58 joins (~Guest58@46.240.130.155)
13:27:38 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
13:30:58 leungbk joins (~user@syn-104-032-221-175.res.spectrum.com)
13:33:42 Digitteknohippie is now known as Digit
13:34:02 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
13:35:23 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:39:57 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
13:40:14 merijn joins (~merijn@77.242.116.146)
13:41:03 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
13:43:40 lovasko joins (~lovasko@213.55.189.104)
13:44:07 × merijn quits (~merijn@77.242.116.146) (Client Quit)
13:44:22 merijn joins (~merijn@77.242.116.146)
13:48:18 × sindu quits (~sindu@176.75.224.1) (Ping timeout: 244 seconds)
13:50:42 <merijn> lxsameer: Also, the above discussion is why pedants always say that Haskell is "non-strict" and not lazy. That is, GHC is allowed to compile code to be strict IFF it can't prove the strict version behaves identically to the lazy one
13:51:54 <lxsameer> merijn: Cool, I'm pretty instrested to learn more about how GHC does it.
13:52:23 <lxsameer> Specially about the mathematics used as proofs
13:52:52 sindu joins (~sindu@176.75.224.1)
13:54:50 weary-traveler joins (~user@user/user363627)
14:02:29 <geekosaur> I don't think there's a lot of math involved, just standard compiler demand analysis
14:02:54 × CiaoSen quits (~Jura@2a05:5800:2e1:d800:ca4b:d6ff:fec1:99da) (Ping timeout: 245 seconds)
14:03:03 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
14:03:08 srk joins (~sorki@user/srk)
14:03:08 <geekosaur> I think there's a -d dump flag to show ghc's analysis
14:06:00 <merijn> lxsameer: The STG paper is a bit dated (in that a bunch of things that it desribes are no longer done), but it's very enlightening
14:07:02 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
14:08:54 mari54335 joins (~mari-este@user/mari-estel)
14:09:29 × mari-estel quits (~mari-este@user/mari-estel) (Ping timeout: 244 seconds)
14:12:16 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
14:13:29 <__monty__> merijn: That was an extraneous `'t`, right?
14:20:29 <merijn> __monty__: Probably, I'm operating on, like, 4 hours of sleep due to a cold. So anything that's remotely parseable as english counts as exceeds expectations
14:22:44 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
14:28:49 × lovasko quits (~lovasko@213.55.189.104) (Quit: Client closed)
14:33:42 × SlackCoder quits (~SlackCode@208.26.70.132) (Quit: Leaving)
14:34:43 <haskellbridge> <maralorn> One thing I have been wondering about for ages: Why is there a "let" in do notation. Couldn"t we just do "a <- _; b = _; c = _; d <- _;`?
14:35:03 <haskellbridge> <maralorn> * Couldn’t we just do "a <- _; b = _; c = _; d <- _;"?
14:35:57 gorignak joins (~gorignak@user/gorignak)
14:41:52 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
14:47:20 <merijn> maralorn: and implicitly wrap _ with "return" you mean?
14:47:58 <tomsmeding> merijn: I think they mean just drop the `let` from the syntax, the resulting grammar is unambiguous anyway
14:48:30 <geekosaur> ^
14:48:53 <geekosaur> right now you get a parse error if you write `x = foo` in a `do` block without the `let`
14:49:10 <tomsmeding> humans like redundancy, though, and it's sometimes kind of relevant which lines do something monadic and which ones don't
14:49:16 <geekosaur> I _thiiiink_, however, the point is to catch a common-ish thinko
14:49:33 <tomsmeding> but it's definitely not clear-cut, there's plenty other cases in haskell where there's a lot of semantic difference in a single character
14:50:07 <tomsmeding> maralorn: the `let` syntax allows you to define a mutually-recursive block of bindings
14:50:23 <geekosaur> (I mean, I made that mistake the other day because I was trying to crank out code quickly and without much thought)
14:50:31 <tomsmeding> doing that implicitly with adjacent unmarked '=' lines would be awkward
14:50:50 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
14:52:25 <briandaed> maralorn: https://stackoverflow.com/questions/23452343/stripping-out-let-in-haskell , first and second answer
14:52:28 bwern joins (~bwern@49.36.232.170)
14:54:15 KicksonButt joins (~quassel@187.21.173.221)
14:55:57 <haskellbridge> <maralorn> I feel like that so question misses my point. I am not against bindings as a construct it just always irks me that we need the keyword to do it.
14:55:59 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
14:56:06 <tomsmeding> briandaed: that's about removing the syntactic constructinside regular expressions
14:56:23 <tomsmeding> maralorn was about changing the grammar without changing the abstract syntax for do-blocks specifically
14:59:16 <briandaed> oh my bad, I misunderstood
15:00:08 × youthlic quits (~Thunderbi@user/youthlic) (Remote host closed the connection)
15:00:55 housemate joins (~housemate@2405:6e00:2431:7d1:f1bd:894:a763:65d2)
15:02:03 <KicksonButt> How do you call the "()" as in "IO ()"? If you have to read it out loud
15:02:19 youthlic joins (~Thunderbi@user/youthlic)
15:02:42 <tomsmeding> "unit"
15:02:50 mreh joins (~matthew@host86-146-138-50.range86-146.btcentralplus.com)
15:03:48 <KicksonButt> Thanks
15:04:26 <mreh> technically a stack question, but what do I need to do to get stack to recognise changes in a local `extra-deps` package?
15:05:16 <mreh> I have to stack purge quite often, sometimes `stack build --file-watch` recognises the changes, but then it fails eventually
15:05:25 <tomsmeding> mreh: you don't, you add it to `packages:` instead
15:05:41 <tomsmeding> then it gets built in the local .stack-work too
15:06:19 <tomsmeding> stack also can't apply package flags to stuff in extra-deps
15:06:34 <mreh> oh really, that's poo
15:06:55 <mreh> so, if I've got this package in a different repo, I should symlink it?
15:07:08 <tomsmeding> `packages:` can refer to any directory on your disk though
15:07:12 <tomsmeding> you don't have to symlink it in
15:07:48 <mreh> oh, `packages:` in stack.yaml?
15:07:51 <tomsmeding> yes
15:07:55 merijn joins (~merijn@77.242.116.146)
15:08:50 <tomsmeding> it's a bit of a hack because `packages:` is meant for the packages that you're developing together as part of one project
15:08:52 <tomsmeding> but it works
15:09:59 <mreh> yeah, one is a public package and the other is private, but their development is pretty closely linked
15:10:16 <mreh> it'll be *fine*
15:10:26 <tomsmeding> just don't accidentally commit the packages: line :)
15:10:50 <mreh> meh, I'll be the only one trying to build it
15:12:47 <mreh> flags are extremely useful, glfw-bindings likes to build GLFW3 from source by default
15:13:48 <briandaed> I would swear that that flags in stack.yaml were passed to package in extra-deps like crypton(ite) but maybe I'm wrong
15:14:05 <tomsmeding> they definitely weren't a few years ago; maybe it's been fixed in the meantime
15:15:39 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
15:17:15 × KicksonButt quits (~quassel@187.21.173.221) (Ping timeout: 252 seconds)
15:17:36 BrokenClutch joins (~primeiro@200-222-219-238.user3p.veloxzone.com.br)
15:17:45 <BrokenClutch> i like haskell
15:18:01 <mreh> welcome to the party
15:19:12 <BrokenClutch> I was reading the FRP libraries
15:19:39 <BrokenClutch> do someone know what happened to esoyelemez, the creator of netwire?
15:20:24 <__monty__> BrokenClutch: He passed away sadly, https://blog.jle.im/entry/in-memory-of-ertugrul-soylemez.html
15:21:22 <__monty__> BrokenClutch: Highly recommend this blogpost of theirs to get a better understanding of folds BTW, https://ertes.eu/tutorial/foldr.html
15:21:29 <merijn> tomsmeding: stack did it, cabal dit not
15:21:29 <dpratt> figured it out finally glguy -- boy that kicked my butt!
15:23:14 <dpratt> I had a function that would look up a "file" by its "id", but it was pulling from the original file data, before any transformations -- ah, the pitfalls of pure FP 😆
15:23:24 <mreh> BrokenClutch: are you interested in FRP?
15:23:26 <tomsmeding> merijn: are you 100% sure?
15:23:34 <dpratt> this code is a mess, tho
15:24:08 × housemate quits (~housemate@2405:6e00:2431:7d1:f1bd:894:a763:65d2) (Ping timeout: 264 seconds)
15:24:09 <merijn> tomsmeding: I'm 100% sure stack's config files let you pass flag to (transitive) dependencies and 100% sure that cabal does not let you (except via cabal.project)
15:24:44 <tomsmeding> merijn: well, stack.yaml corresponds to cabal.project, so allowing modifications to stack.yaml but not to cabal.project is unfair :p
15:25:14 <tomsmeding> package.yaml : stack.yaml :: thing.cabal : cabal.project, if you assume use of hpack
15:25:20 <BrokenClutch> __monty__: now I'm sad
15:25:31 <merijn> tomsmeding: Pretty sure package.yaml let you do it too
15:25:42 <BrokenClutch> mreh: a lot, probably the area I'm most interest in programming
15:25:46 <merijn> I just didn't bother ever knowing which yaml is what
15:26:06 <tomsmeding> merijn: how on earth would that work? package.yaml is just converted to a thing.cabal, and a .cabal file definitely cannot set flags on dependencies (let alone transitive ones)
15:26:34 <merijn> tomsmeding: Stack doesn't do dependency resolution via cabal at all
15:26:35 <geekosaur> actually I think it can, it's just very strongly disrecommended
15:27:16 <merijn> geekosaur: You cannot set dependency flags in .cabal unless that changed very recently (like, the last year or so)
15:27:31 <__monty__> BrokenClutch: Yeah : ( Hugs on offer though.
15:27:36 JuanDaugherty joins (~juan@user/JuanDaugherty)
15:27:45 <tomsmeding> I just very distinctly remember running into the fact that I could not set flags on extra-deps: packages in stack, and I had to put them in packages: instead
15:27:53 <tomsmeding> this was 2021
15:27:55 × alp quits (~alp@user/alp) (Remote host closed the connection)
15:28:05 <merijn> tomsmeding: You going to NL-FP?
15:28:22 <tomsmeding> probably, and unless the start time is going to move by 30mins I'll be late for the first talk
15:28:35 <merijn> Yeah, Leuven is so damn far away
15:28:48 <merijn> I'm considering just getting a hotel and turning it into a city trip with my girlfriend :p
15:28:53 <tomsmeding> I expect noone north of Utrecht will go
15:29:00 <tomsmeding> well or that
15:29:21 <merijn> No preliminary program yet, so I'm trying to figure out whether I should convince my boss to count it as "training & personal development" :p
15:30:16 <__monty__> Doesn't happen to be around FOSDEM, does it?
15:30:32 <merijn> No
15:30:46 <merijn> FOSDEM is February, NL-FP is (normally) first friday of the year
15:30:51 <merijn> Although not this year, it seems :p
15:30:55 <tomsmeding> second friday this time :)
15:32:27 <kuribas> What's in Leuven?
15:32:36 <merijn> kuribas: NL-FP, confusingly ;)
15:32:39 <tomsmeding> kuribas: https://people.cs.kuleuven.be/~tom.schrijvers/fpdag2025/
15:32:53 <kuribas> Just 20 mins from my work with the train :)
15:32:57 <tomsmeding> join!
15:33:01 <merijn> Although, I guess this is just more support for my controversial political platform to reannex Flanders
15:33:09 <kuribas> tomsmeding: yeah :)
15:33:16 <tomsmeding> it's usually up in NL
15:33:50 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
15:34:10 <merijn> But yeah, it's nice
15:36:17 × mreh quits (~matthew@host86-146-138-50.range86-146.btcentralplus.com) (Ping timeout: 248 seconds)
15:45:04 × leungbk quits (~user@syn-104-032-221-175.res.spectrum.com) (Ping timeout: 244 seconds)
15:45:50 × dostoevsky quits (~dostoevsk@user/dostoevsky) (Quit: dostoevsky)
15:46:29 <kuribas> I registered :)
15:48:00 × michaelis quits (~michael@user/michaelis) (Ping timeout: 276 seconds)
15:48:04 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
15:48:40 leungbk joins (~user@syn-104-032-221-175.res.spectrum.com)
15:50:33 ljdarj joins (~Thunderbi@user/ljdarj)
15:53:40 × Guest58 quits (~Guest58@46.240.130.155) (Ping timeout: 240 seconds)
15:56:54 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
15:57:31 housemate joins (~housemate@2405:6e00:2431:c6a:4614:14fc:560d:4532)
15:57:37 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds)
15:57:40 × manwithluck quits (manwithluc@gateway/vpn/protonvpn/manwithluck) (Remote host closed the connection)
15:58:05 manwithluck joins (manwithluc@gateway/vpn/protonvpn/manwithluck)
16:00:42 × housemate quits (~housemate@2405:6e00:2431:c6a:4614:14fc:560d:4532) (Max SendQ exceeded)
16:01:15 housemate joins (~housemate@2405:6e00:2431:c6a:4614:14fc:560d:4532)
16:02:19 sprotte24 joins (~sprotte24@p200300d16f364f00e91ec4b6e14324a2.dip0.t-ipconnect.de)
16:03:34 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
16:04:26 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
16:06:29 lovasko joins (~lovasko@213.55.189.104)
16:09:12 merijn joins (~merijn@77.242.116.146)
16:09:23 gorignak joins (~gorignak@user/gorignak)
16:09:29 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
16:14:34 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds)
16:19:07 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
16:20:03 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:e6b3:18ff:fe83:8f33) (Quit: ubert)
16:20:42 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
16:25:13 × mari54335 quits (~mari-este@user/mari-estel) (Ping timeout: 265 seconds)
16:28:02 merijn joins (~merijn@77.242.116.146)
16:30:00 × sindu quits (~sindu@176.75.224.1) (Ping timeout: 246 seconds)
16:31:47 × lovasko quits (~lovasko@213.55.189.104) (Quit: Client closed)
16:33:40 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds)
16:34:01 zero is now known as zzz
16:35:53 mari-estel joins (~mari-este@user/mari-estel)
16:36:49 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
16:39:19 × leungbk quits (~user@syn-104-032-221-175.res.spectrum.com) (Read error: Connection reset by peer)
16:41:00 leungbk joins (~user@2603:8000:1201:2dd2:ef9a:8e63:f517:2b50)
16:41:54 × housemate quits (~housemate@2405:6e00:2431:c6a:4614:14fc:560d:4532) (Read error: Connection reset by peer)
16:44:23 <hellwolf> {-# ANN EvalData "HLint: ignore Use newtype instead of data" #-}
16:44:24 sindu joins (~sindu@176.75.224.1)
16:45:00 housemate joins (~housemate@2405:6e00:2431:c6a:4614:14fc:560d:4532)
16:45:11 <hellwolf> But somehow, something warns me that I should use it for top-level bindings
16:45:18 <hellwolf> for example its only constructor
16:45:50 merijn joins (~merijn@77.242.116.146)
16:46:00 <hellwolf> bizarre
16:46:16 <hellwolf> hlint is happy with it, but not that something else. is it HLS.
16:46:34 <hellwolf> oh, ghc also complains.
16:48:18 bwerng joins (~bwern@2405:201:5c16:894:a059:4458:a01:2a23)
16:49:27 × leungbk quits (~user@2603:8000:1201:2dd2:ef9a:8e63:f517:2b50) (Remote host closed the connection)
16:50:24 × bwern quits (~bwern@49.36.232.170) (Ping timeout: 252 seconds)
16:51:21 × housemate quits (~housemate@2405:6e00:2431:c6a:4614:14fc:560d:4532) (Ping timeout: 246 seconds)
16:52:10 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:52:51 <hellwolf> and I really can't find any documentation from GHC about "{-# ANN"
16:53:19 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds)
16:54:21 <hellwolf> what I have is:
16:54:21 <hellwolf> data EvalData = MkEvalData { store_map :: M.Map ADDR WORD
16:54:21 <hellwolf> }
16:55:17 <glguy> dpratt: My AoC solution template file starts with a line that reads and then prints out the output so I can feel like I'm starting from the right place for that reason
16:56:39 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 245 seconds)
16:58:30 KicksonButt joins (~quassel@187.21.173.221)
17:03:36 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
17:05:20 korrykatti joins (~korrykatt@user/korrykatti)
17:05:23 merijn joins (~merijn@77.242.116.146)
17:05:43 sonolin joins (~michael@user/sonolin)
17:08:41 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
17:08:44 housemate joins (~housemate@2405:6e00:243d:358a:9bd3:e1d0:18cf:9447)
17:11:35 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
17:11:56 dhil joins (~dhil@2001:8e0:2014:3100:6003:9cb:6551:cba4)
17:16:02 notzmv joins (~umar@user/notzmv)
17:17:16 <BrokenClutch> is Keera Studio just Ivan Perez?
17:17:43 <mari-estel> pretty much
17:20:27 <BrokenClutch> most of the FRP libraries is just a one guy's dream?
17:20:44 <BrokenClutch> why? do people implement their own stuff?
17:21:22 <mari-estel> also the several attempts to write libs for mobile are mainly one person's initiative, unfortunately
17:21:51 cyphase joins (~cyphase@user/cyphase)
17:22:08 <mari-estel> ivan featured in an episode of the haskell interlude, explaining why his research is meaningful. For instance, for NASA
17:23:07 <mari-estel> ... there is a zoo of different functional reactive libs for haskell, by the way
17:23:14 <BrokenClutch> I saw it
17:23:28 <EvanR> FRP zoo
17:23:39 <zzz> what's the point of having a cabal.project separated from a *.cabal file?
17:23:53 <BrokenClutch> zzz: you can put fun stuff there
17:23:57 <BrokenClutch> like optimization flags
17:24:20 <BrokenClutch> I think profiling flags can go there too
17:24:34 <dolio> Project files can involve multiple packages.
17:25:00 <mari-estel> the project file is the only way to have a local dependency as far as i know
17:25:02 <sclv> a .cabal file describes a redistributable package -- a .project file contains settings not only for multiple packages and how they interact, but also flags that are not about the package itself, but about the specific building process
17:25:23 takuan joins (~takuan@178-116-218-225.access.telenet.be)
17:25:26 <BrokenClutch> The way I understood was: .cabal file say what your project is and cabal.project is how you are going to build it
17:25:33 <sclv> yeah thats pretty clean!
17:26:44 × EvanR quits (~EvanR@user/evanr) (Quit: Leaving)
17:26:51 <BrokenClutch> I think that maybe FRP isn't popular enough
17:26:56 <BrokenClutch> which is sad
17:27:17 <mari-estel> hm i gather a zoo is not enough for you
17:27:38 <BrokenClutch> like, most of that stuff isn't maintained anymore
17:27:45 <BrokenClutch> or it was just a one-person project
17:28:05 <BrokenClutch> it's enough to me because I just want to study it
17:29:11 <mari-estel> well consider that non-strict eval provides several of the advantages one could get from functional reactive already. Also, personally i used fun reactive only when i had to write complex interactive code, and that is not a common domain for haskell
17:31:50 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
17:34:53 <BrokenClutch> It's was very hard to me. Unerstanding all this FRP stuff took too much time, I don't think people would want to do that. Maybe that's a problem, don't know.
17:35:41 <BrokenClutch> I like reactivity because it's fun, wish I could implement some kind of reactivity. I'm trying to read the source code of those libraries but I'm not getting far (obviously).
17:37:45 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
17:39:23 × housemate quits (~housemate@2405:6e00:243d:358a:9bd3:e1d0:18cf:9447) (Read error: Connection reset by peer)
17:40:56 merijn joins (~merijn@77.242.116.146)
17:41:44 × mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection)
17:41:58 mari-estel joins (~mari-este@user/mari-estel)
17:42:01 ljdarj joins (~Thunderbi@user/ljdarj)
17:44:41 vanishing joins (~vanishing@user/vanishingideal)
17:44:41 × hellwolf quits (~user@fd1b-fea4-59a9-4346-0f00-4d40-07d0-2001.sta.estpak.ee) (Read error: Connection reset by peer)
17:45:27 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
17:46:00 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
17:48:14 alp joins (~alp@2001:861:8ca0:4940:d84b:e882:40b4:e34d)
17:48:30 mreh joins (~matthew@host86-146-138-50.range86-146.btcentralplus.com)
17:50:09 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 246 seconds)
17:51:12 philopsos joins (~caecilius@user/philopsos)
17:51:26 × OftenFaded quits (OftenFaded@user/tisktisk) (Quit: Client closed)
17:51:38 × AlexZenon quits (~alzenon@5.139.233.0) (Ping timeout: 252 seconds)
17:52:56 × mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection)
17:53:06 × AlexNoo quits (~AlexNoo@5.139.233.0) (Ping timeout: 252 seconds)
17:53:57 hellwolf joins (~user@6af3-8a03-f6ad-0507-0f00-4d40-07d0-2001.sta.estpak.ee)
17:55:19 cyphase joins (~cyphase@user/cyphase)
17:56:59 kmein joins (~weechat@user/kmein)
17:59:13 × korrykatti quits (~korrykatt@user/korrykatti) (Remote host closed the connection)
18:00:24 res0nat0r0844909 joins (~Fletch@falcon.whatbox.ca)
18:01:18 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f)
18:04:32 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
18:08:08 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d990:91d3:1ea2:183f) (Read error: Connection reset by peer)
18:11:23 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:12:32 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
18:12:46 Lord_of_Life_ is now known as Lord_of_Life
18:12:56 JeremyB99 joins (~JeremyB99@dhcp-251-149.resnet.purdue.edu)
18:12:58 × JeremyB99 quits (~JeremyB99@dhcp-251-149.resnet.purdue.edu) (Read error: Connection reset by peer)
18:16:22 <BrokenClutch> mari-estel: what's your favorite FRP lib?
18:16:26 <BrokenClutch> mine is Yampa
18:17:52 <monochrom> Reading library source code first may be the bad idea.
18:21:54 <monochrom> It works for libraries that merely capture repetitive idioms and chores. For example, foldl, foldr, take, map, id, ($).
18:22:52 <monochrom> But it totally backfires for real abstractions, e.g., pipes and conduits, FRP, even FIFO queues.
18:24:40 danza joins (~danza@user/danza)
18:25:39 <monochrom> For those, you learn the externally observable behaviour, aka user-facing use case stories. You don't actually want to know how such magical outcome can be achieved by all kinds of advanced techniques, tricks, and optimizations.
18:27:43 ft joins (~ft@p508db9c7.dip0.t-ipconnect.de)
18:29:29 OftenFaded joins (~OftenFade@user/tisktisk)
18:34:31 × bwerng quits (~bwern@2405:201:5c16:894:a059:4458:a01:2a23) (Ping timeout: 252 seconds)
18:34:36 merijn joins (~merijn@77.242.116.146)
18:36:59 <BrokenClutch> monochrom: How should I learn it?
18:38:10 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:b23:6c48:4874:9aaa)
18:38:17 <monochrom> For an extreme case, even in C, consider https://stackoverflow.com/questions/57650895/why-does-glibcs-strlen-need-to-be-so-complicated-to-run-quickly/57676035 . If no one told you "this is strlen()", good luck reverse-engineering what is the purpose of the highly contrived code and what it means for the user.
18:39:06 <monochrom> How did you learn FIFO queues? It's the same.
18:42:21 <monochrom> Someone told you a user-facing story, a mental model, maybe in the form of a "naïve" implementation. An API and how you use it and what happens when you do.
18:44:21 <monochrom> No one actually expects the actual library code looks anything like the "naïve" model. It is expected to be hand-optimized beyond recognition, such that reading it (without knowing that the high level goal is merely FIFO) is missing the forest for the trees.
18:44:47 <monochrom> Hell, you can't even learn strlen() by reading its glibc code.
18:49:35 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds)
18:53:51 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
18:55:40 housemate joins (~housemate@2405:6e00:243d:358a:b2e8:2b09:1ec8:e88e)
18:59:54 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
19:01:06 rvalue- joins (~rvalue@user/rvalue)
19:01:42 euphores joins (~SASL_euph@user/euphores)
19:02:02 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
19:09:06 rvalue- is now known as rvalue
19:13:03 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
19:16:05 × dhil quits (~dhil@2001:8e0:2014:3100:6003:9cb:6551:cba4) (Quit: Leaving)
19:16:39 Digitteknohippie joins (~user@user/digit)
19:17:56 × Digit quits (~user@user/digit) (Ping timeout: 244 seconds)
19:19:12 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:20:49 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
19:23:28 Square joins (~Square@user/square)
19:23:40 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
19:24:36 AlexZenon joins (~alzenon@5.139.233.0)
19:25:31 × dpratt quits (~dpratt@165.225.220.148) (Quit: Client closed)
19:25:35 Guest58 joins (~Guest58@46.240.130.155)
19:25:41 × notzmv quits (~umar@user/notzmv) (Ping timeout: 244 seconds)
19:26:29 AlexNoo joins (~AlexNoo@5.139.233.0)
19:27:14 × Square2 quits (~Square4@user/square) (Ping timeout: 244 seconds)
19:34:34 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:34:58 dpratt joins (~dpratt@165.225.220.148)
19:35:10 × Guest58 quits (~Guest58@46.240.130.155) (Ping timeout: 240 seconds)
19:39:20 × housemate quits (~housemate@2405:6e00:243d:358a:b2e8:2b09:1ec8:e88e) (Quit: Nothing to see here. I wasn't there. I take IRC seriously. https://files.catbox.moe/4e9k81.pdf)
19:39:42 housemate joins (~housemate@2405:6e00:243d:358a:b2e8:2b09:1ec8:e88e)
19:39:49 <geekosaur> bouncing the bridge briefly
19:40:12 × haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
19:41:16 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
19:41:20 haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com)
19:41:20 ChanServ sets mode +v haskellbridge
19:41:54 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds)
19:43:16 × danza quits (~danza@user/danza) ()
19:45:10 × dpratt quits (~dpratt@165.225.220.148) (Ping timeout: 240 seconds)
19:49:46 × nitrix quits (~nitrix@user/meow/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
19:50:51 nitrix joins (~nitrix@user/meow/nitrix)
19:51:17 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
19:52:37 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:55:14 Digitteknohippie is now known as Digit
19:57:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
19:59:48 ljdarj1 joins (~Thunderbi@user/ljdarj)
20:00:03 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:41 caconym joins (~caconym@user/caconym)
20:01:24 × nitrix quits (~nitrix@user/meow/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
20:03:01 nitrix joins (~nitrix@user/meow/nitrix)
20:03:27 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
20:03:27 ljdarj1 is now known as ljdarj
20:04:52 × billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving)
20:05:06 × euphores quits (~SASL_euph@user/euphores) (Read error: Connection reset by peer)
20:08:01 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:13:12 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
20:14:11 <BrokenClutch> monochrom: So how should I learn how to implement something?
20:15:38 visilii joins (~visilii@213.24.132.203)
20:15:38 euphores joins (~SASL_euph@user/euphores)
20:15:43 × visilii_ quits (~visilii@94.25.68.206) (Ping timeout: 252 seconds)
20:15:49 × housemate quits (~housemate@2405:6e00:243d:358a:b2e8:2b09:1ec8:e88e) (Read error: Connection reset by peer)
20:16:48 korrykatti joins (~korrykatt@user/korrykatti)
20:17:19 housemate joins (~housemate@120.20.140.46)
20:17:51 × housemate quits (~housemate@120.20.140.46) (Remote host closed the connection)
20:18:10 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:18:56 <monochrom> That was not what I was addressing. I was only addressing how to learn to use FRP or any abstraction or any API. I am not interested right now in changing subject to how to learn to implement.
20:20:09 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
20:20:50 fmira joins (~user@user/fmira)
20:23:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:24:53 <BrokenClutch> monochrom: ok, thanks
20:27:46 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
20:31:49 × sindu quits (~sindu@176.75.224.1) (Ping timeout: 244 seconds)
20:33:40 sindu joins (~sindu@176.75.224.1)
20:35:04 × BrokenClutch quits (~primeiro@200-222-219-238.user3p.veloxzone.com.br) (Remote host closed the connection)
20:36:36 weary-traveler joins (~user@user/user363627)
20:38:24 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
20:38:47 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:43:03 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
20:45:46 × bcksl quits (~bcksl@user/bcksl) (Ping timeout: 244 seconds)
20:46:57 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:47:11 × end quits (~end@user/end/x-0094621) (Ping timeout: 265 seconds)
20:47:32 × sus0 quits (zero@user/zeromomentum) (Ping timeout: 264 seconds)
20:50:12 × foul_owl quits (~kerry@185.219.141.161) (Ping timeout: 252 seconds)
20:50:36 foul_owl joins (~kerry@185.219.141.161)
20:51:52 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
20:54:36 pavonia joins (~user@user/siracusa)
20:59:21 × briandaed quits (~root@user/briandaed) (Remote host closed the connection)
21:00:21 <sprotte24> hi
21:00:31 bcksl joins (~bcksl@user/bcksl)
21:02:13 <sprotte24> my haskell getCahr buffer problem persits.
21:02:15 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:03:31 end joins (~end@user/end/x-0094621)
21:04:16 <sprotte24> bing Copilot (AI) helpted me, about 20 tries. But not one try solved the problem using without enter key
21:05:19 <glguy> To getChar without enter you have to turn off buffering in stdin
21:06:56 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
21:07:02 <glguy> LLMs are only really useful if you already know enough to recognize the right answer
21:07:06 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:07:19 <glguy> Or for asking questions that don't have right answers
21:09:16 <OftenFaded> so far*
21:09:36 <OftenFaded> claude is getting better i think
21:10:34 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
21:10:46 <monochrom> This again? Haven't we concluded that you should go to office hours and consult your instructor because only they know the actual testing environment and what it expects?
21:12:36 <sprotte24> gi, many tries, e.g. import System.IO (hSetEcho, hSetBuffering, BufferMode(NoBuffering), stdin, stdout, getChar
21:13:18 <sprotte24> or: cabal install haskeline
21:14:06 <sprotte24> cabal cabal uodate
21:14:14 <sprotte24> hflush ...
21:14:25 <glguy> It's just hSetBuffering stdin NoBuffering
21:14:26 <sprotte24> none works
21:14:28 <glguy> none of the rest of that
21:14:46 <glguy> If that doesn't work for you something is unique about your environment and you'll need to debug that
21:15:20 <int-e> <3 black box debugging over low-bandwidth, lossy channels.
21:15:49 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
21:16:12 <monochrom> Oh it gets better. Black box debugging over low-bandwidth lossy channel, and the other end of the channel is not even the black box.
21:16:21 <sprotte24> Parse error: module header, import declaration
21:16:21 <sprotte24> or top-level declaration expected.
21:16:41 <monochrom> In fact s/lossy/lousy/ works too.
21:16:41 <int-e> monochrom: that's included in the channel model :P
21:16:42 Sgeo joins (~Sgeo@user/sgeo)
21:16:48 <monochrom> Oh haha OK!
21:16:59 <probie> sprotte24: make it the first line in the do block for your `main`
21:17:26 <sprotte24> ok, let me try
21:18:38 housemate joins (~housemate@2405:6e00:243d:358a:ddf0:5eda:a12a:410)
21:19:10 <sprotte24> in main do block works, compiles.
21:19:26 <sprotte24> but waits for enter
21:20:05 <sprotte24> collects all characters and remembers them when keying enter
21:21:13 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:23:47 homo joins (~homo@user/homo)
21:23:53 <probie> If you've done `hSetBuffer stdin NoBuffering` and that still happens, something else is going on. Are you running a compiled program, or from within GHCi and what console/terminal emulator are you using?
21:26:05 <int-e> "The code ist[sic!] tested automatically." -- I believe this is why monochrom is so adamant about contacting the instructor. Because presumably they know how this is tested, and you don't, and we certainly don't. And it's quite possible that the test setup is broken!
21:26:20 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
21:27:10 <monochrom> You don't even know that anything you're doing right now is relevant to the testing environment at all.
21:27:12 <int-e> I also don't think that you've shared any code so obviously that can be wrong too, as far as we know.
21:27:14 <glguy> int-e: I don't think you have to [sic] German words
21:27:25 <int-e> glguy: :-P
21:28:36 <int-e> It felt like an appropriate channel for a bit of frustration.
21:29:03 <monochrom> If the test is not done by a human in front of a screen and keyboard, why are you even coding this for human comfort?
21:31:31 notzmv joins (~umar@user/notzmv)
21:32:46 × droideqa quits (uid499291@user/droideqa) (Quit: Connection closed for inactivity)
21:33:54 <sprotte24> probie, I am using VSC and Terminal
21:36:45 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:37:44 × korrykatti quits (~korrykatt@user/korrykatti) (Remote host closed the connection)
21:41:36 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
21:44:55 simplystuart joins (~simplystu@static-71-173-136-93.hrbgpa.fios.verizon.net)
21:46:50 × simplystuart quits (~simplystu@static-71-173-136-93.hrbgpa.fios.verizon.net) (Remote host closed the connection)
21:47:00 simplystuart joins (~simplystu@static-71-173-136-93.hrbgpa.fios.verizon.net)
21:47:58 × simplystuart quits (~simplystu@static-71-173-136-93.hrbgpa.fios.verizon.net) (Remote host closed the connection)
21:48:07 simplystuart joins (~simplystu@static-71-173-136-93.hrbgpa.fios.verizon.net)
21:48:52 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
21:48:58 × housemate quits (~housemate@2405:6e00:243d:358a:ddf0:5eda:a12a:410) (Quit: Nothing to see here. I wasn't there. I take IRC seriously. https://files.catbox.moe/4e9k81.pdf)
21:50:42 ash3en joins (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de)
21:51:38 housemate joins (~housemate@2405:6e00:243d:358a:ddf0:5eda:a12a:410)
21:56:31 × Square quits (~Square@user/square) (Ping timeout: 264 seconds)
21:57:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:59:41 × homo quits (~homo@user/homo) (Quit: homo)
22:02:14 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
22:04:43 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:05:48 × simplystuart quits (~simplystu@static-71-173-136-93.hrbgpa.fios.verizon.net) (Remote host closed the connection)
22:08:39 dpratt joins (~dpratt@165.225.220.148)
22:10:00 × KicksonButt quits (~quassel@187.21.173.221) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
22:10:05 × mreh quits (~matthew@host86-146-138-50.range86-146.btcentralplus.com) (Quit: Lost terminal)
22:13:19 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:18:39 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
22:23:45 × housemate quits (~housemate@2405:6e00:243d:358a:ddf0:5eda:a12a:410) (Ping timeout: 248 seconds)
22:24:21 × alp quits (~alp@2001:861:8ca0:4940:d84b:e882:40b4:e34d) (Ping timeout: 248 seconds)
22:28:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:31:52 × michalz quits (~michalz@185.246.207.200) (Remote host closed the connection)
22:35:26 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:37:02 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
22:42:48 <comonad> sprotte24: hi, arch linux user here. i typed ghci and then getChar in my kitty terminal, getChar did not wait for enter. utf8 works too: ł'\322'
22:44:18 <OftenFaded> forgot the 'btw'
22:44:51 <comonad> sprotte24: might it be, that there is a line buffering program between your terminal and your haskell program?
22:45:03 <comonad> OftenFaded: thx, btw.
22:46:46 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:48:29 sus0 joins (zero@user/zeromomentum)
22:51:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:56:46 homo joins (~homo@37-33-168-21.bb.dnainternet.fi)
22:58:44 × dpratt quits (~dpratt@165.225.220.148) (Quit: Client closed)
22:59:18 ljdarj1 joins (~Thunderbi@user/ljdarj)
23:02:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:02:34 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
23:02:41 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
23:02:42 ljdarj1 is now known as ljdarj
23:06:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
23:06:52 r-sta joins (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net)
23:08:25 <r-sta> so i just finished this convolutional extension to some kind of versioning system
23:08:37 <r-sta> well, kind of
23:08:44 <r-sta> its a case of "if it compiles ship it"
23:09:03 <r-sta> since i had been wresteling with a non-terminating superclass recursion... :-/
23:09:30 <r-sta> at this point, id move on to other parts of the project, but it feels kinda rough to leave it untested
23:09:41 <r-sta> ill put the code, hang on
23:10:24 × leah2 quits (~leah@vuxu.org) (Ping timeout: 245 seconds)
23:11:21 leah2 joins (~leah@vuxu.org)
23:13:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:15:14 housemate joins (~housemate@ppp203-122-213-191.static.internode.on.net)
23:15:15 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Read error: Connection reset by peer)
23:15:56 × leah2 quits (~leah@vuxu.org) (Excess Flood)
23:17:35 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:b23:6c48:4874:9aaa) (Read error: Connection reset by peer)
23:19:15 <Axman6> I haven't looked too closely at your work r-sta but it does remind me of grenade (and jle`'s excellent posts which basically recreate it)
23:19:45 <r-sta> Axman6: https://github.com/munston/store
23:19:53 <r-sta> jle did some stuff like this too
23:20:04 <r-sta> sometimes the type level stuff leads to a strange interface though
23:20:15 <r-sta> so im not using it eg for the lengths of the input output vectors of the samplers
23:20:35 <r-sta> its only featuring here so that i can get the type level persistent direction of the path for the store
23:21:12 <r-sta> its always a risk to try to do anything at type level, but i needed to be able to resolve the "name of the store" from the "type of the object"
23:21:24 <r-sta> i guess there was a workaround that didnt keep this
23:21:37 <r-sta> but i opted to just add a type level nat to the type of the object to help the compiler
23:22:12 <r-sta> ...
23:22:15 MyNetAz joins (~MyNetAz@user/MyNetAz)
23:22:39 JeremyB99 joins (~JeremyB99@2607:fb90:d960:844a:b879:6469:685c:524e)
23:22:40 <r-sta> in order to build the repo you also need to pull in this lib for the "parametric" class
23:22:40 <r-sta> https://github.com/munston/lib
23:22:43 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:22:58 <r-sta> i was trying to get set up developing on cabal so all these dependencies would be automatic
23:23:25 <r-sta> my cabal project looks like this;
23:23:25 <r-sta> https://pastebin.com/raw/f69XRTWz
23:23:34 <Axman6> any reason now to do it all in one repo and use a cabal.project file?
23:23:35 <r-sta> there are ~ 200 .hs files !
23:23:39 <Axman6> s/now/not
23:23:43 <r-sta> see above
23:23:55 <r-sta> thats a reason not to!
23:24:06 <Axman6> D:
23:24:49 <r-sta> this doesnt even have the self learning stuff!
23:26:08 <r-sta> i guess if it were something i were releasing id actually keep the trading interface under wraps
23:26:36 <r-sta> its not really totally sane to release the AGI along with a monetization that you would benifit from being the sole user of!
23:26:55 <r-sta> maybe there is a use case that would benifit the comunity?
23:27:07 <r-sta> maybe some image or audio processing
23:27:08 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
23:27:13 × JeremyB99 quits (~JeremyB99@2607:fb90:d960:844a:b879:6469:685c:524e) (Ping timeout: 248 seconds)
23:27:18 <r-sta> idk what would maybe be fun for students...
23:27:26 <r-sta> train your ....
23:27:46 <r-sta> ...
23:28:13 <r-sta> its quite interesting how all this AGI stuff ends up actually.
23:28:13 <r-sta> im using what could be considered to be an overregularized limit, which is actually nonparametric
23:28:29 <r-sta> there is a bunch of literature, but all it amounts to is local gradient discovery and line extension
23:28:35 <ncf> r-sta: #haskell-offtopic
23:28:56 <r-sta> no wonder haskell is deplored within ML
23:29:20 <Axman6> your implementation of Moc could be more efficient if you returned the first argument in the IfLt (S x) Z t f case - the first argument is (Subtract x y)
23:29:43 <r-sta> at compile time!?
23:29:56 <Axman6> yeah this is a lot of noise for thic channel, #haskell-offtopic would be better for the non-Haskell questions
23:29:57 <r-sta> yeah i got the GPT to write the type level stuff and didnt check the implementations, thanks
23:30:01 <Axman6> yes, compile times matter
23:30:12 <r-sta> ok! ill make that change, thanks for the catch
23:31:00 <Axman6> any reason not to use GHC's Nat type? all that code exists already
23:31:01 <r-sta> (i wont be using the offtopic channel unless someone is actually wanting to engage, otherwise ill just not write about it)
23:31:09 <r-sta> Axman6: yes, i hate it
23:31:18 <r-sta> im reluctant to use TypeLits also
23:31:28 <r-sta> you cant pattern match on classes properly
23:31:43 <r-sta> classes cant pattern match on GHC's inbuilt Nats properly*
23:31:48 <r-sta> iirc
23:32:14 <r-sta> i like to match on Z and ... n => (S n)
23:32:16 leah2 joins (~leah@vuxu.org)
23:33:27 <Axman6> https://hackage.haskell.org/package/clash-prelude-1.8.1/docs/Clash-Sized-Vector.html does plenty of stuff like that. not sure what problems you're running into though
23:34:19 <r-sta> (the src of that doesnt even mention a class!)
23:35:23 <r-sta> i think basically i was running into some problems i didnt understand with the way KnownNat was opperating as a dictionary or something
23:35:40 <r-sta> i could never get it to work simply and encountered errors i did not know how to solve
23:35:42 × ash3en quits (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Quit: ash3en)
23:35:59 <r-sta> maybe its just the literal thinness of the Nat implementation, i know there is nothing im not aware what its doing
23:36:13 <r-sta> because the typechecker isnt so mature you need to know exactly what its up to
23:36:40 <r-sta> since the kind of errors it gives are like, just basically like runtime errors but at compile time, like nonterminating compilation
23:36:44 <r-sta> really difficult to debug
23:36:57 <r-sta> esp if you cant tell how the type level stuff your relying on works
23:38:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:38:22 × sprotte24 quits (~sprotte24@p200300d16f364f00e91ec4b6e14324a2.dip0.t-ipconnect.de) (Quit: Leaving)
23:38:39 × r-sta quits (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Quit: Client closed)
23:43:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
23:45:09 × Digit quits (~user@user/digit) (Ping timeout: 260 seconds)
23:45:48 <Axman6> Clash also uses a plugin to solve Nat type level expressions which GHC can't, which might be helpful
23:46:36 <Axman6> https://hackage.haskell.org/package/ghc-typelits-natnormalise
23:46:49 JeremyB99 joins (~JeremyB99@128.211.251.220)
23:47:32 <Axman6> https://hackage.haskell.org/package/clash-ghc lists a few other deps for similar things
23:48:30 × JeremyB99 quits (~JeremyB99@128.211.251.220) (Read error: Connection reset by peer)
23:49:44 <geekosaur> there's also https://flora.pm/packages/@hackage/ghc-typelits-presburger among others
23:49:48 Digit joins (~user@user/digit)
23:50:52 <Axman6> "...use ghc-typelits-meta and/or ghc-typelits-presburger instead." confusing
23:51:16 × sindu quits (~sindu@176.75.224.1) (Ping timeout: 252 seconds)
23:53:23 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:b7b1:ecef:a8b4:e165)
23:53:30 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:54:23 <Axman6> geekosaur: I'm not sure what that really offers - does it just help in the cases where obviously equal things involving Nats aren't obvious to GHC?
23:56:41 × JeremyB99 quits (~JeremyB99@2607:ac80:407:7:b7b1:ecef:a8b4:e165) (Read error: Connection reset by peer)
23:57:29 <geekosaur> my impression is that natnormalise handles things like x + 1 - 1 which ghc needs help with, but presburger is a more general arithmetic solver
23:57:48 <geekosaur> (ghc really is weak when it comes to type level Nats)
23:58:06 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
23:59:03 <geekosaur> (more precisely, I think natnormalise doesn't so much do arithmetic as add extra constraints so ghc can do it)
23:59:45 JeremyB99 joins (~JeremyB99@2607:ac80:407:7:b7b1:ecef:a8b4:e165)

All times are in UTC on 2024-12-10.