Logs on 2024-08-14 (liberachat/#haskell)
| 00:13:01 | → | Bynbo7 joins (~Axman6@user/axman6) |
| 00:15:26 | × | caubert quits (~caubert@user/caubert) (Ping timeout: 255 seconds) |
| 00:17:05 | → | caubert joins (~caubert@user/caubert) |
| 00:17:10 | → | Guest96 joins (~Guest96@2001:1970:4820:f100::467) |
| 00:18:03 | × | Guest96 quits (~Guest96@2001:1970:4820:f100::467) (Client Quit) |
| 00:19:59 | → | poto joins (~poto@2001:1970:4820:f100::467) |
| 00:20:54 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:22:10 | × | caubert quits (~caubert@user/caubert) (Ping timeout: 248 seconds) |
| 00:22:32 | × | poto quits (~poto@2001:1970:4820:f100::467) (Read error: Connection reset by peer) |
| 00:24:17 | → | caubert joins (~caubert@user/caubert) |
| 00:25:35 | → | vgtw joins (~vgtw@user/vgtw) |
| 00:29:40 | × | Axman6 quits (~Axman6@user/axman6) (Remote host closed the connection) |
| 00:29:47 | × | vgtw quits (~vgtw@user/vgtw) (Max SendQ exceeded) |
| 00:30:43 | → | vgtw joins (~vgtw@user/vgtw) |
| 00:33:06 | → | Axman6 joins (~Axman6@user/axman6) |
| 00:36:57 | × | machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 00:43:27 | lol_ | is now known as jcarpenter2 |
| 00:49:29 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 00:52:23 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:52:47 | × | ZharMeny quits (~user@user/ZharMeny) (Quit: `,@) |
| 00:54:36 | → | troojg joins (~troojg@user/troojg) |
| 00:54:43 | × | Square3 quits (~Square4@user/square) (Ping timeout: 264 seconds) |
| 00:55:30 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 00:55:44 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 01:04:50 | × | pointlessslippe1 quits (~pointless@212.82.82.3) (Ping timeout: 272 seconds) |
| 01:07:57 | → | pointlessslippe1 joins (~pointless@212.82.82.3) |
| 01:17:06 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 01:17:54 | × | troojg quits (~troojg@user/troojg) (Ping timeout: 260 seconds) |
| 01:23:42 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 01:31:16 | → | neuroevolutus joins (~neuroevol@37.19.200.148) |
| 01:37:07 | × | neuroevolutus quits (~neuroevol@37.19.200.148) (Ping timeout: 256 seconds) |
| 01:44:31 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 01:48:49 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
| 01:51:25 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 02:11:21 | × | wroathe quits (~wroathe@user/wroathe) (Quit: Reconnecting) |
| 02:11:34 | → | wroathe joins (~wroathe@mobile-166-175-59-236.mycingular.net) |
| 02:11:34 | × | wroathe quits (~wroathe@mobile-166-175-59-236.mycingular.net) (Changing host) |
| 02:11:34 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:13:09 | × | oo_miguel quits (~Thunderbi@78.10.207.46) (Ping timeout: 248 seconds) |
| 02:23:24 | × | td_ quits (~td@i53870936.versanet.de) (Ping timeout: 252 seconds) |
| 02:25:07 | → | td_ joins (~td@i53870918.versanet.de) |
| 02:26:04 | × | dyniec quits (~dyniec@dybiec.info) (Quit: WeeChat 4.2.2) |
| 02:26:36 | × | xerox quits (~edi@user/edi) (Ping timeout: 246 seconds) |
| 02:28:25 | → | xerox joins (~edi@user/edi) |
| 02:32:50 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 02:39:26 | → | neuroevolutus joins (~neuroevol@37.19.200.148) |
| 02:39:58 | → | ddellacosta joins (~ddellacos@ool-44c73b99.dyn.optonline.net) |
| 02:44:33 | × | neuroevolutus quits (~neuroevol@37.19.200.148) (Ping timeout: 256 seconds) |
| 02:55:34 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Ping timeout: 252 seconds) |
| 03:01:12 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 03:09:34 | <haskellbridge> | <thirdofmay18081814goya> anyone got exercises about arrows with solutions? |
| 03:11:46 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 03:13:59 | <geekosaur> | I think most people believe the best exercise related to arrows is running 😛 |
| 03:14:15 | <zzz> | can a user made data type benefit from compiler optimizations such as list fusion? |
| 03:14:16 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 03:14:54 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
| 03:15:38 | Lord_of_Life_ | is now known as Lord_of_Life |
| 03:16:44 | <geekosaur> | zzz, I believe the answer is: built-in optimizations yes, after-the-fact optimizations (RULES) no unless you write specific RULES for your types |
| 03:19:11 | <zzz> | i see. so `data List a = Null | Cons a (List a)` would be treated differently from [a] by the compiler |
| 03:20:16 | <geekosaur> | yes |
| 03:20:38 | <zzz> | why not generalize optimization X for all data types of the form Y that belong to the class Z? |
| 03:21:26 | <geekosaur> | in particular, since foldr/build is done as RULES you would need to duplicate it (and provide your own version of at least build) |
| 03:28:43 | <probie> | more practically, "list fusion", be it of the stream fusion kind, or the foldr/build fusion (which is the one currently used), are rewrite rules tied to specific functions, not to specific data types |
| 03:31:46 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 272 seconds) |
| 03:32:00 | <monochrom> | What is "class Z"? |
| 03:33:17 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 03:44:48 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 03:46:33 | → | talismanick joins (~user@2601:644:937c:ed10::ae5) |
| 03:53:08 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 03:55:35 | → | aforemny_ joins (~aforemny@2001:9e8:6cf1:7e00:822:77ad:c8ef:d2e6) |
| 03:56:01 | × | aforemny quits (~aforemny@i59F516E3.versanet.de) (Ping timeout: 248 seconds) |
| 03:56:37 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 03:57:44 | × | rdcdr quits (~rdcdr@user/rdcdr) (Ping timeout: 272 seconds) |
| 04:05:35 | → | biberu joins (~biberu@user/biberu) |
| 04:05:40 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:08:51 | × | hiredman quits (~hiredman@frontier1.downey.family) (Ping timeout: 276 seconds) |
| 04:08:58 | → | rdcdr joins (~rdcdr@user/rdcdr) |
| 04:10:08 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 04:13:29 | <zzz> | monochrom: being an instance of some clasa Z. i assume most optimizations depend on class rules, being them verifiable or not |
| 04:14:53 | <zzz> | by rules i mean for example monoid rules, which are not necessarily enforced by the compiler |
| 04:15:42 | <zzz> | i think the word i should be using is "laws" |
| 04:16:59 | <monochrom> | That does not exist in Haskell or GHC. You will have to write a new compiler or make a new language for "class" to mean that. |
| 04:17:18 | × | hiredman quits (~hiredman@frontier1.downey.family) (Ping timeout: 276 seconds) |
| 04:17:34 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 04:18:48 | <zzz> | what doesn't exist? |
| 04:19:17 | <monochrom> | Your idea of what "class" means and how it connects to code optimization. |
| 04:20:29 | × | mjrosenb quits (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
| 04:20:42 | <Leary> | Well, what they'd need to write is just wrappers around the classes and RULES utilising the class laws. |
| 04:21:02 | <Leary> | We /could/ have, e.g. generic fmap fusion. |
| 04:21:19 | <Leary> | But it isn't really done. |
| 04:21:42 | <zzz> | i'm pretty sure that if we can derive Foldable, we can infer some optimizations based on algebraic properties of types and to which classes they are instances of |
| 04:22:15 | <zzz> | s/to// |
| 04:23:45 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 04:24:20 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 04:24:46 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:25:56 | <zzz> | i don't see a reson for fusion not to be applied to my custom list type, providing it observes all the necessary laws, is what i mean. |
| 04:26:12 | <zzz> | automagically |
| 04:26:39 | → | euleritian joins (~euleritia@dynamic-176-006-135-103.176.6.pool.telefonica.de) |
| 04:26:52 | <zzz> | i mean i kind of see a reason |
| 04:27:06 | <zzz> | but i wonder if it could be done still |
| 04:27:12 | → | mjrosenb joins (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net) |
| 04:27:24 | <Leary> | List fusion is not a matter of laws, but of the relationship between the representation of the type and `foldr`. |
| 04:27:51 | × | euleritian quits (~euleritia@dynamic-176-006-135-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 04:27:52 | <probie> | Let's be clear, if you write `filter p [] = p; filter p (x:xs) = if p x then x: filter p xs else filter p xs` using the original list type and then use that definition of `filter`, you don't get fusion |
| 04:28:08 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 04:28:09 | <zzz> | that fits into my handwavy definition of laws |
| 04:28:14 | <Leary> | If you want more generic fusion, you can get it via more generic folds. See recursion schemes. |
| 04:29:00 | × | hexeme quits (~hexeme@user/hexeme) (Ping timeout: 276 seconds) |
| 04:29:43 | <zzz> | Leary: where can i start learning more about recursion schemes? |
| 04:30:24 | <zzz> | any resource suggestion? |
| 04:31:15 | <monochrom> | Handwaving is why nothing ever gets done. |
| 04:32:52 | <zzz> | me not being an academic is why nothing gets done :) i'm doing my best to understand how things work and sometimes these doubts, which are led mostly by curiosity, come up |
| 04:33:00 | <zzz> | sorry if it's nonsense |
| 04:33:27 | <probie> | zzz: You can already do something like `class IsT a where { toT :: a -> T, fromT :: T -> a }` and then add a rule `{-# RULES "fromT/toT" forall x . fromT (toT x) = x #-}` and that should work for instance of class `IsT` |
| 04:33:43 | <probie> | s/a -> T,/a -> T;/ |
| 04:33:53 | <Leary> | @hackage recursion-schemes |
| 04:33:54 | <lambdabot> | https://hackage.haskell.org/package/recursion-schemes |
| 04:34:12 | <Leary> | zzz: Not really, but look over the above. It should have decent docs and links. |
| 04:34:24 | <zzz> | Leary: ty! |
| 04:35:51 | <Leary> | probie: That really won't work though, since the class methods get inlined before the RULES fire. |
| 04:36:53 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 04:37:06 | → | euleritian joins (~euleritia@dynamic-176-006-135-103.176.6.pool.telefonica.de) |
| 04:39:00 | × | euleritian quits (~euleritia@dynamic-176-006-135-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 04:39:45 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 04:42:05 | <Axman6> | zzz: there are a lot of optimisations what will be applicable to all data types, like case-of-case, cose-of-known-constructor, etc. which might lead to more inlining of say a custom list type. I think this is even morree likely to be the case these days with things like join points meaning more recursive functionc can be inlined |
| 04:44:05 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 04:44:13 | <Axman6> | so in theory, take n . filter p . map f could automatically fuse for your custom type, but it's probably not guaranteed and might be fragile |
| 04:44:36 | <zzz> | i see |
| 04:44:58 | <Axman6> | it would be very simple to test |
| 04:47:33 | <Leary> | There are also ways to obtain fusion by rejigging your datatypes here and there; e.g. swapping out `f` for `Coyoneda f` essentially gives you the `fmap` fusion I mentioned above. |
| 04:47:58 | → | euleritian joins (~euleritia@dynamic-176-006-135-103.176.6.pool.telefonica.de) |
| 04:48:35 | <monochrom> | I made my students prove filter p . map f = map f (filter (p . f)) by induction in a test. :) |
| 04:49:14 | <monochrom> | The beauty is that in the final exam I can make them prove it again by the free theorem for filter's polymorphic type. >:) |
| 04:50:10 | <haskellbridge> | <Bowuigi> Do you happen to have an explanation for parametricity then? |
| 04:50:15 | <monochrom> | err, RHS should be map f . filter (p. f) |
| 04:50:36 | <monochrom> | Yes. https://www.cs.utoronto.ca/~trebla/CSCC24-2024-Summer/abs-type-param.html |
| 04:51:03 | <haskellbridge> | <Bowuigi> Free theorems are really useful but I found them a bit hard to understand in Wadler's presentation, enough to think that the dinaturality version was easier lol |
| 04:52:05 | <monochrom> | My trick is I use dynamic scoping. >:D About the one single time I find it clearer than lexical scoping. |
| 04:54:37 | <monochrom> | I'm pretty sure that dynamic scoping is necessary for this. The proof---all proofs---manipulate type environments in a way that's exactly writing down dynamic scoping semantics. |
| 04:55:10 | <monochrom> | or even worse, emulating it |
| 04:58:39 | × | monochrom quits (trebla@216.138.220.146) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in) |
| 04:59:20 | → | monochrom joins (trebla@216.138.220.146) |
| 05:01:47 | <haskellbridge> | <Bowuigi> Thanks! |
| 05:02:03 | × | euleritian quits (~euleritia@dynamic-176-006-135-103.176.6.pool.telefonica.de) (Ping timeout: 252 seconds) |
| 05:02:37 | → | euleritian joins (~euleritia@dynamic-176-001-012-050.176.1.pool.telefonica.de) |
| 05:04:25 | → | jinsun joins (~jinsun@user/jinsun) |
| 05:09:08 | × | euleritian quits (~euleritia@dynamic-176-001-012-050.176.1.pool.telefonica.de) (Ping timeout: 258 seconds) |
| 05:15:12 | → | stefan-___ joins (~m-yh2rcc@42dots.de) |
| 05:15:13 | → | michalz joins (~michalz@185.246.207.217) |
| 05:15:28 | × | stefan-__ quits (~m-yh2rcc@42dots.de) (Ping timeout: 246 seconds) |
| 05:15:28 | × | chymera quits (~chymera@ns1000526.ip-51-81-46.us) (Ping timeout: 246 seconds) |
| 05:15:38 | → | SheRejoined joins (haveident@libera/staff/she/her) |
| 05:15:46 | → | chymera joins (~chymera@ns1000526.ip-51-81-46.us) |
| 05:15:59 | × | She quits (haveident@libera/staff/she/her) (Killed (SheRejoined (GIVE ME BACK MY FACE!))) |
| 05:15:59 | SheRejoined | is now known as She |
| 05:20:03 | stefan-___ | is now known as stefan-__ |
| 05:23:07 | → | rosco joins (~rosco@175.136.158.234) |
| 05:24:07 | × | doyougnu quits (~doyougnu@syn-045-046-170-068.res.spectrum.com) (Ping timeout: 264 seconds) |
| 05:24:34 | → | shane_ joins (~shane@ana.rch.ist) |
| 05:24:41 | → | aosync joins (~alews@user/aws) |
| 05:25:16 | → | Hecate_ joins (~mariposa@user/hecate) |
| 05:25:20 | → | tomjagua1paw joins (~tom@172-104-25-182.ip.linodeusercontent.com) |
| 05:25:43 | → | spider1 joins (spider@tilde.cafe) |
| 05:30:05 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 05:32:13 | × | ProofTechnique_ quits (sid79547@id-79547.ilkley.irccloud.com) (*.net *.split) |
| 05:32:13 | × | remexre quits (~remexre@user/remexre) (*.net *.split) |
| 05:32:13 | × | aws quits (~alews@user/aws) (*.net *.split) |
| 05:32:13 | × | spider quits (spider@tilde.cafe) (*.net *.split) |
| 05:32:13 | × | krjst quits (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split) |
| 05:32:13 | × | jakesyl_____ quits (sid56879@id-56879.hampstead.irccloud.com) (*.net *.split) |
| 05:32:13 | × | meinside quits (uid24933@id-24933.helmsley.irccloud.com) (*.net *.split) |
| 05:32:13 | × | evertedsphere quits (sid434122@id-434122.hampstead.irccloud.com) (*.net *.split) |
| 05:32:13 | × | amir quits (sid22336@user/amir) (*.net *.split) |
| 05:32:13 | × | Hecate quits (~mariposa@user/hecate) (*.net *.split) |
| 05:32:13 | × | shane quits (~shane@ana.rch.ist) (*.net *.split) |
| 05:32:13 | × | lexi-lambda quits (sid92601@id-92601.hampstead.irccloud.com) (*.net *.split) |
| 05:32:13 | × | S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (*.net *.split) |
| 05:32:13 | × | mankyKitty quits (sid31287@id-31287.helmsley.irccloud.com) (*.net *.split) |
| 05:32:13 | × | T_S_____ quits (sid501726@id-501726.uxbridge.irccloud.com) (*.net *.split) |
| 05:32:13 | × | haasn quits (sid579015@id-579015.hampstead.irccloud.com) (*.net *.split) |
| 05:32:13 | × | dsal quits (sid13060@id-13060.lymington.irccloud.com) (*.net *.split) |
| 05:32:13 | × | bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (*.net *.split) |
| 05:32:13 | × | tomjaguarpaw quits (~tom@172-104-25-182.ip.linodeusercontent.com) (*.net *.split) |
| 05:34:13 | → | ProofTechnique_ joins (sid79547@id-79547.ilkley.irccloud.com) |
| 05:34:13 | → | remexre joins (~remexre@user/remexre) |
| 05:34:13 | → | krjst joins (~krjst@2604:a880:800:c1::16b:8001) |
| 05:34:13 | → | jakesyl_____ joins (sid56879@id-56879.hampstead.irccloud.com) |
| 05:34:13 | → | meinside joins (uid24933@id-24933.helmsley.irccloud.com) |
| 05:34:13 | → | evertedsphere joins (sid434122@id-434122.hampstead.irccloud.com) |
| 05:34:13 | → | amir joins (sid22336@user/amir) |
| 05:34:13 | → | lexi-lambda joins (sid92601@id-92601.hampstead.irccloud.com) |
| 05:34:13 | → | S11001001 joins (sid42510@id-42510.ilkley.irccloud.com) |
| 05:34:13 | → | mankyKitty joins (sid31287@id-31287.helmsley.irccloud.com) |
| 05:34:13 | → | T_S_____ joins (sid501726@id-501726.uxbridge.irccloud.com) |
| 05:34:13 | → | haasn joins (sid579015@id-579015.hampstead.irccloud.com) |
| 05:34:13 | → | dsal joins (sid13060@id-13060.lymington.irccloud.com) |
| 05:34:13 | → | bwe joins (~bwe@2a01:4f8:1c1c:4878::2) |
| 05:39:06 | × | jakesyl_____ quits (sid56879@id-56879.hampstead.irccloud.com) (Ping timeout: 246 seconds) |
| 05:39:06 | × | meinside quits (uid24933@id-24933.helmsley.irccloud.com) (Ping timeout: 246 seconds) |
| 05:39:23 | → | meinside joins (uid24933@id-24933.helmsley.irccloud.com) |
| 05:40:20 | → | jakesyl_____ joins (sid56879@id-56879.hampstead.irccloud.com) |
| 05:50:19 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 260 seconds) |
| 05:50:22 | → | rvalue- joins (~rvalue@user/rvalue) |
| 05:54:16 | → | ash3en joins (~Thunderbi@146.70.124.150) |
| 05:54:25 | rvalue- | is now known as rvalue |
| 05:55:40 | → | ash3en1 joins (~Thunderbi@dynamic-077-003-122-051.77.3.pool.telefonica.de) |
| 05:57:04 | × | ash3en1 quits (~Thunderbi@dynamic-077-003-122-051.77.3.pool.telefonica.de) (Client Quit) |
| 05:58:34 | × | ash3en quits (~Thunderbi@146.70.124.150) (Ping timeout: 244 seconds) |
| 05:58:45 | → | misterfish joins (~misterfis@84.53.85.146) |
| 06:04:39 | → | ash3en joins (~Thunderbi@2a02:3100:7d5e:e500:1595:307:680e:3150) |
| 06:07:44 | → | oo_miguel joins (~Thunderbi@78.10.207.46) |
| 06:08:01 | → | euleritian joins (~euleritia@dynamic-176-006-130-059.176.6.pool.telefonica.de) |
| 06:12:05 | × | ddellacosta quits (~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 06:13:03 | → | ddellacosta joins (~ddellacos@ool-44c73b99.dyn.optonline.net) |
| 06:16:55 | → | neuroevolutus joins (~neuroevol@37.19.200.148) |
| 06:23:24 | → | metabulation joins (~wootehfoo@user/wootehfoot) |
| 06:23:43 | × | infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 245 seconds) |
| 06:26:23 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds) |
| 06:30:50 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 06:31:13 | × | ash3en quits (~Thunderbi@2a02:3100:7d5e:e500:1595:307:680e:3150) (Quit: ash3en) |
| 06:32:00 | → | ash3en joins (~Thunderbi@2a02:3100:7d5e:e500:1595:307:680e:3150) |
| 06:35:30 | × | haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
| 06:38:14 | → | haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com) |
| 06:38:14 | ChanServ | sets mode +v haskellbridge |
| 06:44:47 | → | infinity0 joins (~infinity0@pwned.gg) |
| 06:48:45 | → | doyougnu joins (~doyougnu@syn-045-046-170-068.res.spectrum.com) |
| 06:53:20 | × | ash3en quits (~Thunderbi@2a02:3100:7d5e:e500:1595:307:680e:3150) (Quit: ash3en) |
| 06:55:16 | → | cfricke joins (~cfricke@user/cfricke) |
| 06:55:29 | × | incertia quits (~incertia@209.122.137.252) (Ping timeout: 255 seconds) |
| 07:21:46 | × | xff0x quits (~xff0x@ai080132.d.east.v6connect.net) (Ping timeout: 258 seconds) |
| 07:22:45 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 07:24:50 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:26:07 | → | acidjnk_new3 joins (~acidjnk@p200300d6e72cfb11a59a794fa2bafb8b.dip0.t-ipconnect.de) |
| 07:39:26 | × | monochrom quits (trebla@216.138.220.146) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in) |
| 07:39:38 | → | monochrom joins (trebla@216.138.220.146) |
| 07:40:11 | × | neuroevolutus quits (~neuroevol@37.19.200.148) (Quit: Client closed) |
| 07:43:12 | → | xff0x joins (~xff0x@2405:6580:b080:900:3135:813b:16f4:ff8e) |
| 07:46:14 | → | fiddlerw- joins (~fiddlerwo@user/fiddlerwoaroof) |
| 07:46:33 | × | onliner10 quits (~onliner10@user/onliner10) (Quit: ZNC 1.9.0 - https://znc.in) |
| 07:46:52 | → | onliner10 joins (~onliner10@user/onliner10) |
| 07:47:06 | → | mrvdb- joins (~mrvdb@185.92.221.186) |
| 07:47:07 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) (Remote host closed the connection) |
| 07:47:41 | → | mima_ joins (~mmh@user/mima) |
| 07:47:53 | → | weechat2 joins (~weechat@user/dminuoso) |
| 07:48:15 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 07:48:20 | × | fiddlerwoaroof quits (~fiddlerwo@user/fiddlerwoaroof) (Quit: Gone.) |
| 07:48:20 | × | mrvdb quits (~mrvdb@185.92.221.186) (Quit: ZNC 1.9.0 - https://znc.in) |
| 07:48:20 | × | dminuoso quits (~weechat@user/dminuoso) (Ping timeout: 248 seconds) |
| 07:48:20 | × | mima quits (~mmh@user/mima) (Ping timeout: 248 seconds) |
| 07:51:05 | × | sp1ff quits (~user@c-73-11-70-111.hsd1.wa.comcast.net) (Ping timeout: 252 seconds) |
| 07:51:05 | → | alexherbo2 joins (~alexherbo@2a02-8440-321a-b409-694c-4f82-7d03-8d48.rev.sfr.net) |
| 07:54:27 | × | Ekho- quits (~Ekho@user/ekho) (Quit: CORE ERROR, SYSTEM HALTED.) |
| 07:56:53 | × | c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 244 seconds) |
| 07:57:11 | × | Katarushisu1 quits (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: Ping timeout (120 seconds)) |
| 07:57:30 | → | Katarushisu1 joins (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) |
| 07:57:34 | → | c_wraith joins (~c_wraith@adjoint.us) |
| 07:57:55 | × | wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 244 seconds) |
| 07:57:55 | × | meejah quits (~meejah@rutas.meejah.ca) (Ping timeout: 244 seconds) |
| 07:58:27 | → | wagle joins (~wagle@quassel.wagle.io) |
| 07:58:57 | × | peutri quits (~peutri@bobo.desast.re) (Ping timeout: 244 seconds) |
| 07:58:57 | × | cptaffe quits (~cptaffe@user/cptaffe) (Ping timeout: 244 seconds) |
| 07:59:21 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 08:02:36 | × | ft quits (~ft@p4fc2aa15.dip0.t-ipconnect.de) (Quit: leaving) |
| 08:03:29 | × | energizer quits (~energizer@user/energizer) (Quit: ZNC 1.7.0+deb0+xenial1 - https://znc.in) |
| 08:04:08 | → | peutri joins (~peutri@bobo.desast.re) |
| 08:04:11 | → | meejah joins (~meejah@rutas.meejah.ca) |
| 08:05:05 | × | jcarpenter2 quits (~lol@2603:3016:1e01:b980:2886:e337:fa1b:385a) (Read error: Connection reset by peer) |
| 08:06:11 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 260 seconds) |
| 08:07:29 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 08:07:58 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:08:50 | × | rosco quits (~rosco@175.136.158.234) (Quit: Lost terminal) |
| 08:08:52 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 08:10:26 | → | cptaffe joins (~cptaffe@user/cptaffe) |
| 08:11:03 | → | ames0 joins (~amelia@offtopia/offtopian/amelia) |
| 08:11:37 | × | euleritian quits (~euleritia@dynamic-176-006-130-059.176.6.pool.telefonica.de) (Ping timeout: 248 seconds) |
| 08:12:12 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
| 08:12:27 | → | todi_away joins (~todi@p57803331.dip0.t-ipconnect.de) |
| 08:12:36 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 08:12:43 | × | CalimeroTeknik quits (~calimero@user/calimeroteknik) (Quit: バイバイ) |
| 08:12:50 | → | Ekho joins (~Ekho@user/ekho) |
| 08:12:54 | × | ames quits (~amelia@offtopia/offtopian/amelia) (Ping timeout: 244 seconds) |
| 08:12:58 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 08:13:22 | → | ash3en joins (~Thunderbi@2a02:3100:7d5e:e500:94ed:866b:6bfb:f0dd) |
| 08:13:47 | × | CrunchyFlakes quits (~CrunchyFl@146.52.130.128) (Ping timeout: 255 seconds) |
| 08:13:53 | ames0 | is now known as ames |
| 08:15:04 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 08:15:18 | → | ctk joins (~calimero@ctkarch.org) |
| 08:16:50 | → | chele joins (~chele@user/chele) |
| 08:18:04 | → | remsen joins (ianremsen@tilde.team) |
| 08:18:48 | × | ash3en quits (~Thunderbi@2a02:3100:7d5e:e500:94ed:866b:6bfb:f0dd) (Quit: ash3en) |
| 08:19:33 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 08:20:23 | × | paotsaq quits (~paotsaq@127.209.37.188.rev.vodafone.pt) (Quit: ZNC 1.9.0 - https://znc.in) |
| 08:20:31 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 08:21:22 | → | energizer joins (~energizer@user/energizer) |
| 08:22:06 | × | acidjnk_new3 quits (~acidjnk@p200300d6e72cfb11a59a794fa2bafb8b.dip0.t-ipconnect.de) (*.net *.split) |
| 08:22:06 | × | misterfish quits (~misterfis@84.53.85.146) (*.net *.split) |
| 08:22:06 | × | She quits (haveident@libera/staff/she/her) (*.net *.split) |
| 08:22:06 | × | hiredman quits (~hiredman@frontier1.downey.family) (*.net *.split) |
| 08:22:06 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (*.net *.split) |
| 08:22:06 | × | malte quits (~malte@mal.tc) (*.net *.split) |
| 08:22:06 | × | Fijxu quits (~Fijxu@user/fijxu) (*.net *.split) |
| 08:22:06 | × | gentauro quits (~gentauro@user/gentauro) (*.net *.split) |
| 08:22:06 | × | jle` quits (~jle`@2603:8001:3b02:84d4:ef66:1aba:fea9:c83b) (*.net *.split) |
| 08:22:06 | × | tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (*.net *.split) |
| 08:22:06 | × | myxos quits (~myxos@syn-065-028-251-121.res.spectrum.com) (*.net *.split) |
| 08:22:06 | × | andjjj23 quits (~irc@107.170.228.47) (*.net *.split) |
| 08:22:06 | × | edwtjo quits (~edwtjo@fsf/member/edwtjo) (*.net *.split) |
| 08:22:06 | × | andreas303 quits (andreas303@is.drunk.and.ready-to.party) (*.net *.split) |
| 08:22:06 | × | Vajb quits (~Vajb@n4v0h48xv84fiqflept-1.v6.elisa-mobile.fi) (*.net *.split) |
| 08:22:06 | × | sclv quits (sid39734@haskell/developer/sclv) (*.net *.split) |
| 08:22:06 | × | jmct quits (sid160793@id-160793.tinside.irccloud.com) (*.net *.split) |
| 08:22:06 | × | alinab quits (sid468903@id-468903.helmsley.irccloud.com) (*.net *.split) |
| 08:22:06 | × | DragonMaus quits (~dragonmau@user/dragonmaus) (*.net *.split) |
| 08:22:06 | × | pounce quits (~pounce@user/cute/pounce) (*.net *.split) |
| 08:22:06 | × | kqr quits (~kqr@static.143.81.108.65.clients.your-server.de) (*.net *.split) |
| 08:22:06 | × | remmie quits (ianremsen@tilde.team) (*.net *.split) |
| 08:22:06 | × | geekosaur quits (sid609282@xmonad/geekosaur) (*.net *.split) |
| 08:22:06 | × | bryanv quits (~quassel@2603:c028:4503:7500:45b7:933:ab17:bc10) (*.net *.split) |
| 08:22:06 | × | mmaruseacph2 quits (~mihai@mihai.page) (*.net *.split) |
| 08:22:08 | remsen | is now known as remmie |
| 08:22:33 | → | dysthesis joins (~dysthesis@user/dysthesis) |
| 08:24:18 | → | ubert joins (~Thunderbi@178.165.162.116.wireless.dyn.drei.com) |
| 08:24:42 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
| 08:25:59 | → | califax_ joins (~califax@user/califx) |
| 08:26:05 | × | cptaffe quits (~cptaffe@user/cptaffe) (Ping timeout: 260 seconds) |
| 08:26:11 | → | euleritian joins (~euleritia@ip2504fbd4.dynamic.kabel-deutschland.de) |
| 08:26:13 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 08:28:33 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 08:28:51 | × | ubert quits (~Thunderbi@178.165.162.116.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 08:28:56 | × | califax quits (~califax@user/califx) (Ping timeout: 260 seconds) |
| 08:28:58 | califax_ | is now known as califax |
| 08:31:17 | → | cptaffe joins (~cptaffe@user/cptaffe) |
| 08:31:51 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds) |
| 08:33:00 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 08:34:19 | → | qaotsap joins (~paotsaq@127.209.37.188.rev.vodafone.pt) |
| 08:34:19 | → | CrunchyFlakes_ joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 08:34:19 | → | acidjnk_new3 joins (~acidjnk@p200300d6e72cfb11a59a794fa2bafb8b.dip0.t-ipconnect.de) |
| 08:34:19 | → | misterfish joins (~misterfis@84.53.85.146) |
| 08:34:19 | → | She joins (haveident@libera/staff/she/her) |
| 08:34:19 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 08:34:19 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 08:34:19 | → | malte joins (~malte@mal.tc) |
| 08:34:19 | → | Fijxu joins (~Fijxu@user/fijxu) |
| 08:34:19 | → | gentauro joins (~gentauro@user/gentauro) |
| 08:34:19 | → | jle` joins (~jle`@2603:8001:3b02:84d4:ef66:1aba:fea9:c83b) |
| 08:34:19 | → | tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) |
| 08:34:19 | → | myxos joins (~myxos@syn-065-028-251-121.res.spectrum.com) |
| 08:34:19 | → | andjjj23 joins (~irc@107.170.228.47) |
| 08:34:19 | → | edwtjo joins (~edwtjo@fsf/member/edwtjo) |
| 08:34:19 | → | andreas303 joins (andreas303@is.drunk.and.ready-to.party) |
| 08:34:19 | → | Vajb joins (~Vajb@n4v0h48xv84fiqflept-1.v6.elisa-mobile.fi) |
| 08:34:19 | → | sclv joins (sid39734@haskell/developer/sclv) |
| 08:34:19 | → | jmct joins (sid160793@id-160793.tinside.irccloud.com) |
| 08:34:19 | → | alinab joins (sid468903@id-468903.helmsley.irccloud.com) |
| 08:34:19 | → | DragonMaus joins (~dragonmau@user/dragonmaus) |
| 08:34:19 | → | pounce joins (~pounce@user/cute/pounce) |
| 08:34:19 | → | kqr joins (~kqr@static.143.81.108.65.clients.your-server.de) |
| 08:34:19 | → | geekosaur joins (sid609282@xmonad/geekosaur) |
| 08:34:19 | → | bryanv joins (~quassel@2603:c028:4503:7500:45b7:933:ab17:bc10) |
| 08:34:19 | → | mmaruseacph2 joins (~mihai@mihai.page) |
| 08:35:15 | → | ubert joins (~Thunderbi@178.165.162.116.wireless.dyn.drei.com) |
| 08:36:49 | → | sawilagar_ joins (~sawilagar@user/sawilagar) |
| 08:37:48 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 08:39:02 | → | ash3en joins (~Thunderbi@146.70.124.200) |
| 08:39:24 | → | ash3en1 joins (~Thunderbi@dynamic-077-003-122-051.77.3.pool.telefonica.de) |
| 08:39:41 | → | rosco joins (~rosco@175.136.158.234) |
| 08:39:42 | × | rosco quits (~rosco@175.136.158.234) (Client Quit) |
| 08:40:06 | × | andreas303 quits (andreas303@is.drunk.and.ready-to.party) (Max SendQ exceeded) |
| 08:40:21 | → | andreas808 joins (andreas303@is.drunk.and.ready-to.party) |
| 08:40:35 | × | ash3en1 quits (~Thunderbi@dynamic-077-003-122-051.77.3.pool.telefonica.de) (Client Quit) |
| 08:43:32 | × | ash3en quits (~Thunderbi@146.70.124.200) (Ping timeout: 252 seconds) |
| 08:47:31 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 244 seconds) |
| 08:48:10 | <geekosaur> | well. that was "fun" |
| 08:56:18 | → | __monty__ joins (~toonn@user/toonn) |
| 09:05:15 | → | ash3en joins (~Thunderbi@2a02:3100:7d5e:e500:bc04:17c9:dd36:7eb9) |
| 09:05:18 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:06:06 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:13:16 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 09:19:07 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:31:35 | × | ash3en quits (~Thunderbi@2a02:3100:7d5e:e500:bc04:17c9:dd36:7eb9) (Quit: ash3en) |
| 09:35:10 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 09:35:26 | × | alexherbo2 quits (~alexherbo@2a02-8440-321a-b409-694c-4f82-7d03-8d48.rev.sfr.net) (Remote host closed the connection) |
| 09:35:40 | gehmehgeh | is now known as gmg |
| 09:35:46 | → | alexherbo2 joins (~alexherbo@2a02-8440-321a-b409-694c-4f82-7d03-8d48.rev.sfr.net) |
| 09:35:58 | → | euandreh joins (~Thunderbi@189.6.18.26) |
| 09:37:29 | × | euandreh quits (~Thunderbi@189.6.18.26) (Remote host closed the connection) |
| 09:59:07 | → | rosco joins (~rosco@175.136.158.234) |
| 10:03:54 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 10:10:48 | → | caubert_ joins (~caubert@user/caubert) |
| 10:12:43 | × | caubert quits (~caubert@user/caubert) (Ping timeout: 264 seconds) |
| 10:20:39 | × | euleritian quits (~euleritia@ip2504fbd4.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
| 10:20:46 | → | euleritian joins (~euleritia@dynamic-176-006-130-059.176.6.pool.telefonica.de) |
| 10:22:27 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 10:29:57 | → | danse7486 joins (~danse-nr3@user/danse-nr3) |
| 10:29:58 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Read error: Connection reset by peer) |
| 10:33:33 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 10:34:12 | → | rvalue joins (~rvalue@user/rvalue) |
| 10:44:44 | → | ZharMeny joins (~user@user/ZharMeny) |
| 10:51:02 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:05:25 | → | vgtw_ joins (~vgtw@user/vgtw) |
| 11:06:10 | × | vgtw quits (~vgtw@user/vgtw) (Ping timeout: 252 seconds) |
| 11:10:16 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 11:10:55 | → | ZharMeny` joins (~user@185.248.130.75) |
| 11:12:49 | × | ZharMeny quits (~user@user/ZharMeny) (Read error: Connection reset by peer) |
| 11:15:00 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 11:16:16 | × | ZharMeny` quits (~user@185.248.130.75) (Read error: Connection reset by peer) |
| 11:16:30 | → | ZharMeny` joins (~user@185.248.130.75) |
| 11:22:38 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 11:22:52 | × | xff0x quits (~xff0x@2405:6580:b080:900:3135:813b:16f4:ff8e) (Read error: Connection reset by peer) |
| 11:24:01 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:26:16 | × | dysthesis quits (~dysthesis@user/dysthesis) (Ping timeout: 260 seconds) |
| 11:27:01 | → | xff0x joins (~xff0x@2405:6580:b080:900:493f:3f7e:59db:90fc) |
| 11:32:24 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 11:34:28 | × | rosco quits (~rosco@175.136.158.234) (Quit: Lost terminal) |
| 11:47:08 | × | Me-me quits (~me-me@user/me-me) (Remote host closed the connection) |
| 11:47:41 | → | Me-me joins (~me-me@kc.randomserver.name) |
| 11:52:22 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 12:00:14 | × | danse7486 quits (~danse-nr3@user/danse-nr3) (Ping timeout: 244 seconds) |
| 12:02:56 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 12:14:53 | × | alexherbo2 quits (~alexherbo@2a02-8440-321a-b409-694c-4f82-7d03-8d48.rev.sfr.net) (Remote host closed the connection) |
| 12:18:51 | → | Square3 joins (~Square4@user/square) |
| 12:21:48 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Ping timeout: 252 seconds) |
| 12:27:04 | → | rosco joins (~rosco@175.136.158.234) |
| 12:28:34 | → | hyoga joins (~fkl@user/hyoga) |
| 12:28:40 | <hyoga> | Good morning. |
| 12:29:05 | <hyoga> | https://imgur.com/a/5DIvfEF |
| 12:29:24 | × | ddellacosta quits (~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 12:29:29 | <hyoga> | I watched a video on Y-combinator before I went to bed last night, but of course I didn't understand it at the time. So when I woke up this morning I took out a piece of paper and worked it out. |
| 12:29:50 | <hyoga> | (It's incredible how Haskell came up with this) Anyway, my question is... are Y-combinators still used in practice today, since most programming languages today have native support for recursion? |
| 12:32:22 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 12:34:06 | <probie> | hyoga: The generic term is "fixed-point combinator". The Y-combinator is just one specific instance. I doubt many languages would make much direct use of fixed point combinators; it's simple to allow recursion in the surface language and for the compiler to rewrite it to a fixed point combinator if needed |
| 12:35:55 | × | billchenchina- quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Ping timeout: 260 seconds) |
| 12:37:09 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Ping timeout: 248 seconds) |
| 12:37:48 | <hyoga> | thank you probie. |
| 12:41:32 | <zzz> | interestingly enough, you can't(*) implement it directly in Haskell |
| 12:42:04 | <probie> | % newtype Rec a = Rec { unRec :: Rec a -> a } |
| 12:42:04 | <yahb2> | <no output> |
| 12:42:18 | <zzz> | (*) without some type level gymnastics |
| 12:42:46 | <probie> | % let y = \f -> (\x -> f (unRec x x)) (Rec (\x -> f (unRec x x))) in y (\r n -> if n == 0 then 1 else n * r (n - 1)) 5 |
| 12:42:46 | <yahb2> | 120 |
| 12:43:12 | <probie> | just don't compile that with optimisations turned on in GHC :p |
| 12:45:49 | <probie> | The whole `Rec` `unRec` thing is because Haskell doesn't support recursive types; but because `Rec` is a newtype `Rec` and `unRec` won't exist at run time. Unfortunately they also trick GHC's inliner which will inline `y f` to `f (y f)` to `f (f (y f))` and so on |
| 12:47:40 | <__monty__> | hyoga: Haskell coming up with it is news to me. I expect Church probably worked it out in the beginnings of Lambda calculus. Nix actually uses fixed points quite a bit. |
| 12:50:25 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 12:52:29 | <hyoga> | my apologies, I've misread (https://stackoverflow.com/questions/93526/what-is-a-y-combinator). The answerer was referring to currying. |
| 12:56:02 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Ping timeout: 244 seconds) |
| 12:56:12 | <zzz> | % let ω f = f $ Rec f ; y f = ω $ \(Mu x) -> f $ ω x in y (\r n -> if n == 0 then 1 else n * r (n - 1)) 5 |
| 12:56:12 | <yahb2> | <interactive>:9:35: error: Not in scope: data constructor ‘Mu’ |
| 12:56:32 | <zzz> | % let ω f = f $ Rec f ; y f = ω $ \(Rec x) -> f $ ω x in y (\r n -> if n == 0 then 1 else n * r (n - 1)) 5 |
| 12:56:32 | <yahb2> | 120 |
| 12:56:35 | <zzz> | nice |
| 12:59:44 | todi_away | is now known as todi |
| 13:12:52 | <lxsameer> | hey folks, where can I learn more about Setup.hs and how the compiler uses it? |
| 13:14:39 | → | raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
| 13:16:17 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:17:04 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
| 13:19:49 | → | rvalue joins (~rvalue@user/rvalue) |
| 13:20:51 | <lxsameer> | nvm found it |
| 13:31:30 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 13:31:39 | × | jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 13:36:03 | → | stef204 joins (~stef204@user/stef204) |
| 13:36:21 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 13:41:34 | × | euleritian quits (~euleritia@dynamic-176-006-130-059.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 13:46:01 | ZharMeny` | is now known as ZharMeny |
| 13:47:08 | → | euleritian joins (~euleritia@ip2504fbd4.dynamic.kabel-deutschland.de) |
| 13:47:31 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 13:47:44 | × | cln_ quits (cln@wtf.cx) (Quit: cln_) |
| 13:50:28 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 258 seconds) |
| 14:02:10 | × | euleritian quits (~euleritia@ip2504fbd4.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds) |
| 14:02:28 | → | euleritian joins (~euleritia@dynamic-176-006-130-059.176.6.pool.telefonica.de) |
| 14:02:59 | → | wroathe joins (~wroathe@mobile-166-175-59-236.mycingular.net) |
| 14:02:59 | × | wroathe quits (~wroathe@mobile-166-175-59-236.mycingular.net) (Changing host) |
| 14:02:59 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:06:51 | × | raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds) |
| 14:07:05 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out) |
| 14:07:25 | × | jrm quits (~jrm@user/jrm) (Quit: ciao) |
| 14:08:54 | → | jrm joins (~jrm@user/jrm) |
| 14:13:56 | × | jrm quits (~jrm@user/jrm) (Quit: ciao) |
| 14:15:32 | → | jrm joins (~jrm@user/jrm) |
| 14:16:04 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 260 seconds) |
| 14:16:10 | → | rvalue- joins (~rvalue@user/rvalue) |
| 14:17:07 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 14:20:17 | rvalue- | is now known as rvalue |
| 14:20:42 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 14:23:00 | → | wroathe joins (~wroathe@mobile-166-175-59-236.mycingular.net) |
| 14:23:00 | × | wroathe quits (~wroathe@mobile-166-175-59-236.mycingular.net) (Changing host) |
| 14:23:00 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:26:10 | → | euandreh joins (~Thunderbi@189.6.18.26) |
| 14:35:58 | × | RedFlamingos quits (~RedFlamin@user/RedFlamingos) (Quit: RedFlamingos) |
| 14:35:59 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 14:37:10 | <EvanR> | lxsameer, clue lurkers in to where you found it |
| 14:39:24 | × | hyoga quits (~fkl@user/hyoga) (Ping timeout: 260 seconds) |
| 14:46:21 | × | califax quits (~califax@user/califx) (Ping timeout: 260 seconds) |
| 14:46:45 | → | califax joins (~califax@user/califx) |
| 14:52:18 | × | stef204 quits (~stef204@user/stef204) (Quit: WeeChat 4.2.1) |
| 14:52:26 | × | euandreh quits (~Thunderbi@189.6.18.26) (Remote host closed the connection) |
| 14:53:21 | → | jcarpenter2 joins (~lol@2603:3016:1e01:b980:1879:8876:e512:52cf) |
| 14:57:44 | → | hyoga joins (~fkl@67.216.55.241) |
| 15:04:42 | × | euleritian quits (~euleritia@dynamic-176-006-130-059.176.6.pool.telefonica.de) (Ping timeout: 276 seconds) |
| 15:05:09 | → | euleritian joins (~euleritia@dynamic-176-006-133-220.176.6.pool.telefonica.de) |
| 15:05:14 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 15:09:09 | × | leah2 quits (~leah@vuxu.org) (Ping timeout: 260 seconds) |
| 15:09:13 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:15:26 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 15:16:05 | × | david_tvh quits (~david_tvh@212.114.26.122) (Ping timeout: 248 seconds) |
| 15:19:11 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:21:09 | → | leah2 joins (~leah@vuxu.org) |
| 15:25:32 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
| 15:27:17 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 15:28:25 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 15:32:27 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 15:34:11 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 15:34:33 | → | califax joins (~califax@user/califx) |
| 15:35:07 | × | euleritian quits (~euleritia@dynamic-176-006-133-220.176.6.pool.telefonica.de) (Ping timeout: 258 seconds) |
| 15:37:01 | → | spew joins (~spew@201.141.102.132) |
| 15:37:40 | → | euleritian joins (~euleritia@dynamic-176-006-143-206.176.6.pool.telefonica.de) |
| 15:38:13 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 15:38:16 | → | wroathe joins (~wroathe@mobile-166-175-59-236.mycingular.net) |
| 15:38:16 | × | wroathe quits (~wroathe@mobile-166-175-59-236.mycingular.net) (Changing host) |
| 15:38:16 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:41:53 | × | euleritian quits (~euleritia@dynamic-176-006-143-206.176.6.pool.telefonica.de) (Ping timeout: 252 seconds) |
| 15:42:11 | → | euleritian joins (~euleritia@dynamic-176-006-143-206.176.6.pool.telefonica.de) |
| 15:44:18 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 15:46:55 | <spew> | anyone here work at microsoft? |
| 15:47:03 | <spew> | maybe better for offtopic, sorry |
| 15:49:13 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 15:53:10 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 15:57:05 | <EvanR> | microsoft research? xD |
| 15:59:59 | <spew> | no, not research, just normal microsoft, specifically azure/m365 |
| 16:01:50 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 16:03:20 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 16:05:10 | <spew> | more on-topic: I'm still just learning haskell would someone look at this regular expression matcher and let me know if I'm doing anything very un-idiomatic? https://github.com/spewspews/LearningHaskell/blob/main/RegEx.hs |
| 16:05:59 | <spew> | it's the kind of regular expression engine that compiles to a finite state machine vm |
| 16:06:19 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) () |
| 16:09:52 | × | euleritian quits (~euleritia@dynamic-176-006-143-206.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:10:10 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:16:56 | <dmj`> | spew: relevant https://swtch.com/~rsc/regexp/regexp1.html |
| 16:18:05 | <haskellbridge> | <thirdofmay18081814goya> any exercises on "Arrow"? unrelated: am also looking for exercises on type families and recursion schemes |
| 16:22:20 | × | hyoga quits (~fkl@67.216.55.241) (Quit: leaving) |
| 16:23:06 | × | jrm quits (~jrm@user/jrm) (Quit: ciao) |
| 16:24:35 | <haskellbridge> | <Bowuigi> dmj` how does this compare to TDFA? |
| 16:24:35 | → | jrm joins (~jrm@user/jrm) |
| 16:24:53 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 16:26:13 | × | jrm quits (~jrm@user/jrm) (Client Quit) |
| 16:27:53 | → | jrm joins (~jrm@user/jrm) |
| 16:29:31 | → | euphores joins (~SASL_euph@user/euphores) |
| 16:29:47 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 16:31:55 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 16:32:54 | → | jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 16:34:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:36:27 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 16:37:15 | × | Square3 quits (~Square4@user/square) (Ping timeout: 252 seconds) |
| 16:37:42 | <spew> | dmj`: I based it on that explanation |
| 16:44:51 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:50:49 | × | FragByte quits (~christian@user/fragbyte) (Ping timeout: 252 seconds) |
| 16:54:51 | <haskellbridge> | <mauke> "Regular expression matching can be simple and fast" if you ignore all the inconvenient bits that people use all the time, like bounded repetition, capturing, and backreferences |
| 16:55:10 | → | Square3 joins (~Square4@user/square) |
| 16:56:44 | <spew> | actually, you can do capturing with it |
| 16:57:33 | <spew> | anyway, what I wrote is just a toy, just handles . ? + * and subexpressions but with no capture |
| 16:57:53 | <spew> | I'm really just wondering if there's any weird non idiomatic things I'm doing or any other suggestions people might have |
| 16:58:28 | <spew> | you can also do bounded repetition too with "can be simple and fast" |
| 16:58:33 | <spew> | just not backreferences |
| 16:59:37 | <EvanR> | parse don't validate... or regex xD |
| 17:00:30 | <spew> | where does that haskellbridge bridge to? |
| 17:01:23 | <haskellbridge> | <mauke> Matrix |
| 17:01:32 | <zzz> | spew: #haskell-irc:matrix.org |
| 17:01:46 | <spew> | thanks |
| 17:02:06 | <zzz> | which annoys me to no end, seeing that the community has split in two |
| 17:02:44 | <zzz> | #haskell-irc:matrix.org and #haskell:matrix.org |
| 17:03:38 | <zzz> | makes zero sense to me but whatever |
| 17:03:40 | <EvanR> | don't tell zzz about the #haskell-offtopic #haskell-blah fiasco |
| 17:03:44 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 17:04:16 | <zzz> | EvanR: oh i'm aware. but the matrix stuff is unnecessary and easily solvable |
| 17:05:02 | <EvanR> | is it? |
| 17:05:31 | <zzz> | yes. why not merge both matrix channels? |
| 17:06:58 | → | alexherbo2 joins (~alexherbo@2a02-8440-321a-b409-608a-496b-a814-07c5.rev.sfr.net) |
| 17:07:52 | <yushyin> | afair, #haskell:matrix.org just doesn't want to be bridged |
| 17:08:17 | <EvanR> | sounds like a distinction with a difference |
| 17:09:34 | × | rosco quits (~rosco@175.136.158.234) (Quit: Lost terminal) |
| 17:11:41 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:14:30 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:15:03 | → | FragByte joins (~christian@user/fragbyte) |
| 17:19:31 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 17:22:19 | <justsomeguy> | Hello #haskell. I'm pretty good with the Python AWS SDK (Boto3), but I'm a newbie with Haskell and trying to learn Amazonka. Right now I'm familiar with basic prelude functions, functor, applicative, and monad. Amazonka uses lens, labels, conduit, and monad transformers, all of which I'm unfamiliar with. Any suggestions on how I can get up to speed with this libarary? |
| 17:22:22 | ← | wroathe parts (~wroathe@user/wroathe) () |
| 17:26:16 | <justsomeguy> | My idea is to tranlate several scripts of mine from Python to Haskell as a learning exercise. |
| 17:26:47 | → | euandreh joins (~Thunderbi@189.6.18.26) |
| 17:28:35 | <justsomeguy> | I'm trying to move away from Python to something more performant, and I already have a lot of time invested in learning Haskell. |
| 17:28:46 | <EvanR> | the amazonka haddocks have some examples |
| 17:29:55 | × | euandreh quits (~Thunderbi@189.6.18.26) (Remote host closed the connection) |
| 17:30:29 | → | euandreh joins (~Thunderbi@189.6.18.26) |
| 17:30:33 | × | spew quits (~spew@201.141.102.132) (Quit: spew) |
| 17:30:54 | <justsomeguy> | I was able to get a few example programs running. The haddocks are pretty much impenetrable to me at the moment, to be honest with you. |
| 17:31:45 | <EvanR> | I don't know lens labels or conduit but I understood the first example involving uploading something to S3 |
| 17:32:24 | <EvanR> | it uses the runFoo pattern for transformers |
| 17:32:41 | <EvanR> | :t runStateT |
| 17:32:42 | <lambdabot> | StateT s m a -> s -> m (a, s) |
| 17:34:17 | <justsomeguy> | Most of my questions came from trying to modify the EC2.hs example. Let me try to get the S3 example working and then I'll barrage you with questions :) |
| 17:34:39 | <justsomeguy> | (Like... what is a monad transformer?) |
| 17:36:19 | <EvanR> | it takes a monad and outputs a new monad, in our case with more abilities |
| 17:36:53 | <EvanR> | if m is a monad, StateT s m is a new monad which can keep a state (in addition to whatever m can do) |
| 17:38:58 | <EvanR> | e.g. m might be IO |
| 17:39:37 | <EvanR> | then runStateT would convert a StateT s IO "action" into an IO action |
| 17:40:13 | <EvanR> | but it requires you provide the initial state, and returns the final state |
| 17:40:41 | <EvanR> | (from the IO action, if it was executed) |
| 17:41:16 | <EvanR> | AWS.runResourceT in that example seems to just take the action alone |
| 17:42:13 | <EvanR> | the final result is an IO action |
| 17:49:03 | → | wroathe joins (~wroathe@mobile-166-175-59-236.mycingular.net) |
| 17:49:03 | × | wroathe quits (~wroathe@mobile-166-175-59-236.mycingular.net) (Changing host) |
| 17:49:03 | → | wroathe joins (~wroathe@user/wroathe) |
| 17:49:59 | → | madhavanmiui joins (~madhavanm@2409:40f4:10fc:3ca4:8000::) |
| 17:50:51 | × | madhavanmiui quits (~madhavanm@2409:40f4:10fc:3ca4:8000::) (Remote host closed the connection) |
| 17:50:54 | <justsomeguy> | Right now I'm feeling kind of overwhelmed, and I'm not sure where to start. |
| 17:53:23 | <EvanR> | did you get that example to compile, much less run |
| 17:53:30 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 17:53:36 | → | euleritian joins (~euleritia@dynamic-176-006-143-206.176.6.pool.telefonica.de) |
| 17:53:39 | <justsomeguy> | I have two examples running, EC2.hs and S3.hs. |
| 17:53:58 | × | euleritian quits (~euleritia@dynamic-176-006-143-206.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 17:54:03 | <EvanR> | hmm. I guess examples aren't enough then xD |
| 17:54:17 | → | euleritian joins (~euleritia@77.22.252.56) |
| 17:54:28 | <justsomeguy> | I think I'll make a repo so I can experiment with it more. |
| 17:54:42 | <EvanR> | you could load then in ghci and check the types of each subexpression.... and then hopefully understand the types in a way that makes sense to you |
| 17:55:13 | <EvanR> | there's no way to proceed without some understand of how stuff fits together... the types |
| 17:55:18 | <EvanR> | understanding* |
| 17:57:10 | <sm> | it's handy to have VSC + HLS, showing the types on hover. That will require making the example a project though. |
| 17:57:13 | → | jinsun_ joins (~jinsun@user/jinsun) |
| 17:57:13 | × | jinsun quits (~jinsun@user/jinsun) (Killed (platinum.libera.chat (Nickname regained by services))) |
| 17:57:13 | jinsun_ | is now known as jinsun |
| 17:57:30 | → | jinsun_ joins (~jinsun@user/jinsun) |
| 17:57:30 | jinsun | is now known as Guest3002 |
| 17:57:30 | × | Guest3002 quits (~jinsun@user/jinsun) (Killed (silver.libera.chat (Nickname regained by services))) |
| 17:57:30 | jinsun_ | is now known as jinsun |
| 17:57:37 | × | jinsun quits (~jinsun@user/jinsun) (Client Quit) |
| 17:57:47 | → | jinsun joins (~jinsun@user/jinsun) |
| 18:00:31 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:00:49 | <justsomeguy> | Installing the LSP now. I'll give it a shot. |
| 18:01:27 | <justsomeguy> | I've created an already disorganized repo here: https://github.com/kingparra/amazonka-wtf/tree/master |
| 18:04:58 | <EvanR> | the question about ByteString vs String |
| 18:05:52 | <EvanR> | ByteString is more efficient, more correct when you're dealing with arbitrary network traffic, and all these libraries are probably using it as currency |
| 18:06:23 | <EvanR> | your EC2 example has another runFoo there |
| 18:06:24 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 272 seconds) |
| 18:06:28 | <EvanR> | runConduit |
| 18:06:32 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 18:07:41 | <EvanR> | that's the key to transformers |
| 18:09:53 | <EvanR> | --what does runResourceT do |
| 18:09:54 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:10:45 | <EvanR> | https://hackage.haskell.org/package/resourcet-1.3.0/docs/Control-Monad-Trans-Resource.html#v:runResourceT |
| 18:15:59 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 18:22:59 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 18:26:18 | × | bliminse quits (~bliminse@user/bliminse) (Quit: leaving) |
| 18:29:23 | × | euandreh quits (~Thunderbi@189.6.18.26) (Remote host closed the connection) |
| 18:29:34 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 18:29:46 | → | dans34472 joins (~danse-nr3@user/danse-nr3) |
| 18:30:45 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
| 18:32:01 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Ping timeout: 252 seconds) |
| 18:33:35 | → | bliminse joins (~bliminse@user/bliminse) |
| 18:42:12 | × | dans34472 quits (~danse-nr3@user/danse-nr3) (Quit: good evening) |
| 18:45:17 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 18:51:02 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:52:41 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 18:59:14 | × | ubert quits (~Thunderbi@178.165.162.116.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
| 18:59:30 | → | ubert joins (~Thunderbi@178.165.162.116.wireless.dyn.drei.com) |
| 19:00:10 | × | alexherbo2 quits (~alexherbo@2a02-8440-321a-b409-608a-496b-a814-07c5.rev.sfr.net) (Remote host closed the connection) |
| 19:00:31 | → | alexherbo2 joins (~alexherbo@118.15.23.93.rev.sfr.net) |
| 19:01:35 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 19:01:43 | × | alexherbo2 quits (~alexherbo@118.15.23.93.rev.sfr.net) (Remote host closed the connection) |
| 19:02:22 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 19:04:15 | → | alexherbo2 joins (~alexherbo@2a02-8440-321a-b409-1924-bae7-7025-07ab.rev.sfr.net) |
| 19:04:57 | × | tomku quits (~tomku@user/tomku) (Ping timeout: 252 seconds) |
| 19:06:52 | × | m1dnight quits (~christoph@78-20-63-126.access.telenet.be) (Ping timeout: 252 seconds) |
| 19:06:52 | → | tomku joins (~tomku@user/tomku) |
| 19:07:56 | × | alexherbo2 quits (~alexherbo@2a02-8440-321a-b409-1924-bae7-7025-07ab.rev.sfr.net) (Remote host closed the connection) |
| 19:09:34 | × | euleritian quits (~euleritia@77.22.252.56) (Remote host closed the connection) |
| 19:10:09 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 19:18:24 | × | AlexZenon quits (~alzenon@178.34.160.210) (Ping timeout: 260 seconds) |
| 19:19:43 | → | neuroevolutus joins (~neuroevol@206.217.206.95) |
| 19:19:59 | × | AlexNoo quits (~AlexNoo@178.34.160.210) (Ping timeout: 260 seconds) |
| 19:29:10 | → | AlexNoo joins (~AlexNoo@178.34.160.210) |
| 19:29:59 | → | AlexZenon joins (~alzenon@178.34.160.210) |
| 19:31:07 | × | itaipu quits (~itaipu@168.121.98.107) (Remote host closed the connection) |
| 19:32:03 | × | Inst quits (~Inst@user/Inst) (Ping timeout: 245 seconds) |
| 19:34:48 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:35:24 | → | itaipu joins (~itaipu@168.121.98.107) |
| 19:36:01 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 19:37:36 | × | machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 272 seconds) |
| 19:38:11 | × | Digit quits (~user@user/digit) (Remote host closed the connection) |
| 19:39:36 | → | Digit joins (~user@user/digit) |
| 19:51:53 | → | Maeda joins (~Maeda@91-161-10-149.subs.proxad.net) |
| 19:55:53 | × | Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Client Quit) |
| 20:03:23 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 20:07:55 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 20:10:58 | → | m1dnight joins (~christoph@78-20-63-126.access.telenet.be) |
| 20:12:38 | → | Chappie joins (~Chappie@71.247.18.66) |
| 20:14:51 | × | michalz quits (~michalz@185.246.207.217) (Remote host closed the connection) |
| 20:19:37 | → | spew joins (~spew@201.141.102.132) |
| 20:21:49 | × | neuroevolutus quits (~neuroevol@206.217.206.95) (Quit: Client closed) |
| 20:24:18 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 248 seconds) |
| 20:28:43 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds) |
| 20:29:17 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 20:31:02 | <zzz> | what are the rules regarding "infix" functions with no arguments? eg: `(#) = True` |
| 20:31:15 | <zzz> | i know i can do |
| 20:31:22 | <zzz> | > `7` |
| 20:31:23 | <lambdabot> | <hint>:1:1: error: parse error on input ‘`’ |
| 20:31:37 | <zzz> | *can't |
| 20:31:56 | <zzz> | > let x = 7 in `x` |
| 20:31:58 | <lambdabot> | <hint>:1:14: error: parse error on input ‘`’ |
| 20:34:39 | <zzz> | > let (#) = 7 in (#) |
| 20:34:40 | <lambdabot> | 7 |
| 20:35:36 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 20:38:22 | → | neuroevolutus joins (~neuroevol@206.217.206.95) |
| 20:39:28 | <EvanR> | if it has no arguments its not even a function |
| 20:39:50 | <lxsameer> | to those who use nix for haskell: what do you use? haskell.nix? haskell-flake? shellFor? cabal2nix? |
| 20:40:17 | <EvanR> | operators aren't necessarily names of functions |
| 20:41:01 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 20:41:05 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
| 20:41:45 | × | spew quits (~spew@201.141.102.132) (Quit: spew) |
| 20:44:58 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:49:49 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 20:52:20 | <zzz> | well, yes... so what are the rules? |
| 20:53:58 | <zzz> | > (7 `id`) |
| 20:54:00 | <lambdabot> | 7 |
| 20:54:22 | <geekosaur> | infix operators are symbol characters and may not be reserved names such as "|" |
| 20:54:50 | <geekosaur> | prefix functions are alphanumerics, _, and ', and must start with an alphabetic character |
| 20:55:32 | <geekosaur> | both symbol and alphanumeric are according to the Unicode standard version used by the compiler version |
| 20:55:39 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:57:33 | <geekosaur> | > generalCategory '?' |
| 20:57:35 | <lambdabot> | OtherPunctuation |
| 20:57:51 | <EvanR> | R.I.P. emojihaskell twitter |
| 20:58:08 | <Rembane> | :( |
| 20:58:10 | <EvanR> | it was shutdown for some reason |
| 20:58:17 | <Rembane> | Is it gone? |
| 20:59:53 | <geekosaur> | zzz: per the Report: uniSymbol → any Unicode symbol or punctuation |
| 21:00:14 | <geekosaur> | so '?', being OtherPunctuation, is a valid character for use in operators |
| 21:00:38 | <EvanR> | is it gone |
| 21:01:20 | × | xal quits (~xal@mx1.xal.systems) (Quit: bye) |
| 21:01:48 | → | xal joins (~xal@mx1.xal.systems) |
| 21:02:15 | <EvanR> | its legacy may or may not live on here https://stackoverflow.com/questions/31965349/using-emoji-in-haskell |
| 21:04:37 | <zzz> | geekosaur: i guess my question is more about using symbols to represent values rather than functions |
| 21:05:16 | <geekosaur> | wrap 'em in parentheses |
| 21:05:29 | <geekosaur> | > let (*) = 7 in (*) |
| 21:05:30 | <lambdabot> | 7 |
| 21:05:42 | <zzz> | yes, i'm finding out that's what we have to do |
| 21:05:44 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds) |
| 21:05:46 | <EvanR> | which works whether or not it's a function |
| 21:06:00 | <geekosaur> | without the parentheses, operators are expected to be applied |
| 21:06:27 | <zzz> | > let (#) = id in 7 # |
| 21:06:29 | <lambdabot> | <hint>:1:20: error: |
| 21:06:29 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
| 21:06:36 | <zzz> | > let (#) = id in # 7 |
| 21:06:37 | <geekosaur> | there's only a small handful of places where an operator can be used "bare" without it needing to be applied to something, such as `infix` declarations |
| 21:06:38 | <lambdabot> | <hint>:1:17: error: parse error on input ‘#’ |
| 21:07:06 | <EvanR> | there is only 1 unary operator and it's special |
| 21:07:12 | <geekosaur> | also all operators are binary (or more); unary operators in Haskell are parser hacks |
| 21:07:26 | <c_wraith> | > let (!) n = product [1..n] in (7!) |
| 21:07:28 | <lambdabot> | 5040 |
| 21:07:40 | <EvanR> | rofl |
| 21:07:54 | <geekosaur> | that's still a parser hack (PostfixOperators) 🙂 |
| 21:08:06 | <c_wraith> | yeah, it is. I'm a bit surprised lambabot has it enabled |
| 21:08:08 | <EvanR> | it's just a section? |
| 21:08:27 | <geekosaur> | yes |
| 21:09:00 | <zzz> | geekosaur: i used to trip over `:t +` vs `:t (+)` in ghci. turns out we can do :i + |
| 21:09:14 | <geekosaur> | yes, but that doesn't count as language |
| 21:09:22 | <zzz> | sure |
| 21:09:44 | <zzz> | no reason to be inconsistent however |
| 21:10:18 | <EvanR> | good idea lets make ghci consistent |
| 21:10:32 | <c_wraith> | It's not, really. :type takes an expression. :info takes an identifier. They're different things with different rules. |
| 21:10:41 | × | neuroevolutus quits (~neuroevol@206.217.206.95) (Ping timeout: 256 seconds) |
| 21:10:55 | <zzz> | fair enough |
| 21:11:13 | <geekosaur> | yes there is, sadly. :t needs to parse an expression, :info parses a single item with no spaces and no language understanding |
| 21:12:15 | <c_wraith> | interestingly, TemplateHaskell requires '(+) to use it as a Name literal. |
| 21:12:31 | <c_wraith> | I guess it'd be syntactically ambiguous without the parens |
| 21:13:19 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:14:20 | <EvanR> | best of emojihaskell https://i.imgur.com/tQWKpq7.png |
| 21:14:25 | <c_wraith> | well, no. ' isn't an operator literal. It'd be weird, though. |
| 21:14:47 | <c_wraith> | err, operator character. |
| 21:15:43 | <c_wraith> | It would kinda look like an operator character in that context, and be rather non-obvious what you're doing. |
| 21:16:19 | <geekosaur> | seems sensible to me, parens around an operator make it a prefix function, which seems like the intent of Name |
| 21:16:21 | <int-e> | EvanR: So your Haskell looks like hieroglyphics? Detractors will be pleased. |
| 21:17:06 | <EvanR> | we take our insistence on random single letter variable names to the extreme |
| 21:17:20 | <int-e> | @src map |
| 21:17:20 | <lambdabot> | map _ [] = [] |
| 21:17:20 | <lambdabot> | map f (x:xs) = f x : map f xs |
| 21:17:59 | <int-e> | Call me too modern but I think I prefer that version. |
| 21:19:38 | <c_wraith> | that has two- and three-letter identifiers! so verbose. |
| 21:20:56 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 21:21:19 | <EvanR> | I was going to stress test IRC's unicode by typing the egyptian version |
| 21:21:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 21:21:30 | <EvanR> | looks like it might take a while |
| 21:21:59 | <c_wraith> | IRC doesn't really support unicode, notionally. It supports bytes. Let's hope that systems agree on how to encode and decode them... |
| 21:25:39 | × | ubert quits (~Thunderbi@178.165.162.116.wireless.dyn.drei.com) (Quit: ubert) |
| 21:25:40 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:25:52 | <Rembane> | Hopefully c_wraith's client will support unicode in both directions |
| 21:26:37 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 21:33:04 | <EvanR> | 𓅓𓊪 :: (𓄿 -> 𓃀) -> [𓄿] -> [𓃀] |
| 21:33:11 | <EvanR> | 𓅓𓊪 𓆑 (𓇋:𓇌) = 𓆑 𓇋 : 𓅓𓊪 𓆑 𓇌 |
| 21:33:15 | <EvanR> | 𓅓𓊪 _ _ = [] |
| 21:34:02 | <EvanR> | too much space after the first 𓅓𓊪 𓆑 |
| 21:34:18 | <geekosaur> | my screen is full of placeholders now |
| 21:34:23 | <EvanR> | lol |
| 21:35:04 | <EvanR> | get your egyptian supporting font installed, and make sure it's one that includes the phallus |
| 21:36:38 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 21:41:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:47:11 | → | ft joins (~ft@p4fc2aa15.dip0.t-ipconnect.de) |
| 21:51:32 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 21:52:58 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds) |
| 21:57:13 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:58:19 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
| 22:07:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:10:22 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 22:11:30 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:15:02 | <zzz> | yay --allow-newer |
| 22:15:55 | × | terrorjack4 quits (~terrorjac@static.163.82.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
| 22:17:59 | → | terrorjack4 joins (~terrorjac@static.163.82.63.178.clients.your-server.de) |
| 22:21:09 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 22:21:26 | <zzz> | oh no :( |
| 22:21:34 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 22:22:07 | → | euleritian joins (~euleritia@dynamic-176-007-193-159.176.7.pool.telefonica.de) |
| 22:22:13 | <zzz> | turns out i cant build lambdabot |
| 22:23:03 | <EvanR> | lambdabot, there can be only one |
| 22:33:47 | <geekosaur> | no, one of the deps needs a patchup |
| 22:34:09 | <geekosaur> | iirc it's the semigroup/momoid change? might be monadfail though |
| 22:35:06 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 22:35:32 | × | euleritian quits (~euleritia@dynamic-176-007-193-159.176.7.pool.telefonica.de) (Ping timeout: 255 seconds) |
| 22:36:03 | <zzz> | what semigroup/monoid change? |
| 22:36:21 | <c_wraith> | making semigroup a superclass of monoid |
| 22:36:29 | → | euleritian joins (~euleritia@dynamic-176-007-194-184.176.7.pool.telefonica.de) |
| 22:36:36 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer) |
| 22:37:16 | <zzz> | isn't that old news? |
| 22:37:27 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:37:39 | <c_wraith> | not compared to the lifetime of lambdabot |
| 22:37:43 | <geekosaur> | yes, but one of the deps predates a bunch of things |
| 22:38:28 | <geekosaur> | I think someone's trying to take over various unmaintained deps and update them, but I would have thought it would have happened by now |
| 22:39:42 | <zzz> | https://github.com/lambdabot/lambdabot/blob/6d69d59d4db796fa3a750ec01d90156ffee2c209/lambdabot/lambdabot.cabal#L23C1-L23C150 |
| 22:39:45 | <zzz> | what am i missing? |
| 22:39:59 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 22:40:34 | <geekosaur> | _lambdabot_ was tested. it's a dep of one of the plugin packages that's broken |
| 22:41:14 | <zzz> | i see |
| 22:42:17 | <geekosaur> | iirc it's not even a library, it's an executable that lb calls for one of its plugins |
| 22:42:33 | <geekosaur> | been a while since I last looked at it |
| 22:43:39 | <zzz> | is there a way i get it to work in my machine? |
| 22:43:59 | <zzz> | *is there a way i can get it to work on my machine? |
| 22:51:19 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 22:55:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 22:57:43 | × | oo_miguel quits (~Thunderbi@78.10.207.46) (Ping timeout: 264 seconds) |
| 23:00:27 | <c_wraith> | Option a) find a sufficiently old version of ghc and make sure it builds against sufficiently old pacakges. Option b) fix the bug locally using a cabal.project file to specify the local version of the package instead of the hackage version |
| 23:02:49 | <c_wraith> | I guess there's also option c) deactivate the broken plugin |
| 23:03:15 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:03:26 | <c_wraith> | lambdabot enables a lot of plugins by default, and last time I built it I turned most of them off. |
| 23:07:14 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:07:30 | × | euleritian quits (~euleritia@dynamic-176-007-194-184.176.7.pool.telefonica.de) (Ping timeout: 252 seconds) |
| 23:08:43 | → | euleritian joins (~euleritia@dynamic-176-003-009-126.176.3.pool.telefonica.de) |
| 23:09:35 | × | sawilagar_ quits (~sawilagar@user/sawilagar) (Ping timeout: 252 seconds) |
| 23:11:14 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 23:15:16 | <geekosaur> | sadly, I'm pretty sure it's part of the haskell plugins |
| 23:17:34 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:18:42 | × | acidjnk_new3 quits (~acidjnk@p200300d6e72cfb11a59a794fa2bafb8b.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 23:21:15 | → | acidjnk_new3 joins (~acidjnk@p200300d6e72cfb11a59a794fa2bafb8b.dip0.t-ipconnect.de) |
| 23:24:25 | <haskellbridge> | <thirdofmay18081814goya> I've defined the following instance: |
| 23:24:25 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/EBZbVBQkWULjItmoFSDrrZYu (7 lines) |
| 23:24:39 | <haskellbridge> | <thirdofmay18081814goya> * "Circuit a a" |
| 23:24:48 | <haskellbridge> | <thirdofmay18081814goya> * a"? |
| 23:25:19 | <haskellbridge> | <thirdofmay18081814goya> * a" instead of "(Arrow a) => a c c"? |
| 23:25:37 | <haskellbridge> | <thirdofmay18081814goya> * b b" |
| 23:27:53 | <EvanR> | the 7 lines seems to have been cut off |
| 23:28:44 | <EvanR> | would be interesting to know what Circuit is |
| 23:29:46 | → | troojg joins (~troojg@user/troojg) |
| 23:29:55 | <haskellbridge> | <thirdofmay18081814goya> EvanR: it's from https://en.wikibooks.org/wiki/Haskell/Arrow_tutorial |
| 23:29:58 | <haskellbridge> | <thirdofmay18081814goya> i think I want "TypeApplications" |
| 23:30:34 | <EvanR> | it just didn't understand most of your messages after |
| 23:30:43 | <EvanR> | -- in the repl, how do I write "myCircuit = arr f" in such a way that ":t myCircuit" will return `Circui |
| 23:31:48 | <EvanR> | maybe I deciphered it all and yes TypeApplications might do it |
| 23:40:13 | → | wroathe joins (~wroathe@mobile-166-175-60-99.mycingular.net) |
| 23:40:13 | × | wroathe quits (~wroathe@mobile-166-175-60-99.mycingular.net) (Changing host) |
| 23:40:13 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:40:16 | <haskellbridge> | <thirdofmay18081814goya> EvanR: ah element updates don't appear in irc!! I meant: in such a way that :t myCircuit will return Circuit b b instead of (Arrow a) => a c c? |
| 23:40:23 | <haskellbridge> | <thirdofmay18081814goya> * c |
| 23:40:24 | × | wroathe quits (~wroathe@user/wroathe) (Client Quit) |
| 23:41:55 | <EvanR> | arr @Circuit f |
| 23:42:11 | <EvanR> | :t (/) |
| 23:42:13 | <lambdabot> | Fractional a => a -> a -> a |
| 23:42:17 | <EvanR> | :t (/) @Double |
| 23:42:19 | <lambdabot> | error: |
| 23:42:19 | <lambdabot> | Pattern syntax in expression context: (/)@Double |
| 23:42:19 | <lambdabot> | Did you mean to enable TypeApplications? |
| 23:42:36 | <EvanR> | % :t (/) @Double |
| 23:42:36 | <yahb2> | (/) @Double :: Double -> Double -> Double |
| 23:43:06 | × | euleritian quits (~euleritia@dynamic-176-003-009-126.176.3.pool.telefonica.de) (Ping timeout: 258 seconds) |
| 23:44:14 | → | euleritian joins (~euleritia@dynamic-176-003-079-024.176.3.pool.telefonica.de) |
| 23:44:22 | → | wroathe joins (~wroathe@mobile-166-175-60-99.mycingular.net) |
| 23:44:22 | × | wroathe quits (~wroathe@mobile-166-175-60-99.mycingular.net) (Changing host) |
| 23:44:22 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:44:27 | <haskellbridge> | <thirdofmay18081814goya> EvanR: ty! |
| 23:45:51 | × | wroathe quits (~wroathe@user/wroathe) (Client Quit) |
| 23:46:07 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:47:31 | → | wroathe joins (~wroathe@mobile-166-175-60-99.mycingular.net) |
| 23:47:31 | × | wroathe quits (~wroathe@mobile-166-175-60-99.mycingular.net) (Changing host) |
| 23:47:31 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:52:59 | × | talismanick quits (~user@2601:644:937c:ed10::ae5) (Ping timeout: 260 seconds) |
| 23:57:16 | × | troojg quits (~troojg@user/troojg) (Ping timeout: 272 seconds) |
All times are in UTC on 2024-08-14.