Logs on 2024-12-07 (liberachat/#haskell)
| 00:02:45 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a005:2f14:983d:6732) |
| 00:02:57 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a005:2f14:983d:6732) (Read error: Connection reset by peer) |
| 00:04:12 | <sprotte24> | the first part of my code works |
| 00:08:52 | → | notzmv joins (~umar@user/notzmv) |
| 00:10:39 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:15:07 | × | hgolden quits (~hgolden@2603:8000:9d00:3ed1:2d8:61ff:feaa:be45) (Remote host closed the connection) |
| 00:16:16 | → | lol_ joins (~lol@2603:3016:1e01:b9c0:d1c1:f93e:7bae:b7b4) |
| 00:18:13 | → | JeremyB99 joins (~JeremyB99@128.211.251.214) |
| 00:18:18 | × | JeremyB99 quits (~JeremyB99@128.211.251.214) (Remote host closed the connection) |
| 00:18:19 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 00:18:31 | → | JeremyB99 joins (~JeremyB99@128.211.251.214) |
| 00:20:33 | × | jcarpenter2 quits (~lol@2603:3016:1e01:b9c0:cd28:d74a:e341:a3ea) (Ping timeout: 276 seconds) |
| 00:29:08 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds) |
| 00:29:36 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:33:00 | × | JeremyB99 quits (~JeremyB99@128.211.251.214) (Read error: Connection reset by peer) |
| 00:33:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 00:36:07 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 00:36:12 | → | ystael joins (~ystael@user/ystael) |
| 00:38:44 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) |
| 00:39:01 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) (Read error: Connection reset by peer) |
| 00:44:56 | × | sprotte24 quits (~sprotte24@p200300d16f1521002020c35b0109401f.dip0.t-ipconnect.de) (Quit: Leaving) |
| 00:44:59 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:45:57 | → | leif joins (~leif@210.54.33.112) |
| 00:46:47 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) |
| 00:49:40 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 01:00:31 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:01:28 | → | dpratt joins (~dpratt@165.225.220.148) |
| 01:05:25 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 01:08:32 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:08:48 | <dpratt> | I asked CoPilot how to parallelize `countLoopingPaths = length . filter hasLoop` and it offered `countLoopingPaths paths = length $ parMap rseq hasLoop paths` |
| 01:08:48 | <dpratt> | It compiles and runs and produces a result, but it isn't the correct/same result. What might explain this? |
| 01:12:08 | <probie> | That `parMap` is `map` and not `filter` |
| 01:12:26 | <dpratt> | I m dum |
| 01:12:34 | <dpratt> | thanks probie |
| 01:12:36 | × | alp quits (~alp@2001:861:8ca0:4940:b0c1:7414:d62f:3e1f) (Ping timeout: 246 seconds) |
| 01:12:55 | <monochrom> | "CoPilot" explains this. :) |
| 01:13:48 | <monochrom> | AI is as good as its training data. There are less Haskell training data than mainstream languages. |
| 01:13:55 | <glguy> | What might explain that the code compiles but is not correct? Easy, you asked an LLM |
| 01:14:26 | <probie> | You also probably want to chunk it instead of naively mapping across the whole thing |
| 01:16:11 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:16:32 | <dpratt> | probie oh, ok -- been a while since I've investigated parallel Haskell, but I thought it kinda handled that part, to a degree -- something like it creates a bunch of "green" threads and then schedules them |
| 01:17:07 | <probie> | e.g. `countLoopingPaths = sum . parMap (length . filter hasLoop) . chunk` where chunk is something like `chunk [] = []; chunk xs = let (y, ys) = splitAt 1024 xs in (y:chunk ys)` |
| 01:17:10 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 01:17:36 | <probie> | Haskell threads are cheap, but they're still not free |
| 01:18:59 | <dpratt> | probie ah very good, thanks! |
| 01:20:50 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 01:21:10 | × | acidjnk_new3 quits (~acidjnk@p200300d6e7283f42e8f4273a1ef84d34.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 01:21:19 | <probie> | you may also need to pass options to the Haskell runtime if you want to use multiple cores (`+RTS -N` if I remember correctly) |
| 01:22:42 | <monochrom> | parListChunk saves you from writing your own chunking :) |
| 01:22:45 | <dpratt> | yeah, I did remember that part |
| 01:23:53 | <monochrom> | OK I don't know how to make it perform parMap... |
| 01:24:07 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 01:31:34 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:32:10 | × | dpratt quits (~dpratt@165.225.220.148) (Ping timeout: 240 seconds) |
| 01:32:40 | → | dpratt joins (~dpratt@165.225.220.165) |
| 01:35:52 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 01:35:53 | → | hiecaq joins (~hiecaq@user/hiecaq) |
| 01:36:46 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) (Remote host closed the connection) |
| 01:36:54 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) |
| 01:37:34 | → | dpratt98 joins (~dpratt@165.225.220.148) |
| 01:37:48 | × | KicksonButt quits (~quassel@187.21.174.221) (Ping timeout: 246 seconds) |
| 01:39:32 | × | dpratt quits (~dpratt@165.225.220.165) (Quit: Client closed) |
| 01:46:58 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:53:50 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 01:56:52 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) (Remote host closed the connection) |
| 01:57:01 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) |
| 01:59:42 | × | sindu quits (~sindu@176.75.224.1) (Ping timeout: 252 seconds) |
| 02:01:10 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:05:00 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:06:08 | → | agent314 joins (~quassel@146.70.172.42) |
| 02:09:45 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 02:10:42 | × | agent314 quits (~quassel@146.70.172.42) (Ping timeout: 252 seconds) |
| 02:14:42 | × | dpratt98 quits (~dpratt@165.225.220.148) (Quit: Client closed) |
| 02:20:16 | × | j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 02:20:22 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:23:49 | → | j1n37 joins (~j1n37@user/j1n37) |
| 02:24:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 02:31:56 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 02:35:32 | <Leary> | SrPx: Though none are guaranteed to work, there are a few different approaches to turning a given monad into a monad transformer. tomsmeding showed you /right composition/; his `CollapseT m = Collapse . m`. There's also left composition: `CollapseT m = m . Collapse`; church interleaved: `CollapseT m a = forall r. (Int -> m r -> m r -> m r) -> (a -> m r) -> m r`; and adjunction intra-composition (e.g. `StateT`) which I doubt can be applied here. |
| 02:35:46 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:40:24 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 02:50:14 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds) |
| 02:51:09 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:52:07 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 02:56:12 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 02:56:26 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Quit: Lost terminal) |
| 03:01:12 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 03:05:24 | × | xff0x quits (~xff0x@2405:6580:b080:900:585d:f11d:d292:5d16) (Ping timeout: 260 seconds) |
| 03:07:24 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:11:56 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 03:13:50 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 03:15:33 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds) |
| 03:15:33 | ljdarj1 | is now known as ljdarj |
| 03:22:43 | × | OftenFaded quits (~OftenFade@user/tisktisk) (Quit: Client closed) |
| 03:22:47 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:27:16 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 03:32:41 | × | j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 03:38:19 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:39:20 | → | j1n37 joins (~j1n37@user/j1n37) |
| 03:42:44 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 03:53:43 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:57:06 | → | xff0x joins (~xff0x@2405:6580:b080:900:1b11:7569:896c:ad6b) |
| 03:58:37 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 04:00:20 | × | td_ quits (~td@i5387093D.versanet.de) (Ping timeout: 252 seconds) |
| 04:02:12 | → | td_ joins (~td@i5387093C.versanet.de) |
| 04:03:51 | → | korrykatti joins (~korrykatt@user/korrykatti) |
| 04:10:28 | → | KicksonButt joins (~quassel@187.21.174.221) |
| 04:13:13 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:14:15 | × | aforemny_ quits (~aforemny@2001:9e8:6ccb:4000:5e66:f8ae:2e96:5c20) (Ping timeout: 246 seconds) |
| 04:14:46 | → | aforemny joins (~aforemny@2001:9e8:6ceb:b900:debe:28a:1148:f211) |
| 04:17:32 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 04:18:33 | <SrPx> | Leary: ty |
| 04:28:36 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:29:22 | × | ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:ad4b:6165:bf6d:b915) (Ping timeout: 265 seconds) |
| 04:35:29 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 04:38:58 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:45:57 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 04:46:39 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:51:18 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 04:55:00 | <Leary> | Erm, flip left and right, I suppose. |
| 05:01:27 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 05:02:01 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:04:39 | × | myxos quits (~myxos@syn-065-028-251-121.res.spectrum.com) (Ping timeout: 265 seconds) |
| 05:06:29 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 05:17:24 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:20:10 | × | fmira quits (~user@user/fmira) (Remote host closed the connection) |
| 05:21:09 | → | fmira joins (~user@user/fmira) |
| 05:21:58 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) (Remote host closed the connection) |
| 05:22:06 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) |
| 05:22:12 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 05:29:53 | × | rekahsoft quits (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) (Ping timeout: 248 seconds) |
| 05:30:00 | → | Square2 joins (~Square4@user/square) |
| 05:32:47 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:36:36 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:6693:c25c:bda1:35d2) (Read error: Connection reset by peer) |
| 05:37:06 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 05:37:53 | × | KicksonButt quits (~quassel@187.21.174.221) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 05:44:48 | → | JeremyB99 joins (~JeremyB99@2607:fb90:2c60:8432:9516:653:bf9b:b50e) |
| 05:45:31 | × | JeremyB99 quits (~JeremyB99@2607:fb90:2c60:8432:9516:653:bf9b:b50e) (Read error: Connection reset by peer) |
| 05:48:18 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:53:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 05:59:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:02:15 | → | JeremyB99 joins (~JeremyB99@dhcp-251-184.resnet.purdue.edu) |
| 06:02:56 | → | billchenchina joins (~billchenc@2a0d:2580:ff0c:201:a5f2:fab8:efd2:829e) |
| 06:03:27 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 06:12:46 | × | JeremyB99 quits (~JeremyB99@dhcp-251-184.resnet.purdue.edu) (Read error: Connection reset by peer) |
| 06:14:26 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:19:11 | <iqubic> | What's the best way to write a function of type `Set [a] -> Set a`? I want to flatten this and throw out all duplicate elements. |
| 06:20:33 | <probie> | :t S.fromList . concat . S.toList |
| 06:20:34 | <lambdabot> | Ord a => S.Set [a] -> S.Set a |
| 06:20:57 | <Leary> | :t foldMap S.fromList |
| 06:20:58 | <lambdabot> | (Foldable t, Ord a) => t [a] -> S.Set a |
| 06:21:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 06:25:19 | × | korrykatti quits (~korrykatt@user/korrykatti) (Remote host closed the connection) |
| 06:26:30 | × | poscat quits (~poscat@user/poscat) (Ping timeout: 276 seconds) |
| 06:26:35 | → | poscat0x04 joins (~poscat@user/poscat) |
| 06:32:29 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:32:32 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 06:32:40 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Quit: leaving) |
| 06:33:28 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 06:36:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 06:43:36 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Quit: leaving) |
| 06:47:52 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:50:50 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 06:52:25 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 07:00:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:00:36 | × | JamesMowery43 quits (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Quit: Goodbye) |
| 07:00:52 | → | JamesMowery439 joins (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) |
| 07:01:22 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 07:03:38 | × | j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 07:04:21 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 07:07:07 | → | gentauro joins (~gentauro@user/gentauro) |
| 07:07:49 | → | j1n37 joins (~j1n37@user/j1n37) |
| 07:11:34 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 07:16:38 | → | b80697192 joins (~bogy997@user/b80697192) |
| 07:17:26 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:18:31 | ← | b80697192 parts (~bogy997@user/b80697192) () |
| 07:19:01 | → | JeremyB99 joins (~JeremyB99@2607:fb91:10e2:80be:4809:6d6c:1b60:e094) |
| 07:21:51 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 07:25:21 | × | JeremyB99 quits (~JeremyB99@2607:fb91:10e2:80be:4809:6d6c:1b60:e094) (Ping timeout: 246 seconds) |
| 07:26:16 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 07:32:49 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:38:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 07:38:16 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 07:46:17 | → | Guest56 joins (~Guest56@216.221.27.42) |
| 07:47:38 | <Guest56> | hello |
| 07:48:11 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:49:20 | × | Guest56 quits (~Guest56@216.221.27.42) (Client Quit) |
| 07:53:00 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:54:26 | → | img joins (~img@user/img) |
| 07:54:45 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 08:00:01 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 08:00:40 | → | caconym joins (~caconym@user/caconym) |
| 08:01:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 08:05:38 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 08:05:40 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Remote host closed the connection) |
| 08:05:47 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 08:17:18 | × | jrm quits (~jrm@user/jrm) (Quit: ciao) |
| 08:17:41 | → | jrm joins (~jrm@user/jrm) |
| 08:18:44 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 08:19:27 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Remote host closed the connection) |
| 08:19:34 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 08:23:13 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 08:34:06 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 08:34:19 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
| 08:36:47 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 08:38:18 | → | califax joins (~califax@user/califx) |
| 08:38:38 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 08:44:57 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Read error: Connection reset by peer) |
| 08:46:17 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:46:52 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 08:47:09 | → | acidjnk_new3 joins (~acidjnk@p200300d6e7283f31719852d6c421a6d2.dip0.t-ipconnect.de) |
| 08:48:53 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Read error: Connection reset by peer) |
| 08:49:30 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 08:51:42 | → | r-sta joins (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) |
| 08:51:55 | <r-sta> | can everyone just see what a great job chatGPT does at answering this question; |
| 08:51:56 | <r-sta> | https://chatgpt.com/share/67540c81-42d4-800b-a38a-e1d83a74f84c |
| 08:52:22 | <r-sta> | appart from missing two language pragmas, its perfect |
| 08:53:35 | × | r-sta quits (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Client Quit) |
| 08:53:57 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 09:01:25 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 09:02:01 | → | rvalue joins (~rvalue@user/rvalue) |
| 09:02:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 09:05:25 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 09:10:29 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 09:13:48 | → | cyanteeth joins (~textual@host86-171-156-10.range86-171.btcentralplus.com) |
| 09:13:48 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Read error: Connection reset by peer) |
| 09:17:46 | × | cyanteeth quits (~textual@host86-171-156-10.range86-171.btcentralplus.com) (Client Quit) |
| 09:18:20 | → | cyanteeth joins (~cyanteeth@host86-171-156-10.range86-171.btcentralplus.com) |
| 09:18:54 | × | cyanteeth quits (~cyanteeth@host86-171-156-10.range86-171.btcentralplus.com) (Client Quit) |
| 09:19:17 | → | cyanteeth joins (~cyanteeth@user/cyanteeth) |
| 09:21:23 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 09:23:42 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 09:25:45 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 09:26:42 | × | cyanteeth quits (~cyanteeth@user/cyanteeth) (Quit: cyanteeth) |
| 09:27:12 | → | cyanteeth joins (~cyanteeth@user/cyanteeth) |
| 09:27:54 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 09:30:50 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Read error: Connection reset by peer) |
| 09:36:56 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 09:41:02 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 09:41:29 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 09:42:09 | × | manwithluck quits (~manwithlu@194.177.28.193) (Ping timeout: 276 seconds) |
| 09:43:41 | → | manwithluck joins (manwithluc@gateway/vpn/protonvpn/manwithluck) |
| 09:47:48 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Read error: Connection reset by peer) |
| 09:52:18 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 09:54:42 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 09:56:28 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 09:57:03 | → | elnegro joins (elnegro@r186-54-138-151.dialup.adsl.anteldata.net.uy) |
| 10:01:57 | ← | elnegro parts (elnegro@r186-54-138-151.dialup.adsl.anteldata.net.uy) () |
| 10:03:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 10:07:24 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 10:09:15 | → | korrykatti joins (~korrykatt@user/korrykatti) |
| 10:13:51 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 10:14:07 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 10:15:49 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 10:21:11 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 10:24:02 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 10:25:06 | → | user_ joins (~user@user/fmira) |
| 10:25:07 | × | fmira quits (~user@user/fmira) (Remote host closed the connection) |
| 10:30:45 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 10:35:14 | × | Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds) |
| 10:37:56 | × | hiecaq quits (~hiecaq@user/hiecaq) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.92)) |
| 10:41:12 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 10:41:53 | → | __monty__ joins (~toonn@user/toonn) |
| 10:42:05 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 10:42:06 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Read error: Connection reset by peer) |
| 10:43:12 | → | hiecaq joins (~hiecaq@user/hiecaq) |
| 10:47:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 10:47:36 | <haskellbridge> | <hellwolf> but you missed the learning opportunity of knowing things in GHC.TypeLits: https://hackage.haskell.org/package/base-4.20.0.1/docs/GHC-TypeLits.html#t:-60--61--63- |
| 10:48:22 | haskellbridge | hellwolf rant begin |
| 10:48:46 | haskellbridge | hellwolf would like to tell people don't learn using chatgpt. |
| 10:49:08 | <haskellbridge> | <hellwolf> But people stop listening to whom are older than you, and may even insult you as boomers. |
| 10:49:44 | <haskellbridge> | <hellwolf> Instead, people listen to young influences who got their followers first before learned great deal things. |
| 10:49:47 | haskellbridge | hellwolf rant end |
| 10:55:16 | → | sprotte24 joins (~sprotte24@p200300d16f1cbf00782b7bfd2f15122a.dip0.t-ipconnect.de) |
| 10:57:29 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 11:02:18 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 11:04:08 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 11:06:33 | × | aforemny quits (~aforemny@2001:9e8:6ceb:b900:debe:28a:1148:f211) (Ping timeout: 246 seconds) |
| 11:09:15 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 11:21:34 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 11:21:41 | × | cyanteeth quits (~cyanteeth@user/cyanteeth) (Quit: cyanteeth) |
| 11:25:51 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 11:29:11 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 11:36:59 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 11:41:42 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 11:43:03 | × | hiecaq quits (~hiecaq@user/hiecaq) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.92)) |
| 11:46:32 | → | hiecaq joins (~hiecaq@user/hiecaq) |
| 11:48:20 | × | hiecaq quits (~hiecaq@user/hiecaq) (Client Quit) |
| 11:52:22 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 11:52:39 | → | hiecaq joins (~hiecaq@user/hiecaq) |
| 11:53:19 | × | MironZ3 quits (~MironZ@nat-infra.ehlab.uk) (Ping timeout: 245 seconds) |
| 11:53:32 | → | cyanteeth joins (~cyanteeth@user/cyanteeth) |
| 11:57:21 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 12:00:09 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 12:02:33 | → | caconym joins (~caconym@user/caconym) |
| 12:05:02 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 12:05:14 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 12:07:00 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 12:11:40 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 12:13:24 | × | poscat0x04 quits (~poscat@user/poscat) (Ping timeout: 246 seconds) |
| 12:14:00 | → | poscat joins (~poscat@user/poscat) |
| 12:23:06 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 12:27:44 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 12:38:29 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 12:40:26 | <lxsameer> | given the following type https://dpaste.com/3S59RYR4D is it possible to extract the first `ann` without matching against all the constructors using pattern matching? |
| 12:41:44 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 12:41:46 | <ncf> | no. you're looking for Cofree https://hackage.haskell.org/package/free-5.2/docs/Control-Comonad-Cofree.html#t:Cofree |
| 12:41:46 | × | cyanteeth quits (~cyanteeth@user/cyanteeth) (Quit: cyanteeth) |
| 12:42:26 | <lxsameer> | cheers |
| 12:42:27 | → | Square joins (~Square@user/square) |
| 12:42:50 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 12:43:38 | → | kadobanana joins (~mud@user/kadoban) |
| 12:44:18 | × | mud quits (~mud@user/kadoban) (Ping timeout: 252 seconds) |
| 12:46:53 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:50:52 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:51:29 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Read error: Connection reset by peer) |
| 12:53:51 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 12:58:50 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 13:06:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 13:10:13 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 13:11:17 | → | dalem joins (~dalem@user/dalem) |
| 13:11:31 | × | JamesMowery439 quits (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Quit: Ping timeout (120 seconds)) |
| 13:12:52 | × | kadobanana quits (~mud@user/kadoban) (Remote host closed the connection) |
| 13:13:00 | → | JamesMowery439 joins (~JamesMowe@68.228.212.232) |
| 13:13:39 | → | kadobanana joins (~mud@user/kadoban) |
| 13:13:58 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 13:17:06 | × | Brett78 quits (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) (Quit: Client closed) |
| 13:18:16 | → | cyanteeth joins (~cyanteeth@user/cyanteeth) |
| 13:21:25 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 13:22:59 | → | alexherbo2 joins (~alexherbo@2a02-8440-3311-f67f-9420-9c07-8c62-44f9.rev.sfr.net) |
| 13:22:59 | × | MyNetAz quits (~MyNetAz@user/MyNetAz) (Read error: Connection reset by peer) |
| 13:25:44 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 13:26:32 | × | hiecaq quits (~hiecaq@user/hiecaq) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.92)) |
| 13:27:34 | × | dalem quits (~dalem@user/dalem) (Ping timeout: 252 seconds) |
| 13:30:00 | → | MyNetAz joins (~MyNetAz@user/MyNetAz) |
| 13:34:03 | → | hiecaq joins (~hiecaq@user/hiecaq) |
| 13:36:49 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 13:41:08 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 13:46:13 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 13:52:22 | → | harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) |
| 13:53:59 | × | cyanteeth quits (~cyanteeth@user/cyanteeth) (Read error: Connection reset by peer) |
| 13:54:47 | → | pavonia joins (~user@user/siracusa) |
| 13:55:14 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 14:05:53 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 14:07:39 | → | MironZ3 joins (~MironZ@nat-infra.ehlab.uk) |
| 14:10:25 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 14:15:24 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 14:17:06 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 276 seconds) |
| 14:17:43 | × | tnt1 quits (~Thunderbi@user/tnt1) (Remote host closed the connection) |
| 14:18:29 | → | gdr3941 joins (~user@172-3-47-206.lightspeed.nsvltn.sbcglobal.net) |
| 14:20:13 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 14:21:15 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 14:25:39 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 14:25:57 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 14:29:20 | × | hellwolf quits (~user@b8a6-130a-d7ff-64a1-0f00-4d40-07d0-2001.sta.estpak.ee) (Remote host closed the connection) |
| 14:31:11 | → | hellwolf joins (~user@aff6-e8e3-4734-8eb1-0f00-4d40-07d0-2001.sta.estpak.ee) |
| 14:45:36 | × | harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving) |
| 14:51:55 | × | billchenchina quits (~billchenc@2a0d:2580:ff0c:201:a5f2:fab8:efd2:829e) (Remote host closed the connection) |
| 14:52:00 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 14:54:05 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 14:57:02 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 15:06:48 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 15:07:54 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 15:09:47 | × | JamesMowery439 quits (~JamesMowe@68.228.212.232) (Quit: Ping timeout (120 seconds)) |
| 15:10:32 | × | tabemann_ quits (~tabemann@2600:1700:7990:24e0:39a4:2ebe:705f:fb9f) (Remote host closed the connection) |
| 15:11:08 | → | JamesMowery439 joins (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) |
| 15:11:09 | × | kadobanana quits (~mud@user/kadoban) (Remote host closed the connection) |
| 15:11:40 | → | kadobanana joins (~mud@user/kadoban) |
| 15:12:40 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 15:13:18 | → | euphores joins (~SASL_euph@user/euphores) |
| 15:13:34 | → | tabemann_ joins (~tabemann@2600:1700:7990:24e0:39a4:2ebe:705f:fb9f) |
| 15:20:37 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 15:23:17 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 15:28:21 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 15:30:29 | → | nucleus joins (~grigory@77-174-131-220.fixed.kpn.net) |
| 15:34:53 | × | nucleus quits (~grigory@77-174-131-220.fixed.kpn.net) (Ping timeout: 244 seconds) |
| 15:39:16 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 15:41:17 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 15:43:40 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 15:54:49 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 15:58:44 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 15:59:03 | → | sindu joins (~sindu@176.75.224.1) |
| 15:59:09 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 15:59:22 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 16:01:01 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:01:19 | × | gdr3941 quits (~user@172-3-47-206.lightspeed.nsvltn.sbcglobal.net) (Ping timeout: 252 seconds) |
| 16:02:40 | × | hiecaq quits (~hiecaq@user/hiecaq) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.92)) |
| 16:06:50 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 16:07:34 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) |
| 16:11:44 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 16:12:19 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:a86d:3c1:f7f7:70ae) (Ping timeout: 260 seconds) |
| 16:12:26 | → | JeremyB99 joins (~JeremyB99@2607:fb90:a2d9:cae4:701f:856a:de0b:1e2d) |
| 16:22:13 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 16:22:27 | → | cyanteeth joins (~cyanteeth@user/cyanteeth) |
| 16:22:44 | × | JeremyB99 quits (~JeremyB99@2607:fb90:a2d9:cae4:701f:856a:de0b:1e2d) (Remote host closed the connection) |
| 16:22:51 | → | JeremyB99 joins (~JeremyB99@2607:fb90:a2d9:cae4:701f:856a:de0b:1e2d) |
| 16:27:29 | × | korrykatti quits (~korrykatt@user/korrykatti) (Remote host closed the connection) |
| 16:30:59 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 16:41:47 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 16:42:03 | × | Xe quits (~Xe@perl/impostor/xe) (Ping timeout: 276 seconds) |
| 16:43:52 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:44:03 | × | JeremyB99 quits (~JeremyB99@2607:fb90:a2d9:cae4:701f:856a:de0b:1e2d) (Read error: Connection reset by peer) |
| 16:44:33 | → | Xe joins (~Xe@perl/impostor/xe) |
| 16:45:08 | → | JeremyB99 joins (~JeremyB99@2607:fb90:a2d9:cae4:701f:856a:de0b:1e2d) |
| 16:48:21 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 16:48:21 | × | youthlic quits (~Thunderbi@user/youthlic) (Remote host closed the connection) |
| 16:48:47 | → | youthlic joins (~Thunderbi@user/youthlic) |
| 16:49:55 | → | gdr3941 joins (~user@172-3-47-206.lightspeed.nsvltn.sbcglobal.net) |
| 16:50:14 | × | JeremyB99 quits (~JeremyB99@2607:fb90:a2d9:cae4:701f:856a:de0b:1e2d) (Ping timeout: 260 seconds) |
| 16:51:11 | × | gdr3941 quits (~user@172-3-47-206.lightspeed.nsvltn.sbcglobal.net) (Client Quit) |
| 16:54:18 | → | JeremyB99 joins (~JeremyB99@128.211.254.190) |
| 16:54:51 | × | JeremyB99 quits (~JeremyB99@128.211.254.190) (Read error: Connection reset by peer) |
| 16:56:53 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 17:01:41 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 17:04:49 | → | JeremyB99 joins (~JeremyB99@128.211.254.190) |
| 17:05:06 | × | JeremyB99 quits (~JeremyB99@128.211.254.190) (Read error: Connection reset by peer) |
| 17:05:54 | × | cyanteeth quits (~cyanteeth@user/cyanteeth) (Quit: cyanteeth) |
| 17:12:51 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 17:15:45 | × | alexherbo2 quits (~alexherbo@2a02-8440-3311-f67f-9420-9c07-8c62-44f9.rev.sfr.net) (Remote host closed the connection) |
| 17:17:11 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 17:19:57 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d572:8348:7cad:f12a) |
| 17:27:33 | → | harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) |
| 17:27:39 | → | dpratt joins (~dpratt@165.225.220.148) |
| 17:28:13 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 17:33:14 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 17:36:02 | <dpratt> | I went looking for other examples to compare my AoC 2024 solutions with and came across this https://github.com/Lorin-Lange/advent-of-code/blob/2efd0ae149310e46503f1a0326454d18d2203e08/AoC_2024/AoC_2024_05/Main.hs#L28C1-L28C72 |
| 17:36:03 | <dpratt> | My own solution involved creating a Graph and doing a reverse topological sort (which I guess is essentially a depth-first search). I was kinda surprised the above works (I assume). Perhaps there's not much to say about this, but any insight is appreciated. Is the `order` function here fully equivalent to a reverse topological sort? |
| 17:37:46 | <int-e> | dpratt: it turns out that the inputs are designed such that for lists that are not topologically ordered, the implied order is total |
| 17:39:22 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 17:40:08 | <int-e> | so `sortBy` works even though it does not implement a general topological sort. |
| 17:40:27 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d572:8348:7cad:f12a) (Remote host closed the connection) |
| 17:40:35 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d572:8348:7cad:f12a) |
| 17:41:50 | <dpratt> | int-e not totally sure what your first comment means, but I think I get the gist of what you're saying -- I think I recall that total orders are such that every element is definitely GT or LT every other element? |
| 17:43:48 | × | sindu quits (~sindu@176.75.224.1) (Ping timeout: 276 seconds) |
| 17:44:17 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 17:44:43 | <int-e> | > sortBy (\x y -> if (x,y) `elem` [(1,2)] then LT else GT) [1,3,2] -- output is *not* topologically ordered according to 1 <= 2 |
| 17:44:45 | <lambdabot> | [2,3,1] |
| 17:45:45 | <dpratt> | int-e ah, perfect, thanks for elaborating with an example |
| 17:46:00 | <int-e> | dpratt: If you take your input, and consider any of the lists that violate the given partial order, then you can check that all pairs in that list have their order given (so for all a != b in xs, either a|b or b|a is listed) |
| 17:46:41 | <dpratt> | int-e makes sense, thanks! |
| 17:47:51 | <dpratt> | seems kinda clever that this guy noticed that and took advantage -- or maybe this is obvious from a certain perspective, I don't know |
| 17:48:47 | <int-e> | Or they did it by accident and saw that it worked (I did; I even deluded myself into believing it would be a correct topological sort until I had second thought) |
| 17:48:51 | <int-e> | *thoughts |
| 17:49:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 17:49:06 | <dpratt> | that would be funny, if so :D |
| 17:51:18 | <int-e> | dpratt: it worked for the example, therefore it must be correct?! |
| 17:52:06 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:53:53 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Remote host closed the connection) |
| 17:56:39 | × | zenmov quits (~zenmov@user/zenmov) (Ping timeout: 245 seconds) |
| 17:59:16 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d572:8348:7cad:f12a) (Remote host closed the connection) |
| 17:59:20 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 17:59:23 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d572:8348:7cad:f12a) |
| 17:59:39 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:01:50 | → | zenmov joins (~zenmov@user/zenmov) |
| 18:02:57 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 248 seconds) |
| 18:05:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 18:06:47 | → | billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
| 18:08:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:09:36 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:09:53 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds) |
| 18:09:54 | × | harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving) |
| 18:10:24 | × | Square quits (~Square@user/square) (Ping timeout: 244 seconds) |
| 18:10:56 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:16:19 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:16:23 | → | weary-traveler joins (~user@user/user363627) |
| 18:20:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 18:21:02 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d572:8348:7cad:f12a) (Remote host closed the connection) |
| 18:21:10 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:d572:8348:7cad:f12a) |
| 18:25:09 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 18:25:42 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 18:29:34 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:d572:8348:7cad:f12a) (Ping timeout: 245 seconds) |
| 18:29:44 | → | JeremyB99 joins (~JeremyB99@2607:fb91:22c2:dbd:885f:e90:cb0c:363e) |
| 18:31:41 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:32:25 | × | JeremyB99 quits (~JeremyB99@2607:fb91:22c2:dbd:885f:e90:cb0c:363e) (Remote host closed the connection) |
| 18:32:33 | → | JeremyB99 joins (~JeremyB99@2607:fb91:22c2:dbd:885f:e90:cb0c:363e) |
| 18:32:33 | <glguy> | It's AoC, it only has to work for your input.. some problems didn't even allow for a general solution |
| 18:36:05 | <int-e> | I never figured out whether https://adventofcode.com/2023/day/20 (part 2) was decidable. |
| 18:36:29 | <int-e> | (probably not but I don't have a proof) |
| 18:36:35 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 18:37:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 18:39:04 | <int-e> | I did figure out that part 2 of https://adventofcode.com/2023/day/8 was NP-hard in general. |
| 18:39:13 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds) |
| 18:39:54 | <int-e> | (and solvable in a polynomial number of NP queries) |
| 18:42:23 | → | piele joins (~piele@tbonesteak.creativeserver.net) |
| 18:42:41 | × | JeremyB99 quits (~JeremyB99@2607:fb91:22c2:dbd:885f:e90:cb0c:363e) (Remote host closed the connection) |
| 18:42:49 | → | JeremyB99 joins (~JeremyB99@2607:fb91:22c2:dbd:885f:e90:cb0c:363e) |
| 18:47:59 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:52:44 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 18:54:58 | monochrom | creates exam question: Give an algorithm that inputs a lambda term and determines whether the input has a normal form. You may assume that the input is typeable in System F. >:) |
| 18:55:37 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 18:56:05 | × | JeremyB99 quits (~JeremyB99@2607:fb91:22c2:dbd:885f:e90:cb0c:363e) (Ping timeout: 252 seconds) |
| 18:56:31 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:c63:e307:a5c4:e64) |
| 18:57:51 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:58:16 | → | korrykatti joins (~korrykatt@user/korrykatti) |
| 19:02:16 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 19:06:58 | → | cyanteeth joins (~cyanteeth@user/cyanteeth) |
| 19:11:35 | × | cyanteeth quits (~cyanteeth@user/cyanteeth) (Client Quit) |
| 19:12:21 | → | cyanteeth joins (~cyanteeth@user/cyanteeth) |
| 19:13:16 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:15:29 | <int-e> | monochrom: There's a Statman paper "On The Lambda Y Calculus" that shows that having a normal form is decidable in the simply typed lambda calculus with Y : (a -> a) -> a added as a primitive. |
| 19:16:35 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 19:16:49 | <int-e> | (technically Y_a for any conceivable a) |
| 19:17:34 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 19:28:37 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:28:59 | <glguy> | I cleaned up and documented my AoC solution from last night. I think I've run out of things to fiddle with https://github.com/glguy/advent/blob/main/solutions/src/2024/07.hs |
| 19:29:34 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 19:30:49 | <int-e> | hmm... no read (show x ++ show y) |
| 19:31:14 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 19:31:38 | <int-e> | ah I see why, never mind |
| 19:33:08 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 19:34:09 | <int-e> | (though I still used `show` shenanigans when I implemented a backwards search) |
| 19:34:20 | <glguy> | If you look in my git history, I did that too |
| 19:34:52 | <glguy> | I was in a rush and wanted to be done for the night :) |
| 19:35:06 | × | hellwolf quits (~user@aff6-e8e3-4734-8eb1-0f00-4d40-07d0-2001.sta.estpak.ee) (Ping timeout: 246 seconds) |
| 19:35:44 | → | euphores joins (~SASL_euph@user/euphores) |
| 19:36:40 | <int-e> | <3 time zones (tasks release at 6am here) |
| 19:37:52 | <glguy> | I concider myself pretty fortunate that they come out at 9PM for me |
| 19:38:21 | × | korrykatti quits (~korrykatt@user/korrykatti) (Remote host closed the connection) |
| 19:38:23 | <int-e> | that would be a good time indeed :) |
| 19:39:34 | <glguy> | Except that that was my home-game D&D start time last month, so it's kind of cramping my style this month :) |
| 19:39:50 | <int-e> | ah you did not optimize the day 6 task |
| 19:40:14 | <glguy> | Like caching next turn? |
| 19:40:24 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
| 19:40:43 | <int-e> | jumping straight to the next obstacle |
| 19:40:52 | <int-e> | for part 2 |
| 19:41:37 | <int-e> | https://paste.tomsmeding.com/S5vVsZHH |
| 19:41:53 | → | hellwolf joins (~user@fd1b-fea4-59a9-4346-0f00-4d40-07d0-2001.sta.estpak.ee) |
| 19:42:00 | <glguy> | I thought about that but then I thought I'd need to duplicate the 'walk' definition, or make distance calculations more fiddly in part 1 |
| 19:42:12 | <int-e> | (some egregious copy&paste but the up/down/left/right distinction is awkward with this data) |
| 19:42:28 | <int-e> | it's just a 100x speedup anyway ;-) |
| 19:43:17 | <int-e> | oh there's a bug. luckily the input is square... |
| 19:43:37 | <glguy> | what's the runtime on your computer then? |
| 19:43:55 | <int-e> | I measured 0.067s. It's essentially noise. |
| 19:44:00 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:44:34 | <int-e> | compared to ~7s for my initial solution that basically had two copies of the simpler `go`, one collecting (x,y,dx,dy) tuples in a set for loop detection. |
| 19:44:43 | <glguy> | Oh, since you represented your board as a sparse map of walls you can find the next wall more easily |
| 19:44:46 | <glguy> | while I have to search the array |
| 19:44:55 | <glguy> | My array search runs in ~300ms locally |
| 19:46:23 | <int-e> | I guess that would be fast enough that I wouldn't bother with optimizaing further either |
| 19:48:03 | <int-e> | using tortoise and hare for this is cute |
| 19:49:53 | → | Everything joins (~Everythin@46.211.214.172) |
| 19:50:38 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 19:52:52 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds) |
| 19:56:48 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 19:58:54 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:00:01 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 20:00:39 | → | caconym joins (~caconym@user/caconym) |
| 20:01:16 | → | ystael joins (~ystael@user/ystael) |
| 20:03:18 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 20:06:30 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds) |
| 20:14:16 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:18:57 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 20:24:53 | <haskellbridge> | <Bowuigi> monochrom every lambda expression typeable in System F has a normal form, so just saying "yes" in every case is enough. Is that what you mean? |
| 20:29:39 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:30:20 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds) |
| 20:33:20 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:34:02 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 20:35:49 | <ncf> | now prove that the algorithm is correct (draw the rest of the owl) |
| 20:36:50 | × | sam113101 quits (~sam@modemcable220.199-203-24.mc.videotron.ca) (Quit: WeeChat 4.4.2) |
| 20:41:53 | <monochrom> | yes |
| 20:43:58 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:45:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:45:56 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:c63:e307:a5c4:e64) (Read error: Connection reset by peer) |
| 20:46:01 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 20:46:25 | <haskellbridge> | <Bowuigi> ncf lmao progress+preservation time |
| 20:47:25 | <ncf> | artin gluing time |
| 20:49:11 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:c63:e307:a5c4:e64) |
| 20:49:32 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 20:51:01 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:c63:e307:a5c4:e64) (Read error: Connection reset by peer) |
| 20:53:21 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 20:56:18 | → | JeremyB99 joins (~JeremyB99@2607:fb90:a2c9:459b:acde:8702:d05d:57a0) |
| 20:56:18 | × | JeremyB99 quits (~JeremyB99@2607:fb90:a2c9:459b:acde:8702:d05d:57a0) (Read error: Connection reset by peer) |
| 20:57:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:58:59 | × | CrunchyFlakes quits (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 20:59:52 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:01:44 | → | CrunchyFlakes joins (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) |
| 21:04:56 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 21:06:19 | → | JeremyB99 joins (~JeremyB99@dhcp-248-112.resnet.purdue.edu) |
| 21:08:00 | × | JeremyB99 quits (~JeremyB99@dhcp-248-112.resnet.purdue.edu) (Read error: Connection reset by peer) |
| 21:09:06 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:10:48 | × | cyanteeth quits (~cyanteeth@user/cyanteeth) (Quit: cyanteeth) |
| 21:12:54 | → | cyanteeth joins (~cyanteeth@user/cyanteeth) |
| 21:15:15 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:21:33 | → | JeremyB99 joins (~JeremyB99@2607:fb91:bca:20c4:20a4:f74e:f40a:90f0) |
| 21:21:59 | × | JeremyB99 quits (~JeremyB99@2607:fb91:bca:20c4:20a4:f74e:f40a:90f0) (Read error: Connection reset by peer) |
| 21:22:05 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 21:24:43 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:27:46 | × | leif quits (~leif@210.54.33.112) (Read error: Connection reset by peer) |
| 21:31:16 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 21:31:28 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 21:33:18 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:37:06 | → | rekahsoft joins (~rekahsoft@76.69.85.220) |
| 21:37:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 21:41:21 | → | sonolin joins (~michael@user/sonolin) |
| 21:44:13 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:45:43 | → | korrykatti joins (~korrykatt@user/korrykatti) |
| 21:52:42 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:52:51 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:52:59 | × | sonolin quits (~michael@user/sonolin) (Ping timeout: 260 seconds) |
| 21:54:41 | → | sonolin joins (~michael@user/sonolin) |
| 21:54:44 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:55:13 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) |
| 21:55:22 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) (Read error: Connection reset by peer) |
| 21:59:09 | × | korrykatti quits (~korrykatt@user/korrykatti) (Remote host closed the connection) |
| 22:00:27 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) |
| 22:01:07 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) (Read error: Connection reset by peer) |
| 22:03:36 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:03:48 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 22:04:48 | → | rstromlund joins (~user@user/rstromlund) |
| 22:05:29 | × | sonolin quits (~michael@user/sonolin) (Ping timeout: 244 seconds) |
| 22:07:46 | → | sonolin joins (~michael@user/sonolin) |
| 22:09:10 | → | r-sta joins (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) |
| 22:09:24 | <r-sta> | how difficult would it be to make something like a class that could go in a where block with its instances? |
| 22:09:34 | <r-sta> | like where you define the class and the instances together |
| 22:10:00 | <r-sta> | im always having to define at top level, classes and instances, eg when working with type level nats |
| 22:10:53 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 22:11:06 | <geekosaur> | Haskell's type system becomes unsound if local classes/instances are permitted |
| 22:11:37 | <r-sta> | hmm |
| 22:11:48 | <r-sta> | i think this is incorrect |
| 22:12:01 | <r-sta> | i have worked very successfully with local instances using the reification techniqu |
| 22:12:04 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:12:08 | <int-e> | you could attach them to local (data) types |
| 22:12:16 | <r-sta> | what makes you suggest this be the case? |
| 22:12:22 | <r-sta> | ine-e: howd you mean? |
| 22:12:28 | <geekosaur> | just for an example: Data.Set and Data.Map depend on Ord instances, because they use trees internally. What happens if you can substitute a different Ord instance locally? |
| 22:12:48 | <r-sta> | you can |
| 22:12:56 | <r-sta> | !? |
| 22:13:00 | <int-e> | also yeah, technically it's not the type system that breaks; it's invariants in data types (which in cases like Typeable may eventually break the type system) |
| 22:13:01 | <geekosaur> | (SML/NJ does have a way to protect against this, but it does so by not using a typeclass-like mechanism) |
| 22:13:31 | <r-sta> | im not sure whats happening |
| 22:13:34 | <r-sta> | what am i reading here |
| 22:13:41 | <r-sta> | did you misunderstand the question? |
| 22:13:44 | <r-sta> | im confused |
| 22:13:57 | <r-sta> | is this like actually some theoretic reality im not understanding? |
| 22:14:01 | <geekosaur> | it sounds like you want local typeclasses and instances |
| 22:14:15 | <r-sta> | i want a syntax like a class, but that i can use in a where block |
| 22:14:15 | <geekosaur> | were explaining why that is a problem |
| 22:14:20 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:15:00 | <r-sta> | look here |
| 22:15:00 | <r-sta> | https://pastebin.com/raw/9tdzCiSS |
| 22:15:15 | <r-sta> | search "!!!" |
| 22:18:40 | <r-sta> | loop of "boundedCounter" has a loop function that sits nicely in a where block, but to make the corresponding boundedCounterT has this escape to top level |
| 22:18:55 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 22:19:01 | <r-sta> | as a class |
| 22:19:16 | <r-sta> | and. despite there only being 2 instances, the instances are also at top level |
| 22:19:23 | <r-sta> | kind of like an open vs closed data family |
| 22:19:42 | <int-e> | Anyway. Basically nobody has done this, and if you aren't careful with what kind of local instances you allow, you can easily get incoherent instances which is something that the type system currently tries to prevent. |
| 22:19:51 | <r-sta> | im arguing for something like closed class syntax, where the instances are given with the declaration of the type signature |
| 22:20:06 | <r-sta> | int-e: reflection isnt even the issue here |
| 22:20:12 | <r-sta> | reification* |
| 22:20:29 | <r-sta> | its like, how would this different class syntax look? |
| 22:20:36 | <r-sta> | where do the types go |
| 22:20:58 | <r-sta> | im sure its well founded, if for no reason other than the fact that the code blocks should "look" the same |
| 22:21:09 | <int-e> | meh, `where` and `let` blocks have bindings, they could have declarations too without too much trouble? |
| 22:21:17 | <int-e> | syntactically speaking |
| 22:21:19 | <geekosaur> | I think too much of the typeclass machinery is currently bound up in the assumption that (a) they're global (b) they're open |
| 22:21:55 | <r-sta> | int-e: sure. i mean, like, they have eg ScopedTypeVariables or not, for how local scope handles type inference |
| 22:21:59 | <geekosaur> | (as to local declarations, local `data` is a commonly reqyuested extension that doesn't seem to be problematic, just hasn't been done yet) |
| 22:22:10 | <r-sta> | geekousaur: +1 |
| 22:22:16 | <int-e> | r-sta: as I said, nobody has done that |
| 22:22:48 | <r-sta> | local datatypes... |
| 22:22:50 | <r-sta> | jmm |
| 22:22:52 | <r-sta> | hmm* |
| 22:23:22 | <geekosaur> | I think someone would need to do a lot of work to prove that closed typeclasses wouldn't cause problems, since the open world assumption is baked deeply into Haskell's type system |
| 22:23:24 | <int-e> | Clearly there are a lot of questions to answer and problems to solve if you go down that path and in the meantime, the global types, classes, and instances story is fairly well figured out and useful enough for most people. |
| 22:23:37 | <r-sta> | er. well ok, there are 2 issues and i guess i kind of want maybe to consider the closed class situation rather than the local business |
| 22:24:02 | <r-sta> | re open world. isnt there something like a case checker? |
| 22:24:17 | <r-sta> | like, you can essentially have it prove all the options are given |
| 22:24:18 | <int-e> | Plus people who really want to inject type class instances have figured out how to do that with clever coercions. |
| 22:24:34 | <r-sta> | like '[] vs (x':xs) and it would be like, yes thats total |
| 22:25:18 | <r-sta> | int-e: i cant even remember what i was using local instances *for* all those years ago |
| 22:25:49 | <geekosaur> | also I think pretty much anything you could do with a closed typeclass you can do with a closed type family? |
| 22:27:10 | <r-sta> | this is the answer i was hoping for. i hope |
| 22:27:26 | <r-sta> | like some way of using existing syntax |
| 22:27:39 | <r-sta> | wait, no you cant use a closed type family its a value level function! |
| 22:27:42 | <geekosaur> | (hang a where clause off the type family header and put the instances in it) |
| 22:28:29 | <r-sta> | its like, idk, this thing im doing now basically has singleton nats |
| 22:28:38 | <r-sta> | its just doing [1..n] |
| 22:28:55 | <r-sta> | but like, its insane how clunky the code ends up being |
| 22:29:23 | <r-sta> | im used to being able to do eg, definitions that are exactly the same at value and type level |
| 22:29:30 | <r-sta> | the type family looks just like the function |
| 22:29:34 | <r-sta> | idk, for (+) or something |
| 22:29:42 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:29:49 | <r-sta> | but with the singletons thing, its like, it needs the corresponding value level stuff aswell |
| 22:30:16 | <r-sta> | and you have to use a proper class, since nothing else can match on the types to direct the recursive self call |
| 22:30:22 | <r-sta> | while also doing the value level functions |
| 22:30:46 | <r-sta> | ... |
| 22:31:16 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 22:31:23 | <r-sta> | and as for closed world. at term level, it would be like, you cannot have definitions being broken up by different definitions |
| 22:32:06 | <r-sta> | i cant just (in this case where a closed world exists) give another pattern match case for the term level loop function, somewhere else in the code (really this is because its confined to local scope) |
| 22:32:17 | <r-sta> | its like, we use local scoping to *do* a closed world style thing |
| 22:32:25 | <r-sta> | i challenge this "open world" idea |
| 22:33:03 | <r-sta> | classes are not "open" |
| 22:33:20 | <r-sta> | i cant just extend them with extra definitions, i have to use superclass inheritance by providing a constraint |
| 22:33:33 | <r-sta> | (there is a where in the class syntax) |
| 22:33:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 22:33:59 | <r-sta> | so whats the issue about also specifying which types are given instances |
| 22:34:06 | × | user_ quits (~user@user/fmira) (Quit: user_) |
| 22:34:20 | <r-sta> | if you put the only allowed instances in the same block, then you "close" the instances thing. |
| 22:34:32 | <r-sta> | or, i guess, you could do this just by allowing them in where blocks] |
| 22:34:53 | <r-sta> | but i didnt like the sound of Typable unpredictability breaking the compiler or something |
| 22:35:09 | <r-sta> | so if there is a good reason not to have the local version, in the restricted scope |
| 22:35:20 | <r-sta> | (a lot of haskell is confined to top level) |
| 22:35:29 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:35:34 | <r-sta> | then the closed version should still be an option |
| 22:35:51 | → | user_ joins (~user@user/fmira) |
| 22:36:03 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:37:20 | × | user_ quits (~user@user/fmira) (Remote host closed the connection) |
| 22:38:07 | → | user_ joins (~user@user/fmira) |
| 22:38:37 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish) |
| 22:39:00 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 22:39:17 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 265 seconds) |
| 22:42:59 | × | r-sta quits (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Quit: Client closed) |
| 22:45:05 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:45:41 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:46:12 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:49:55 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 22:50:38 | → | alp joins (~alp@2001:861:8ca0:4940:cf08:e593:5c4c:fc77) |
| 22:53:08 | × | user_ quits (~user@user/fmira) (Remote host closed the connection) |
| 22:55:52 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:55:55 | → | user_ joins (~user@user/fmira) |
| 22:56:01 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) |
| 22:56:23 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:56:36 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
| 22:56:46 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) (Read error: Connection reset by peer) |
| 22:58:02 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:59:55 | × | user_ quits (~user@user/fmira) (Client Quit) |
| 22:59:56 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 23:00:05 | → | user_ joins (~user@user/fmira) |
| 23:00:05 | × | user_ quits (~user@user/fmira) (Client Quit) |
| 23:00:19 | → | fmira joins (~user@user/fmira) |
| 23:00:28 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:01:49 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) |
| 23:01:51 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) (Read error: Connection reset by peer) |
| 23:05:04 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 23:06:38 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:12:16 | → | JeremyB99 joins (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) |
| 23:13:07 | × | JeremyB99 quits (~JeremyB99@2607:ac80:407:7:dd7b:1771:b0aa:68cf) (Read error: Connection reset by peer) |
| 23:16:01 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:16:31 | × | dpratt quits (~dpratt@165.225.220.148) (Quit: Client closed) |
| 23:21:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 23:29:21 | × | rstromlund quits (~user@user/rstromlund) (Ping timeout: 248 seconds) |
| 23:31:17 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 23:31:24 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:31:27 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:35:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 23:41:22 | → | dpratt joins (~dpratt@165.225.220.148) |
| 23:44:06 | <dpratt> | I was looking over some of the AoC solutions from glguy and got to wondering what this format quasi-quoter secret sauce was. Turns out there's a lot of sauce. |
| 23:44:06 | <dpratt> | Anyway, what's this construction here with the `<-` in the pattern guard? https://github.com/glguy/advent/blob/main/common/src/Advent/Format.hs#L102. I think I can guess what's going on, but I wanted to understand it better. |
| 23:46:48 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:48:19 | <monochrom> | It's just the syntax of pattern guard. "if splitLeader x matches Just (yd, str')". |
| 23:50:03 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 23:50:53 | <dpratt> | monochrom oh I'm just used to seeing a simple boolean expression there |
| 23:51:12 | <dpratt> | but yeah, I see that's a thing now |
| 23:51:12 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 264 seconds) |
| 23:51:34 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 23:53:35 | <dpratt> | yeah, my AoC solutions are...what can we say? uh...charming, compared to those of glguy -- kind of like a kids drawing |
| 23:55:18 | <dpratt> | still haven't kicked the habit of trying to name everything 😂 |
| 23:55:47 | <dpratt> | oh gosh, that guy must get a lot of pings |
| 23:55:49 | → | sindu joins (~sindu@176.75.224.1) |
All times are in UTC on 2024-12-07.