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.