Logs on 2023-09-12 (liberachat/#haskell)
| 00:00:29 | × | arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 245 seconds) |
| 00:03:21 | → | pyooque joins (~puke@user/puke) |
| 00:03:21 | × | puke quits (~puke@user/puke) (Killed (mercury.libera.chat (Nickname regained by services))) |
| 00:03:21 | pyooque | is now known as puke |
| 00:03:28 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 252 seconds) |
| 00:04:49 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 00:09:32 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 00:12:15 | → | aaronv joins (~aaronv@user/aaronv) |
| 00:14:04 | × | hueso quits (~root@user/hueso) (Quit: hueso) |
| 00:16:14 | → | sm joins (~sm@plaintextaccounting/sm) |
| 00:18:09 | → | hueso joins (~root@user/hueso) |
| 00:20:29 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds) |
| 00:29:20 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 255 seconds) |
| 00:32:45 | → | arahael joins (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
| 00:33:18 | → | sm joins (~sm@plaintextaccounting/sm) |
| 00:33:41 | → | ystael joins (~ystael@user/ystael) |
| 00:37:26 | × | arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 255 seconds) |
| 00:37:34 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 252 seconds) |
| 00:39:02 | → | yosef` joins (~yosef`@user/yosef/x-2947716) |
| 00:51:53 | → | tcard_ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 00:52:37 | → | Sciencentistguy8 joins (~sciencent@hacksoc/ordinary-member) |
| 00:53:13 | × | dsal quits (sid13060@id-13060.lymington.irccloud.com) (Ping timeout: 240 seconds) |
| 00:54:13 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Ping timeout: 240 seconds) |
| 00:54:32 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds) |
| 00:54:32 | Sciencentistguy8 | is now known as Sciencentistguy |
| 00:55:16 | → | migas8 joins (~migas@astra4961.startdedicated.net) |
| 00:55:27 | → | dsal joins (sid13060@id-13060.lymington.irccloud.com) |
| 00:55:54 | → | mhatta_ joins (~mhatta@www21123ui.sakura.ne.jp) |
| 00:56:04 | → | darksatanic joins (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) |
| 00:56:25 | × | tcard_ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection) |
| 00:56:25 | → | tcard_ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 00:56:25 | × | migas quits (~migas@astra4961.startdedicated.net) (Quit: Ping timeout (120 seconds)) |
| 00:56:25 | × | nyc quits (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Ping timeout: 246 seconds) |
| 00:56:25 | → | nyc joins (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) |
| 00:56:26 | × | glider quits (~glider@user/glider) (Quit: ZNC - https://znc.in) |
| 00:56:26 | × | remmie quits (ianremsen@tilde.team) (Remote host closed the connection) |
| 00:56:26 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 00:56:26 | migas8 | is now known as migas |
| 00:56:27 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 00:56:27 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:57:35 | → | remmie joins (ianremsen@tilde.team) |
| 00:57:41 | × | shapr quits (~user@75-172-29-107.tukw.qwest.net) (Ping timeout: 255 seconds) |
| 00:58:23 | × | mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Ping timeout: 246 seconds) |
| 00:58:23 | × | darkling quits (~darkling@savella.carfax.org.uk) (Ping timeout: 246 seconds) |
| 00:58:23 | × | lyxia quits (~lyxia@poisson.chat) (Ping timeout: 246 seconds) |
| 01:00:59 | <Inst> | What are the chances that there's actually a Haskell codebase using this? |
| 01:01:01 | <Inst> | https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Exception.html#t:TypeError |
| 01:03:35 | × | yosef` quits (~yosef`@user/yosef/x-2947716) (Quit: Client closed) |
| 01:03:44 | <Inst> | I mean you have NRI prelude on XStrict, so there has to be someone using -fdefer-type-errors |
| 01:05:17 | × | brettgilio quits (a35ba67324@2604:bf00:561:2000::260) (Remote host closed the connection) |
| 01:06:32 | <geekosaur> | generally it's used by IDEs, so I'd look at HLS |
| 01:07:25 | → | sm joins (~sm@plaintextaccounting/sm) |
| 01:07:35 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds) |
| 01:08:42 | <EvanR> | -fdefer-type-errors is handy if you want to run your program before the entire thing is compiling |
| 01:09:11 | <EvanR> | like, if each file is a room, and you promise not to go in the rooms that aren't compiling yet |
| 01:10:30 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 01:11:30 | <Axman6> | it'd be appropriate to use if you were using Data.Dynamic and you messed up |
| 01:12:59 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds) |
| 01:13:29 | <Inst> | so maybe IHP? |
| 01:13:33 | <Inst> | since they have hot reloading? |
| 01:20:38 | <Axman6> | perhaps |
| 01:21:53 | <EvanR> | hold the hot reloading until the changes type check, imo |
| 01:22:16 | <Axman6> | YOLO |
| 01:22:55 | <Axman6> | just coerce the Dynamic and blame the user when they get it wrong |
| 01:22:59 | <jackdk> | type changing + hot reloading is a real hard problem. Not sure if IHP even attempts it |
| 01:23:45 | <Axman6> | luckily we can do things like not reload a Wai application which has a concrete type, so all the other types can change |
| 01:23:49 | <Axman6> | hot* |
| 01:24:09 | <EvanR> | not reloading |
| 01:24:23 | <Axman6> | F4n't |
| 01:24:31 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 01:24:37 | <Axman6> | is it F4? I dunno, never really used windows |
| 01:24:39 | <geekosaur> | "hot or not?" 😛 |
| 01:24:54 | <Inst> | f4 is search, iirc, f5 is reload |
| 01:24:56 | <Axman6> | that's actually a great name for a hot code reloading framework XD |
| 01:25:03 | <Axman6> | dang, so close |
| 01:25:16 | <Axman6> | HsHotOrNot |
| 01:25:26 | <Inst> | c4 is a great name for a package manager, but in a Haskell context... |
| 01:25:37 | <Axman6> | (HotOrNotHs might get you thrown in jail) |
| 01:25:45 | <geekosaur> | sounds like the opposite of a package manager to me |
| 01:26:01 | <geekosaur> | deconstruction manager maybe |
| 01:26:08 | <Axman6> | unzipping a tarball is definitely exploding a package |
| 01:26:50 | → | shapr joins (~user@c-67-160-55-153.hsd1.wa.comcast.net) |
| 01:27:18 | <Axman6> | the package I've always wanted to make was a combination of Grenade, the deep learning package, and Accelerate for running it on the GUP - the name would of course be RPG |
| 01:27:24 | <Inst> | why am i using (\cases ... ) args? |
| 01:27:40 | <Inst> | did anyone fix accelerate? |
| 01:27:42 | <Axman6> | I tried to do it once but realised I don't know enough about either package to pull it off :'( |
| 01:27:46 | → | sm joins (~sm@plaintextaccounting/sm) |
| 01:28:27 | <Inst> | this doesn't work :( |
| 01:28:27 | <Inst> | cases localFile remoteFile internalFile of |
| 01:28:53 | <Axman6> | why not? |
| 01:29:04 | <Axman6> | GPU* |
| 01:29:30 | <Inst> | ummm, afaik cases isn't a thing, right? but \cases is? |
| 01:29:49 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 01:31:59 | <int-e> | if you want to bind a variable called 'cases' |
| 01:32:34 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 252 seconds) |
| 01:32:50 | <int-e> | Oh, \cases does exist but is new in 9.4.1. |
| 01:35:24 | <int-e> | You can always use `case (v1, v2, v3) of ...` in an expression context. But that doesn't really work in the lambda-case niche; you're basically left with the unsugared \v1 v2 v3 -> case (v1, v2, v3) of ... instead. |
| 01:38:38 | × | xff0x quits (~xff0x@2405:6580:b080:900:3c1b:8aaf:c8cf:6421) (Ping timeout: 255 seconds) |
| 01:39:00 | Axman6 | was secretly hoping jle` would pick up grenade mantenence after his excellent series on singletons basically built the exact same library from scratch |
| 01:39:25 | <Axman6> | s/singletons/dependent types |
| 01:41:57 | → | lyxia joins (~lyxia@poisson.chat) |
| 01:42:35 | <Inst> | yeah, but I wanted to avoid the tupled syntax |
| 01:47:34 | × | otto_s quits (~user@p5de2fddf.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 01:48:24 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 245 seconds) |
| 01:48:31 | <int-e> | > case (,) 1 2 of (,) x y -> (x, y) |
| 01:48:32 | <lambdabot> | (1,2) |
| 01:48:54 | × | iteratee quits (~kyle@162.218.222.207) (Ping timeout: 255 seconds) |
| 01:49:18 | → | otto_s joins (~user@p5de2f28b.dip0.t-ipconnect.de) |
| 01:52:34 | <Inst> | whoa, thanks |
| 01:52:47 | <Inst> | far, far from ideal, but big improvement |
| 01:53:09 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 01:57:09 | → | lottaquestions joins (~nick@2607:fa49:503d:b200:fe78:84a4:cfad:8849) |
| 01:57:34 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 01:59:08 | × | lottaquestions_ quits (~nick@2607:fa49:503d:b200:2663:b169:e6fe:3201) (Ping timeout: 248 seconds) |
| 02:01:33 | → | sm joins (~sm@plaintextaccounting/sm) |
| 02:03:16 | × | lottaquestions quits (~nick@2607:fa49:503d:b200:fe78:84a4:cfad:8849) (Read error: Connection reset by peer) |
| 02:03:41 | → | lottaquestions joins (~nick@2607:fa49:503d:b200:fe78:84a4:cfad:8849) |
| 02:06:40 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 252 seconds) |
| 02:07:05 | → | yosef` joins (~yosef`@user/yosef/x-2947716) |
| 02:12:59 | × | ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 245 seconds) |
| 02:14:50 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 02:16:53 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 02:21:41 | × | shapr quits (~user@c-67-160-55-153.hsd1.wa.comcast.net) (Ping timeout: 246 seconds) |
| 02:23:10 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 252 seconds) |
| 02:23:49 | → | brettgilio joins (~brettgili@2001:19f0:5c01:364:5400:4ff:fe92:8142) |
| 02:25:21 | × | Typedfern quits (~Typedfern@81.red-83-37-27.dynamicip.rima-tde.net) (Ping timeout: 246 seconds) |
| 02:25:43 | → | Typedfern joins (~Typedfern@81.red-83-37-27.dynamicip.rima-tde.net) |
| 02:26:11 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:26:49 | × | AWizzArd quits (~code@gehrels.uberspace.de) (Server closed connection) |
| 02:26:56 | → | AWizzArd joins (~code@gehrels.uberspace.de) |
| 02:26:57 | × | yosef` quits (~yosef`@user/yosef/x-2947716) (Quit: Client closed) |
| 02:27:49 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 02:28:10 | → | Inst joins (~Inst@120.244.192.250) |
| 02:32:09 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 245 seconds) |
| 02:33:15 | × | mjacob quits (~mjacob@adrastea.uberspace.de) (Server closed connection) |
| 02:33:24 | → | mjacob joins (~mjacob@adrastea.uberspace.de) |
| 02:35:45 | → | sm joins (~sm@plaintextaccounting/sm) |
| 02:40:29 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds) |
| 02:42:34 | → | arahael joins (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
| 02:47:14 | × | arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 246 seconds) |
| 02:47:56 | × | td_ quits (~td@i53870901.versanet.de) (Ping timeout: 255 seconds) |
| 02:49:45 | → | td_ joins (~td@i53870916.versanet.de) |
| 02:51:36 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 246 seconds) |
| 02:52:00 | → | mysl joins (~mysl@user/mysl) |
| 02:52:35 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 02:55:12 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2861:bb9d:e03c:c139) (Remote host closed the connection) |
| 02:55:16 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:55:16 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:55:16 | finn_elija | is now known as FinnElija |
| 02:55:32 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b93b:6165:58a2:3e5e) |
| 02:59:30 | <Inst> | you can't get haddock comments into where clauses, right? |
| 03:10:58 | → | aforemny_ joins (~aforemny@i59F516DD.versanet.de) |
| 03:11:20 | × | aforemny quits (~aforemny@i59F516FF.versanet.de) (Ping timeout: 255 seconds) |
| 03:12:56 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 03:13:48 | <glguy> | I wouldn't think so |
| 03:17:37 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 03:17:48 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 03:19:26 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 03:22:08 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 255 seconds) |
| 03:25:18 | × | jargon quits (~jargon@184.101.67.95) (Remote host closed the connection) |
| 03:29:20 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 255 seconds) |
| 03:37:49 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 03:39:24 | → | ornx joins (~ornx@user/ornxka) |
| 03:39:24 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
| 03:40:30 | → | aaronv joins (~aaronv@user/aaronv) |
| 03:40:44 | <ornx> | okay, be honest with me, how many times would you all estimate that you have implemented peano numbers in some form |
| 03:41:16 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 03:41:54 | <jackdk> | ornx: `count = S count` times |
| 03:42:14 | <ornx> | lmao |
| 03:42:25 | <ornx> | it certainly feels like that sometimes |
| 03:46:07 | <Axman6> | Not that often, mostly at the type level |
| 03:47:54 | <jackdk> | And even then we have Nat now |
| 03:48:35 | <Axman6> | yeah - and the plugin that Clash uses to make dealing with them sane |
| 03:54:05 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 255 seconds) |
| 03:55:06 | × | phma quits (~phma@host-67-44-208-5.hnremote.net) (Read error: Connection reset by peer) |
| 03:55:54 | → | phma joins (~phma@2001:5b0:210f:7168:cc95:7518:e3ef:e00e) |
| 03:58:44 | <Inst> | honestly peano arithmetic is the hello world of proof languages |
| 04:00:00 | <segfaultfizzbuzz> | https://www.twitch.tv/trumporbiden2024 is why computers were invented |
| 04:05:30 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 04:13:11 | <Inst> | in haskell-land, when is it a good idea to stop adding features to your library and just ship? |
| 04:13:33 | <Inst> | right now I'm thinking about trying to figure out how to check if i have read-write permissions on files in a directory |
| 04:14:28 | <Inst> | and completely rebuild my result for what should be a simple "check if file exists, satisfies hash, deploy into it locally or from net, etc" |
| 04:14:44 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 04:14:46 | <monochrom> | ornx: Does it count if I use parametricity to prove that (forall a. a -> (a -> a) -> a) is in bijection with the natural numbers? http://www.vex.net/~trebla/haskell/abs-type-param.html#example-a.-aaaa |
| 04:16:08 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 246 seconds) |
| 04:18:24 | × | malte quits (~malte@mal.tc) (Ping timeout: 246 seconds) |
| 04:21:15 | <Inst> | hmmm, not sure if this is interesting, but let's say I'm executing a bunch of IO actions and wish to fold the results together |
| 04:21:37 | <Inst> | i guess we're back to "Haskell sucks at variadic functions"? |
| 04:22:51 | <mauke> | f <$> a <*> b <*> c <*> |
| 04:22:57 | <mauke> | d |
| 04:23:08 | <Inst> | no, but f is specific to a number of arguments |
| 04:23:25 | <Inst> | i think sequence might be able to do it, i.e, [IO [a]] |
| 04:23:43 | <[Leary]> | We have `instance Monoid a => Monoid (IO a)`. And even if that weren't the case you could use `Ap`. |
| 04:24:52 | <Inst> | yeah, okay, this would work better, Seq to avoid append penalties with lists / vector |
| 04:25:32 | <Inst> | could just fold [IO (Seq a)]? |
| 04:25:44 | <Inst> | as in, Data.Foldable.Fold? |
| 04:26:32 | <Inst> | but even if monoid is empty, i'll still get the effects out, right? |
| 04:26:52 | × | tcard_ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 04:27:08 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 04:27:45 | <Inst> | foldMap' id, it seems |
| 04:28:29 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 04:31:03 | → | arahael joins (~arahael@1.145.115.51) |
| 04:31:08 | → | malte joins (~malte@mal.tc) |
| 04:33:48 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 04:45:08 | × | pjlsergeant__ quits (sid143467@id-143467.hampstead.irccloud.com) (Server closed connection) |
| 04:45:22 | → | pjlsergeant__ joins (sid143467@id-143467.hampstead.irccloud.com) |
| 04:46:03 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 04:48:00 | <Axman6> | that's just fold isn't it? is there a fold'? |
| 04:48:05 | <Axman6> | @hoogle fold' |
| 04:48:05 | <lambdabot> | Pipes.Prelude fold' :: Monad m => (x -> a -> x) -> x -> (x -> b) -> Producer a m r -> m (b, r) |
| 04:48:05 | <lambdabot> | Data.HashPSQ fold' :: (k -> p -> v -> a -> a) -> a -> HashPSQ k p v -> a |
| 04:48:05 | <lambdabot> | Data.IntPSQ fold' :: (Int -> p -> v -> a -> a) -> a -> IntPSQ p v -> a |
| 04:51:26 | → | shapr joins (~user@c-67-160-55-153.hsd1.wa.comcast.net) |
| 04:51:58 | <Inst> | tbh i'm trying to run through a bunch of exception-throwing IO actions, catch them, convert them to my own exception type, then collate the exceptions and report them |
| 04:52:27 | <Axman6> | IIRC lens has some nice stuff for managing and converting exceptions |
| 04:52:36 | <Inst> | jeez |
| 04:53:10 | <Inst> | https://hackage.haskell.org/package/lens-5.2.3/docs/Control-Exception-Lens.html |
| 04:56:17 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 04:59:47 | <Inst> | huh, interesting, i can implement the short-circuiting behavior via <|> from alternative |
| 05:02:21 | × | litharge quits (litharge@libera/bot/litharge) (*.net *.split) |
| 05:02:21 | × | pjlsergeant__ quits (sid143467@id-143467.hampstead.irccloud.com) (*.net *.split) |
| 05:02:21 | × | malte quits (~malte@mal.tc) (*.net *.split) |
| 05:02:21 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b93b:6165:58a2:3e5e) (*.net *.split) |
| 05:02:21 | × | td_ quits (~td@i53870916.versanet.de) (*.net *.split) |
| 05:02:21 | × | AWizzArd quits (~code@gehrels.uberspace.de) (*.net *.split) |
| 05:02:21 | × | lyxia quits (~lyxia@poisson.chat) (*.net *.split) |
| 05:02:21 | × | remmie quits (ianremsen@tilde.team) (*.net *.split) |
| 05:02:21 | × | darksatanic quits (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) (*.net *.split) |
| 05:02:22 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (*.net *.split) |
| 05:02:22 | × | puke quits (~puke@user/puke) (*.net *.split) |
| 05:02:22 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (*.net *.split) |
| 05:02:22 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (*.net *.split) |
| 05:02:22 | × | wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split) |
| 05:02:22 | × | pointlessslippe1 quits (~pointless@212.82.82.3) (*.net *.split) |
| 05:02:22 | × | masterbuilder quits (~masterbui@user/masterbuilder) (*.net *.split) |
| 05:02:22 | × | Logio quits (em@kapsi.fi) (*.net *.split) |
| 05:02:22 | × | notzmv quits (~zmv@user/notzmv) (*.net *.split) |
| 05:02:23 | × | NinjaTrappeur quits (~ninja@about/aquilenet/vodoo/NinjaTrappeur) (*.net *.split) |
| 05:02:23 | × | xelxebar quits (~xelxebar@wilsonb.com) (*.net *.split) |
| 05:02:23 | × | drdo quits (~drdo@bl8-38-186.dsl.telepac.pt) (*.net *.split) |
| 05:02:23 | × | dcoutts quits (~duncan@82-69-94-207.dsl.in-addr.zen.co.uk) (*.net *.split) |
| 05:02:23 | × | kimiamania4 quits (~67afdc47@user/kimiamania) (*.net *.split) |
| 05:02:23 | × | seeg123456 quits (~seeg12345@64.176.64.83) (*.net *.split) |
| 05:02:23 | × | dsrt^ quits (~cd@c-66-56-7-24.hsd1.ga.comcast.net) (*.net *.split) |
| 05:02:24 | × | RMSBach quits (~guygastin@137.184.131.156) (*.net *.split) |
| 05:02:24 | × | Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (*.net *.split) |
| 05:02:24 | × | ursa-major quits (~ursa-majo@static-198-44-128-154.cust.tzulo.com) (*.net *.split) |
| 05:02:24 | × | hexeme quits (~hexeme@user/hexeme) (*.net *.split) |
| 05:02:24 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (*.net *.split) |
| 05:02:24 | × | phma quits (~phma@2001:5b0:210f:7168:cc95:7518:e3ef:e00e) (*.net *.split) |
| 05:02:24 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (*.net *.split) |
| 05:02:24 | × | mysl quits (~mysl@user/mysl) (*.net *.split) |
| 05:02:24 | × | mjacob quits (~mjacob@adrastea.uberspace.de) (*.net *.split) |
| 05:02:24 | × | Inst quits (~Inst@120.244.192.250) (*.net *.split) |
| 05:02:24 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (*.net *.split) |
| 05:02:24 | × | ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (*.net *.split) |
| 05:02:24 | × | brettgilio quits (~brettgili@2001:19f0:5c01:364:5400:4ff:fe92:8142) (*.net *.split) |
| 05:02:24 | × | mhatta_ quits (~mhatta@www21123ui.sakura.ne.jp) (*.net *.split) |
| 05:02:24 | × | dsal quits (sid13060@id-13060.lymington.irccloud.com) (*.net *.split) |
| 05:02:25 | × | migas quits (~migas@astra4961.startdedicated.net) (*.net *.split) |
| 05:02:25 | × | hueso quits (~root@user/hueso) (*.net *.split) |
| 05:02:25 | × | jjhoo quits (jahakala@user/jjhoo) (*.net *.split) |
| 05:02:25 | × | son0p quits (~ff@186.121.39.74) (*.net *.split) |
| 05:02:25 | × | bgamari quits (~bgamari@70.16.98.14) (*.net *.split) |
| 05:02:25 | × | hughjfch1 quits (~hughjfche@vmi556545.contaboserver.net) (*.net *.split) |
| 05:02:26 | × | cptaffe quits (~ZNC@2600:1700:f08:111f::18e7) (*.net *.split) |
| 05:02:26 | × | xmachina quits (~xmachina@modemcable048.127-56-74.mc.videotron.ca) (*.net *.split) |
| 05:02:26 | × | dispater quits (~dispater@mail.brprice.uk) (*.net *.split) |
| 05:02:26 | × | woffs quits (3cd46299b2@woffs.de) (*.net *.split) |
| 05:02:26 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (*.net *.split) |
| 05:02:26 | × | YuutaW quits (~YuutaW@mail.yuuta.moe) (*.net *.split) |
| 05:02:26 | × | Hafydd quits (~Hafydd@user/hafydd) (*.net *.split) |
| 05:02:26 | × | sudden quits (~cat@user/sudden) (*.net *.split) |
| 05:02:26 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (*.net *.split) |
| 05:02:26 | × | m1dnight quits (~christoph@78-22-4-67.access.telenet.be) (*.net *.split) |
| 05:02:26 | × | Athas quits (athas@sigkill.dk) (*.net *.split) |
| 05:02:26 | × | Moyst_ quits (~moyst@user/moyst) (*.net *.split) |
| 05:02:27 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split) |
| 05:02:27 | × | lawt quits (~lawt@2603:c024:c008:d000:5b4f:1ef2:fed2:ef3d) (*.net *.split) |
| 05:02:27 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (*.net *.split) |
| 05:02:27 | × | arahael quits (~arahael@1.145.115.51) (*.net *.split) |
| 05:02:27 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (*.net *.split) |
| 05:02:27 | × | aforemny_ quits (~aforemny@i59F516DD.versanet.de) (*.net *.split) |
| 05:02:27 | × | Typedfern quits (~Typedfern@81.red-83-37-27.dynamicip.rima-tde.net) (*.net *.split) |
| 05:02:27 | × | lottaquestions quits (~nick@2607:fa49:503d:b200:fe78:84a4:cfad:8849) (*.net *.split) |
| 05:02:28 | × | otto_s quits (~user@p5de2f28b.dip0.t-ipconnect.de) (*.net *.split) |
| 05:02:28 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (*.net *.split) |
| 05:02:28 | × | Sgeo quits (~Sgeo@user/sgeo) (*.net *.split) |
| 05:02:28 | × | sajith quits (~sajith@user/sajith) (*.net *.split) |
| 05:02:28 | × | nonzen quits (~nonzen@user/nonzen) (*.net *.split) |
| 05:02:28 | × | pavonia quits (~user@user/siracusa) (*.net *.split) |
| 05:02:28 | × | vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (*.net *.split) |
| 05:02:29 | × | orcus quits (~orcus@mail.brprice.uk) (*.net *.split) |
| 05:02:29 | × | zer0bitz_ quits (~zer0bitz@user/zer0bitz) (*.net *.split) |
| 05:02:29 | × | Pent quits (sid313808@id-313808.lymington.irccloud.com) (*.net *.split) |
| 05:02:29 | × | tnks quits (sid412124@id-412124.helmsley.irccloud.com) (*.net *.split) |
| 05:02:29 | × | p3n quits (~p3n@217.198.124.246) (*.net *.split) |
| 05:02:29 | × | ubert quits (~Thunderbi@77.119.175.117.wireless.dyn.drei.com) (*.net *.split) |
| 05:02:29 | × | acertain_ quits (sid470584@id-470584.hampstead.irccloud.com) (*.net *.split) |
| 05:02:30 | × | actioninja quits (~actioninj@user/actioninja) (*.net *.split) |
| 05:02:30 | × | dminuoso quits (~dminuoso@user/dminuoso) (*.net *.split) |
| 05:02:30 | × | haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (*.net *.split) |
| 05:02:30 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split) |
| 05:02:31 | × | EsoAlgo81 quits (~EsoAlgo@129.146.136.145) (*.net *.split) |
| 05:02:31 | × | taktoa[c] quits (sid282096@id-282096.tinside.irccloud.com) (*.net *.split) |
| 05:02:31 | × | habib quits (~habib@91.196.222.95) (*.net *.split) |
| 05:02:31 | × | robbert-vdh quits (~robbert@robbertvanderhelm.nl) (*.net *.split) |
| 05:02:31 | × | tstat quits (~tstat@user/tstat) (*.net *.split) |
| 05:02:31 | × | Pixi quits (~Pixi@user/pixi) (*.net *.split) |
| 05:02:31 | × | barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split) |
| 05:02:31 | × | vgtw quits (~vgtw@user/vgtw) (*.net *.split) |
| 05:02:32 | × | shachaf quits (~shachaf@user/shachaf) (*.net *.split) |
| 05:02:32 | × | mxs quits (~mxs@user/mxs) (*.net *.split) |
| 05:02:32 | × | Franciman quits (~Franciman@mx1.fracta.dev) (*.net *.split) |
| 05:02:32 | × | telser quits (~quassel@user/telser) (*.net *.split) |
| 05:02:32 | × | cawfee quits (~root@2406:3003:2077:2758::babe) (*.net *.split) |
| 05:02:32 | × | bionade24 quits (~bionade24@2a03:4000:33:45b::1) (*.net *.split) |
| 05:02:32 | × | gaze___ quits (sid387101@id-387101.helmsley.irccloud.com) (*.net *.split) |
| 05:02:33 | × | shawwwn quits (sid6132@id-6132.helmsley.irccloud.com) (*.net *.split) |
| 05:02:33 | × | joeyh quits (~joeyh@kitenet.net) (*.net *.split) |
| 05:02:33 | × | Nikopol quits (nikopol@user/astrorigin) (*.net *.split) |
| 05:02:33 | × | aspen quits (sid449115@helmsley.irccloud.com) (*.net *.split) |
| 05:02:33 | × | farn quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split) |
| 05:02:33 | × | immae quits (~immae@2a01:4f8:141:53e7::) (*.net *.split) |
| 05:02:33 | × | liskin quits (~liskin@xmonad/liskin) (*.net *.split) |
| 05:02:33 | × | img quits (~img@user/img) (*.net *.split) |
| 05:02:33 | × | thelounge793 quits (~thelounge@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) (*.net *.split) |
| 05:02:33 | × | edwtjo quits (~edwtjo@fsf/member/edwtjo) (*.net *.split) |
| 05:02:33 | × | micro quits (~micro@user/micro) (*.net *.split) |
| 05:02:34 | × | opqdonut quits (opqdonut@pseudo.fixme.fi) (*.net *.split) |
| 05:02:34 | × | nadja quits (~dequbed@banana-new.kilobyte22.de) (*.net *.split) |
| 05:02:34 | × | sweater1 quits (~sweater@206.81.18.26) (*.net *.split) |
| 05:02:34 | × | kaskal quits (~kaskal@213-147-167-98.nat.highway.webapn.at) (*.net *.split) |
| 05:02:34 | × | heath3 quits (~heath@user/heath) (*.net *.split) |
| 05:02:35 | × | lav quits (~pi@wikipedia/maddy-from-celeste) (*.net *.split) |
| 05:02:35 | × | chymera quits (~chymera@ns1000526.ip-51-81-46.us) (*.net *.split) |
| 05:02:35 | × | Vajb quits (~Vajb@2001:999:500:7771:18aa:c4e5:e7a9:f44b) (*.net *.split) |
| 05:02:35 | × | stefan-_ quits (~cri@42dots.de) (*.net *.split) |
| 05:02:35 | × | oats quits (~thomas@user/oats) (*.net *.split) |
| 05:02:35 | × | infinity0 quits (~infinity0@pwned.gg) (*.net *.split) |
| 05:02:35 | × | Katarushisu1 quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (*.net *.split) |
| 05:02:35 | × | zero quits (~z@user/zero) (*.net *.split) |
| 05:02:35 | × | g00gler quits (uid125351@id-125351.uxbridge.irccloud.com) (*.net *.split) |
| 05:02:36 | × | meejah quits (~meejah@rutas.meejah.ca) (*.net *.split) |
| 05:02:36 | × | Adeon quits (sid418992@id-418992.lymington.irccloud.com) (*.net *.split) |
| 05:02:36 | × | GoldsteinQ quits (~goldstein@goldstein.rs) (*.net *.split) |
| 05:02:36 | × | thaumavorio quits (~thaumavor@thaumavor.io) (*.net *.split) |
| 05:02:36 | × | Unode quits (~Unode@fg-ext-220.embl.de) (*.net *.split) |
| 05:02:36 | × | cyphase quits (~cyphase@user/cyphase) (*.net *.split) |
| 05:02:36 | × | it_ quits (~quassel@v2202212189510211193.supersrv.de) (*.net *.split) |
| 05:02:36 | × | haveo quits (~haveo@sl35.iuwt.fr) (*.net *.split) |
| 05:02:37 | × | edmundnoble_ quits (sid229620@id-229620.helmsley.irccloud.com) (*.net *.split) |
| 05:02:37 | × | lbseale quits (~quassel@user/ep1ctetus) (*.net *.split) |
| 05:02:37 | × | loonycyborg quits (loonycybor@wesnoth/developer/loonycyborg) (*.net *.split) |
| 05:02:37 | × | Clint quits (~Clint@user/clint) (*.net *.split) |
| 05:02:37 | × | justache quits (~justache@user/justache) (*.net *.split) |
| 05:02:38 | × | dagit quits (~dagit@2001:558:6025:38:71c6:9d58:7252:8976) (*.net *.split) |
| 05:02:38 | × | ridcully_ quits (~ridcully@p508ac5fc.dip0.t-ipconnect.de) (*.net *.split) |
| 05:02:38 | × | Nixkernal quits (~Nixkernal@119.4.193.178.dynamic.wline.res.cust.swisscom.ch) (*.net *.split) |
| 05:02:38 | × | aku quits (~aku@65.108.245.241) (*.net *.split) |
| 05:02:38 | × | Buggys quits (Buggys@shelltalk.net) (*.net *.split) |
| 05:02:38 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (*.net *.split) |
| 05:02:38 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (*.net *.split) |
| 05:02:38 | × | rubin55 quits (sid175221@id-175221.hampstead.irccloud.com) (*.net *.split) |
| 05:02:38 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (*.net *.split) |
| 05:02:38 | × | shapr quits (~user@c-67-160-55-153.hsd1.wa.comcast.net) (*.net *.split) |
| 05:02:38 | × | ft quits (~ft@p508dbaa9.dip0.t-ipconnect.de) (*.net *.split) |
| 05:02:38 | × | dumptruckman quits (~dumptruck@143-42-184-47.ip.linodeusercontent.com) (*.net *.split) |
| 05:02:39 | × | haskl quits (~haskl@user/haskl) (*.net *.split) |
| 05:02:39 | × | hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (*.net *.split) |
| 05:02:39 | × | Fischmiep quits (~Fischmiep@user/Fischmiep) (*.net *.split) |
| 05:02:39 | × | V quits (~v@ircpuzzles/2022/april/winner/V) (*.net *.split) |
| 05:02:39 | × | sefidel quits (~sefidel@user/sefidel) (*.net *.split) |
| 05:02:40 | × | caubert quits (~caubert@user/caubert) (*.net *.split) |
| 05:02:40 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (*.net *.split) |
| 05:02:40 | × | erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (*.net *.split) |
| 05:02:40 | × | mcfrdy quits (~mcfrdy@user/mcfrdy) (*.net *.split) |
| 05:02:40 | × | forell quits (~forell@user/forell) (*.net *.split) |
| 05:02:40 | × | Vq quits (~vq@90-225-115-195-no122.tbcn.telia.com) (*.net *.split) |
| 05:02:40 | × | acidsys quits (~crameleon@openSUSE/member/crameleon) (*.net *.split) |
| 05:02:41 | × | terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (*.net *.split) |
| 05:02:41 | × | mht-wtf quits (~mht@2a03:b0c0:3:e0::1e2:c001) (*.net *.split) |
| 05:02:41 | × | kawzeg_ quits (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) (*.net *.split) |
| 05:02:41 | × | xnbya quits (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split) |
| 05:02:41 | × | sgarcia_ quits (sgarcia@swarm.znchost.com) (*.net *.split) |
| 05:02:41 | × | hamishmack quits (sid389057@id-389057.hampstead.irccloud.com) (*.net *.split) |
| 05:02:41 | × | T_S____ quits (sid501726@id-501726.uxbridge.irccloud.com) (*.net *.split) |
| 05:02:42 | × | Rembane quits (~Rembane@li346-36.members.linode.com) (*.net *.split) |
| 05:02:42 | × | bastelfreak quits (bastelfrea@libera/staff/VoxPupuli.bastelfreak) (*.net *.split) |
| 05:02:42 | × | dfg quits (~dfg@user/dfg) (*.net *.split) |
| 05:02:42 | × | gawen quits (~gawen@user/gawen) (*.net *.split) |
| 05:02:42 | × | s4msung quits (0RQA7T2IW8@user/s4msung) (*.net *.split) |
| 05:02:42 | × | rachelambda quits (~rachelamb@78-67-128-99-no247.tbcn.telia.com) (*.net *.split) |
| 05:02:42 | × | connrs quits (~connrs@user/connrs) (*.net *.split) |
| 05:02:42 | × | kaol quits (~kaol@94-237-42-30.nl-ams1.upcloud.host) (*.net *.split) |
| 05:02:42 | × | gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (*.net *.split) |
| 05:02:42 | × | gentauro quits (~gentauro@user/gentauro) (*.net *.split) |
| 05:02:42 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (*.net *.split) |
| 05:02:43 | × | cafkafk quits (~cafkafk@fsf/member/cafkafk) (*.net *.split) |
| 05:02:43 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (*.net *.split) |
| 05:02:43 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (*.net *.split) |
| 05:02:43 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (*.net *.split) |
| 05:02:43 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (*.net *.split) |
| 05:02:43 | × | califax quits (~califax@user/califx) (*.net *.split) |
| 05:02:43 | × | ec quits (~ec@gateway/tor-sasl/ec) (*.net *.split) |
| 05:02:43 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (*.net *.split) |
| 05:02:43 | × | Noinia quits (~Frank@77-162-168-71.fixed.kpn.net) (*.net *.split) |
| 05:02:43 | × | renegade quits (~renegade@bcdcac82.skybroadband.com) (*.net *.split) |
| 05:02:44 | × | lambdap237 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (*.net *.split) |
| 05:02:44 | × | myme quits (~myme@2a01:799:d60:e400:523a:264f:abbd:410) (*.net *.split) |
| 05:02:44 | × | Luj quits (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (*.net *.split) |
| 05:02:44 | × | koolazer quits (~koo@user/koolazer) (*.net *.split) |
| 05:02:45 | × | nckx quits (nckx@libera/staff/owl/nckx) (*.net *.split) |
| 05:02:45 | × | EvanR quits (~EvanR@user/evanr) (*.net *.split) |
| 05:02:45 | × | YoungFrog quits (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (*.net *.split) |
| 05:02:45 | × | bjobjo quits (~bjobjo@user/bjobjo) (*.net *.split) |
| 05:02:45 | × | Unhammer quits (~Unhammer@user/unhammer) (*.net *.split) |
| 05:02:45 | × | snek quits (sid280155@id-280155.lymington.irccloud.com) (*.net *.split) |
| 05:02:45 | × | tabemann_ quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (*.net *.split) |
| 05:02:45 | × | smalltalkman quits (uid545680@id-545680.hampstead.irccloud.com) (*.net *.split) |
| 05:02:45 | × | Ekho quits (~Ekho@user/ekho) (*.net *.split) |
| 05:02:45 | × | mankyKitty quits (sid31287@id-31287.helmsley.irccloud.com) (*.net *.split) |
| 05:02:45 | × | jinsun quits (~jinsun@user/jinsun) (*.net *.split) |
| 05:02:46 | × | xsarnik quits (xsarnik@lounge.fi.muni.cz) (*.net *.split) |
| 05:02:46 | × | lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (*.net *.split) |
| 05:02:46 | × | xstill_ quits (xstill@fimu/xstill) (*.net *.split) |
| 05:02:46 | × | riatre quits (~quassel@2001:310:6000:f::5198:1) (*.net *.split) |
| 05:02:46 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (*.net *.split) |
| 05:02:46 | × | pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-46-67-70-100-114.dsl.bell.ca) (*.net *.split) |
| 05:02:46 | × | monochrom quits (trebla@216.138.220.146) (*.net *.split) |
| 05:02:46 | × | Me-me quits (~me-me@user/me-me) (*.net *.split) |
| 05:02:46 | × | peutri quits (~peutri@bobo.desast.re) (*.net *.split) |
| 05:02:46 | × | VioletJewel quits (~violet@user/violetjewel) (*.net *.split) |
| 05:02:46 | × | cheater quits (~Username@user/cheater) (*.net *.split) |
| 05:02:46 | × | CAT_S quits (apic@brezn3.muc.ccc.de) (*.net *.split) |
| 05:02:47 | × | acro quits (~acro@user/acro) (*.net *.split) |
| 05:02:47 | × | AlexNoo quits (~AlexNoo@178.34.160.172) (*.net *.split) |
| 05:02:47 | × | superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split) |
| 05:02:47 | × | conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (*.net *.split) |
| 05:02:47 | × | neptun quits (neptun@2607:5300:60:5910:dcad:beff:feef:5bc) (*.net *.split) |
| 05:02:47 | × | sand-witch quits (~m-mzmz6l@vmi833741.contaboserver.net) (*.net *.split) |
| 05:02:48 | × | tomsmeding quits (~tomsmedin@static.21.109.88.23.clients.your-server.de) (*.net *.split) |
| 05:02:48 | × | hugo quits (znc@verdigris.lysator.liu.se) (*.net *.split) |
| 05:02:48 | × | institor quits (~henricus@user/institor) (*.net *.split) |
| 05:02:48 | × | ringo___ quits (~ringo@157.230.117.128) (*.net *.split) |
| 05:02:48 | × | mira quits (~aranea@wireguard/contributorcat/mira) (*.net *.split) |
| 05:02:48 | × | user2 quits (~user@162.255.84.96) (*.net *.split) |
| 05:02:48 | × | raoul quits (~raoul@95.179.203.88) (*.net *.split) |
| 05:02:48 | × | lilata quits (~lilata@137.184.4.49) (*.net *.split) |
| 05:02:49 | × | gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (*.net *.split) |
| 05:02:49 | × | Angelz quits (Angelz@Angelz.oddprotocol.org) (*.net *.split) |
| 05:02:49 | × | Hooloovoo quits (~Hooloovoo@hax0rbana.org) (*.net *.split) |
| 05:02:49 | × | DigitalKiwi quits (~kiwi@2604:a880:400:d0::1ca0:e001) (*.net *.split) |
| 05:02:49 | × | krjt quits (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split) |
| 05:02:49 | × | sphynx quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split) |
| 05:02:50 | × | jmct quits (sid160793@id-160793.tinside.irccloud.com) (*.net *.split) |
| 05:02:50 | × | buhman quits (sid411355@user/buhman) (*.net *.split) |
| 05:02:50 | × | lally quits (sid388228@id-388228.uxbridge.irccloud.com) (*.net *.split) |
| 05:02:50 | × | PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (*.net *.split) |
| 05:02:50 | × | Jon quits (jon@dow.land) (*.net *.split) |
| 05:02:50 | × | geekosaur[c] quits (sid609282@xmonad/geekosaur) (*.net *.split) |
| 05:02:50 | × | chessai quits (sid225296@id-225296.lymington.irccloud.com) (*.net *.split) |
| 05:02:50 | × | anderson quits (~anderson@user/anderson) (*.net *.split) |
| 05:02:50 | × | dfordvm quits (~dfordivam@160.16.87.223.v6.sakura.ne.jp) (*.net *.split) |
| 05:02:50 | × | minigrim0 quits (~minigrim0@2a01:4f9:6b:3416:68ba:8dff:fe58:a5ea) (*.net *.split) |
| 05:02:50 | × | Fangs quits (sid141280@id-141280.hampstead.irccloud.com) (*.net *.split) |
| 05:02:50 | × | tinwood quits (~tinwood@canonical/tinwood) (*.net *.split) |
| 05:02:50 | × | amir quits (sid22336@user/amir) (*.net *.split) |
| 05:02:50 | × | SanchayanMaity quits (sid478177@id-478177.hampstead.irccloud.com) (*.net *.split) |
| 05:02:50 | × | defanor quits (~defanor@tart.uberspace.net) (*.net *.split) |
| 05:02:50 | × | carter quits (sid14827@id-14827.helmsley.irccloud.com) (*.net *.split) |
| 05:02:50 | × | delyan_ quits (sid523379@id-523379.hampstead.irccloud.com) (*.net *.split) |
| 05:02:50 | × | edwardk quits (sid47016@haskell/developer/edwardk) (*.net *.split) |
| 05:02:50 | × | S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (*.net *.split) |
| 05:02:51 | × | ario quits (~ario@159.65.220.102) (*.net *.split) |
| 05:02:51 | × | nisstyre quits (wes@user/nisstyre) (*.net *.split) |
| 05:02:51 | × | wallymathieu quits (sid533252@id-533252.uxbridge.irccloud.com) (*.net *.split) |
| 05:02:51 | × | degraafk quits (sid71464@id-71464.lymington.irccloud.com) (*.net *.split) |
| 05:02:51 | × | yvan-sraka quits (sid419690@id-419690.lymington.irccloud.com) (*.net *.split) |
| 05:02:51 | × | welterde quits (welterde@thinkbase.srv.welterde.de) (*.net *.split) |
| 05:02:51 | × | vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split) |
| 05:02:51 | × | PHO` quits (~pho@akari.cielonegro.org) (*.net *.split) |
| 05:02:51 | × | MironZ quits (~MironZ@nat-infra.ehlab.uk) (*.net *.split) |
| 05:02:51 | × | diagprov quits (sid348783@user/diagprov) (*.net *.split) |
| 05:02:51 | × | ChanServ quits (ChanServ@services.libera.chat) (*.net *.split) |
| 05:02:51 | × | natto quits (~natto@129.154.243.159) (*.net *.split) |
| 05:02:51 | × | nek0 quits (~nek0@2a01:4f8:222:2b41::12) (*.net *.split) |
| 05:02:51 | × | ncf quits (~n@monade.li) (*.net *.split) |
| 05:02:51 | × | leah2 quits (~leah@vuxu.org) (*.net *.split) |
| 05:02:51 | × | [_________] quits (~oos95GWG@user/oos95GWG) (*.net *.split) |
| 05:02:52 | × | tomboy64 quits (~tomboy64@user/tomboy64) (*.net *.split) |
| 05:02:52 | × | MelanieMalik quits (ellenor@callbox.trd.is) (*.net *.split) |
| 05:02:52 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (*.net *.split) |
| 05:02:52 | × | dy quits (sid3438@user/dy) (*.net *.split) |
| 05:02:52 | × | agander_m quits (sid407952@id-407952.tinside.irccloud.com) (*.net *.split) |
| 05:02:52 | × | jackdk quits (sid373013@cssa/jackdk) (*.net *.split) |
| 05:02:52 | × | ysh____ quits (sid6017@id-6017.ilkley.irccloud.com) (*.net *.split) |
| 05:02:52 | × | samhh quits (7569f027cf@2604:bf00:561:2000::e4) (*.net *.split) |
| 05:02:53 | × | juri_ quits (~juri@84-19-175-187.pool.ovpn.com) (*.net *.split) |
| 05:02:53 | × | nshepper1 quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split) |
| 05:02:53 | × | zups quits (~meow@2a01:4f9:c010:6036::1) (*.net *.split) |
| 05:02:53 | × | byorgey quits (~byorgey@155.138.238.211) (*.net *.split) |
| 05:02:53 | × | res0nat0r0844909 quits (~Fletch@falcon.whatbox.ca) (*.net *.split) |
| 05:02:53 | × | jocke-l quits (jocke-l@a.x0.is) (*.net *.split) |
| 05:02:53 | × | kosmikus_ quits (~kosmikus@nullzig.kosmikus.org) (*.net *.split) |
| 05:02:53 | × | mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (*.net *.split) |
| 05:02:53 | × | codedmart_ quits (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split) |
| 05:02:53 | × | aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (*.net *.split) |
| 05:02:53 | × | beaky quits (~beaky@2a03:b0c0:0:1010::1e:a001) (*.net *.split) |
| 05:02:54 | × | robertm quits (robertm@lattice.rojoma.com) (*.net *.split) |
| 05:02:54 | × | Teacup quits (~teacup@user/teacup) (*.net *.split) |
| 05:02:54 | × | SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (*.net *.split) |
| 05:02:54 | × | yandere quits (sid467876@id-467876.ilkley.irccloud.com) (*.net *.split) |
| 05:02:54 | × | christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (*.net *.split) |
| 05:02:54 | × | adium quits (adium@user/adium) (*.net *.split) |
| 05:02:54 | × | jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split) |
| 05:02:54 | × | titibandit quits (~titibandi@user/titibandit) (*.net *.split) |
| 05:02:54 | × | Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (*.net *.split) |
| 05:02:55 | × | Patternmaster quits (~georg@user/Patternmaster) (*.net *.split) |
| 05:02:55 | × | remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (*.net *.split) |
| 05:02:55 | × | bwe quits (~bwe@static.72.17.201.195.clients.your-server.de) (*.net *.split) |
| 05:02:55 | × | Philonous quits (~Philonous@user/philonous) (*.net *.split) |
| 05:02:55 | × | dtman34 quits (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net) (*.net *.split) |
| 05:02:56 | × | Putonlalla quits (~Putonlall@it-cyan.it.jyu.fi) (*.net *.split) |
| 05:02:56 | × | tomku quits (~tomku@user/tomku) (*.net *.split) |
| 05:02:56 | × | mniip quits (mniip@libera/staff/mniip) (*.net *.split) |
| 05:02:56 | × | wagle quits (~wagle@quassel.wagle.io) (*.net *.split) |
| 05:02:56 | × | drewjose quits (~drewjose@129.154.40.88) (*.net *.split) |
| 05:02:57 | × | df quits (~ben@justworks.xyz) (*.net *.split) |
| 05:02:57 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) (*.net *.split) |
| 05:02:57 | × | nurupo quits (~nurupo.ga@user/nurupo) (*.net *.split) |
| 05:02:57 | × | mmaruseacph2 quits (~mihai@mihai.page) (*.net *.split) |
| 05:02:57 | × | nullie quits (~nullie@amsterdam.nullie.name) (*.net *.split) |
| 05:02:57 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (*.net *.split) |
| 05:02:57 | × | cods quits (~fred@82-65-232-44.subs.proxad.net) (*.net *.split) |
| 05:02:57 | × | troydm1 quits (~troydm@host-176-37-53-238.b025.la.net.ua) (*.net *.split) |
| 05:02:58 | × | Techcable quits (~Techcable@user/Techcable) (*.net *.split) |
| 05:02:58 | × | noteness quits (~noteness@user/noteness) (*.net *.split) |
| 05:02:58 | × | exarkun quits (~exarkun@user/exarkun) (*.net *.split) |
| 05:02:58 | × | Yumemi quits (~Yumemi@212.47.254.173) (*.net *.split) |
| 05:02:58 | × | andjjj23 quits (~irc@107.170.228.47) (*.net *.split) |
| 05:02:58 | × | jludwig quits (~justin@li657-110.members.linode.com) (*.net *.split) |
| 05:02:58 | × | nicole quits (ilbelkyr@libera/staff/ilbelkyr) (*.net *.split) |
| 05:03:41 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 05:03:41 | → | shapr joins (~user@c-67-160-55-153.hsd1.wa.comcast.net) |
| 05:03:41 | → | pjlsergeant__ joins (sid143467@id-143467.hampstead.irccloud.com) |
| 05:03:41 | → | malte joins (~malte@mal.tc) |
| 05:03:41 | → | arahael joins (~arahael@1.145.115.51) |
| 05:03:41 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 05:03:41 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 05:03:41 | → | phma joins (~phma@2001:5b0:210f:7168:cc95:7518:e3ef:e00e) |
| 05:03:41 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 05:03:42 | → | aforemny_ joins (~aforemny@i59F516DD.versanet.de) |
| 05:03:42 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b93b:6165:58a2:3e5e) |
| 05:03:42 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 05:03:42 | → | mysl joins (~mysl@user/mysl) |
| 05:03:42 | → | td_ joins (~td@i53870916.versanet.de) |
| 05:03:42 | → | mjacob joins (~mjacob@adrastea.uberspace.de) |
| 05:03:42 | → | Inst joins (~Inst@120.244.192.250) |
| 05:03:42 | → | AWizzArd joins (~code@gehrels.uberspace.de) |
| 05:03:42 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 05:03:42 | → | Typedfern joins (~Typedfern@81.red-83-37-27.dynamicip.rima-tde.net) |
| 05:03:42 | → | brettgilio joins (~brettgili@2001:19f0:5c01:364:5400:4ff:fe92:8142) |
| 05:03:42 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 05:03:42 | → | lottaquestions joins (~nick@2607:fa49:503d:b200:fe78:84a4:cfad:8849) |
| 05:03:42 | → | otto_s joins (~user@p5de2f28b.dip0.t-ipconnect.de) |
| 05:03:42 | → | lyxia joins (~lyxia@poisson.chat) |
| 05:03:42 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 05:03:42 | → | remmie joins (ianremsen@tilde.team) |
| 05:03:42 | → | darksatanic joins (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) |
| 05:03:42 | → | mhatta_ joins (~mhatta@www21123ui.sakura.ne.jp) |
| 05:03:42 | → | dsal joins (sid13060@id-13060.lymington.irccloud.com) |
| 05:03:42 | → | migas joins (~migas@astra4961.startdedicated.net) |
| 05:03:42 | → | Sciencentistguy joins (~sciencent@hacksoc/ordinary-member) |
| 05:03:42 | → | hueso joins (~root@user/hueso) |
| 05:03:42 | → | puke joins (~puke@user/puke) |
| 05:03:42 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 05:03:42 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 05:03:42 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 05:03:42 | → | sajith joins (~sajith@user/sajith) |
| 05:03:42 | → | nonzen joins (~nonzen@user/nonzen) |
| 05:03:42 | → | jjhoo joins (jahakala@user/jjhoo) |
| 05:03:42 | → | son0p joins (~ff@186.121.39.74) |
| 05:03:42 | → | wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de) |
| 05:03:42 | → | pavonia joins (~user@user/siracusa) |
| 05:03:42 | → | ft joins (~ft@p508dbaa9.dip0.t-ipconnect.de) |
| 05:03:42 | → | dumptruckman joins (~dumptruck@143-42-184-47.ip.linodeusercontent.com) |
| 05:03:42 | → | cafkafk joins (~cafkafk@fsf/member/cafkafk) |
| 05:03:42 | → | bgamari joins (~bgamari@70.16.98.14) |
| 05:03:42 | → | pointlessslippe1 joins (~pointless@212.82.82.3) |
| 05:03:42 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 05:03:42 | → | masterbuilder joins (~masterbui@user/masterbuilder) |
| 05:03:42 | → | vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) |
| 05:03:42 | → | Logio joins (em@kapsi.fi) |
| 05:03:42 | → | hughjfch1 joins (~hughjfche@vmi556545.contaboserver.net) |
| 05:03:42 | → | notzmv joins (~zmv@user/notzmv) |
| 05:03:42 | → | Noinia joins (~Frank@77-162-168-71.fixed.kpn.net) |
| 05:03:42 | → | cptaffe joins (~ZNC@2600:1700:f08:111f::18e7) |
| 05:03:42 | → | xmachina joins (~xmachina@modemcable048.127-56-74.mc.videotron.ca) |
| 05:03:42 | → | orcus joins (~orcus@mail.brprice.uk) |
| 05:03:42 | → | dispater joins (~dispater@mail.brprice.uk) |
| 05:03:42 | → | woffs joins (3cd46299b2@woffs.de) |
| 05:03:42 | → | zer0bitz_ joins (~zer0bitz@user/zer0bitz) |
| 05:03:42 | → | NinjaTrappeur joins (~ninja@about/aquilenet/vodoo/NinjaTrappeur) |
| 05:03:42 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 05:03:42 | → | Pent joins (sid313808@id-313808.lymington.irccloud.com) |
| 05:03:42 | → | YuutaW joins (~YuutaW@mail.yuuta.moe) |
| 05:03:42 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 05:03:42 | → | tnks joins (sid412124@id-412124.helmsley.irccloud.com) |
| 05:03:42 | → | EsoAlgo81 joins (~EsoAlgo@129.146.136.145) |
| 05:03:42 | → | taktoa[c] joins (sid282096@id-282096.tinside.irccloud.com) |
| 05:03:42 | → | habib joins (~habib@91.196.222.95) |
| 05:03:42 | → | nullie joins (~nullie@amsterdam.nullie.name) |
| 05:03:42 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 05:03:42 | → | p3n joins (~p3n@217.198.124.246) |
| 05:03:42 | → | sudden joins (~cat@user/sudden) |
| 05:03:42 | → | ubert joins (~Thunderbi@77.119.175.117.wireless.dyn.drei.com) |
| 05:03:42 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 05:03:42 | → | m1dnight joins (~christoph@78-22-4-67.access.telenet.be) |
| 05:03:42 | → | xelxebar joins (~xelxebar@wilsonb.com) |
| 05:03:42 | → | drdo joins (~drdo@bl8-38-186.dsl.telepac.pt) |
| 05:03:42 | → | dcoutts joins (~duncan@82-69-94-207.dsl.in-addr.zen.co.uk) |
| 05:03:42 | → | kimiamania4 joins (~67afdc47@user/kimiamania) |
| 05:03:42 | → | acertain_ joins (sid470584@id-470584.hampstead.irccloud.com) |
| 05:03:42 | → | seeg123456 joins (~seeg12345@64.176.64.83) |
| 05:03:42 | → | Unhammer joins (~Unhammer@user/unhammer) |
| 05:03:42 | → | Athas joins (athas@sigkill.dk) |
| 05:03:42 | → | Moyst_ joins (~moyst@user/moyst) |
| 05:03:42 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 05:03:42 | → | actioninja joins (~actioninj@user/actioninja) |
| 05:03:42 | → | lawt joins (~lawt@2603:c024:c008:d000:5b4f:1ef2:fed2:ef3d) |
| 05:03:42 | → | dminuoso joins (~dminuoso@user/dminuoso) |
| 05:03:42 | → | dsrt^ joins (~cd@c-66-56-7-24.hsd1.ga.comcast.net) |
| 05:03:42 | → | RMSBach joins (~guygastin@137.184.131.156) |
| 05:03:42 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 05:03:42 | → | haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com) |
| 05:03:42 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 05:03:42 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 05:03:42 | → | ursa-major joins (~ursa-majo@static-198-44-128-154.cust.tzulo.com) |
| 05:03:42 | → | hexeme joins (~hexeme@user/hexeme) |
| 05:03:42 | → | kaskal joins (~kaskal@213-147-167-98.nat.highway.webapn.at) |
| 05:03:42 | → | adium joins (adium@user/adium) |
| 05:03:42 | → | robbert-vdh joins (~robbert@robbertvanderhelm.nl) |
| 05:03:42 | → | jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
| 05:03:42 | → | heath3 joins (~heath@user/heath) |
| 05:03:42 | → | tstat joins (~tstat@user/tstat) |
| 05:03:42 | → | titibandit joins (~titibandi@user/titibandit) |
| 05:03:42 | → | Pixi joins (~Pixi@user/pixi) |
| 05:03:42 | → | barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk) |
| 05:03:42 | → | lav joins (~pi@wikipedia/maddy-from-celeste) |
| 05:03:42 | → | chymera joins (~chymera@ns1000526.ip-51-81-46.us) |
| 05:03:42 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 05:03:42 | → | Patternmaster joins (~georg@user/Patternmaster) |
| 05:03:42 | → | vgtw joins (~vgtw@user/vgtw) |
| 05:03:42 | → | remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz) |
| 05:03:42 | → | bwe joins (~bwe@static.72.17.201.195.clients.your-server.de) |
| 05:03:42 | → | shachaf joins (~shachaf@user/shachaf) |
| 05:03:42 | → | Philonous joins (~Philonous@user/philonous) |
| 05:03:42 | → | Vajb joins (~Vajb@2001:999:500:7771:18aa:c4e5:e7a9:f44b) |
| 05:03:42 | → | dtman34 joins (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net) |
| 05:03:42 | → | oats joins (~thomas@user/oats) |
| 05:03:42 | → | stefan-_ joins (~cri@42dots.de) |
| 05:03:42 | → | mxs joins (~mxs@user/mxs) |
| 05:03:42 | → | Franciman joins (~Franciman@mx1.fracta.dev) |
| 05:03:42 | → | telser joins (~quassel@user/telser) |
| 05:03:42 | → | cawfee joins (~root@2406:3003:2077:2758::babe) |
| 05:03:42 | → | infinity0 joins (~infinity0@pwned.gg) |
| 05:03:42 | → | gaze___ joins (sid387101@id-387101.helmsley.irccloud.com) |
| 05:03:42 | → | bionade24 joins (~bionade24@2a03:4000:33:45b::1) |
| 05:03:42 | → | shawwwn joins (sid6132@id-6132.helmsley.irccloud.com) |
| 05:03:42 | → | aspen joins (sid449115@helmsley.irccloud.com) |
| 05:03:42 | → | joeyh joins (~joeyh@kitenet.net) |
| 05:03:42 | → | Nikopol joins (nikopol@user/astrorigin) |
| 05:03:42 | → | immae joins (~immae@2a01:4f8:141:53e7::) |
| 05:03:42 | → | farn joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
| 05:03:42 | → | liskin joins (~liskin@xmonad/liskin) |
| 05:03:42 | → | img joins (~img@user/img) |
| 05:03:42 | → | thelounge793 joins (~thelounge@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) |
| 05:03:42 | → | edwtjo joins (~edwtjo@fsf/member/edwtjo) |
| 05:03:42 | → | opqdonut joins (opqdonut@pseudo.fixme.fi) |
| 05:03:42 | → | micro joins (~micro@user/micro) |
| 05:03:42 | → | Katarushisu1 joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
| 05:03:42 | → | zero joins (~z@user/zero) |
| 05:03:42 | → | haskl joins (~haskl@user/haskl) |
| 05:03:42 | → | nadja joins (~dequbed@banana-new.kilobyte22.de) |
| 05:03:42 | → | g00gler joins (uid125351@id-125351.uxbridge.irccloud.com) |
| 05:03:42 | → | sweater1 joins (~sweater@206.81.18.26) |
| 05:03:42 | → | hrberg joins (~quassel@171.79-160-161.customer.lyse.net) |
| 05:03:42 | → | Fischmiep joins (~Fischmiep@user/Fischmiep) |
| 05:03:42 | → | renegade joins (~renegade@bcdcac82.skybroadband.com) |
| 05:03:42 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 05:03:42 | → | natto joins (~natto@129.154.243.159) |
| 05:03:42 | → | lambdap237 joins (~lambdap@static.167.190.119.168.clients.your-server.de) |
| 05:03:42 | → | nek0 joins (~nek0@2a01:4f8:222:2b41::12) |
| 05:03:42 | → | myme joins (~myme@2a01:799:d60:e400:523a:264f:abbd:410) |
| 05:03:42 | → | Luj joins (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) |
| 05:03:42 | → | ncf joins (~n@monade.li) |
| 05:03:42 | → | V joins (~v@ircpuzzles/2022/april/winner/V) |
| 05:03:42 | → | leah2 joins (~leah@vuxu.org) |
| 05:03:42 | → | [_________] joins (~oos95GWG@user/oos95GWG) |
| 05:03:42 | → | meejah joins (~meejah@rutas.meejah.ca) |
| 05:03:42 | → | Adeon joins (sid418992@id-418992.lymington.irccloud.com) |
| 05:03:42 | → | conjunctive joins (sid433686@id-433686.helmsley.irccloud.com) |
| 05:03:42 | → | sefidel joins (~sefidel@user/sefidel) |
| 05:03:42 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 05:03:42 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 05:03:42 | → | neptun joins (neptun@2607:5300:60:5910:dcad:beff:feef:5bc) |
| 05:03:42 | → | GoldsteinQ joins (~goldstein@goldstein.rs) |
| 05:03:42 | → | thaumavorio joins (~thaumavor@thaumavor.io) |
| 05:03:42 | → | Unode joins (~Unode@fg-ext-220.embl.de) |
| 05:03:42 | → | cyphase joins (~cyphase@user/cyphase) |
| 05:03:42 | → | sand-witch joins (~m-mzmz6l@vmi833741.contaboserver.net) |
| 05:03:42 | → | it_ joins (~quassel@v2202212189510211193.supersrv.de) |
| 05:03:42 | → | koolazer joins (~koo@user/koolazer) |
| 05:03:42 | → | califax joins (~califax@user/califx) |
| 05:03:42 | → | haveo joins (~haveo@sl35.iuwt.fr) |
| 05:03:42 | → | caubert joins (~caubert@user/caubert) |
| 05:03:42 | → | MelanieMalik joins (ellenor@callbox.trd.is) |
| 05:03:42 | → | nckx joins (nckx@libera/staff/owl/nckx) |
| 05:03:42 | → | EvanR joins (~EvanR@user/evanr) |
| 05:03:42 | → | litharge joins (litharge@libera/bot/litharge) |
| 05:03:42 | → | YoungFrog joins (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
| 05:03:42 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 05:03:42 | → | erisco joins (~erisco@d24-141-66-165.home.cgocable.net) |
| 05:03:42 | → | edmundnoble_ joins (sid229620@id-229620.helmsley.irccloud.com) |
| 05:03:42 | → | bjobjo joins (~bjobjo@user/bjobjo) |
| 05:03:42 | → | snek joins (sid280155@id-280155.lymington.irccloud.com) |
| 05:03:42 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 05:03:42 | → | mcfrdy joins (~mcfrdy@user/mcfrdy) |
| 05:03:42 | → | loonycyborg joins (loonycybor@wesnoth/developer/loonycyborg) |
| 05:03:42 | → | forell joins (~forell@user/forell) |
| 05:03:42 | → | tabemann_ joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 05:03:42 | → | Vq joins (~vq@90-225-115-195-no122.tbcn.telia.com) |
| 05:03:42 | → | Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi) |
| 05:03:42 | → | Clint joins (~Clint@user/clint) |
| 05:03:42 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 05:03:42 | → | smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com) |
| 05:03:42 | → | acidsys joins (~crameleon@openSUSE/member/crameleon) |
| 05:03:42 | → | justache joins (~justache@user/justache) |
| 05:03:42 | → | tomsmeding joins (~tomsmedin@static.21.109.88.23.clients.your-server.de) |
| 05:03:42 | → | institor joins (~henricus@user/institor) |
| 05:03:42 | → | dagit joins (~dagit@2001:558:6025:38:71c6:9d58:7252:8976) |
| 05:03:42 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 05:03:42 | → | ridcully_ joins (~ridcully@p508ac5fc.dip0.t-ipconnect.de) |
| 05:03:42 | → | Ekho joins (~Ekho@user/ekho) |
| 05:03:42 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 05:03:42 | → | Nixkernal joins (~Nixkernal@119.4.193.178.dynamic.wline.res.cust.swisscom.ch) |
| 05:03:42 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 05:03:42 | → | exarkun joins (~exarkun@user/exarkun) |
| 05:03:42 | → | aku joins (~aku@65.108.245.241) |
| 05:03:42 | → | Buggys joins (Buggys@shelltalk.net) |
| 05:03:42 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 05:03:42 | → | mankyKitty joins (sid31287@id-31287.helmsley.irccloud.com) |
| 05:03:42 | → | jinsun joins (~jinsun@user/jinsun) |
| 05:03:42 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 05:03:42 | → | rubin55 joins (sid175221@id-175221.hampstead.irccloud.com) |
| 05:03:42 | → | tomku joins (~tomku@user/tomku) |
| 05:03:42 | → | mniip joins (mniip@libera/staff/mniip) |
| 05:03:42 | → | wagle joins (~wagle@quassel.wagle.io) |
| 05:03:42 | → | xsarnik joins (xsarnik@lounge.fi.muni.cz) |
| 05:03:42 | → | drewjose joins (~drewjose@129.154.40.88) |
| 05:03:42 | → | dy joins (sid3438@user/dy) |
| 05:03:42 | → | agander_m joins (sid407952@id-407952.tinside.irccloud.com) |
| 05:03:42 | → | jackdk joins (sid373013@cssa/jackdk) |
| 05:03:42 | → | lightandlight joins (sid135476@id-135476.helmsley.irccloud.com) |
| 05:03:42 | → | xstill_ joins (xstill@fimu/xstill) |
| 05:03:42 | → | riatre joins (~quassel@2001:310:6000:f::5198:1) |
| 05:03:42 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
| 05:03:42 | → | ringo___ joins (~ringo@157.230.117.128) |
| 05:03:42 | → | pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-46-67-70-100-114.dsl.bell.ca) |
| 05:03:42 | → | monochrom joins (trebla@216.138.220.146) |
| 05:03:42 | → | Me-me joins (~me-me@user/me-me) |
| 05:03:42 | → | mira joins (~aranea@wireguard/contributorcat/mira) |
| 05:03:42 | → | peutri joins (~peutri@bobo.desast.re) |
| 05:03:42 | → | terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::) |
| 05:03:42 | → | VioletJewel joins (~violet@user/violetjewel) |
| 05:03:42 | → | cheater joins (~Username@user/cheater) |
| 05:03:42 | → | ysh____ joins (sid6017@id-6017.ilkley.irccloud.com) |
| 05:03:42 | → | CAT_S joins (apic@brezn3.muc.ccc.de) |
| 05:03:42 | → | user2 joins (~user@162.255.84.96) |
| 05:03:42 | → | acro joins (~acro@user/acro) |
| 05:03:42 | → | raoul joins (~raoul@95.179.203.88) |
| 05:03:42 | → | lilata joins (~lilata@137.184.4.49) |
| 05:03:42 | → | AlexNoo joins (~AlexNoo@178.34.160.172) |
| 05:03:42 | → | superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net) |
| 05:03:42 | → | mht-wtf joins (~mht@2a03:b0c0:3:e0::1e2:c001) |
| 05:03:42 | → | kawzeg_ joins (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) |
| 05:03:42 | → | xnbya joins (~xnbya@2a01:4f8:c17:cbdd::1) |
| 05:03:42 | → | samhh joins (7569f027cf@2604:bf00:561:2000::e4) |
| 05:03:42 | → | sgarcia_ joins (sgarcia@swarm.znchost.com) |
| 05:03:42 | → | T_S____ joins (sid501726@id-501726.uxbridge.irccloud.com) |
| 05:03:42 | → | hamishmack joins (sid389057@id-389057.hampstead.irccloud.com) |
| 05:03:42 | → | Rembane joins (~Rembane@li346-36.members.linode.com) |
| 05:03:42 | → | bastelfreak joins (bastelfrea@libera/staff/VoxPupuli.bastelfreak) |
| 05:03:42 | → | juri_ joins (~juri@84-19-175-187.pool.ovpn.com) |
| 05:03:42 | → | dfg joins (~dfg@user/dfg) |
| 05:03:42 | → | gawen joins (~gawen@user/gawen) |
| 05:03:42 | → | s4msung joins (0RQA7T2IW8@user/s4msung) |
| 05:03:42 | → | df joins (~ben@justworks.xyz) |
| 05:03:42 | → | rachelambda joins (~rachelamb@78-67-128-99-no247.tbcn.telia.com) |
| 05:03:42 | → | connrs joins (~connrs@user/connrs) |
| 05:03:42 | → | kaol joins (~kaol@94-237-42-30.nl-ams1.upcloud.host) |
| 05:03:42 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 05:03:42 | → | gentauro joins (~gentauro@user/gentauro) |
| 05:03:42 | → | nshepper1 joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
| 05:03:42 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 05:03:42 | → | zups joins (~meow@2a01:4f9:c010:6036::1) |
| 05:03:42 | → | byorgey joins (~byorgey@155.138.238.211) |
| 05:03:42 | → | res0nat0r0844909 joins (~Fletch@falcon.whatbox.ca) |
| 05:03:42 | → | jocke-l joins (jocke-l@a.x0.is) |
| 05:03:42 | → | nurupo joins (~nurupo.ga@user/nurupo) |
| 05:03:42 | → | mmaruseacph2 joins (~mihai@mihai.page) |
| 05:03:42 | → | gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk) |
| 05:03:42 | → | Angelz joins (Angelz@Angelz.oddprotocol.org) |
| 05:03:42 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 05:03:42 | → | cods joins (~fred@82-65-232-44.subs.proxad.net) |
| 05:03:42 | → | troydm1 joins (~troydm@host-176-37-53-238.b025.la.net.ua) |
| 05:03:42 | → | kosmikus_ joins (~kosmikus@nullzig.kosmikus.org) |
| 05:03:42 | → | mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
| 05:03:42 | → | codedmart_ joins (codedmart@2600:3c01::f03c:92ff:fefe:8511) |
| 05:03:42 | → | aristid joins (sid1599@id-1599.uxbridge.irccloud.com) |
| 05:03:42 | → | beaky joins (~beaky@2a03:b0c0:0:1010::1e:a001) |
| 05:03:42 | → | Techcable joins (~Techcable@user/Techcable) |
| 05:03:42 | → | noteness joins (~noteness@user/noteness) |
| 05:03:42 | → | robertm joins (robertm@lattice.rojoma.com) |
| 05:03:42 | → | Teacup joins (~teacup@user/teacup) |
| 05:03:42 | → | SrPx joins (sid108780@id-108780.uxbridge.irccloud.com) |
| 05:03:42 | → | yandere joins (sid467876@id-467876.ilkley.irccloud.com) |
| 05:03:42 | → | christiaanb joins (sid84827@id-84827.lymington.irccloud.com) |
| 05:03:42 | → | Yumemi joins (~Yumemi@212.47.254.173) |
| 05:03:42 | → | andjjj23 joins (~irc@107.170.228.47) |
| 05:03:42 | → | jludwig joins (~justin@li657-110.members.linode.com) |
| 05:03:42 | → | Hooloovoo joins (~Hooloovoo@hax0rbana.org) |
| 05:03:42 | → | nicole joins (ilbelkyr@libera/staff/ilbelkyr) |
| 05:03:42 | → | diagprov joins (sid348783@user/diagprov) |
| 05:03:42 | → | MironZ joins (~MironZ@nat-infra.ehlab.uk) |
| 05:03:42 | → | PHO` joins (~pho@akari.cielonegro.org) |
| 05:03:42 | → | vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae) |
| 05:03:42 | → | welterde joins (welterde@thinkbase.srv.welterde.de) |
| 05:03:42 | → | yvan-sraka joins (sid419690@id-419690.lymington.irccloud.com) |
| 05:03:42 | → | degraafk joins (sid71464@id-71464.lymington.irccloud.com) |
| 05:03:42 | → | wallymathieu joins (sid533252@id-533252.uxbridge.irccloud.com) |
| 05:03:42 | → | nisstyre joins (wes@user/nisstyre) |
| 05:03:42 | → | ario joins (~ario@159.65.220.102) |
| 05:03:42 | → | S11001001 joins (sid42510@id-42510.ilkley.irccloud.com) |
| 05:03:42 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 05:03:42 | → | delyan_ joins (sid523379@id-523379.hampstead.irccloud.com) |
| 05:03:42 | → | carter joins (sid14827@id-14827.helmsley.irccloud.com) |
| 05:03:42 | → | defanor joins (~defanor@tart.uberspace.net) |
| 05:03:42 | → | SanchayanMaity joins (sid478177@id-478177.hampstead.irccloud.com) |
| 05:03:42 | → | amir joins (sid22336@user/amir) |
| 05:03:42 | → | tinwood joins (~tinwood@canonical/tinwood) |
| 05:03:42 | → | Fangs joins (sid141280@id-141280.hampstead.irccloud.com) |
| 05:03:42 | → | minigrim0 joins (~minigrim0@2a01:4f9:6b:3416:68ba:8dff:fe58:a5ea) |
| 05:03:42 | → | dfordvm joins (~dfordivam@160.16.87.223.v6.sakura.ne.jp) |
| 05:03:42 | → | anderson joins (~anderson@user/anderson) |
| 05:03:42 | → | chessai joins (sid225296@id-225296.lymington.irccloud.com) |
| 05:03:42 | → | geekosaur[c] joins (sid609282@xmonad/geekosaur) |
| 05:03:42 | → | lally joins (sid388228@id-388228.uxbridge.irccloud.com) |
| 05:03:42 | → | PotatoGim joins (sid99505@id-99505.lymington.irccloud.com) |
| 05:03:42 | → | jmct joins (sid160793@id-160793.tinside.irccloud.com) |
| 05:03:42 | → | Jon joins (jon@dow.land) |
| 05:03:42 | → | buhman joins (sid411355@user/buhman) |
| 05:03:42 | → | sphynx joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) |
| 05:03:42 | → | DigitalKiwi joins (~kiwi@2604:a880:400:d0::1ca0:e001) |
| 05:03:42 | → | krjt joins (~krjst@2604:a880:800:c1::16b:8001) |
| 05:03:42 | → | ChanServ joins (ChanServ@services.libera.chat) |
| 05:03:42 | molybdenum.libera.chat | sets mode +o ChanServ |
| 05:03:58 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 255 seconds) |
| 05:03:58 | × | biberu quits (~biberu@user/biberu) (Max SendQ exceeded) |
| 05:03:58 | × | jakesyl____ quits (sid56879@id-56879.hampstead.irccloud.com) (Max SendQ exceeded) |
| 05:03:58 | × | hook54321 quits (sid149355@user/hook54321) (Max SendQ exceeded) |
| 05:03:58 | × | NiKaN quits (sid385034@2a03:5180:f:1::5:e00a) (Max SendQ exceeded) |
| 05:03:58 | × | joel135 quits (sid136450@id-136450.hampstead.irccloud.com) (Max SendQ exceeded) |
| 05:03:58 | × | shailangsa quits (~shailangs@host86-186-196-224.range86-186.btcentralplus.com) (Max SendQ exceeded) |
| 05:03:58 | × | haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Excess Flood) |
| 05:03:58 | × | Fischmiep quits (~Fischmiep@user/Fischmiep) (Max SendQ exceeded) |
| 05:03:58 | × | dsrt^ quits (~cd@c-66-56-7-24.hsd1.ga.comcast.net) (Max SendQ exceeded) |
| 05:03:58 | → | mrmr158 joins (~mrmr@user/mrmr) |
| 05:03:58 | × | Pixi quits (~Pixi@user/pixi) (Max SendQ exceeded) |
| 05:03:59 | × | sympt quits (~sympt@user/sympt) (Max SendQ exceeded) |
| 05:03:59 | → | Fischmiep joins (~Fischmiep@user/Fischmiep) |
| 05:03:59 | × | mrmr15 quits (~mrmr@user/mrmr) (Max SendQ exceeded) |
| 05:03:59 | mrmr158 | is now known as mrmr15 |
| 05:03:59 | × | arahael quits (~arahael@1.145.115.51) (Quit: leaving) |
| 05:03:59 | → | joel135 joins (sid136450@id-136450.hampstead.irccloud.com) |
| 05:04:06 | → | Pixi joins (~Pixi@user/pixi) |
| 05:04:27 | → | sympt joins (~sympt@user/sympt) |
| 05:04:32 | → | dsrt^ joins (~cd@c-66-56-7-24.hsd1.ga.comcast.net) |
| 05:04:44 | × | Guest3051 quits (sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 243 seconds) |
| 05:04:56 | → | biberu joins (~biberu@user/biberu) |
| 05:05:27 | → | jakesyl____ joins (sid56879@id-56879.hampstead.irccloud.com) |
| 05:05:39 | → | NiKaN joins (sid385034@id-385034.helmsley.irccloud.com) |
| 05:05:47 | → | hook54321 joins (sid149355@user/hook54321) |
| 05:06:18 | → | haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com) |
| 05:06:18 | × | haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Read error: Connection reset by peer) |
| 05:06:39 | → | haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com) |
| 05:07:04 | → | Guest3051 joins (sid1055@id-1055.tinside.irccloud.com) |
| 05:08:53 | → | michalz joins (~michalz@185.246.207.222) |
| 05:12:14 | → | acidjnk joins (~acidjnk@p200300d6e7072f13848a4652d3a909c0.dip0.t-ipconnect.de) |
| 05:14:22 | → | qqq joins (~qqq@92.43.167.61) |
| 05:23:55 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 05:26:15 | → | iteratee joins (~kyle@162.218.222.207) |
| 05:28:05 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:32:23 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 05:36:33 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 05:36:48 | × | acidjnk quits (~acidjnk@p200300d6e7072f13848a4652d3a909c0.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 05:39:49 | × | christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (Server closed connection) |
| 05:39:58 | → | christiaanb joins (sid84827@id-84827.lymington.irccloud.com) |
| 05:40:13 | → | sm joins (~sm@plaintextaccounting/sm) |
| 05:43:28 | zero | is now known as yin |
| 05:46:03 | → | shailangsa joins (~shailangs@host86-186-196-224.range86-186.btcentralplus.com) |
| 05:56:30 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 05:58:37 | → | CiaoSen joins (~Jura@2a05:5800:29f:6f00:664b:f0ff:fe37:9ef) |
| 06:02:09 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 245 seconds) |
| 06:04:02 | → | acidjnk joins (~acidjnk@p200300d6e7072f13dd7273edbfdb54c8.dip0.t-ipconnect.de) |
| 06:04:38 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 246 seconds) |
| 06:05:33 | × | yandere quits (sid467876@id-467876.ilkley.irccloud.com) (Server closed connection) |
| 06:05:43 | → | yandere joins (sid467876@id-467876.ilkley.irccloud.com) |
| 06:06:45 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 06:08:46 | × | SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (Server closed connection) |
| 06:09:30 | → | SrPx joins (sid108780@id-108780.uxbridge.irccloud.com) |
| 06:10:44 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:11:56 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
| 06:15:44 | → | aaronv joins (~aaronv@user/aaronv) |
| 06:20:30 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:29:36 | × | cafkafk quits (~cafkafk@fsf/member/cafkafk) (Ping timeout: 246 seconds) |
| 06:30:44 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2) |
| 06:30:49 | → | chomwitt joins (~chomwitt@2a02:587:7a0c:4d00:1ac0:4dff:fedb:a3f1) |
| 06:31:47 | → | cafkafk joins (~cafkafk@fsf/member/cafkafk) |
| 06:31:54 | → | mmhat joins (~mmh@p200300f1c7178aebee086bfffe095315.dip0.t-ipconnect.de) |
| 06:35:05 | × | bliminse quits (~bliminse@user/bliminse) (Ping timeout: 246 seconds) |
| 06:47:49 | × | jludwig quits (~justin@li657-110.members.linode.com) (Server closed connection) |
| 06:48:12 | → | jludwig joins (~justin@li657-110.members.linode.com) |
| 06:52:19 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:d785:ed50:6a7:a156) |
| 06:53:30 | darksatanic | is now known as darkling |
| 06:55:49 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:03:42 | × | shapr quits (~user@c-67-160-55-153.hsd1.wa.comcast.net) (Ping timeout: 255 seconds) |
| 07:05:33 | → | jackneill__ joins (~Jackneill@20014C4E1E101A00E9F1E1049A19AA9C.dsl.pool.telekom.hu) |
| 07:10:57 | → | privacy joins (~privacy@47.219.84.6) |
| 07:13:31 | → | danza joins (~francesco@151.37.250.249) |
| 07:16:26 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 07:21:32 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 07:24:26 | → | outerh3ll joins (~outerhell@user/outerh3ll) |
| 07:28:08 | aforemny_ | is now known as aforemny |
| 07:30:51 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 07:35:56 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 07:37:13 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:37:17 | × | danza quits (~francesco@151.37.250.249) (Ping timeout: 255 seconds) |
| 07:37:41 | × | outerh3ll quits (~outerhell@user/outerh3ll) (Quit: WeeChat 4.0.4) |
| 07:38:53 | → | outerh3ll joins (~outerhell@user/outerh3ll) |
| 07:39:07 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 07:39:32 | × | outerh3ll quits (~outerhell@user/outerh3ll) (Client Quit) |
| 07:41:06 | → | brankow joins (~brankow@95.180.100.181) |
| 07:44:14 | → | robobub joins (uid248673@id-248673.uxbridge.irccloud.com) |
| 07:46:21 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 07:49:43 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 07:51:49 | → | oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
| 07:52:05 | → | gentauro joins (~gentauro@user/gentauro) |
| 07:54:50 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 255 seconds) |
| 07:59:17 | → | chele joins (~chele@user/chele) |
| 08:00:31 | × | aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection) |
| 08:00:49 | → | aaronv joins (~aaronv@user/aaronv) |
| 08:11:35 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 08:16:39 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 08:18:56 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:21:19 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 245 seconds) |
| 08:24:58 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b93b:6165:58a2:3e5e) (Remote host closed the connection) |
| 08:27:52 | <probie> | Does anyone here have strong preferences about GraphQL server libraries? |
| 08:30:41 | <[exa]> | I wish there would be good ones |
| 08:31:35 | → | mysl joins (~mysl@user/mysl) |
| 08:32:36 | × | phma quits (~phma@2001:5b0:210f:7168:cc95:7518:e3ef:e00e) (Read error: Connection reset by peer) |
| 08:32:39 | <probie> | As far as I can tell, of those that are maintained there's Morpheus, which is a bit too opinionated for me |
| 08:33:30 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:33:38 | → | phma joins (~phma@2001:5b0:211c:cea8:446a:c697:5d5a:83a7) |
| 08:37:13 | → | ubert2 joins (~Thunderbi@178.115.39.254.wireless.dyn.drei.com) |
| 08:38:15 | → | Inst joins (~Inst@120.244.192.250) |
| 08:38:16 | × | ubert quits (~Thunderbi@77.119.175.117.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 08:38:16 | ubert2 | is now known as ubert |
| 08:39:41 | <kuribas> | I started designing one, since I didn't like the existing ones. |
| 08:39:48 | <kuribas> | But it's on hold. |
| 08:40:44 | <kuribas> | Like a lot of haskell libraries, they are either to sofisticated, or to simple (just a clone of javascript libraries). |
| 08:41:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:41:50 | → | arahael joins (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) |
| 08:42:14 | <tomsmeding> | jackdk: do we? GHC.TypeNats.Nat is just NAtural |
| 08:42:16 | <tomsmeding> | *Natural |
| 08:43:02 | <Inst> | does anyone use IO as a monoid? |
| 08:43:12 | → | danza joins (~francesco@151.37.250.249) |
| 08:43:42 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:47:51 | <[exa]> | probie: kuribas: I actually needed to simplify it, full graphql querying doesn't at all by far allow reasonably federated evaluation |
| 08:49:16 | × | pavonia quits (~user@user/siracusa) (Ping timeout: 252 seconds) |
| 08:49:34 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 08:50:11 | × | danza quits (~francesco@151.37.250.249) (Ping timeout: 246 seconds) |
| 08:53:49 | → | danse-nr3 joins (~francesco@151.37.250.249) |
| 08:54:13 | → | pavonia joins (~user@user/siracusa) |
| 08:57:02 | <kuribas> | federated? |
| 08:57:27 | × | immae quits (~immae@2a01:4f8:141:53e7::) (Quit: WeeChat 3.3) |
| 08:57:47 | <tomsmeding> | Inst: "did anyone fix accelerate" what did you mean? |
| 08:58:10 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 08:59:33 | → | immae joins (~immae@2a01:4f8:141:53e7::) |
| 08:59:46 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b93b:6165:58a2:3e5e) |
| 09:01:01 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 258 seconds) |
| 09:07:08 | <[exa]> | kuribas: like with sparql, but preferably less b0rked |
| 09:09:13 | kuribas | doesn't know sparql |
| 09:09:39 | <Inst> | tomsmeding: well, is the hackage compiling on 9.4.x? |
| 09:09:53 | <Inst> | also, here's something interesting we're discussing on Discord, mainly because I misunderstood the applicative instance of IO |
| 09:09:54 | <tomsmeding> | Inst: the master branch is, as far as I know |
| 09:10:06 | <Inst> | newtype over IO [a] |
| 09:10:06 | <tomsmeding> | hackage is indeed lagging |
| 09:10:14 | <Inst> | get it to fail like a parser combinator when [a] is [] |
| 09:10:34 | <Inst> | i.e, cheap short-circuiting |
| 09:11:00 | <Inst> | erm, alternative instance, not applicative instance |
| 09:11:55 | <tomsmeding> | as in `newtype InstIO a = InstIO (IO [a])` ? |
| 09:12:00 | <Inst> | ya |
| 09:12:01 | <[exa]> | kuribas: happy you. :D |
| 09:12:09 | <Inst> | not familiar with asum |
| 09:12:16 | <Inst> | but that's a good approximation of fold, no? |
| 09:12:40 | <Inst> | so, io actions yielding some list type, map the newtype constructor onto the list of io actions, then asum |
| 09:12:46 | <Inst> | cheap short-circuiting? |
| 09:13:39 | <tomsmeding> | Inst: would it be a monad too? |
| 09:14:52 | <Inst> | ack, IO [IO [a]] |
| 09:15:09 | <Inst> | isn't ListT generally not producing a monad? :( |
| 09:15:47 | × | andjjj23 quits (~irc@107.170.228.47) (Server closed connection) |
| 09:16:04 | → | andjjj23 joins (~irc@107.170.228.47) |
| 09:17:26 | <kuribas> | fold uses <>, asum <|> |
| 09:17:46 | <tomsmeding> | Inst: https://paste.tomsmeding.com/nRdGemxt ? |
| 09:17:59 | <tomsmeding> | not sure about the monad instance |
| 09:18:00 | → | danse-nr3_ joins (~francesco@151.35.249.3) |
| 09:19:47 | <Inst> | only important thing was that i wanted cheap short-circuiting via the alternative |
| 09:20:29 | × | danse-nr3 quits (~francesco@151.37.250.249) (Ping timeout: 245 seconds) |
| 09:21:20 | <[Leary]> | If you really want cheap short-circuiting, just use the mechanism that's already built into IO? E.g. `\io -> io >>= \case{ [] -> throwIO EmptyList; x:xs -> pure (x:|xs) }`. |
| 09:22:04 | → | caryhartline joins (~caryhartl@168.182.58.169) |
| 09:23:35 | <danse-nr3_> | still unsure about the question. Short-circuiting for what? Could you write an instance of function you expect to short-circuit? |
| 09:23:44 | <jackdk> | tomsmeding: maybe I was too hopeful |
| 09:23:54 | → | Guest|2 joins (~Guest|2@150.214.58.89) |
| 09:23:55 | × | Guest|2 quits (~Guest|2@150.214.58.89) (Client Quit) |
| 09:28:48 | <Inst> | yeah, tired, will work on it later, was just surprised this wasn't IO type's default behavior |
| 09:29:19 | <tomsmeding> | monads doesn't care about what's in the returned value |
| 09:29:21 | <tomsmeding> | *don't |
| 09:29:31 | <tomsmeding> | indeed they can't, because of parametricity |
| 09:30:07 | <tomsmeding> | anything that does something special with a returned empty list from a monad M (e.g. IO) would have to look like 'data M a = M [a]' -- i.e. have the list embedded |
| 09:30:27 | <tomsmeding> | in (<|>) or (>>=) you have no clue what the 'a' is that you're passing on |
| 09:32:10 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:34:38 | × | Teacup quits (~teacup@user/teacup) (Server closed connection) |
| 09:34:49 | → | Teacup joins (~teacup@user/teacup) |
| 09:37:43 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 09:38:42 | <Inst> | tomsmeding: so, call it the Go monad / Go monoid informally? |
| 09:39:48 | <tomsmeding> | why "Go"? |
| 09:40:05 | <Inst> | IO monad with multiple return, no? |
| 09:40:18 | <tomsmeding> | it's a combination of the list monad (nondeterminism) with the IO monad |
| 09:40:36 | <Inst> | with a different alternative instance |
| 09:40:57 | <Inst> | that, unfortunately, isn't as ergonomic as you'd like it to be, but the problem I'm trying to solve is handling a combination of unrecoverable and recoverable exceptions |
| 09:41:07 | <Inst> | and outputting them to a result list |
| 09:41:13 | <tomsmeding> | These? |
| 09:41:31 | <tomsmeding> | https://hackage.haskell.org/package/monad-chronicle |
| 09:43:37 | <probie> | % import Control.Exception |
| 09:43:37 | <yahb2> | <no output> |
| 09:43:49 | <probie> | % catchErrs = foldr (\f k -> catch (f >> pure id) (\(SomeException e) -> pure (SomeException e:)) <*> k) (pure []) |
| 09:43:49 | <yahb2> | <interactive>:99:21: error: [-Wname-shadowing, -Werror=name-shadowing] ; This binding for ‘f’ shadows the existing binding ; defined at <interactive>:61:1 |
| 09:43:50 | <Inst> | interesting types |
| 09:44:15 | <probie> | % catchErrs [print 5, throwIO (userError "oh no"), print 7, print 42 >> throwIO (userError "sad")] |
| 09:44:15 | <yahb2> | <interactive>:101:1: error: ; Variable not in scope: catchErrs :: [IO ()] -> t |
| 09:44:16 | <tomsmeding> | % :set -Wno-error |
| 09:44:16 | <yahb2> | <no location info>: warning: [-Wunrecognised-warning-flags] ; unrecognised warning flag: -Wno-error |
| 09:44:22 | <Inst> | but tbh i'm just more attracted to the idea of using a different interface for IO monad |
| 09:44:30 | <tomsmeding> | % :unset -Werror |
| 09:44:30 | <yahb2> | don't know how to reverse -Werror |
| 09:44:35 | <tomsmeding> | -.- |
| 09:44:40 | <Inst> | instead of using it as a monad, using it as a monoid / alternative, and having roughly the same power as IO monad |
| 09:44:55 | <[Leary]> | % :set -Wwarn |
| 09:44:55 | <yahb2> | <no output> |
| 09:45:03 | <probie> | % foldr (\next k -> catch (next >> pure id) (\(SomeException e) -> pure (SomeException e:)) <*> k) (pure []) [print 5, throwIO (userError "oh no"), print 7, print 42 >> throwIO (userError "sad")] |
| 09:45:03 | <yahb2> | <interactive>:109:115: warning: [-Wtype-defaults] ; • Defaulting the following constraints to type ‘Integer’ ; (Num a0) arising from the literal ‘5’ at <interactive>:109:115 ; (... |
| 09:45:24 | <tomsmeding> | % :q |
| 09:45:24 | <yahb2> | <no output> |
| 09:45:26 | <tomsmeding> | % 42 |
| 09:45:27 | <yahb2> | 42 |
| 09:45:33 | <tomsmeding> | % import Control.Exception |
| 09:45:33 | <yahb2> | <no output> |
| 09:45:39 | <tomsmeding> | % catchErrs = foldr (\f k -> catch (f >> pure id) (\(SomeException e) -> pure (SomeException e:)) <*> k) (pure []) |
| 09:45:39 | <yahb2> | <no output> |
| 09:45:45 | <tomsmeding> | % catchErrs [print 5, throwIO (userError "oh no"), print 7, print 42 >> throwIO (userError "sad")] |
| 09:45:46 | <yahb2> | 5 ; 7 ; 42 ; [user error (oh no),user error (sad)] |
| 09:45:50 | <tomsmeding> | probie: ^ |
| 09:46:18 | <probie> | Inst: is that the sort of thing you want, or are you trying to do something else? |
| 09:46:26 | <Inst> | you're really the king of foldr, probie |
| 09:49:05 | <Inst> | seems close enough, i'm too tired, about to fall asleep |
| 09:49:56 | <Inst> | i already have code that's doing this in do notation, but i'm trying to set it up so i can do it via fold, foldMap', or something like that, the monoid method was just really attractive, shame alternative wasn't supportive |
| 09:52:09 | <Inst> | still, i'm guessing, the IO [a] newtype isn't interesting? |
| 09:52:51 | <Inst> | I'm also trying to figure out, how to get IO . []... ffff |
| 09:54:06 | × | danse-nr3_ quits (~francesco@151.35.249.3) (Remote host closed the connection) |
| 09:54:15 | <tomsmeding> | I mean, the data type is isomorphic to Compose IO [] |
| 09:54:20 | <tomsmeding> | but its instances probably differ |
| 09:54:29 | → | danse-nr3_ joins (~francesco@151.35.249.3) |
| 10:02:22 | × | ft quits (~ft@p508dbaa9.dip0.t-ipconnect.de) (Quit: leaving) |
| 10:02:22 | → | gensyst joins (~gensyst@user/gensyst) |
| 10:02:38 | × | CiaoSen quits (~Jura@2a05:5800:29f:6f00:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds) |
| 10:03:31 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 252 seconds) |
| 10:04:32 | <gensyst> | What are your opinions on prefixing record fields vs. NoFieldSelectors & having a proper ability to reuse record field names ?? |
| 10:04:40 | <gensyst> | I've been trying the latter, but it seems to have a massive disadvantage: Stuff like (\(Dog { name = x } -> x), and something similar, all over the place. The big offender: Having to type out the "Dog", losing the entire benefit of type inference (one of the great advertised Haskell benefits). |
| 10:04:44 | <gensyst> | Is this really a tradeoff? |
| 10:04:58 | <gensyst> | Or are there ways to make NoFieldSelectors more painless? |
| 10:05:03 | → | notzmv joins (~zmv@user/notzmv) |
| 10:05:10 | → | mysl joins (~mysl@user/mysl) |
| 10:05:28 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 10:10:29 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 245 seconds) |
| 10:11:03 | <jackdk> | gensyst: I usually use `generic-lens` with `import Data.Generics.Labels ()` and `-XOverloadedLabels` |
| 10:13:26 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 255 seconds) |
| 10:14:31 | → | Inst joins (~Inst@120.244.192.250) |
| 10:14:34 | <Inst> | hmmm |
| 10:14:43 | <Inst> | this is closer to a typeclass than a newtype with a different instance |
| 10:14:46 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 10:15:13 | <Inst> | short-term, i can implement this via an operator |
| 10:15:32 | <Inst> | within a where clause, less smelly use of custom operators |
| 10:16:39 | <Inst> | alternative doesn't work the way I expect, if the way I expect is lawful, I can just come up with a typeclass for it |
| 10:17:53 | → | fendor joins (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f) |
| 10:18:18 | <Inst> | XAlternative is unused, I assume XAlternative2 is unused as well |
| 10:18:26 | <Inst> | >||< is unused |
| 10:18:47 | <Inst> | falsy is unused |
| 10:19:21 | <Inst> | ^_^ is also unused, but sort of twee |
| 10:21:15 | <tomsmeding> | ^_^ is not a valid operator name unfortunately |
| 10:21:21 | <tomsmeding> | ^.^ is |
| 10:21:38 | <Inst> | already in hoogle |
| 10:21:50 | <Inst> | https://hackage.haskell.org/package/cubicbezier |
| 10:22:09 | <Inst> | i'm not good at abstract algebra or category theory, isn't Alternative essentially ad-hoc? |
| 10:22:20 | <Inst> | a monoid on applicative |
| 10:23:14 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 10:29:30 | <ncf> | it should at least be a monoid on f a, but sometimes other laws are required, see https://en.wikibooks.org/wiki/Haskell/Alternative_and_MonadPlus#Other_suggested_laws |
| 10:30:48 | <ncf> | you could also take the view that, while applicative functors are functors that preserve finite products, alternatives also preserve coproducts |
| 10:31:10 | <ncf> | this suggests a different typing: empty :: f Void; (<|>) :: f a -> f b -> f (Either a b) |
| 10:31:42 | <ncf> | see http://h2.jaguarpaw.co.uk/posts/alternatives-convert-products-to-sums/ |
| 10:32:23 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 10:33:58 | <kuribas> | Inst: do you have a question about cubicbezier? |
| 10:34:16 | <ncf> | one nice example of a functor that is both product-preserving (monoidal/applicative) and coproduct-preserving (alternative) is Decidable a = Yes a | No (a -> Void). it's not hard to see that if you can decide A and B, you can also decide (A, B) and Either A B |
| 10:34:57 | <ncf> | the interesting thing is that Decidable isn't even a Functor, because you can't map No contravariantly. it's an Invariant functor, so it doesn't fit the usual hierarchy Functor => Applicative => Alternative |
| 10:35:15 | <ncf> | anyhow this isn't very useful without dependent types |
| 10:35:56 | <Inst> | I mean cubicbeizier is using ^.^ |
| 10:38:10 | <Inst> | well, I'm trying to find a stabilization of XAlternative beyond "parser combinators work this why, why don't other Alternatives work the same way?" |
| 10:38:22 | → | puke joins (~puke@user/puke) |
| 10:38:53 | → | random-jellyfish joins (~random-je@user/random-jellyfish) |
| 10:39:59 | <ncf> | what's XAlternative? |
| 10:42:38 | × | Yumemi quits (~Yumemi@212.47.254.173) (Server closed connection) |
| 10:42:42 | <tomsmeding> | Inst: because for parser combinators, the list is inside the monad |
| 10:42:47 | <tomsmeding> | it's Parser a, not Parser [a] |
| 10:42:57 | → | Yumemi joins (~Yumemi@2001:bc8:47a0:1b14::1) |
| 10:43:56 | <Inst> | moreover, natively, <|> ends up consuming input |
| 10:44:08 | <Inst> | unless there's try built into the parser combinator |
| 10:44:14 | <Inst> | or try is applied |
| 10:44:23 | <tomsmeding> | that's very parser-combinator-specific semantics |
| 10:44:38 | <tomsmeding> | not all functors have a sense of "input" :p |
| 10:44:42 | <Inst> | ncf: a typeclass based on falsy and >||< |
| 10:44:59 | <Inst> | wherein falsy >||< a = a, a >||< _ = a |
| 10:46:44 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 255 seconds) |
| 10:48:38 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 10:48:39 | <ncf> | those laws together imply a = falsy for all a |
| 10:48:43 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds) |
| 10:49:26 | <ncf> | a =(1) falsy >||< a =(2) falsy |
| 10:50:46 | <tomsmeding> | ncf: presumably the second law only holds if the first argument doesn't reduce to 'falsy' |
| 10:51:10 | <Inst> | falsy >||< a = a; a >||< _ = a |
| 10:51:31 | <ncf> | so you depend on Eq? |
| 10:51:33 | <Inst> | afaik it's a lawful definition for applicative |
| 10:51:46 | <Inst> | erm, alternative |
| 10:52:07 | <ncf> | are functors involved? what's the type of falsy and (>||<)? |
| 10:52:51 | <Inst> | falsy is basically how I'd imagine alternative generally worked until I found out stuff like, well, instance [a] where <|> = <> |
| 10:53:22 | <Inst> | so a valid implementatino for XAlternative would also be valid for Applicative |
| 10:53:26 | <Inst> | erm, Alternative |
| 10:53:46 | <Inst> | you could define list that way too |
| 10:54:13 | <gensyst> | jackdk, sigh... another (probably useful) library without a tutorial |
| 10:58:35 | <gensyst> | right? |
| 11:02:51 | <probie> | gensyst: are you referring to generic-lens, or something else? |
| 11:04:41 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 11:06:28 | <danse-nr3_> | i always assumed that if i could not understand a library considering its reduced doc, i was on the wrong stage of the evolution of an haskell programmer |
| 11:07:06 | <gensyst> | probie, yeah generic-lens. here's the quote: |
| 11:07:07 | <gensyst> | jackdk> gensyst: I usually use `generic-lens` with `import Data.Generics.Labels ()` and `-XOverloadedLabels` |
| 11:08:02 | <gensyst> | Are lenses "*the* way" to allow both duplicate record names and avoid all the pain if I would try doing it without lenses (e.g. NoFieldSelectors)?? |
| 11:08:09 | <gensyst> | maybe the time has come to bite the bullet, and get into lenses |
| 11:08:22 | <gensyst> | but that only raises more questions... lens vs. generic-lens, etc. |
| 11:08:47 | <gensyst> | Quick recap from above comments of mine: |
| 11:08:47 | <probie> | So if you've got a field call "foo", and have derived Generic, you can go `thing ^. #foo` to extract foo from thing |
| 11:08:47 | <gensyst> | <gensyst> What are your opinions on prefixing record fields vs. NoFieldSelectors & having a proper ability to reuse record field names ?? |
| 11:08:54 | <gensyst> | <gensyst> I've been trying the latter, but it seems to have a massive disadvantage: Stuff like (\(Dog { name = x } -> x), and something similar, all over the place. The big offender: Having to type out the "Dog", losing the entire benefit of type inference (one of the great advertised Haskell benefits). |
| 11:09:48 | <probie> | `generic-lens` is used in addition to `lens` - it just gives you "lenses for free" and doesn't require TH |
| 11:10:00 | <danse-nr3_> | i guess lenses should actually be orthogonal to the problem of naming selectors, but maybe you want to learn the solution with lenses to save some time as they are often better than regular selectors |
| 11:11:45 | × | privacy quits (~privacy@47.219.84.6) (Quit: Leaving) |
| 11:12:48 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 11:13:05 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 11:14:36 | → | xff0x joins (~xff0x@2405:6580:b080:900:6189:4408:b965:9b16) |
| 11:15:41 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 11:18:12 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 11:22:09 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:23:07 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds) |
| 11:25:19 | × | waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Quit: WeeChat 4.0.2) |
| 11:28:09 | × | malte quits (~malte@mal.tc) (Remote host closed the connection) |
| 11:41:29 | <danse-nr3_> | had never heard about the Go monad before |
| 11:42:00 | × | aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection) |
| 11:42:25 | → | aaronv joins (~aaronv@user/aaronv) |
| 11:46:08 | → | Square joins (~Square4@user/square) |
| 11:47:59 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 245 seconds) |
| 11:49:02 | × | danse-nr3_ quits (~francesco@151.35.249.3) (Ping timeout: 246 seconds) |
| 11:49:37 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 11:52:13 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 11:53:48 | → | danse-nr3_ joins (~francesco@151.35.249.3) |
| 11:54:23 | <danse-nr3_> | i cannot even find it anywhere https://hoogle.haskell.org/?hoogle=Go |
| 12:05:05 | <carbolymer> | why ghc is complaining: Redundant constraint: HasCallStack |
| 12:05:10 | <carbolymer> | doesn't make sense to me |
| 12:05:43 | <carbolymer> | oh... actually it does |
| 12:05:51 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:05:58 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 12:06:06 | <carbolymer> | I'm using HasCallstack on a function which calls functions which do not have HasCallStack |
| 12:10:23 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 258 seconds) |
| 12:14:48 | × | ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Quit: WeeChat 4.0.3) |
| 12:16:34 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 12:28:35 | <gensyst> | probie, danse-nr3_ thanks for the input |
| 12:28:54 | <gensyst> | danse-nr3_> "i guess lenses should actually be orthogonal to the problem of naming selectors" |
| 12:29:06 | <gensyst> | why? with lenses, i can have same record names for different types without issues, right? |
| 12:30:59 | <danse-nr3_> | i doubt it, but i guess if you pursue a solution to have same lens names, you will enable some extension that allows same selector names anyways |
| 12:32:16 | <danse-nr3_> | it is just an abstraction more on top of the problem. Might save you some time as you will probably want to eventually use that abstraction anyways |
| 12:33:14 | <gensyst> | so with lenses with same names, i'll still have to resort to (\(Dog { name = x } -> x) shenanigans (as with NoFieldSelectors)? |
| 12:33:23 | <gensyst> | jackdk, look forward to your input if you're still around |
| 12:34:22 | <danse-nr3_> | i am not sure that you need that shenigan in the first place, but my answer is no, you might have to resort to completely different shenigans |
| 12:34:55 | <danse-nr3_> | sorry, your original problem is a bit far away in the chat. If you want to come back to it, might have to state it again |
| 12:35:56 | <gensyst> | Here's the original: |
| 12:35:58 | <gensyst> | --- |
| 12:35:59 | <gensyst> | <gensyst> What are your opinions on prefixing record fields vs. NoFieldSelectors & having a proper ability to reuse record field names ?? |
| 12:36:00 | <gensyst> | <gensyst> I've been trying the latter, but it seems to have a massive disadvantage: Stuff like (\(Dog { name = x } -> x), and something similar, all over the place. The big offender: Having to type out the "Dog", losing the entire benefit of type inference (one of the great advertised Haskell benefits). |
| 12:36:00 | <gensyst> | <gensyst> Is this really a tradeoff? |
| 12:36:00 | <gensyst> | <gensyst> Or are there ways to make NoFieldSelectors more painless? |
| 12:36:01 | <gensyst> | --- |
| 12:37:23 | × | shailangsa quits (~shailangs@host86-186-196-224.range86-186.btcentralplus.com) (Remote host closed the connection) |
| 12:37:55 | <danse-nr3_> | i think you cannot use `name` and expect the compiler to infer the type, although i am not very familiar with these extensions. I do not think (\(Dog { name = x } -> x) is needed though, probably just something like Dog.name |
| 12:37:59 | × | robertm quits (robertm@lattice.rojoma.com) (Server closed connection) |
| 12:38:18 | → | robertm joins (robertm@lattice.rojoma.com) |
| 12:38:27 | <danse-nr3_> | maybe we can play a bit with the interpreter and figure out |
| 12:38:39 | <danse-nr3_> | % set -XNoFieldSelectors |
| 12:38:39 | <yahb2> | <interactive>:13:1: error: ; • Variable not in scope: set ; • Perhaps you meant ‘seq’ (imported from Prelude) ; ; <interactive>:13:6: error: ; Data constructor not in scope: XNoFieldSe... |
| 12:38:48 | <danse-nr3_> | % :set -XNoFieldSelectors |
| 12:38:48 | <yahb2> | <no output> |
| 12:39:08 | <danse-nr3_> | % data Dog { name :: String } |
| 12:39:08 | <yahb2> | <interactive>:17:10: error: ; Unexpected type ‘{name :: String}’ ; In the data declaration for ‘Dog’ ; A data declaration should have form ; data Dog a = ... |
| 12:39:15 | <danse-nr3_> | % data Dog = Dog { name :: String } |
| 12:39:15 | <yahb2> | <no output> |
| 12:39:24 | <danse-nr3_> | % data Cat = Cat { name :: String } |
| 12:39:24 | <yahb2> | <no output> |
| 12:39:33 | <danse-nr3_> | % :t Dog.name |
| 12:39:33 | <yahb2> | <interactive>:1:1: error: ; Not in scope: ‘Dog.name’ ; No module named ‘Dog’ is imported. |
| 12:39:52 | <danse-nr3_> | some other extension might be needed |
| 12:39:56 | <danse-nr3_> | % :t name |
| 12:39:56 | <yahb2> | <interactive>:1:1: error: ; • Variable not in scope: name ; • NB: ‘name’ is a field selector belonging to the type ‘Cat’ ; that has been suppressed by NoFieldSelectors |
| 12:42:30 | <danse-nr3_> | possibly this one https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/overloaded_record_dot.html gensyst |
| 12:42:58 | <danse-nr3_> | % :set -XOverloadedRecordDot |
| 12:42:58 | <yahb2> | <no output> |
| 12:43:05 | <danse-nr3_> | % :t Dog.name |
| 12:43:05 | <yahb2> | <interactive>:1:1: error: ; Not in scope: ‘Dog.name’ ; No module named ‘Dog’ is imported. |
| 12:43:23 | × | mjs2600 quits (~mjs2600@174.169.225.239) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:43:26 | <stefan-_> | % dog = Dog "foo" |
| 12:43:27 | <yahb2> | <no output> |
| 12:43:29 | <stefan-_> | % dog.name |
| 12:43:29 | <yahb2> | "foo" |
| 12:43:43 | <stefan-_> | the dot syntax works at the value level |
| 12:43:51 | <danse-nr3_> | thanks stefan-_ |
| 12:44:07 | <danse-nr3_> | and possibly this also gives you what you wanted gensyst, let us see... |
| 12:44:13 | <danse-nr3_> | % :t (.name) |
| 12:44:13 | <yahb2> | (.name) :: GHC.Records.HasField "name" r a => r -> a |
| 12:44:43 | <danse-nr3_> | looks like it, your `.name` that will play nicely with type inference |
| 12:45:10 | → | mjs2600 joins (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) |
| 12:45:24 | <gensyst> | woah.... hmmmmmm |
| 12:45:39 | <gensyst> | but this already gives you the biggest benefits of lenses |
| 12:45:42 | <gensyst> | record syntax |
| 12:46:00 | <danse-nr3_> | lenses have a lot of benefits, it is a big library |
| 12:46:22 | <danse-nr3_> | and even just `get`, `set` and `over` are handy enough to justify its use |
| 12:46:44 | <danse-nr3_> | sorry ... that was not `get`, it is actually called `view` |
| 12:47:20 | <danse-nr3_> | unfortunately it is not very easy to approach as a library, so you might want to keep it for later |
| 12:48:51 | × | terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Ping timeout: 255 seconds) |
| 12:49:34 | <gensyst> | thanks! |
| 12:49:59 | <danse-nr3_> | you are welcome! Now my battery is over. Bye |
| 12:50:13 | <gensyst> | danse-nr3_, this is on my list https://leanpub.com/optics-by-example |
| 12:50:18 | <gensyst> | goodbye! |
| 12:50:35 | → | terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::) |
| 12:51:13 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 240 seconds) |
| 12:51:42 | <stefan-_> | gensyst, for a short introduction you can check: https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/a-little-lens-starter-tutorial |
| 12:52:07 | <stefan-_> | I recently also read a bit Optics by Example, was quite a good read so far |
| 12:52:34 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds) |
| 12:52:55 | <gensyst> | stefan-_, nice thanks |
| 12:53:15 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds) |
| 12:54:31 | <stefan-_> | gensyst, and I found this a quite good introduction to all the extensions: https://github.com/mtamc/generic-lens-modern-setup |
| 12:54:32 | × | danse-nr3_ quits (~francesco@151.35.249.3) (Ping timeout: 255 seconds) |
| 12:55:13 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 12:58:07 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 12:58:07 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 12:58:07 | → | wroathe joins (~wroathe@user/wroathe) |
| 12:59:42 | <ddellacosta> | gensyst: optics by example is great btw, it probably helped me get a basic level of familiarity with non-trivial lens concepts more than anything |
| 13:00:04 | <ddellacosta> | definitely recommend picking that up soon if it's already on your list |
| 13:01:54 | <gensyst> | very, very nice |
| 13:02:34 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds) |
| 13:02:35 | <gensyst> | stefan-_, ddellacosta I can see end of the tunnel now. Haskell learning curve essential end, because Haskell progress seems to have stagnated a bit (imo a great thing) |
| 13:03:00 | <gensyst> | for me things remaining: lenses (optics by example book), type level magic (thinking with types book), and concurrency (marlow book) |
| 13:03:07 | <gensyst> | after that i'm basically "done" i think |
| 13:03:15 | <gensyst> | unless dependent types come along |
| 13:03:27 | <gensyst> | which could take... a few years at least? |
| 13:04:01 | <gensyst> | so at least newbies nowadays know how long the road will be. this was not the case a few years ago. you just kept learning, and learning, and learning,... and you had no idea where things would end |
| 13:05:17 | → | danse-nr3_ joins (~francesco@151.35.249.3) |
| 13:14:52 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 13:15:57 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 13:17:28 | <jackdk> | I would not consider optics essential (though it is very useful), and I would delay thinking with types and the Marlow book (though both are probably excellent) |
| 13:18:20 | → | danse-nr3__ joins (~francesco@151.37.243.136) |
| 13:18:39 | × | danse-nr3_ quits (~francesco@151.35.249.3) (Read error: Connection reset by peer) |
| 13:19:23 | <gensyst> | jackdk, can you elaborate on those three? |
| 13:20:17 | → | shailangsa joins (~shailangs@host86-186-196-224.range86-186.btcentralplus.com) |
| 13:21:01 | <jackdk> | I find it easier to understand the solutions people have come up with if I've seen the problems they've faced. Therefore, write Haskell, hit problems, then go looking for the solutions. If you stick to reasonably flat records, you can do without lens for quite a while (despite it being really awesome). You can also do a lot without typelevel magic or concurrency, so defer them to later instead of trying to learn the entire ecosystem up front |
| 13:22:02 | <gensyst> | ok i see what you mean |
| 13:22:07 | <gensyst> | thanks |
| 13:22:14 | <gensyst> | so those are, wait until you need them |
| 13:22:23 | <dminuoso> | This is a difficult process in general though. For instance, you couldnt want to first write your own HTTP server before using warp. |
| 13:22:36 | <jackdk> | Haskell's iconic feature is laziness, after all |
| 13:22:41 | <dminuoso> | Its also difficult to have the foresight to know when the attempt is pointless. |
| 13:23:04 | <jackdk> | read enough to know _that_ there are these problems and the names (and maybe the outlines) of the solutions, but then go and write some code |
| 13:23:37 | <dminuoso> | But yeah, optics is definitely not essential (unless you are interfacing with a library that imposes this requirement onto you). |
| 13:24:56 | <gensyst> | You guys have, BTW, blown my mind today with NoFieldSelectors. How did I not know about this. |
| 13:25:09 | <gensyst> | stefan-_, the setup you linked to is imo the way. should be standardized |
| 13:25:16 | <gensyst> | and advocated on the whole planet |
| 13:25:29 | <gensyst> | sorry, I meant |
| 13:25:35 | <gensyst> | OverloadedRecordDot |
| 13:25:42 | <gensyst> | (on top of NoFieldSelectors) |
| 13:26:02 | <gensyst> | How did I not know about OverloadedRecordDot??? This is obviously the future |
| 13:26:13 | × | qqq quits (~qqq@92.43.167.61) (Ping timeout: 240 seconds) |
| 13:26:18 | <gensyst> | Every newbie will wonder why nobody mentioned it to them in the beginning. |
| 13:26:25 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 255 seconds) |
| 13:26:26 | <danse-nr3__> | i saw the two extensions bundled together in some doc, but could not retrieve it again |
| 13:28:37 | <danse-nr3__> | how did you get to NoFieldSelectors? Maybe we can improve some wiki page |
| 13:29:16 | → | ystael joins (~ystael@user/ystael) |
| 13:30:27 | <gensyst> | danse-nr3__, probably after googling in frustration about some "name clashes" stuff |
| 13:30:40 | <danse-nr3__> | :P |
| 13:34:07 | <gensyst> | Mind-blowing.... unless I'm mistaken, this will allow me (among other things) to put the same "un" name into each newtype: |
| 13:34:12 | <gensyst> | newtype Foo = Foo { un :: Int } |
| 13:34:12 | <gensyst> | newtype Bar = Bar { un :: Int } |
| 13:34:24 | <gensyst> | no need to think about "unFoo" and "unBar" pitas |
| 13:34:44 | <danse-nr3__> | cool, had not thought about that |
| 13:34:52 | <gensyst> | Pure bliss |
| 13:35:42 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 13:35:42 | <danse-nr3__> | i guess this is an opportunity to define a conventional name for those cases, although `un` sounds good to me |
| 13:36:19 | <danse-nr3__> | considering the knowledge most haskellers have, there is probably a more scientific choice |
| 13:38:10 | <EvanR> | why isn't the point of having the newtype field name with NoFieldSelectors |
| 13:38:16 | <EvanR> | what is the point* |
| 13:38:56 | <gensyst> | EvanR, we're talking in combination with OverloadedRecordDot |
| 13:39:01 | <gensyst> | let a = foo.un |
| 13:39:04 | <gensyst> | let b = bar.un |
| 13:39:32 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 255 seconds) |
| 13:39:49 | <EvanR> | cool, now when you want map over something and unFoo, you can write like map (\foo -> foo.un) stuff instead of map unFoo stuff |
| 13:40:11 | <danse-nr3__> | actually you can just use (.un), no need for lambdas |
| 13:40:14 | <danse-nr3__> | to feed the brainstorming, i suggest `de`. Because if `Foo` is a constructor, `de` would be a deconstructor? Not sure the term exists |
| 13:40:56 | <danse-nr3__> | but on the other hand, `un` is closer to most usages in current haskell code |
| 13:41:08 | <EvanR> | why does it need to be 1 or 2 characters long |
| 13:41:15 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 13:41:18 | <EvanR> | unwrap |
| 13:41:19 | <danse-nr3__> | it does not. Of course, brevity helps |
| 13:41:37 | <danse-nr3__> | yeah, "wrapper" is a bit an overloaded term in programming |
| 13:41:46 | <EvanR> | it helps people point at haskell and say, look, incomprehensible |
| 13:42:14 | <EvanR> | (to be fair, shit like "yes! call it `un'" is common in every other language |
| 13:42:15 | × | caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline) |
| 13:42:16 | <EvanR> | ) |
| 13:42:41 | <EvanR> | hopefully we learn from their mistakes |
| 13:43:14 | <gensyst> | danse-nr3__> "actually you can just use (.un), no need for lambdas" |
| 13:43:14 | <gensyst> | This is the part I'm finding so cool. Just replacing "recordName" with "(.recordName)" (of course not necessary in cases where the ".recordName" suffix works) just suddenly works, and everything typechecks magically, and all name clashes are magically gone. |
| 13:43:25 | <EvanR> | de is short for german or germany, unless we're in spanish or something |
| 13:43:39 | <danse-nr3__> | `dec`? |
| 13:43:57 | <EvanR> | it's a newtype unwrapper, a standard thing, unwrap makes sense to me |
| 13:44:05 | <EvanR> | no, monads are not based on unwrapping |
| 13:44:10 | <EvanR> | specifically |
| 13:44:21 | <EvanR> | but newtypes are |
| 13:45:21 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Tschüss) |
| 13:45:46 | <danse-nr3__> | i think i prefer `un` to `unwrap`, the concept of wrapping is way too overloaded |
| 13:46:29 | <EvanR> | in bad explanations of monads, yes |
| 13:46:40 | <EvanR> | what else are you thinking of |
| 13:46:45 | <gensyst> | I'll let others, powerful players decide documented conventions. I wrote "un" because I've seen "unFoo", "unBar", etc. many times. |
| 13:46:52 | <gensyst> | although I've also seen "getBar", etc. |
| 13:47:02 | <gensyst> | but get is so... boring lol |
| 13:47:17 | <EvanR> | also run |
| 13:47:21 | <gensyst> | yeah |
| 13:47:23 | <gensyst> | indeed |
| 13:47:27 | <dminuoso> | `runFoo` is something I like as well, if the (often monadic) combinators you use continously construct up some computation you can somehow later force. |
| 13:48:06 | <danse-nr3__> | not sure why you keep thinking about monads, as this is way more abstract |
| 13:48:12 | <EvanR> | though the runFoo stuff doesn't run anything, it just unwraps |
| 13:48:19 | <EvanR> | which is a no-op because newtypes |
| 13:48:41 | <haskellbridge> | <mauke> I invented the unFoo convention, but I probably wasn't the first |
| 13:48:45 | <dminuoso> | EvanR: well the `runFoo` is usually used in the spots where you actually force its inner thing. |
| 13:48:52 | <dminuoso> | So the `run` part is not unjustified. |
| 13:49:23 | <haskellbridge> | <mauke> Do we know who introduced it? |
| 13:49:40 | <dminuoso> | Given that the data/newtype wrapper will protect the innards from computation. |
| 13:49:59 | → | sm joins (~sm@plaintextaccounting/sm) |
| 13:50:05 | <EvanR> | danse-nr3__, you aren't giving any examples at all, really |
| 13:50:16 | <danse-nr3__> | which examples do you want? |
| 13:50:47 | <EvanR> | you can't call something unwrap because too many things (like what) Are Unwrapping In Haskell |
| 13:51:46 | <danse-nr3__> | https://en.wikipedia.org/wiki/Wrapper |
| 13:51:46 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 13:52:30 | <EvanR> | well this is a discussion about oop-like dot syntax so I guess it makes sense to go as far as we want to judge what stuff should be called or feel like |
| 13:52:37 | <EvanR> | instead of haskell context |
| 13:52:56 | <danse-nr3__> | XD |
| 13:52:57 | <dolio> | Personally I think the extension itself has design flaws. |
| 13:53:08 | <dolio> | .field is a poor choice of name. |
| 13:53:36 | <lortabac> | gensyst: I don't know if someone has already mentioned it, but Data.Coerce is probably a better tool for working with newtypes |
| 13:54:26 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 13:54:38 | <danse-nr3__> | where did you pick `.field` from dolio? |
| 13:54:48 | <dolio> | I mean using a dot. |
| 13:56:04 | <danse-nr3__> | i see, what had you used? |
| 13:56:08 | <lortabac> | dolio: why do you think so? dot only has 4 different meanings in Haskell /s |
| 13:56:22 | <dolio> | # maybe |
| 13:56:35 | <danse-nr3__> | yeah, a bit noisy |
| 13:57:12 | <danse-nr3__> | i think # is already used in haskell although i do not use it often |
| 13:57:58 | <dolio> | It's not used in anything common that I can think of. |
| 13:58:48 | <c_wraith> | isn't it used by the optics library? |
| 13:58:55 | <geekosaur> | # is already in use… for that, even |
| 13:59:13 | <dolio> | The overloaded record accessors would have predated that. |
| 14:00:00 | <EvanR> | # has precedent in other languages, ML? |
| 14:00:06 | <EvanR> | for record fields |
| 14:00:20 | <c_wraith> | # is also use by GHC internals with MagicHash, though that is a very specific syntactic extra case |
| 14:00:26 | × | nicole quits (ilbelkyr@libera/staff/ilbelkyr) (Quit: Reconnecting) |
| 14:00:29 | → | nicole joins (ilbelkyr@libera/staff/ilbelkyr) |
| 14:00:38 | <danse-nr3__> | anyways, we have not been nearly as "scientific" as i had hoped. Probably we will end up on no agreement and i guess i would stick on `un`. Anyways, thinking this as an isomorphism, we have a function `Foo` to go from a type to the other. We want to find a name for its inverse. Since `Foo` is a constructor, the other is a deconstructor, but being so common i suggest the shorter `de` or `dec` |
| 14:00:42 | <dolio> | Yeah, that's at the end of the name. |
| 14:01:14 | → | EdnaLuv joins (~EdnaLuv@2605:59c8:70dd:1300:345e:9be7:36f7:e799) |
| 14:01:29 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 14:02:11 | <c_wraith> | Not just names! ghci> :t 1#\n1# :: GHC.Prim.Int# |
| 14:03:00 | <c_wraith> | and "hello"# :: GHC.Prim.Addr# |
| 14:03:14 | <tomsmeding> | also OverloadedLabels |
| 14:03:40 | <EdnaLuv> | TSA Delta Flight 194 Ad - Be Careful What You Eat before Your Flight! A TSA public service ad urges air passengers to be mindful of what they eat before their flight to avoid another Delta 194 diarrhea spray incident. https://justpaste.it/Delta_194_TSA/ |
| 14:03:46 | ChanServ | sets mode +o geekosaur |
| 14:03:51 | geekosaur | sets mode +b *!*@2605:59c8:70dd:1300:345e:9be7:36f7:e799 |
| 14:03:51 | EdnaLuv | is kicked by geekosaur (EdnaLuv) |
| 14:03:57 | <tomsmeding> | geekosaur++ |
| 14:03:58 | geekosaur | sets mode -o geekosaur |
| 14:04:20 | <dolio> | Well, the labels thing just points to a kind of overall failure in these record extensions. |
| 14:05:39 | → | qqq joins (~qqq@92.43.167.61) |
| 14:08:51 | <dolio> | So, actually, the overloaded labels already used my choice much earlier, and allow something very similar. |
| 14:10:21 | <dolio> | You could have just had an extension that auto-declares labels for records, but OverloadedRecordDot decided to instead not do that and add a separate system for .field syntax, with the bad excuse that other languages use . for that. |
| 14:12:19 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 255 seconds) |
| 14:12:43 | × | qqq quits (~qqq@92.43.167.61) (Ping timeout: 240 seconds) |
| 14:28:35 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 14:31:35 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 14:40:09 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 258 seconds) |
| 14:41:29 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 14:42:03 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 14:42:24 | → | dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
| 14:47:43 | × | cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection) |
| 14:48:08 | → | cafkafk joins (~cafkafk@fsf/member/cafkafk) |
| 14:49:34 | → | phma_ joins (~phma@host-67-44-208-7.hnremote.net) |
| 14:50:33 | <ncf> | is there a way to, in a cabal.project file, say "use whatever version of foo is installed, and if you can't find any, fall back to this source-repository-package"? |
| 14:50:53 | <ncf> | it seems like the falling back is in the other direction |
| 14:51:29 | → | Guest|44 joins (~Guest|44@203.189.114.89.rev.vodafone.pt) |
| 14:51:54 | → | phma__ joins (phma@2001:5b0:211c:cea8:446a:c697:5d5a:83a7) |
| 14:51:56 | × | Guest|44 quits (~Guest|44@203.189.114.89.rev.vodafone.pt) (Client Quit) |
| 14:53:05 | × | cptaffe quits (~ZNC@2600:1700:f08:111f::18e7) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:53:20 | × | phma quits (~phma@2001:5b0:211c:cea8:446a:c697:5d5a:83a7) (Ping timeout: 255 seconds) |
| 14:53:44 | <c_wraith> | "is installed" isn't really a concept cabal v2 does. |
| 14:53:55 | × | phma_ quits (~phma@host-67-44-208-7.hnremote.net) (Ping timeout: 252 seconds) |
| 14:54:25 | <c_wraith> | (by which I mean the v2 UI, not specific versions) |
| 14:54:33 | phma__ | is now known as phma |
| 14:55:22 | <geekosaur> | well, `installed` is actually a thing, but you can't specify a fallback to a source-repository-package |
| 14:56:06 | → | cptaffe joins (~ZNC@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) |
| 14:58:16 | <ncf> | bummer |
| 15:03:14 | × | arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 255 seconds) |
| 15:08:21 | × | chomwitt quits (~chomwitt@2a02:587:7a0c:4d00:1ac0:4dff:fedb:a3f1) (Ping timeout: 255 seconds) |
| 15:12:10 | × | gensyst quits (~gensyst@user/gensyst) (Quit: Leaving) |
| 15:12:33 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:14:54 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b93b:6165:58a2:3e5e) (Remote host closed the connection) |
| 15:15:04 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:d785:ed50:6a7:a156) (Quit: WeeChat 2.8) |
| 15:15:10 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 15:19:58 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 15:22:24 | → | billchenchina joins (~billchenc@103.152.35.21) |
| 15:24:43 | × | fendor quits (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f) (Remote host closed the connection) |
| 15:24:48 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 15:31:38 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 15:35:14 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:38:12 | → | blomberg joins (~default_u@117.200.7.49) |
| 15:38:55 | <blomberg> | hey inside f there is g and inside g there is h, but that's just currying, what if i want both g and h side by side inside f, is that allowed? |
| 15:39:10 | <blomberg> | if so, that doesn't seeem functional? |
| 15:40:04 | <danse-nr3__> | could you make an example, blomberg? Can use an interpreter here with %, i will try something that follows your description, you can correct |
| 15:41:22 | <danse-nr3__> | % print "actually, i am not sure how to write what you described, please try yourself" |
| 15:41:22 | <yahb2> | "actually, i am not sure how to write what you described, please try yourself" |
| 15:42:15 | <danse-nr3__> | does > also work? |
| 15:42:20 | <danse-nr3__> | > print "yes" |
| 15:42:21 | <lambdabot> | <IO ()> |
| 15:42:24 | <blomberg> | i don't know where keyword does generates curried functions or function side by side |
| 15:43:59 | <danse-nr3__> | i do not understand what you mean |
| 15:44:16 | <blomberg> | i will show you pseudocode |
| 15:44:27 | <danse-nr3__> | alright |
| 15:45:50 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 15:45:54 | <blomberg> | def f(): { (def g(): return 3) ; (def h(): return 7) } |
| 15:46:29 | <blomberg> | notice g() and h() are not curried in f |
| 15:46:39 | <danse-nr3__> | i will try |
| 15:46:39 | <danse-nr3__> | % f = g + h where g = 3, h = 7 |
| 15:46:39 | <yahb2> | <interactive>:41:22: error: parse error on input ‘,’ |
| 15:47:27 | <blomberg> | def f(): { [def g(): def h(): return 7] } #now they are curried |
| 15:47:30 | <danse-nr3__> | % let g = 3 in let h = 7 in let f = g + h |
| 15:47:30 | <yahb2> | <interactive>:43:40: error: ; parse error (possibly incorrect indentation or mismatched brackets) |
| 15:47:48 | <int-e> | % f = g + h where g = 3; h = 7 |
| 15:47:49 | <yahb2> | <no output> |
| 15:47:50 | <blomberg> | def f(): { [def g(): return def h(): return 7] } #now they are curried |
| 15:47:52 | <int-e> | % f |
| 15:47:52 | <yahb2> | 10 |
| 15:47:56 | <danse-nr3__> | thanks int-e |
| 15:48:33 | <blomberg> | my question is if i use where and inside it define a function, and then in another clause define another function, they are side by side |
| 15:48:37 | <int-e> | `where` is at the declaration level; let ... in ... is an expression, so that's why the second attempt didn't work |
| 15:48:59 | <int-e> | s/declaration/binding/ I guess |
| 15:49:54 | <danse-nr3__> | thanks, maybe had to use parenthesis with `let`, but i will just try to remember ; the next time. I am still a bit confused about blomberg's question |
| 15:50:12 | <blomberg> | f x |x<3 = g^2 where g | x>3 = h where h --h and g are the expanded defintions of the functions |
| 15:51:10 | <blomberg> | int-e: what's declaration level vs expression inside functions don't they share the same scope |
| 15:51:30 | <blomberg> | ok let has local scope |
| 15:51:35 | <blomberg> | but i was talking about where |
| 15:51:52 | <danse-nr3__> | blomberg, in your first example f seems to return two functions |
| 15:52:36 | <blomberg> | danse-nr3__: not in haskell definitions dont' "return" unless explicitly mentioned via = sign |
| 15:52:57 | <blomberg> | danse-nr3__: look ^ |
| 15:53:05 | <blomberg> | danse-nr3__: f x |x<3 = g^2 where g | x>3 = h where h --h and g are the expanded defintions of the functions |
| 15:53:36 | → | caryhartline joins (~caryhartl@168.182.58.169) |
| 15:53:41 | <blomberg> | where g ; where h are just definitions they don't return it means they can't be curried and thus 2 definitions are there inside f |
| 15:54:07 | <blomberg> | what if there were multiple definitions inside f side-by-side , then that's not currying |
| 15:54:12 | <int-e> | blomberg: there are many scopes; each `let [bindings] in [expression]` creates a nested scope for the final expression. |
| 15:54:34 | <blomberg> | int-e: got it |
| 15:54:45 | <blomberg> | but that's not my question |
| 15:55:06 | <int-e> | blomberg: f x | [guards] = [expression] where [bindings] opens a scope for the guards and the expression |
| 15:55:23 | <danse-nr3__> | blomberg, could you collect a small example in haskell? The pseudocode is not very clear |
| 15:55:23 | <blomberg> | inside f there is g inside g there is h inside h there is i and inside i there is j . versus |
| 15:55:29 | <int-e> | "don't they share the same scope" made no sense to me. |
| 15:55:37 | <blomberg> | inside f there is g beside h beside i beside j ..... |
| 15:55:54 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 15:55:55 | <blomberg> | look i already showed you the code |
| 15:56:02 | → | ripspin joins (~chatzilla@1.145.166.245) |
| 15:56:12 | <blomberg> | f x |x<3 = g^2 where g | x>3 = h where h --h and g are the expanded defintions of the functions -- i can't be more clear than this |
| 15:56:21 | <yushyin> | well ... |
| 15:56:48 | <blomberg> | my question is clear, inside that code that i sent, are f->g->h curried or does haskell not curry then |
| 15:56:52 | → | shapr joins (~user@c-67-160-55-153.hsd1.wa.comcast.net) |
| 15:56:57 | <blomberg> | yushyin: please don't |
| 15:57:14 | <int-e> | what does currying have to do with scopes?! |
| 15:57:27 | <EvanR> | everything function is curried and takes exactly 1 argument |
| 15:57:35 | <EvanR> | every function |
| 15:57:48 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 15:57:48 | <blomberg> | int-e: nothing you mentioned let, so i said to you, that's irrelevant to my quesiton, please don't digress furthere |
| 15:57:49 | <EvanR> | surface syntax is just sugar |
| 15:57:57 | <blomberg> | EvanR: yes |
| 15:58:05 | <EvanR> | so there you go |
| 15:58:14 | <EvanR> | next |
| 15:58:18 | <blomberg> | EvanR: f x |x<3 = g^2 where g | x>3 = h where h --h and g are the expanded defintions of the functions -- i can't be more clear than this |
| 15:58:53 | <int-e> | That's not a question. |
| 15:58:56 | <yushyin> | you can repost your code many times, but that doesn't make it more clear what your actual question is |
| 15:59:01 | <EvanR> | also that's highly repetitious chat |
| 15:59:04 | <blomberg> | so what about in this case : where g ; g is not a function borrowed from outside but is defined |
| 15:59:24 | <int-e> | (Saying that your question is clear doesn't do anything to clarify your question.) |
| 15:59:49 | <EvanR> | blomberg what are you actually asking |
| 15:59:54 | <blomberg> | EvanR: f x |x<3 = g^2 where g x = x | x>3 = h where h x = x*2 |
| 15:59:55 | <geekosaur> | you keep saying "curried"; it seems to have nothing to do with your question |
| 16:00:29 | <EvanR> | maybe go get your question and code together in a compact form and come back with a link to it |
| 16:00:39 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 16:00:42 | <geekosaur> | if your question is "where are g and h in scope" then the answer is that "g" is in scope in "f" and "h" is in scope in "g" |
| 16:00:52 | <blomberg> | EvanR: f x |x<3 = g^2 where g x = x | x>3 = h where h x = x*2 --ok edited, are both g and h inside f ?so my question is can i have multiple functions "SIDE BY SIDE" |
| 16:01:11 | <EvanR> | go edit it more and come back |
| 16:01:18 | <EvanR> | instead of reposting over and over |
| 16:01:20 | <blomberg> | what ? |
| 16:01:24 | <geekosaur> | you can define "h" in the same where block as "g" and then it will be in scope in "f" |
| 16:01:53 | <geekosaur> | if you define it in its own "where" block, that block is local to the definition of "g" |
| 16:01:55 | <blomberg> | geekosaur: ok thx that's what i was asking, but the problem is it's not purely functional |
| 16:02:00 | <geekosaur> | so? |
| 16:03:26 | <blomberg> | {where h x = x*2; g x = g^2; } now these functions are defined SIDE BY SIDE |
| 16:03:31 | <EvanR> | where is attached to the definitions, rather than expressions, that might help you |
| 16:03:34 | <geekosaur> | that has to do with the difference between evaluation and execution, not with scoping |
| 16:03:48 | × | ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 16:03:56 | <blomberg> | EvanR: yes so it's not purely functional |
| 16:03:58 | <EvanR> | first where is attached to the definition for f, second where is attached to definition for g, which is inside the first where |
| 16:04:22 | <blomberg> | EvanR: yes but it's not purely functional |
| 16:04:31 | <geekosaur> | also what you just wrote is a type error because you used "g" both as a function and as a value, but I suspect you meant "x" for the second |
| 16:04:46 | <EvanR> | all 3 functions are purely functional functions |
| 16:04:48 | <geekosaur> | also there is nothing there so far that is not purely functional |
| 16:05:02 | <geekosaur> | what do you believe "purely functional" means? |
| 16:05:28 | → | Square2 joins (~Square4@user/square) |
| 16:05:40 | <int-e> | . o O ( bland, not curried ) |
| 16:05:45 | <geekosaur> | I really think you need to take a turn through the haskell wikibook at least to learn what Haskellers mean by things like "currying" and "purely functional" |
| 16:06:02 | <geekosaur> | because you're just causing confusion when you use them to mean something else |
| 16:06:08 | <blomberg> | well \x -> (\y -> (\z > value )) #this is curried but \x->(\y->value1 ; \z->value2) --look this is not curried |
| 16:06:19 | <int-e> | what is ";'? |
| 16:06:28 | <danse-nr3__> | was going to ask the same |
| 16:06:30 | <int-e> | you're making up syntax that doesn't exist |
| 16:06:39 | <int-e> | (in Haskell) |
| 16:06:44 | <blomberg> | ; is the "uncurry" that I just prepared for you int-e as my dish |
| 16:07:11 | danse-nr3__ | smells trolling |
| 16:07:14 | <blomberg> | int-e: in where that's where ; came from in my haskell code that you don't pay attention to |
| 16:07:24 | × | Square quits (~Square4@user/square) (Ping timeout: 240 seconds) |
| 16:07:27 | <EvanR> | it's not valid |
| 16:07:31 | <blomberg> | danse-nr3__: i am very serious |
| 16:07:46 | <EvanR> | your code is wrong |
| 16:08:06 | <blomberg> | {where h x = x*2; g x = g^2; } that's where the ; comes from it's the "uncurry" guys i have been reiterating to you over and over without trolling |
| 16:08:12 | <geekosaur> | uncurry means turning (a, b) -> c into a -> b -> c. no semicolons involved |
| 16:08:19 | <yushyin> | blomberg: it's not |
| 16:08:32 | <blomberg> | but you seem to take the ; as my uncurry dish just for you to eat and taste the uncurry!!!! |
| 16:08:36 | <geekosaur> | we have no idea what you are trying to say when you say "uncurry" because it's not that |
| 16:08:51 | <EvanR> | :t uncurry |
| 16:08:52 | <lambdabot> | (a -> b -> c) -> (a, b) -> c |
| 16:08:58 | int-e | leans back pointing towards https://www.haskell.org/onlinereport/haskell2010/haskellch4.html |
| 16:08:59 | <geekosaur> | reversed, sigh |
| 16:09:16 | → | qqq joins (~qqq@92.43.167.61) |
| 16:09:33 | <geekosaur> | in any case you may not be trolling but you are refusing to use terminology that will be understood and blaming us for it |
| 16:09:56 | <shapr> | uh oh, do I need my hat of power? |
| 16:09:56 | <blomberg> | evan (a,b) is my (a;b) assuming a and b are functions that's the uncurry |
| 16:10:14 | <blomberg> | EvanR:so how does haskell curry that up as it's side by side |
| 16:10:17 | <EvanR> | uncurry takes a function and a pair, not two functions |
| 16:10:23 | ChanServ | sets mode +o shapr |
| 16:10:23 | <blomberg> | side by side pay attention to this word |
| 16:10:56 | <shapr> | blomberg: if several people are taking issue with how you are expressing things, it may be a good time to consider what they are saying |
| 16:12:44 | <shapr> | you don't have to, but the alternative is likely removal from the discussion |
| 16:12:47 | <blomberg> | f->g->h that's fine i have no problem, but f->(g,h) that's i don't understand wehre is the explanation in https://www.haskell.org/onlinereport/haskell2010/haskellch4.html |
| 16:13:42 | <int-e> | FWIW the point of that link was that declarations and bindings are quite different from lambda abstractions. |
| 16:13:57 | × | exarkun quits (~exarkun@user/exarkun) (Server closed connection) |
| 16:14:07 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 16:14:30 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 16:14:53 | <blomberg> | int-e: in what way |
| 16:15:02 | <int-e> | you wouldn't understand |
| 16:15:09 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 16:15:14 | <yushyin> | perhaps learning haskell via a repl (ghci, lambdabot, yahb2) and using expanded layout syntax is not the most appropriate way, it seems to confuse you |
| 16:15:19 | <blomberg> | i know lambda calculus |
| 16:15:21 | → | exarkun joins (~exarkun@user/exarkun) |
| 16:15:28 | <shapr> | exarkun: hi, how's code? |
| 16:16:04 | <exarkun> | Hi shapr |
| 16:16:20 | <exarkun> | I have a function, `decode`, that takes a list of erasure-coded values. The list might be longer than the minimum threshold required to recover the encoded data. |
| 16:16:31 | <exarkun> | Also I have cryptographic hashes of chunks of both the inputs and outputs to the erasure coding process |
| 16:16:47 | <shapr> | ooh, this sounds like fun |
| 16:16:53 | <exarkun> | My function currently does not verify the hashes, it just takes the minimum number of required values and throws them at the decoder |
| 16:17:32 | <exarkun> | But now I would like it to verify the hashes, and also I would like it to recover with per-"chunk" granularity to hash verification failures (where possible) |
| 16:18:02 | <exarkun> | Should be kind of straightforward right? |
| 16:18:14 | <shapr> | I dunno, is the code in a repo I can see? |
| 16:18:47 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 246 seconds) |
| 16:18:49 | <shapr> | Does order matter when handing chunks to erasure decode? |
| 16:18:52 | <exarkun> | Also I have a property test that throws what should be fatal corruption into the encoded data and verifies it no longer decodes (but I don't have one that throws supposedly non-fatal corruption in and verifies that it still does yet) |
| 16:19:00 | <exarkun> | yes, it does |
| 16:19:27 | <shapr> | Is order something you can determine from only the values? |
| 16:19:53 | <exarkun> | The code is here, https://whetstone.private.storage/privatestorage/tahoe-chk/-/tree/20.validate-share-blocks?ref_type=heads |
| 16:20:01 | <exarkun> | no, you have to keep track of it |
| 16:20:04 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 16:20:36 | <exarkun> | The function takes the values to be decoded as a [(Int, Share)], where that Int needs to be passed along to the decoder |
| 16:20:45 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:21:21 | <exarkun> | The function that needs to do this work is Tahoe.CHK.decode (src/Tahoe/CHK.hs) |
| 16:22:33 | <exarkun> | The Share record has `shareBlocks` that gives a list of the chunks (maybe I should start calling them "blocks" now) |
| 16:22:49 | <exarkun> | It also has `shareBlockHashTree`, a merkle tree of the correct hashes of each block |
| 16:24:40 | <exarkun> | So, eg, `zipWith someHashCheckFunction (leafHashes . shareBlockHashTree $ share) (shareBlocks share)` would tell you something I think - give you a list of bools of the validity of each block of one share. |
| 16:25:21 | × | ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 246 seconds) |
| 16:25:29 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 245 seconds) |
| 16:27:17 | → | n0den1te joins (~n0den1te@223.178.81.181) |
| 16:27:28 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 16:27:28 | <mauke> | did you know that your haskell program can use a lot more memory than expected if you accidentally innerJoin an unrelated table (with no condition) to your main query? |
| 16:27:31 | <mauke> | sigh |
| 16:28:08 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 16:28:58 | × | mjs2600 quits (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:29:55 | × | ripspin quits (~chatzilla@1.145.166.245) (Remote host closed the connection) |
| 16:30:05 | <shapr> | exarkun: it's too bad the order can't be determined from the values themselves |
| 16:30:23 | <danse-nr3__> | which library mauke? |
| 16:30:25 | <exarkun> | shapr: Tell me more |
| 16:30:38 | <mauke> | danse-nr3__: for SQL? selda |
| 16:30:59 | <shapr> | it'd just be easier to pitch whatever subset you get into the erasure decoder |
| 16:31:07 | shapr | sets mode -o shapr |
| 16:31:12 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 16:31:20 | → | mjs2600 joins (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) |
| 16:31:28 | <exarkun> | shapr: As a bonus, the erasure decoder I have uses `error` if you give it the wrong number of things |
| 16:32:17 | <exarkun> | shapr: Or if the inputs aren't all the same length |
| 16:32:22 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 16:32:44 | <exarkun> | shapr: Or if you double up on any block numbers |
| 16:33:34 | <exarkun> | shapr: I imagine we can just pretend (Int, ByteString) is the block and work around that structure where necessary? |
| 16:33:50 | <shapr> | yeah |
| 16:35:22 | <shapr> | hm, I get failures running the test suite, is that expected? |
| 16:36:03 | <exarkun> | "decode signals error if the integrity of the shares is compromised" should fail, that's the property test that checks whether bad blocks are detected |
| 16:36:21 | <exarkun> | sometimes ~70 other tests fail because the erasure decoder bindings are buggy! |
| 16:36:57 | <exarkun> | but just run it again, eventually they'll pass ;) |
| 16:37:06 | <shapr> | Yeah, only that one failed for me |
| 16:37:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:37:36 | <exarkun> | That one should have something like `│ BlockBitFlips [ [ "a" ] , [ "a" ] ]` in its output |
| 16:38:05 | <exarkun> | That says "I xor'd the blocks of both shares with "a" and then ran the decoder" |
| 16:38:33 | <exarkun> | And then `diff True (==) (isLeft result)` fails because the decoder doesn't notice the corruption and just gives back some result |
| 16:39:18 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 246 seconds) |
| 16:39:32 | <exarkun> | (Hedgehog.Gen.bytes shrinks towards "a" which was a little surprising, but okay fine) |
| 16:42:33 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 16:44:12 | <shapr> | exarkun: is it possible the corruption produces a valid value? |
| 16:44:30 | <exarkun> | shapr: Corruption can't be detected by looking at only the values |
| 16:44:38 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 16:44:41 | <exarkun> | shapr: So working on corrupt inputs _will_ give you _some_ output |
| 16:44:46 | <shapr> | oh |
| 16:47:32 | <shapr> | I think you said one of your inputs is the hash of the correct output? Is that how you would detect corrupted data? |
| 16:47:41 | <exarkun> | yes |
| 16:47:45 | <exarkun> | Or |
| 16:48:02 | <exarkun> | I have two things, I'm not sure which one it makes more sense to use |
| 16:48:30 | <exarkun> | The inputs to the erasure decoder are "blocks" and the outputs are "segments". I have hashes of all of the blocks and all of the segments. |
| 16:48:45 | <exarkun> | So I could check before decoding or after |
| 16:50:13 | <exarkun> | there are k times more blocks than segments, so checking the blocks is k times more expensive (I guess) |
| 16:50:27 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 16:50:29 | <exarkun> | but you can't check segments until you've finished decoding, so checking segments incurs all of the decoding cost |
| 16:50:51 | <exarkun> | so performance-wise I don't see an obvious winner |
| 16:51:18 | <exarkun> | in terms of correctness, checking segments means you'll catch bugs in the decoder in addition to corrupt blocks |
| 16:51:27 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 16:51:44 | <exarkun> | (and there's definitely at least one of those right now!) |
| 16:51:53 | <shapr> | is this pure Haskell code where you can lazily check both as you go? |
| 16:53:14 | <shapr> | I like the using a lazy list as control flow, perhaps more than I should. |
| 16:53:23 | <exarkun> | The decoder is C but everything around it is Haskell. I think the decoder being C gets rid of the chance to have smaller-than-a-block laziness, but doesn't cause problems otherwise (and none of the hashes help with smaller-than-a-block stuff anyway) |
| 16:53:56 | <exarkun> | yea I think I know what you mean. I almost feel like the return type of this function should be [IO (Either SomeError ByteString)]. |
| 16:54:06 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 255 seconds) |
| 16:54:15 | <exarkun> | instead of IO Either (SomeError ByteString) |
| 16:54:32 | <shapr> | How difficult is a pure Haskell decoder? Would that be a useful oracle to see if bugs are present in the C code? |
| 16:54:40 | <exarkun> | I wonder if that version would actually be even easier to write, hm |
| 16:55:47 | <exarkun> | the C code is only about 500 lines of dense matrix manipulation code... |
| 16:55:48 | × | blomberg quits (~default_u@117.200.7.49) (Ping timeout: 240 seconds) |
| 16:56:10 | <shapr> | :-( |
| 16:56:12 | <exarkun> | plus there's a paper to go with it! |
| 16:56:21 | <shapr> | ooh, bonus fun! |
| 16:56:56 | <exarkun> | at some point I will have to tackle the decoder directly, to find out why its results get randomly corrupted somehow |
| 16:57:13 | <exarkun> | but I think for adding this validation it's a red herring |
| 16:57:37 | <EvanR> | C applied for its strengths: numeric code |
| 16:57:59 | <EvanR> | where has all the fortran gone |
| 16:59:36 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 246 seconds) |
| 17:01:05 | <shapr> | exarkun: I got a bugfix PR for my testing library from someone I met at ICFP, that's how code is going for me |
| 17:01:14 | <exarkun> | shapr: nice |
| 17:01:34 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f9cc:9bb3:d19d:9050) |
| 17:01:40 | <shapr> | turns out if you sass QuickCheck hard enough, a PhD will immediately be dispatched to your location |
| 17:01:46 | <shapr> | er, "a PhD student" |
| 17:01:51 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 17:01:51 | <exarkun> | haha |
| 17:02:19 | <exarkun> | is it a fun bug |
| 17:02:46 | <shapr> | eh, not really. Seems that QuickCheck is now a full on batch testing tool instead of a true random tester as it was before |
| 17:03:05 | <exarkun> | hm, what's the difference between those things? |
| 17:03:09 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 17:03:39 | <shapr> | I was doing a loop of "run one property test, check coverage" and that caused QuickCheck to produce the same value over and over |
| 17:03:47 | <exarkun> | ahh |
| 17:09:00 | × | ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 17:10:18 | × | Square2 quits (~Square4@user/square) (Ping timeout: 255 seconds) |
| 17:10:19 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:10:31 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 17:13:03 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:18:19 | → | danse-nr3_ joins (~francesco@151.47.242.109) |
| 17:18:29 | × | danse-nr3__ quits (~francesco@151.37.243.136) (Read error: Connection reset by peer) |
| 17:19:38 | <shapr> | exarkun: as far as I know, a real random test means a PRNG picks a value from the entire value range of the type you requested |
| 17:20:10 | <shapr> | that's not quite the case anymore for QuickCheck; https://github.com/shapr/kudzu/issues/8#issuecomment-1709103689 |
| 17:21:32 | → | chomwitt joins (~chomwitt@2a02:587:7a0c:4d00:1ac0:4dff:fedb:a3f1) |
| 17:21:52 | <shapr> | QuickCheck returns the seed on failure: https://github.com/nick8325/quickcheck/blob/master/src/Test/QuickCheck/Test.hs#L130 |
| 17:22:17 | <shapr> | (and the size, and last I checked you need both to get the exact value that failed the test) |
| 17:22:59 | <shapr> | if it also returned the seed on success, I could extract the (seed,size) after each succees, and feed that into the next size 1 batch test |
| 17:23:17 | <shapr> | so I may put up a PR and ask for feedback |
| 17:23:29 | × | vgtw quits (~vgtw@user/vgtw) (Quit: ZNC - https://znc.in) |
| 17:23:41 | <mauke> | seedback |
| 17:23:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:23:49 | <shapr> | :-D |
| 17:24:20 | <shapr> | I gave a talk on kudzu at ICFP! Afterwards I got really interesting questions that I had never considered! |
| 17:24:42 | <shapr> | I can barely wait for the final recording to be public so I can go listen to the questions, I was *way* too nervous to remember all of them. |
| 17:26:50 | → | vgtw joins (~vgtw@user/vgtw) |
| 17:27:08 | zer0bitz_ | is now known as zer0bitz |
| 17:27:56 | × | noteness quits (~noteness@user/noteness) (Server closed connection) |
| 17:29:10 | → | noteness joins (~noteness@user/noteness) |
| 17:29:46 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f9cc:9bb3:d19d:9050) (Remote host closed the connection) |
| 17:35:00 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 17:35:04 | × | danse-nr3_ quits (~francesco@151.47.242.109) (Ping timeout: 252 seconds) |
| 17:36:56 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 17:37:35 | × | Techcable quits (~Techcable@user/Techcable) (Server closed connection) |
| 17:37:43 | → | Techcable joins (~Techcable@user/Techcable) |
| 17:41:24 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds) |
| 17:43:06 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:48:44 | × | phma quits (phma@2001:5b0:211c:cea8:446a:c697:5d5a:83a7) (Read error: Connection reset by peer) |
| 17:49:40 | → | phma joins (~phma@2001:5b0:210d:8e28:dfdb:e371:52a2:8c6c) |
| 18:09:39 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f9cc:9bb3:d19d:9050) |
| 18:11:10 | → | notzmv joins (~zmv@user/notzmv) |
| 18:11:50 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:15:07 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:16:39 | → | danza joins (~francesco@151.47.242.109) |
| 18:20:29 | × | son0p quits (~ff@186.121.39.74) (Ping timeout: 245 seconds) |
| 18:22:26 | × | vgtw quits (~vgtw@user/vgtw) (Quit: ZNC - https://znc.in) |
| 18:25:56 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 258 seconds) |
| 18:26:49 | → | Pickchea joins (~private@user/pickchea) |
| 18:28:03 | → | vgtw joins (~vgtw@user/vgtw) |
| 18:31:00 | × | chomwitt quits (~chomwitt@2a02:587:7a0c:4d00:1ac0:4dff:fedb:a3f1) (Ping timeout: 246 seconds) |
| 18:32:46 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:34:14 | → | chomwitt joins (~chomwitt@ppp-94-67-130-18.home.otenet.gr) |
| 18:34:49 | × | phma quits (~phma@2001:5b0:210d:8e28:dfdb:e371:52a2:8c6c) (Read error: Connection reset by peer) |
| 18:35:33 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 18:36:11 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 18:39:00 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 18:42:46 | → | phma joins (~phma@host-67-44-208-181.hnremote.net) |
| 18:42:55 | × | danza quits (~francesco@151.47.242.109) (Remote host closed the connection) |
| 18:43:19 | → | danza joins (~francesco@151.47.242.109) |
| 18:47:44 | → | abrar joins (~abrar@pool-108-52-90-30.phlapa.fios.verizon.net) |
| 18:49:17 | × | shapr quits (~user@c-67-160-55-153.hsd1.wa.comcast.net) (Quit: gotta buy shoes for glass blowing) |
| 18:52:08 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 18:56:53 | → | powderhorn joins (~powderhor@207-153-12-54.static.fttp.usinternet.com) |
| 18:58:24 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:00:07 | × | tomsmeding quits (~tomsmedin@static.21.109.88.23.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 19:00:47 | → | tomsmeding joins (~tomsmedin@2a01:4f8:c0c:5e5e::2) |
| 19:02:47 | → | aaronv joins (~aaronv@user/aaronv) |
| 19:05:49 | × | aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection) |
| 19:06:08 | → | aaronv joins (~aaronv@user/aaronv) |
| 19:11:48 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:15:34 | → | pavonia joins (~user@user/siracusa) |
| 19:19:05 | × | cptaffe quits (~ZNC@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Changing host) |
| 19:19:05 | → | cptaffe joins (~ZNC@user/cptaffe) |
| 19:19:59 | → | codaraxis joins (~codaraxis@user/codaraxis) |
| 19:20:54 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:21:29 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 19:26:43 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 19:28:04 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 19:34:07 | × | powderhorn quits (~powderhor@207-153-12-54.static.fttp.usinternet.com) (Quit: Client closed) |
| 19:34:21 | → | powderhorn joins (~powderhor@207-153-12-54.static.fttp.usinternet.com) |
| 19:34:37 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 19:34:44 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 19:34:47 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 19:35:21 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 19:37:35 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:37:44 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 258 seconds) |
| 19:38:08 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2) |
| 19:49:24 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:49:57 | → | evertedsphere_ joins (uid434122@id-434122.hampstead.irccloud.com) |
| 19:50:13 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 19:52:45 | × | evertedsphere_ quits (uid434122@id-434122.hampstead.irccloud.com) (Client Quit) |
| 19:53:47 | → | evertedsphere joins (sid434122@id-434122.hampstead.irccloud.com) |
| 19:58:14 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 20:01:19 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 20:02:26 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 20:02:33 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Client Quit) |
| 20:04:27 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 258 seconds) |
| 20:05:01 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:06:19 | × | vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Ping timeout: 252 seconds) |
| 20:06:58 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 20:08:05 | → | vglfr joins (~vglfr@88.155.2.21) |
| 20:10:29 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 245 seconds) |
| 20:12:10 | → | Guest|79 joins (~Guest|79@83-82-144-164.cable.dynamic.v4.ziggo.nl) |
| 20:14:26 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 246 seconds) |
| 20:16:55 | → | aaronv joins (~aaronv@user/aaronv) |
| 20:17:40 | → | mysl joins (~mysl@user/mysl) |
| 20:18:24 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
| 20:18:27 | × | ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 246 seconds) |
| 20:19:04 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:20:24 | → | Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net) |
| 20:20:42 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 20:21:19 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds) |
| 20:22:04 | → | sm joins (~sm@plaintextaccounting/sm) |
| 20:25:35 | → | stackdroid18 joins (14094@de1.hashbang.sh) |
| 20:28:09 | × | Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds) |
| 20:28:32 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 20:30:36 | → | Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net) |
| 20:32:35 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:36:08 | → | accord joins (uid568320@id-568320.hampstead.irccloud.com) |
| 20:36:50 | × | caryhartline quits (~caryhartl@168.182.58.169) (Ping timeout: 246 seconds) |
| 20:39:41 | × | Guest|79 quits (~Guest|79@83-82-144-164.cable.dynamic.v4.ziggo.nl) (Quit: Connection closed) |
| 20:39:56 | → | Inst joins (~Inst@120.244.192.250) |
| 20:40:46 | × | stackdroid18 quits (14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!) |
| 20:41:35 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:41:47 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 20:42:59 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 255 seconds) |
| 20:43:56 | × | random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed) |
| 20:46:49 | × | michalz quits (~michalz@185.246.207.222) (Remote host closed the connection) |
| 20:52:15 | → | Square2 joins (~Square4@user/square) |
| 20:53:27 | × | acidjnk quits (~acidjnk@p200300d6e7072f13dd7273edbfdb54c8.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 20:54:41 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 20:54:43 | × | jackneill__ quits (~Jackneill@20014C4E1E101A00E9F1E1049A19AA9C.dsl.pool.telekom.hu) (Ping timeout: 252 seconds) |
| 20:55:39 | × | Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds) |
| 20:57:07 | → | Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net) |
| 20:58:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:00:54 | × | sudden quits (~cat@user/sudden) (Ping timeout: 245 seconds) |
| 21:01:46 | → | sudden joins (~cat@user/sudden) |
| 21:05:08 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:05:11 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 21:06:36 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 240 seconds) |
| 21:08:23 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:09:42 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 255 seconds) |
| 21:10:54 | × | vglfr quits (~vglfr@88.155.2.21) (Ping timeout: 245 seconds) |
| 21:11:23 | → | mysl joins (~mysl@user/mysl) |
| 21:11:52 | → | vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) |
| 21:16:05 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 21:18:19 | → | danza_ joins (~francesco@151.37.245.236) |
| 21:20:47 | × | danza quits (~francesco@151.47.242.109) (Ping timeout: 255 seconds) |
| 21:22:18 | × | beaky quits (~beaky@2a03:b0c0:0:1010::1e:a001) (Server closed connection) |
| 21:22:37 | → | beaky joins (~beaky@2a03:b0c0:0:1010::1e:a001) |
| 21:30:59 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 21:31:57 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds) |
| 21:33:49 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 245 seconds) |
| 21:35:29 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 245 seconds) |
| 21:35:33 | × | erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
| 21:36:02 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 21:36:25 | → | erisco joins (~erisco@d24-141-66-165.home.cgocable.net) |
| 21:37:39 | → | mysl joins (~mysl@user/mysl) |
| 21:38:42 | × | ornx quits (~ornx@user/ornxka) (Quit: WeeChat 4.0.3) |
| 21:46:19 | × | dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 245 seconds) |
| 21:50:16 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 21:50:57 | → | sm joins (~sm@plaintextaccounting/sm) |
| 21:52:12 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:52:37 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:53:18 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 21:56:38 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:57:32 | × | wroathe quits (~wroathe@user/wroathe) (Client Quit) |
| 21:57:41 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:04:37 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 22:10:29 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds) |
| 22:13:03 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:15:33 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 22:15:48 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 240 seconds) |
| 22:19:17 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 255 seconds) |
| 22:19:38 | → | Inst joins (~Inst@120.244.192.250) |
| 22:21:23 | → | sm joins (~sm@plaintextaccounting/sm) |
| 22:24:51 | × | cptaffe quits (~ZNC@user/cptaffe) (Ping timeout: 255 seconds) |
| 22:25:48 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds) |
| 22:25:56 | → | cptaffe joins (~cptaffe@user/cptaffe) |
| 22:26:12 | × | caubert quits (~caubert@user/caubert) (Ping timeout: 255 seconds) |
| 22:26:15 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 22:26:49 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 22:29:43 | → | notzmv joins (~zmv@user/notzmv) |
| 22:29:51 | × | aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (Server closed connection) |
| 22:30:03 | → | aristid joins (sid1599@id-1599.uxbridge.irccloud.com) |
| 22:31:01 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 22:38:15 | → | aaronv joins (~aaronv@user/aaronv) |
| 22:39:41 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:40:08 | × | powderhorn quits (~powderhor@207-153-12-54.static.fttp.usinternet.com) (Ping timeout: 245 seconds) |
| 22:49:41 | → | gmg joins (~user@user/gehmehgeh) |
| 22:55:42 | × | accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:55:52 | → | sm joins (~sm@plaintextaccounting/sm) |
| 22:58:42 | <wroathe> | Hey dumb question, but I commonly see a pattern where there's a typeclass like class Foo, and then a default method that refers to a constraint with a GFoo version of the typeclass for generics. What's the purpose of this pattern if my goal is to define a typeclass that has a default instance for all types that derive Generic? |
| 22:59:09 | <wroathe> | What would the harm be in just making my Foo class the generic typeclass |
| 23:00:36 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds) |
| 23:02:20 | <wroathe> | Actually, scratch that. I think the difference there is the kind of type for the typeclass. The reason we want the outer typeclass is to apply the Rep type family |
| 23:03:06 | <jackdk> | wroathe: the GFoo pattern is an older idiom before -XDerivingVia existed. If you define `instance (Generic a, Foo (Rep a)) => Foo a` you'll tie yourself in knots because that will match every type, including the ones made up of the generic data types. |
| 23:03:08 | <jackdk> | The more modern way is to use the `Generically` newtype, which lets you hang the generic instance off of something else, preserve the default declaration for non-generic stuff if you want it, and make Generic derivation explicit. |
| 23:04:00 | <jackdk> | https://hackage.haskell.org/package/generically is the compat package, but its haddocks still show `instance (Generic a, Monoid (Rep a ()) => Monoid (Generically a)` so that can give you the flavour. |
| 23:05:19 | → | hays joins (rootvegeta@fsf/member/hays) |
| 23:06:16 | <wroathe> | jackdk: Thanks much |
| 23:06:20 | <wroathe> | I'll have a look |
| 23:06:52 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 23:07:26 | <jackdk> | wroathe: For completeness, the deriving clause on the types which use it looks like `deriving (Semigroup, Monoid) via (Generically Foo)` |
| 23:08:52 | <wroathe> | Looks neat. I need to get up to speed on DerivingVia |
| 23:11:40 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 23:12:03 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 252 seconds) |
| 23:12:45 | × | Square2 quits (~Square4@user/square) (Ping timeout: 255 seconds) |
| 23:13:13 | × | mmhat quits (~mmh@p200300f1c7178aebee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 23:13:35 | → | mmhat joins (~mmh@p200300f1c7178a38ee086bfffe095315.dip0.t-ipconnect.de) |
| 23:14:11 | × | ubert quits (~Thunderbi@178.115.39.254.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
| 23:16:53 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
| 23:17:09 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 245 seconds) |
| 23:21:41 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 23:22:59 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds) |
| 23:23:15 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 23:25:05 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 23:26:18 | × | mmhat quits (~mmh@p200300f1c7178a38ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.4) |
| 23:28:35 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 23:30:15 | → | Inst joins (~Inst@120.244.192.250) |
| 23:31:18 | → | sm joins (~sm@plaintextaccounting/sm) |
| 23:34:24 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds) |
| 23:36:51 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
| 23:41:55 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 252 seconds) |
| 23:42:58 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 23:42:58 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 23:42:58 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:55:25 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:56:05 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 23:56:56 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
| 23:57:19 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds) |
| 23:57:26 | Lord_of_Life_ | is now known as Lord_of_Life |
| 23:57:33 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 255 seconds) |
| 23:58:17 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 255 seconds) |
| 23:59:08 | → | notzmv- joins (~zmv@user/notzmv) |
| 23:59:40 | notzmv- | is now known as notzmv |
All times are in UTC on 2023-09-12.