2023/11/17

2023-11-17 00:04:51 +0100acidjnk(~acidjnk@p200300d6e72b9344349e196aee999b14.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-11-17 00:07:43 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-11-17 00:19:29 +0100Ivelten(~textual@38.252.84.3)
2023-11-17 00:20:26 +0100Jackneill(~Jackneill@20014C4E1E1AA2009B34AF74A9557C2A.dsl.pool.telekom.hu) (Ping timeout: 260 seconds)
2023-11-17 00:21:54 +0100chomwitt(~chomwitt@2a02:587:7a03:f500:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds)
2023-11-17 00:21:56 +0100Ivelten(~textual@38.252.84.3) (Client Quit)
2023-11-17 00:24:35 +0100migas9(~migas@static.140.65.63.178.clients.your-server.de) (Server closed connection)
2023-11-17 00:24:54 +0100migas9(~migas@static.140.65.63.178.clients.your-server.de)
2023-11-17 00:31:10 +0100thegeekinside(~thegeekin@189.180.53.210)
2023-11-17 00:35:28 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-11-17 00:36:09 +0100ivelten(~ivelten@38.252.84.3)
2023-11-17 00:38:06 +0100hexeme(~hexeme@user/hexeme) (Server closed connection)
2023-11-17 00:39:28 +0100hexeme(~hexeme@user/hexeme)
2023-11-17 00:49:11 +0100cheater_(~Username@user/cheater)
2023-11-17 00:50:32 +0100 <jackdk> My standard response on the streaming topic is "`conduit` is warty and annoying but servicable for single source -> single sink; I have never successfully written a nontrivial program in `pipes`; `streaming` has an extremely core abstraction and is my default choice for nontrivial stuff; `streamly` might be interesting but also broke my code in a minor version update so I'll look at it again some other day"
2023-11-17 00:51:28 +0100 <jackdk> johnw's point that you don't want a consumer of `(a,b)`s remains correct whatever streaming abstraction you use
2023-11-17 00:53:01 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-11-17 00:53:08 +0100cheater_cheater
2023-11-17 00:55:43 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2023-11-17 00:56:25 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 256 seconds)
2023-11-17 01:01:47 +0100exarkun(~exarkun@user/exarkun) (Server closed connection)
2023-11-17 01:03:38 +0100exarkun(~exarkun@user/exarkun)
2023-11-17 01:14:45 +0100maturana(~maturana@37.218.244.249)
2023-11-17 01:14:47 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-11-17 01:14:58 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-11-17 01:16:07 +0100maturana(~maturana@37.218.244.249) (Client Quit)
2023-11-17 01:17:16 +0100cheater_(~Username@user/cheater)
2023-11-17 01:17:20 +0100Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-11-17 01:20:40 +0100 <hammond> is the closure in scheme the same as the closure in haskell?
2023-11-17 01:21:06 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-11-17 01:21:13 +0100cheater_cheater
2023-11-17 01:23:45 +0100cheater_(~Username@user/cheater)
2023-11-17 01:24:05 +0100 <monochrom> I'll go on a limb and say yes. :)
2023-11-17 01:25:08 +0100notzmv(~zmv@user/notzmv)
2023-11-17 01:28:12 +0100 <EvanR> jackdk, extremely <missing word?> core abstraction?
2023-11-17 01:28:25 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-11-17 01:28:38 +0100cheater_cheater
2023-11-17 01:29:18 +0100cheater_(~Username@user/cheater)
2023-11-17 01:29:19 +0100 <EvanR> closure: pass by reference without the passing xD
2023-11-17 01:29:41 +0100 <jackdk> EvanR: sorry, I accidentally a word. I think I wanted "elegant" there; it's not the simplest thing (parameterising the stream by a functor) but adds a lot of power that feels worth the complexity (this gets you proper chunked streaming and streams of individual elements with the same abstraction).
2023-11-17 01:30:17 +0100 <EvanR> nice
2023-11-17 01:32:29 +0100 <hammond> monochrom in scheme you can make a counter function that whenever called increments returns a increased value. because the inner value is encapsulated in the function and stored in heap somewhere.
2023-11-17 01:32:59 +0100 <hammond> and if you have difference instances of the func you can have different incrementers.
2023-11-17 01:33:21 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-11-17 01:33:26 +0100cheater_cheater
2023-11-17 01:36:53 +0100 <hammond> this example in js https://www.w3schools.com/js/tryit.asp?filename=tryjs_function_closures5
2023-11-17 01:37:45 +0100 <hammond> since data in haskell is immutable, how is closure... a closure in the sense the js is one. ikd.
2023-11-17 01:37:46 +0100cheater_(~Username@user/cheater)
2023-11-17 01:37:48 +0100 <monochrom> I don't know why you are telling me that. But in Haskell the only change is you use an IORef.
2023-11-17 01:37:48 +0100 <hammond> idk*
2023-11-17 01:38:28 +0100 <hammond> hmm
2023-11-17 01:38:40 +0100 <monochrom> Plus, even in the pure fragment, lazy evaluation is a mutation from unevaluated expression to value.
2023-11-17 01:40:06 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-11-17 01:40:12 +0100cheater_cheater
2023-11-17 01:40:18 +0100 <monochrom> Although, people will debate whether the standard absolutely requires that or is also OK with potentially exp-time call-by-name. (Answer: the latter.)
2023-11-17 01:40:32 +0100dumptruckman(~dumptruck@23-239-13-136.ip.linodeusercontent.com) (Server closed connection)
2023-11-17 01:40:42 +0100dumptruckman(~dumptruck@23-239-13-136.ip.linodeusercontent.com)
2023-11-17 01:40:58 +0100Pozyomka(~pyon@user/pyon) (Quit: brb)
2023-11-17 01:41:13 +0100Pozyomka(~pyon@user/pyon)
2023-11-17 01:57:08 +0100cheater_(~Username@user/cheater)
2023-11-17 01:58:32 +0100robertm(robertm@lattice.rojoma.com) (Quit: WeeChat 3.8)
2023-11-17 02:00:24 +0100robertm(robertm@lattice.rojoma.com)
2023-11-17 02:01:01 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-11-17 02:01:05 +0100cheater_cheater
2023-11-17 02:04:30 +0100tomith(tomith@85-156-187-17.elisa-laajakaista.fi) (Ping timeout: 268 seconds)
2023-11-17 02:11:33 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-11-17 02:12:04 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-11-17 02:14:38 +0100p3n(~p3n@217.198.124.246) (Server closed connection)
2023-11-17 02:14:55 +0100p3n(~p3n@217.198.124.246)
2023-11-17 02:14:58 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com)
2023-11-17 02:14:58 +0100ChanServ+v haskellbridge
2023-11-17 02:15:45 +0100tomith(tomith@user/tomith)
2023-11-17 02:16:44 +0100hammond(proscan@gateway02.insomnia247.nl) (Changing host)
2023-11-17 02:16:44 +0100hammond(proscan@user/hammond2)
2023-11-17 02:18:49 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-11-17 02:29:41 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds)
2023-11-17 02:30:37 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2023-11-17 02:34:24 +0100 <ski> hammond : in a Scheme with boxen (mutable reference cells) (e.g. Racket) :
2023-11-17 02:34:37 +0100 <ski> (define (make-counter)
2023-11-17 02:34:54 +0100 <ski> (let ((count (box 0)))
2023-11-17 02:35:01 +0100 <ski> (lambda ()
2023-11-17 02:35:17 +0100 <ski> (let ((val (unbox count)))
2023-11-17 02:35:42 +0100 <ski> (set-box! count (+ val 1))
2023-11-17 02:35:52 +0100 <ski> val))))
2023-11-17 02:36:19 +0100 <ski> in Haskell :
2023-11-17 02:36:46 +0100 <ski> makeCounter :: IO (IO Integer)
2023-11-17 02:37:01 +0100 <ski> makeCounter = do
2023-11-17 02:37:12 +0100 <ski> count <- newIORef 0
2023-11-17 02:37:23 +0100 <ski> return $ do
2023-11-17 02:37:40 +0100 <ski> val <- readIORef count
2023-11-17 02:37:56 +0100 <ski> writeIORef count (val + 1)
2023-11-17 02:38:01 +0100 <ski> return val
2023-11-17 02:40:38 +0100 <hammond> I see.
2023-11-17 02:40:41 +0100 <hammond> thx ski
2023-11-17 02:41:35 +0100 <ski> it would probably be more common to use mutation of variables in Scheme (no such in Haskell), with `set!', rather than create explicit boxen
2023-11-17 02:43:21 +0100earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 268 seconds)
2023-11-17 02:43:58 +0100 <hammond> ski but the box and unbox are the haskell equivalents right.
2023-11-17 02:45:11 +0100 <ski> of `newIORef' and `readIORef', yes
2023-11-17 02:46:00 +0100 <hammond> cool. thx.
2023-11-17 02:46:27 +0100 <hammond> I think learning scheme is helping me understand haskell better.
2023-11-17 02:47:11 +0100cptaffe(~cptaffe@user/cptaffe) (Server closed connection)
2023-11-17 02:47:19 +0100 <hammond> like when i was looking at this https://chrisdone.com/posts/haskell-doesnt-have-macros/
2023-11-17 02:47:30 +0100cptaffe(~cptaffe@user/cptaffe)
2023-11-17 02:54:51 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 256 seconds)
2023-11-17 02:54:54 +0100cheater_(~Username@user/cheater)
2023-11-17 02:55:31 +0100vglfr(~vglfr@78.26.242.160) (Read error: Connection reset by peer)
2023-11-17 02:55:44 +0100vglfr(~vglfr@88.155.21.216)
2023-11-17 02:56:15 +0100vglfr(~vglfr@88.155.21.216) (Read error: Connection reset by peer)
2023-11-17 02:56:22 +0100koz(~koz@121.99.240.58) (Ping timeout: 246 seconds)
2023-11-17 02:57:51 +0100vglfr(~vglfr@78.26.242.160)
2023-11-17 02:59:06 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-11-17 02:59:11 +0100cheater_cheater
2023-11-17 03:00:42 +0100sa1(sid7690@id-7690.ilkley.irccloud.com) (Server closed connection)
2023-11-17 03:00:52 +0100sa1(sid7690@id-7690.ilkley.irccloud.com)
2023-11-17 03:01:11 +0100koz(~koz@121.99.240.58)
2023-11-17 03:01:32 +0100bilegeek(~bilegeek@2600:1008:b041:46b6:dc69:f6ef:64a9:b47f)
2023-11-17 03:01:40 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2023-11-17 03:04:24 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-11-17 03:06:17 +0100earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net)
2023-11-17 03:09:51 +0100otto_s(~user@p4ff275a7.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-11-17 03:11:55 +0100otto_s(~user@p4ff27677.dip0.t-ipconnect.de)
2023-11-17 03:21:30 +0100dove(~irc@2600:3c00:e000:287::1) (Server closed connection)
2023-11-17 03:21:48 +0100dove(~irc@2600:3c00:e000:287::1)
2023-11-17 03:23:11 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 03:26:31 +0100arkfuture(~Thunderbi@user/arkfuture)
2023-11-17 03:30:33 +0100xff0x(~xff0x@2405:6580:b080:900:389:c68e:2e26:10bf) (Ping timeout: 256 seconds)
2023-11-17 03:33:23 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2023-11-17 03:36:34 +0100cheater_(~Username@user/cheater)
2023-11-17 03:37:55 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-11-17 03:38:56 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-11-17 03:41:00 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-11-17 03:41:02 +0100cheater_cheater
2023-11-17 03:44:03 +0100cheater_(~Username@user/cheater)
2023-11-17 03:48:07 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-11-17 03:48:10 +0100cheater_cheater
2023-11-17 03:50:41 +0100arkfuture(~Thunderbi@user/arkfuture) (Quit: arkfuture)
2023-11-17 03:50:46 +0100koz(~koz@121.99.240.58) (Ping timeout: 245 seconds)
2023-11-17 03:51:48 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-11-17 03:53:03 +0100koz(~koz@121.99.240.58)
2023-11-17 03:54:21 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 03:54:21 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
2023-11-17 03:58:53 +0100Square2(~Square4@user/square) (Ping timeout: 256 seconds)
2023-11-17 04:01:43 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 256 seconds)
2023-11-17 04:02:17 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2023-11-17 04:03:24 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-11-17 04:06:34 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-11-17 04:13:33 +0100andjjj23(~irc@107.170.228.47) (Server closed connection)
2023-11-17 04:13:51 +0100andjjj23(~irc@107.170.228.47)
2023-11-17 04:14:11 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2023-11-17 04:14:11 +0100vglfr(~vglfr@78.26.242.160) (Read error: Connection reset by peer)
2023-11-17 04:14:24 +0100vglfr(~vglfr@88.155.21.216)
2023-11-17 04:16:46 +0100vilya(~vilya@user/vilya) (Ping timeout: 268 seconds)
2023-11-17 04:17:16 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 04:17:55 +0100vilya(~vilya@user/vilya)
2023-11-17 04:18:14 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-11-17 04:19:20 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) (Remote host closed the connection)
2023-11-17 04:19:34 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711)
2023-11-17 04:20:28 +0100td_(~td@i53870904.versanet.de) (Ping timeout: 268 seconds)
2023-11-17 04:21:10 +0100vglfr(~vglfr@88.155.21.216) (Read error: Connection reset by peer)
2023-11-17 04:22:03 +0100td_(~td@i5387092c.versanet.de)
2023-11-17 04:22:56 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2023-11-17 04:23:06 +0100vglfr(~vglfr@78.26.242.160)
2023-11-17 04:24:10 +0100conjunctive(sid433686@id-433686.helmsley.irccloud.com) (Server closed connection)
2023-11-17 04:24:16 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-11-17 04:24:16 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-11-17 04:24:16 +0100finn_elijaFinnElija
2023-11-17 04:24:20 +0100conjunctive(sid433686@id-433686.helmsley.irccloud.com)
2023-11-17 04:27:47 +0100erty(~user@user/aeroplane) (Ping timeout: 256 seconds)
2023-11-17 04:28:36 +0100noctux(~noctux@user/noctux) (Ping timeout: 246 seconds)
2023-11-17 04:29:29 +0100Benzi-Junior(~BenziJuni@88-149-64-112.du.xdsl.is) (Server closed connection)
2023-11-17 04:29:50 +0100Benzi-Junior(~BenziJuni@88-149-64-112.du.xdsl.is)
2023-11-17 04:30:59 +0100noctux(~noctux@user/noctux)
2023-11-17 04:31:29 +0100hippoid(~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Changing host)
2023-11-17 04:31:29 +0100hippoid(~hippoid@user/hippoid)
2023-11-17 04:38:15 +0100rosco(~rosco@175.136.157.149)
2023-11-17 04:41:33 +0100terrorjack(~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
2023-11-17 04:42:30 +0100terrorjack(~terrorjac@2a01:4f8:c17:87f8::)
2023-11-17 04:45:26 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 04:53:37 +0100Vq(~vq@90-225-115-195-no122.tbcn.telia.com) (Server closed connection)
2023-11-17 04:53:47 +0100Vq(~vq@90-225-115-195-no122.tbcn.telia.com)
2023-11-17 04:54:47 +0100T_S____(sid501726@id-501726.uxbridge.irccloud.com) (Server closed connection)
2023-11-17 04:55:04 +0100T_S____(sid501726@id-501726.uxbridge.irccloud.com)
2023-11-17 04:56:51 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-11-17 04:57:46 +0100img(~img@user/img)
2023-11-17 05:00:58 +0100vilya(~vilya@user/vilya) (Read error: Connection reset by peer)
2023-11-17 05:06:15 +0100vilya(~vilya@user/vilya)
2023-11-17 05:09:33 +0100aforemny_(~aforemny@2001:9e8:6cfd:dc00:140c:ed35:bfe1:eaed)
2023-11-17 05:10:45 +0100aforemny(~aforemny@2001:9e8:6cd7:8c00:47af:9d09:fce9:5fc4) (Ping timeout: 245 seconds)
2023-11-17 05:10:51 +0100hugo(znc@quicksilver.lysator.liu.se) (Server closed connection)
2023-11-17 05:11:10 +0100hugo(znc@quicksilver.lysator.liu.se)
2023-11-17 05:11:58 +0100billchenchina(~billchenc@103.152.35.21)
2023-11-17 05:12:24 +0100 <lockywolf> Scheme now has boxes
2023-11-17 05:17:42 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2023-11-17 05:19:13 +0100ivelten(~ivelten@38.252.84.3) (Quit: Textual IRC Client: www.textualapp.com)
2023-11-17 05:23:59 +0100euleritian(~euleritia@dynamic-002-247-251-218.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 05:24:17 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 05:25:10 +0100buhman(sid411355@user/buhman) (Server closed connection)
2023-11-17 05:25:25 +0100buhman(sid411355@user/buhman)
2023-11-17 05:26:39 +0100bilegeek_(~bilegeek@2600:1008:b01b:b030:16e8:c80e:af15:b9f5)
2023-11-17 05:28:26 +0100cheater_(~Username@user/cheater)
2023-11-17 05:29:32 +0100bilegeek(~bilegeek@2600:1008:b041:46b6:dc69:f6ef:64a9:b47f) (Ping timeout: 268 seconds)
2023-11-17 05:29:34 +0100 <EvanR> haskell doesn't have macros, but it has template haskell
2023-11-17 05:30:41 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-11-17 05:30:51 +0100cheater_cheater
2023-11-17 05:32:51 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com) (Server closed connection)
2023-11-17 05:34:25 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com)
2023-11-17 05:34:30 +0100glowcoil(sid3405@id-3405.tinside.irccloud.com) (Server closed connection)
2023-11-17 05:34:43 +0100glowcoil(sid3405@id-3405.tinside.irccloud.com)
2023-11-17 05:37:34 +0100Adeon(sid418992@id-418992.lymington.irccloud.com) (Server closed connection)
2023-11-17 05:37:43 +0100Adeon(sid418992@id-418992.lymington.irccloud.com)
2023-11-17 05:45:40 +0100 <c_wraith> also... GHC does have macros. That work sort of badly because the C pre-processor makes assumptions about tokens in the source that haskell can violate
2023-11-17 05:45:59 +0100erty(~user@user/aeroplane)
2023-11-17 05:46:24 +0100 <c_wraith> But if you want to control things Template Haskell doesn't give you access to, they're an option
2023-11-17 05:48:32 +0100 <EvanR> level 1: haskell, level 2: template haskell, level 3: C pre-processor, level 4: bonkers turing complete C pre-processor metaprogramming
2023-11-17 05:48:47 +0100 <monochrom> Wait, we are now chorussing about Scheme adding everything Haskell has, and Haskell is lacking everything that Scheme has. >:)
2023-11-17 05:48:48 +0100 <EvanR> level 5: scheme generating the above
2023-11-17 05:49:16 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2023-11-17 05:49:27 +0100 <monochrom> That is a very meta level. >:)
2023-11-17 05:49:44 +0100 <c_wraith> You missed the part where ghc can run arbitrary programs as pre-processors
2023-11-17 05:49:55 +0100 <EvanR> I did not even know that
2023-11-17 05:50:20 +0100 <monochrom> You can reply with "Scheme can run arbitrary language interpreters" >:)
2023-11-17 05:51:46 +0100 <c_wraith> it's -pgfmF to specify an arbitrary pre-processor
2023-11-17 05:51:57 +0100 <c_wraith> err. -pgmF
2023-11-17 05:52:04 +0100 <c_wraith> got excited hitting buttons
2023-11-17 05:52:59 +0100 <c_wraith> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/phases.html#pre-processor
2023-11-17 05:54:05 +0100 <EvanR> the worst explanation of how macros differ from normal functions: macros generate source code
2023-11-17 05:54:42 +0100 <EvanR> because... then it's not *source* code
2023-11-17 05:56:08 +0100 <EvanR> the true source being some kolmogorov minimal thing
2023-11-17 05:56:43 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 05:57:24 +0100bilegeek_(~bilegeek@2600:1008:b01b:b030:16e8:c80e:af15:b9f5) (Quit: Leaving)
2023-11-17 05:59:29 +0100 <monochrom> I don't think it's worst.
2023-11-17 05:59:40 +0100 <monochrom> But how would you explain it?
2023-11-17 06:01:10 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-11-17 06:01:21 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2023-11-17 06:04:00 +0100rosco(~rosco@175.136.157.149) (Quit: Lost terminal)
2023-11-17 06:04:39 +0100 <erty> I've tried to compare haskell and javascript side-by-side by running same algo. Algo sums integers in a list. Haskell took 0.2s and js took 0.6s.
2023-11-17 06:04:45 +0100 <erty> Haskell [http://ix.io/4LIN] Js [http://ix.io/4LIO]
2023-11-17 06:08:04 +0100 <erty> the algo is the one that ski mentioned yesterday
2023-11-17 06:08:17 +0100 <EvanR> I could probably compile the relevant haskell and relevant javascript by hand to something which is much faster, and also (un)coincidentally equal
2023-11-17 06:08:51 +0100trev(~trev@user/trev)
2023-11-17 06:09:02 +0100 <EvanR> implementing the sufficiently smart compiler
2023-11-17 06:10:09 +0100 <c_wraith> erty: Is it intentional that you're depending on the compiler to notice and fix the performance problems in the Haskell code? (It probably will, but it's just generally better to write fast code than hope the compiler fixes slow code)
2023-11-17 06:12:05 +0100 <erty> c_wraith: I would love to know about how can I write something faster than that code
2023-11-17 06:12:11 +0100drdo(~drdo@bl14-14-49.dsl.telepac.pt) (Server closed connection)
2023-11-17 06:12:35 +0100drdo(~drdo@bl14-14-49.dsl.telepac.pt)
2023-11-17 06:12:58 +0100 <c_wraith> erty: well, the compiler is probably fixing the issue such that it won't matter if you change to something faster. The question is if you want to write code the compiler doesn't have to fix
2023-11-17 06:15:24 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-11-17 06:16:03 +0100billchenchina(~billchenc@103.152.35.21) (Ping timeout: 246 seconds)
2023-11-17 06:16:40 +0100 <c_wraith> erty: fascinatingly... It doesn't give me the same output you see. Are you running on a 32-bit machine and overflowing Int?
2023-11-17 06:16:40 +0100rosco(~rosco@175.136.157.149)
2023-11-17 06:17:39 +0100cheater_(~Username@user/cheater)
2023-11-17 06:18:01 +0100 <c_wraith> erty: interestingly, I actually do see about a 90% reduction in runtime if I change the implementation of sumIt to (foldl' (+) 0)
2023-11-17 06:21:15 +0100tomku(~tomku@user/tomku) (Server closed connection)
2023-11-17 06:21:23 +0100 <c_wraith> Hmm. foldl' might be cheating... It's fusing, when none of the other implementations I've tested get to.
2023-11-17 06:21:29 +0100tomku(~tomku@user/tomku)
2023-11-17 06:21:39 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-11-17 06:21:45 +0100cheater_cheater
2023-11-17 06:22:25 +0100 <erty> c_wraith: Sorry for late reply. Yeah my M/C is a bit old. But while writing code, do we have to writing something that compiler won't have to fix
2023-11-17 06:23:36 +0100billchenchina(~billchenc@103.152.35.21)
2023-11-17 06:24:02 +0100 <erty> When you say "you want to write code the compiler doesn't have to fix", are you talking interms of haskell or javascript
2023-11-17 06:24:10 +0100 <c_wraith> Haskell
2023-11-17 06:24:27 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 06:24:55 +0100 <c_wraith> erty: import Data.List and then try sumIt = foldl' (+) 0
2023-11-17 06:25:40 +0100 <c_wraith> erty: though now I'm curious what compiler (and version) you're using for Haskell
2023-11-17 06:26:00 +0100 <erty> ok, I remember yesterday mauke introduced me to `!` operator that I can use to avoid unbounded space problem (sumPlus !acc (x:xs) = sumPlus (acc+x) xs).
2023-11-17 06:26:15 +0100 <erty> Is that how your write code that compiler wont fix
2023-11-17 06:26:27 +0100 <c_wraith> yes, that's what I was referring to
2023-11-17 06:27:06 +0100 <c_wraith> But it turns out on more recent version of GHC, the fact that foldl' can fuse means it can run in about 90% less time
2023-11-17 06:27:07 +0100 <erty> yeah, I ran the code with and without `!` for input [1..10089850] and
2023-11-17 06:27:46 +0100 <erty> there was a difference of whopping 15 seconds when I executed
2023-11-17 06:28:02 +0100 <c_wraith> ok, now I'm *super* curious what compiler you're on
2023-11-17 06:28:08 +0100 <c_wraith> Are you using hugs or something?
2023-11-17 06:28:15 +0100michalz(~michalz@185.246.207.221)
2023-11-17 06:28:38 +0100 <c_wraith> (ok, I think hugs is only an interpreter, but whatever)
2023-11-17 06:29:14 +0100 <erty> c_wraith: How can I check that. I use runghc to execute code
2023-11-17 06:29:21 +0100billchenchina(~billchenc@103.152.35.21) (Ping timeout: 246 seconds)
2023-11-17 06:29:29 +0100 <c_wraith> oh. you're using GHC as an interpreter. Ok, that explains the performance
2023-11-17 06:29:32 +0100 <erty> time runghc tobe exact
2023-11-17 06:29:51 +0100 <c_wraith> what does ghc --version report?
2023-11-17 06:30:02 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-11-17 06:30:10 +0100 <erty> this->`The Glorious Glasgow Haskell Compilation System, version 9.2.4`
2023-11-17 06:30:19 +0100 <c_wraith> Relatively recent, then.
2023-11-17 06:30:30 +0100 <monochrom> Well, runghc is a fair comparison with a js interpreter >:)
2023-11-17 06:30:34 +0100 <c_wraith> Ok. To do any serious performance testing, you should be compiling your code
2023-11-17 06:31:20 +0100 <erty> with stack build?
2023-11-17 06:31:29 +0100 <c_wraith> you can just use ghc directly
2023-11-17 06:31:42 +0100 <c_wraith> that's what I've been doing. ghc -O2 filename.hs
2023-11-17 06:31:56 +0100 <c_wraith> and then time ./filename
2023-11-17 06:32:44 +0100 <erty> ok now it shows 0.014s
2023-11-17 06:33:13 +0100 <c_wraith> that's much more in line with what I'd expect
2023-11-17 06:33:24 +0100 <c_wraith> But now try an implementation that uses foldl' (+) 0
2023-11-17 06:34:55 +0100 <monochrom> OK, here is what I have found testing on 9.2 and 9.4, with -O and looking at core.
2023-11-17 06:35:35 +0100 <monochrom> 1. with "sumPlus acc (x:xs) = sumPlus (acc+x) xs", even though without seq or !, the compiler acts as though it adds seq for me.
2023-11-17 06:35:49 +0100 <monochrom> 2. There is no difference between foldl and foldl'
2023-11-17 06:36:39 +0100 <c_wraith> demand analysis figures those out. I don't like to depend on compiler magic to get it right
2023-11-17 06:36:46 +0100 <monochrom> I am actually pretty surprised. This is new behaviour. Now everything I teach (read: scaremonger) my students is false. :( :)
2023-11-17 06:37:19 +0100 <erty> c_wraith: results are approximately same for me: 0.016s with foldl
2023-11-17 06:37:19 +0100 <monochrom> I am sitting on a fencing for that.
2023-11-17 06:37:51 +0100 <monochrom> Just 20 years ago, C people were like "write 'register int x;' yourself, don't rely on compiler magic" too.
2023-11-17 06:38:19 +0100 <monochrom> (Today, don't write it yourself, you will almost always make the dumbest decision.)
2023-11-17 06:38:40 +0100 <c_wraith> Turns out strictness is a lot bigger-picture than register allocation
2023-11-17 06:39:26 +0100 <c_wraith> erty: I'm surprised the performance isn't roughly an order of magnitude faster thanks to fusion optimizations...
2023-11-17 06:41:20 +0100 <[Leary]> I suspect some literals are defaulting to Integer.
2023-11-17 06:41:35 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2023-11-17 06:42:16 +0100 <c_wraith> Oh, right. Never did solve why erty's thing is showing the wrong answer
2023-11-17 06:42:19 +0100 <monochrom> No, there is no Integer in core. In fact, not even Int. It has 8373# directly.
2023-11-17 06:42:34 +0100chomwitt(~chomwitt@2a02:587:7a03:f500:1ac0:4dff:fedb:a3f1)
2023-11-17 06:42:35 +0100 <c_wraith> Oh, it doesn't. I copied the wrong number
2023-11-17 06:42:37 +0100 <c_wraith> hah
2023-11-17 06:43:11 +0100 <erty> c_wraith: My bad, I was using smaller input. With biiger input size, it took my sumIt function took 0.252s and your foldl took 0.126s
2023-11-17 06:43:18 +0100 <c_wraith> there, now it's down to the smallest time unit time can report
2023-11-17 06:43:44 +0100 <c_wraith> obviously, this is a use case for criterion. :)
2023-11-17 06:44:03 +0100 <monochrom> c_wraith: Were you looking at the commented-out code and using 10089850? :)
2023-11-17 06:44:08 +0100 <c_wraith> yep
2023-11-17 06:44:51 +0100 <monochrom> I was alerted to that only because I also took a look at the js code and saw comments about "can't test bigger input because stack overflow".
2023-11-17 06:45:09 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 06:45:28 +0100 <c_wraith> haha. yes, JS engines tend to be bad at recursion
2023-11-17 06:46:00 +0100SethTisue(sid14912@id-14912.ilkley.irccloud.com) (Server closed connection)
2023-11-17 06:46:04 +0100 <erty> js errors when give it input sizw of 8374
2023-11-17 06:46:08 +0100SethTisue(sid14912@id-14912.ilkley.irccloud.com)
2023-11-17 06:50:01 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2023-11-17 06:51:58 +0100ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 260 seconds)
2023-11-17 06:52:05 +0100sand-witch(~m-mzmz6l@vmi833741.contaboserver.net) (Server closed connection)
2023-11-17 06:52:22 +0100sand-witch(~m-mzmz6l@vmi833741.contaboserver.net)
2023-11-17 06:54:33 +0100cln_(cln@wtf.cx) (Server closed connection)
2023-11-17 06:54:50 +0100cln_(cln@wtf.cx)
2023-11-17 07:00:23 +0100thegeekinside(~thegeekin@189.180.53.210) (Remote host closed the connection)
2023-11-17 07:04:09 +0100ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-11-17 07:08:13 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-11-17 07:10:34 +0100Natch|(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Server closed connection)
2023-11-17 07:10:46 +0100zetef(~quassel@95.77.17.251)
2023-11-17 07:10:51 +0100rosco(~rosco@175.136.157.149) (Quit: Lost terminal)
2023-11-17 07:11:47 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 07:11:58 +0100erty(~user@user/aeroplane) (ERC 5.4 (IRC client for GNU Emacs 28.2))
2023-11-17 07:15:52 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2023-11-17 07:19:01 +0100cheater_(~Username@user/cheater)
2023-11-17 07:19:03 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-11-17 07:21:11 +0100lottaquestions(~nick@2607:fa49:503d:b200:6f8c:dc97:9c02:d6b9) (Quit: Konversation terminated!)
2023-11-17 07:21:26 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 07:21:33 +0100lottaquestions(~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629)
2023-11-17 07:22:56 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-11-17 07:22:59 +0100cheater_cheater
2023-11-17 07:23:27 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2023-11-17 07:25:03 +0100amir(sid22336@user/amir) (Server closed connection)
2023-11-17 07:25:12 +0100amir(sid22336@user/amir)
2023-11-17 07:26:17 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2023-11-17 07:26:35 +0100lottaquestions(~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) (Read error: Connection reset by peer)
2023-11-17 07:27:01 +0100lottaquestions(~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629)
2023-11-17 07:30:12 +0100user2(~user@162.255.84.96) (Server closed connection)
2023-11-17 07:30:34 +0100user2(~user@162.255.84.96)
2023-11-17 07:31:59 +0100lottaquestions(~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) (Quit: Konversation terminated!)
2023-11-17 07:32:22 +0100lottaquestions(~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629)
2023-11-17 07:32:33 +0100red-snail(~snail@static.151.210.203.116.clients.your-server.de) (Server closed connection)
2023-11-17 07:34:26 +0100red-snail(~snail@static.151.210.203.116.clients.your-server.de)
2023-11-17 07:34:51 +0100lottaquestions(~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) (Client Quit)
2023-11-17 07:35:13 +0100lottaquestions(~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629)
2023-11-17 07:35:29 +0100kraftwerk28(~kraftwerk@164.92.219.160) (Server closed connection)
2023-11-17 07:35:43 +0100kraftwerk28(~kraftwerk@164.92.219.160)
2023-11-17 07:37:02 +0100opus(~nil@user/opus) (Server closed connection)
2023-11-17 07:38:49 +0100opus(~nil@user/opus)
2023-11-17 07:43:36 +0100vglfr(~vglfr@78.26.242.160) (Read error: Connection reset by peer)
2023-11-17 07:44:25 +0100vglfr(~vglfr@78.26.242.160)
2023-11-17 07:45:29 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 07:50:38 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2023-11-17 07:53:27 +0100nonzen(~nonzen@user/nonzen) (Server closed connection)
2023-11-17 07:53:43 +0100nonzen(~nonzen@user/nonzen)
2023-11-17 07:54:45 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 246 seconds)
2023-11-17 07:55:37 +0100zetef(~quassel@95.77.17.251)
2023-11-17 07:56:33 +0100mankyKitty(sid31287@id-31287.helmsley.irccloud.com) (Server closed connection)
2023-11-17 07:56:42 +0100mankyKitty(sid31287@id-31287.helmsley.irccloud.com)
2023-11-17 07:56:56 +0100acidjnk(~acidjnk@p200300d6e72b9321349e196aee999b14.dip0.t-ipconnect.de)
2023-11-17 07:57:24 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-11-17 07:57:25 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-11-17 07:57:33 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-11-17 07:58:44 +0100foul_owl(~kerry@185.219.141.164) (Server closed connection)
2023-11-17 07:59:09 +0100foul_owl(~kerry@185.219.141.164)
2023-11-17 08:05:14 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2023-11-17 08:05:43 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de)
2023-11-17 08:12:07 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-11-17 08:17:13 +0100turlando(~turlando@user/turlando) (Server closed connection)
2023-11-17 08:17:29 +0100turlando(~turlando@user/turlando)
2023-11-17 08:18:53 +0100vgtw_(~vgtw@user/vgtw) (Server closed connection)
2023-11-17 08:19:26 +0100 <probie> How can I tell cabal to statically link a c library without getting a warning? If I have `cc-options: -l:libfoo.a` I get warning saying to use `extra-libraries: :libfoo.a`, but that doesn't work
2023-11-17 08:19:44 +0100vgtw(~vgtw@user/vgtw)
2023-11-17 08:19:58 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-11-17 08:20:03 +0100Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Server closed connection)
2023-11-17 08:20:17 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2023-11-17 08:20:27 +0100Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2023-11-17 08:28:56 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 08:34:16 +0100ddb(ddb@tilde.club) (Server closed connection)
2023-11-17 08:34:35 +0100ddb(ddb@tilde.club)
2023-11-17 08:34:47 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (Server closed connection)
2023-11-17 08:35:09 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2)
2023-11-17 08:35:09 +0100ChanServ+v yahb2
2023-11-17 08:38:49 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 256 seconds)
2023-11-17 08:41:55 +0100lhpitn(~tn@mail.lebenshilfe-pi.de)
2023-11-17 08:43:01 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 08:47:11 +0100MironZ(~MironZ@nat-infra.ehlab.uk) (Server closed connection)
2023-11-17 08:47:30 +0100MironZ(~MironZ@nat-infra.ehlab.uk)
2023-11-17 08:48:10 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-11-17 08:49:45 +0100dsal(sid13060@id-13060.lymington.irccloud.com) (Server closed connection)
2023-11-17 08:49:54 +0100dsal(sid13060@id-13060.lymington.irccloud.com)
2023-11-17 08:51:08 +0100cheater_(~Username@user/cheater)
2023-11-17 08:51:16 +0100lortabac(~lorenzo@2a01:e0a:541:b8f0:9ab2:6651:31a9:442a)
2023-11-17 08:53:25 +0100zetef(~quassel@95.77.17.251)
2023-11-17 08:54:10 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-11-17 08:55:15 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-11-17 08:55:24 +0100cheater_cheater
2023-11-17 08:56:05 +0100kaol(~kaol@94-237-42-30.nl-ams1.upcloud.host) (Server closed connection)
2023-11-17 08:56:12 +0100kaol(~kaol@94-237-42-30.nl-ams1.upcloud.host)
2023-11-17 08:58:08 +0100cheater_(~Username@user/cheater)
2023-11-17 09:01:40 +0100oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-11-17 09:01:51 +0100pie_(~pie_bnc@user/pie/x-2818909) (Server closed connection)
2023-11-17 09:02:02 +0100pie_(~pie_bnc@user/pie/x-2818909)
2023-11-17 09:02:10 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-11-17 09:02:15 +0100cheater_cheater
2023-11-17 09:04:21 +0100fendor(~fendor@2a02:8388:1640:be00:2528:5dc7:a36e:9b87)
2023-11-17 09:14:41 +0100 <sclv> drop the colon before libfoo.a ?
2023-11-17 09:15:17 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 240 seconds)
2023-11-17 09:16:48 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 09:18:27 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) (Remote host closed the connection)
2023-11-17 09:19:05 +0100cheater_(~Username@user/cheater)
2023-11-17 09:19:52 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-11-17 09:20:01 +0100cheater_cheater
2023-11-17 09:20:53 +0100Buliarous(~gypsydang@46.232.210.139) (Server closed connection)
2023-11-17 09:21:56 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2023-11-17 09:23:02 +0100CiaoSen(~Jura@2a05:5800:283:dc00:2a3a:4dff:fe84:dbd5)
2023-11-17 09:25:43 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 268 seconds)
2023-11-17 09:30:20 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 09:31:54 +0100bsima(~bsima@143.198.118.179) (Server closed connection)
2023-11-17 09:32:14 +0100bsima(~bsima@143.198.118.179)
2023-11-17 09:38:05 +0100sagax(~sagax_nb@user/sagax)
2023-11-17 09:39:53 +0100swistak(~swistak@185.21.216.141) (Server closed connection)
2023-11-17 09:40:09 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 09:40:10 +0100swistak(~swistak@185.21.216.141)
2023-11-17 09:40:53 +0100gmg(~user@user/gehmehgeh)
2023-11-17 09:43:59 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2023-11-17 09:45:03 +0100Adran(~adran@botters/adran) (Server closed connection)
2023-11-17 09:45:27 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2023-11-17 09:48:02 +0100Pickchea(~private@user/pickchea)
2023-11-17 09:48:09 +0100Adran(~adran@botters/adran)
2023-11-17 09:50:00 +0100vpan(~vpan@mail.elitnet.lt)
2023-11-17 09:52:34 +0100zetef(~quassel@95.77.17.251)
2023-11-17 09:53:36 +0100Putonlalla(~Putonlall@it-cyan.it.jyu.fi) (Server closed connection)
2023-11-17 09:54:09 +0100Putonlalla(~Putonlall@it-cyan.it.jyu.fi)
2023-11-17 09:56:22 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711)
2023-11-17 09:56:33 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 268 seconds)
2023-11-17 09:59:59 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 10:04:40 +0100chele(~chele@user/chele)
2023-11-17 10:04:56 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-11-17 10:07:13 +0100cheater_(~Username@user/cheater)
2023-11-17 10:08:55 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-11-17 10:08:59 +0100cheater_cheater
2023-11-17 10:10:39 +0100bcksl(~bcksl@user/bcksl) (Server closed connection)
2023-11-17 10:10:58 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 10:12:52 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-11-17 10:13:13 +0100cheater_(~Username@user/cheater)
2023-11-17 10:14:02 +0100bcksl(~bcksl@user/bcksl)
2023-11-17 10:14:23 +0100juri__(~juri@79.140.115.129)
2023-11-17 10:14:30 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) (Ping timeout: 245 seconds)
2023-11-17 10:14:55 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-11-17 10:15:27 +0100juri_(~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 246 seconds)
2023-11-17 10:17:22 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-11-17 10:17:30 +0100cheater_cheater
2023-11-17 10:19:30 +0100cstml(~cstml@user/cstml)
2023-11-17 10:19:59 +0100juri__(~juri@79.140.115.129) (Ping timeout: 268 seconds)
2023-11-17 10:20:00 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 10:20:30 +0100juri_(~juri@84-19-175-187.pool.ovpn.com)
2023-11-17 10:21:35 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 245 seconds)
2023-11-17 10:24:46 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-11-17 10:29:29 +0100cheater_(~Username@user/cheater)
2023-11-17 10:31:41 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 240 seconds)
2023-11-17 10:33:00 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-11-17 10:33:10 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-11-17 10:33:54 +0100cjay(cjay@nerdbox.nerd2nerd.org) (Server closed connection)
2023-11-17 10:34:02 +0100cjay(cjay@nerdbox.nerd2nerd.org)
2023-11-17 10:34:10 +0100cheater_(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-11-17 10:34:33 +0100cheater_(~Username@user/cheater)
2023-11-17 10:34:33 +0100cheater_cheater
2023-11-17 10:37:12 +0100mrmr15535(~mrmr@user/mrmr)
2023-11-17 10:38:49 +0100mrmr1553(~mrmr@user/mrmr) (Ping timeout: 260 seconds)
2023-11-17 10:38:50 +0100mrmr15535mrmr1553
2023-11-17 10:38:58 +0100rosco(~rosco@175.136.157.149)
2023-11-17 10:40:32 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-11-17 10:43:42 +0100lockywolf_(~lockywolf@public.lockywolf.net)
2023-11-17 10:44:29 +0100lockywolf(~lockywolf@public.lockywolf.net) (Ping timeout: 240 seconds)
2023-11-17 10:50:48 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 10:51:59 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-11-17 10:51:59 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
2023-11-17 10:52:22 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-11-17 10:52:58 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 10:54:29 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-11-17 10:56:45 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 246 seconds)
2023-11-17 10:58:25 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds)
2023-11-17 10:58:53 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-11-17 10:59:58 +0100dunj3(~dunj3@kingdread.de) (Server closed connection)
2023-11-17 11:00:08 +0100dunj3(~dunj3@kingdread.de)
2023-11-17 11:07:55 +0100ft(~ft@p508db3bc.dip0.t-ipconnect.de) (Quit: leaving)
2023-11-17 11:11:52 +0100Jackneill(~Jackneill@20014C4E1E1AA20011D4085FBCF3F922.dsl.pool.telekom.hu)
2023-11-17 11:13:37 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-11-17 11:13:47 +0100zetef(~quassel@95.77.17.251)
2023-11-17 11:14:42 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-11-17 11:15:02 +0100danse-nr3(~danse@151.35.108.169)
2023-11-17 11:22:21 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-11-17 11:25:09 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 11:27:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-11-17 11:29:08 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 11:33:55 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2023-11-17 11:34:29 +0100vglfr(~vglfr@78.26.242.160) (Ping timeout: 252 seconds)
2023-11-17 11:34:54 +0100vglfr(~vglfr@88.155.174.200)
2023-11-17 11:45:49 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 256 seconds)
2023-11-17 11:47:05 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-11-17 11:49:51 +0100madnight(~madnight@static.59.103.201.195.clients.your-server.de) (Server closed connection)
2023-11-17 11:50:06 +0100madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2023-11-17 11:53:01 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 276 seconds)
2023-11-17 11:54:30 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds)
2023-11-17 11:55:30 +0100vglfr(~vglfr@88.155.174.200) (Read error: Connection reset by peer)
2023-11-17 11:59:14 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
2023-11-17 12:00:33 +0100lortabac(~lorenzo@2a01:e0a:541:b8f0:9ab2:6651:31a9:442a) (Ping timeout: 256 seconds)
2023-11-17 12:01:04 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 12:01:27 +0100Square2(~Square4@user/square)
2023-11-17 12:02:35 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 12:04:54 +0100mima(~mmh@aftr-62-216-211-218.dynamic.mnet-online.de)
2023-11-17 12:06:05 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-11-17 12:08:40 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving)
2023-11-17 12:14:29 +0100SoF(~skius@user/skius) (Server closed connection)
2023-11-17 12:15:05 +0100SoF(~skius@user/skius)
2023-11-17 12:17:45 +0100Hecate(~mariposa@user/hecate) (Server closed connection)
2023-11-17 12:17:53 +0100Hecate(~mariposa@user/hecate)
2023-11-17 12:18:13 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 260 seconds)
2023-11-17 12:18:46 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2023-11-17 12:24:04 +0100CiaoSen(~Jura@2a05:5800:283:dc00:2a3a:4dff:fe84:dbd5) (Ping timeout: 246 seconds)
2023-11-17 12:24:30 +0100rosco(~rosco@175.136.157.149) (Quit: Lost terminal)
2023-11-17 12:25:51 +0100 <Inst> hmmm
2023-11-17 12:25:57 +0100 <Inst> this is probably the solution to the Chinese Haskell problem
2023-11-17 12:26:03 +0100 <Inst> it's not Nick's way, or even ChShersh's way
2023-11-17 12:26:27 +0100 <Inst> if the production culture is very anti-Haskell because of the values preferences of businesses and developers (brute froce, labor abuse), then skip the production culture
2023-11-17 12:26:31 +0100 <Inst> go straight to hobbyists
2023-11-17 12:26:42 +0100 <Inst> "language of scientists and engineers, language that your boss uses"
2023-11-17 12:28:42 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-11-17 12:28:58 +0100 <Inst> if you have a culture wherein pretty art school grads stream mathematics because they love math, while production users are basically using Haskell to satisfy their curiosity, but not develop proper software engineering principles, path of least resistance is obvious
2023-11-17 12:29:08 +0100 <Inst> culture is snobby enough that it should work
2023-11-17 12:29:30 +0100 <Inst> not a "码农" language, and that's the selling point
2023-11-17 12:29:47 +0100califax(~califax@user/califx)
2023-11-17 12:30:53 +0100 <Inst> 码农 -> digital peasant
2023-11-17 12:33:10 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-11-17 12:33:27 +0100 <ncf> Inst: i think this belongs in #haskell-offtopic
2023-11-17 12:34:20 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 12:36:36 +0100 <Inst> It's relevant, but should be in there for being annoying
2023-11-17 12:39:10 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-11-17 12:39:18 +0100 <hc> What does "to stream mathematics" mean?
2023-11-17 12:41:10 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 12:43:54 +0100 <Inst> streaming category theory on streaming sites
2023-11-17 12:46:04 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-17 12:47:02 +0100iteratee(~kyle@162.218.222.207) (Server closed connection)
2023-11-17 12:47:16 +0100iteratee(~kyle@162.218.222.207)
2023-11-17 12:50:10 +0100lortabac(~lorenzo@2a01:e0a:541:b8f0:98e4:3b02:8226:63ec)
2023-11-17 12:57:22 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 276 seconds)
2023-11-17 13:02:22 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-11-17 13:05:38 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
2023-11-17 13:10:44 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-11-17 13:11:05 +0100califax(~califax@user/califx)
2023-11-17 13:11:18 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-11-17 13:12:02 +0100ivelten(~ivelten@38.252.84.3)
2023-11-17 13:13:02 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-11-17 13:15:53 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711)
2023-11-17 13:16:29 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds)
2023-11-17 13:17:26 +0100danse-nr3(~danse@151.35.108.169) (Ping timeout: 260 seconds)
2023-11-17 13:25:26 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-11-17 13:27:20 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Server closed connection)
2023-11-17 13:27:36 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2023-11-17 13:32:06 +0100danse-nr3(~danse@151.35.108.169)
2023-11-17 13:37:32 +0100maturana(~maturana@2804:14c:5b73:403e:1e53:df5a:8cae:9317)
2023-11-17 13:47:59 +0100maturana(~maturana@2804:14c:5b73:403e:1e53:df5a:8cae:9317) (Remote host closed the connection)
2023-11-17 13:56:07 +0100remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 246 seconds)
2023-11-17 14:01:26 +0100jjhoo(~jahakala@user/jjhoo) (Remote host closed the connection)
2023-11-17 14:01:26 +0100Xe(~cadey@perl/impostor/xe) (Server closed connection)
2023-11-17 14:01:40 +0100jjhoo(~jahakala@user/jjhoo)
2023-11-17 14:01:57 +0100Xe(~cadey@perl/impostor/xe)
2023-11-17 14:08:53 +0100xff0x(~xff0x@2405:6580:b080:900:edf9:6a9f:34dc:1f68)
2023-11-17 14:12:39 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 14:13:27 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-11-17 14:15:04 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-11-17 14:17:49 +0100remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz)
2023-11-17 14:24:20 +0100akegalj(~akegalj@89-164-125-210.dsl.iskon.hr)
2023-11-17 14:25:39 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2023-11-17 14:30:39 +0100 <akegalj> (&&) is strict in its first argument and non strict in its second argument. In GHC.Base it is defined as `(&&) True True = True` . Where is a False case? Why it isn't defined exhaustive with other cases as `(&&) _ _ = False` ? Second, it says it is strict in its first argument and non-strict in its second - what gives it this property?
2023-11-17 14:36:12 +0100 <akegalj> Third, where is (||) defined?
2023-11-17 14:36:19 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 255 seconds)
2023-11-17 14:41:21 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 14:42:03 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-11-17 14:42:16 +0100phma(phma@2001:5b0:2144:1ea8:391e:cdf9:d3a7:e03) (Read error: Connection reset by peer)
2023-11-17 14:42:52 +0100 <exarkun> akegalj: In GHC.Classes it is defined differently, https://hackage.haskell.org/package/ghc-prim-0.11.0/docs/src/GHC.Classes.html#%26%26
2023-11-17 14:43:00 +0100 <exarkun> And (||) is just below it
2023-11-17 14:43:14 +0100phma(~phma@host-67-44-208-96.hnremote.net)
2023-11-17 14:43:54 +0100 <exarkun> The definition of && there is strict in its first argument because it pattern matches on the constructors which forces them. Since it does not pattern match on the second argument, it doesn't.
2023-11-17 14:44:54 +0100 <ncf> what you're looking at is inside a preprocessor'd out block that says "for use when compiling GHC.Base itself doesn't work"
2023-11-17 14:45:10 +0100 <tomsmeding> though it's still strange that the definitions contained therein are kinda broken
2023-11-17 14:45:39 +0100 <tomsmeding> 'data [] a = MkNil'?
2023-11-17 14:46:01 +0100 <ncf> i don't know what the purpose of that block is
2023-11-17 14:46:18 +0100 <tomsmeding> maybe to just define some names, regardless of what precisely they're defined _as_
2023-11-17 14:46:28 +0100 <akegalj> exarkun: ok, those definitions makes sense and as you said... patern match there forces first to be strict. Ok, makes sense
2023-11-17 14:47:07 +0100 <tomsmeding> '[]' and '(:)' are probably built-in syntax, which would be why when debugging random GHC.Base breakage, one wouldn't need to define them somehow
2023-11-17 14:47:08 +0100 <tomsmeding> or something
2023-11-17 14:47:45 +0100 <akegalj> ncf: right, missed that part
2023-11-17 14:49:00 +0100 <akegalj> tomsmeding: yes, that list definition seems odd
2023-11-17 14:49:39 +0100Fischmiep(~Fischmiep@user/Fischmiep)
2023-11-17 14:55:54 +0100lg188(~lg188@82.18.98.230) (Ping timeout: 260 seconds)
2023-11-17 14:56:50 +0100lg188(~lg188@82.18.98.230)
2023-11-17 14:59:36 +0100danse-nr3(~danse@151.35.108.169) (Read error: Connection reset by peer)
2023-11-17 14:59:54 +0100danse-nr3(~danse@151.43.107.30)
2023-11-17 15:00:28 +0100edr(~edr@user/edr)
2023-11-17 15:04:45 +0100todi(~todi@p4fd1a3e6.dip0.t-ipconnect.de)
2023-11-17 15:05:42 +0100myxos(~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Remote host closed the connection)
2023-11-17 15:05:50 +0100chele_(~chele@user/chele)
2023-11-17 15:06:25 +0100myxos(~myxos@065-028-251-121.inf.spectrum.com)
2023-11-17 15:07:29 +0100chele(~chele@user/chele) (Remote host closed the connection)
2023-11-17 15:09:14 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-11-17 15:09:22 +0100erty(~user@user/aeroplane)
2023-11-17 15:15:09 +0100sawilagar(~sawilagar@user/sawilagar)
2023-11-17 15:16:06 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 256 seconds)
2023-11-17 15:20:25 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 255 seconds)
2023-11-17 15:29:32 +0100mc47(~mc47@xmonad/TheMC47)
2023-11-17 15:40:38 +0100duncan(~duncan@nat-server.ehlab.uk) (Server closed connection)
2023-11-17 15:40:58 +0100duncan(~duncan@nat-server.ehlab.uk)
2023-11-17 15:42:43 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-11-17 15:43:48 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 15:44:05 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) (Ping timeout: 245 seconds)
2023-11-17 15:50:55 +0100Square2(~Square4@user/square) (Ping timeout: 276 seconds)
2023-11-17 15:51:09 +0100vpan(~vpan@mail.elitnet.lt) (Quit: Leaving.)
2023-11-17 15:51:42 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Quit: Leaving)
2023-11-17 15:52:10 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 15:55:45 +0100Sgeo(~Sgeo@user/sgeo)
2023-11-17 16:04:34 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 276 seconds)
2023-11-17 16:05:07 +0100[_][itchyjunk]
2023-11-17 16:06:51 +0100danse-nr3(~danse@151.43.107.30) (Ping timeout: 246 seconds)
2023-11-17 16:07:39 +0100danse-nr3(~danse@151.43.107.30)
2023-11-17 16:08:12 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 16:14:14 +0100chele_(~chele@user/chele) (Remote host closed the connection)
2023-11-17 16:17:58 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 268 seconds)
2023-11-17 16:18:23 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
2023-11-17 16:18:54 +0100billchenchina(~billchenc@103.152.35.21)
2023-11-17 16:25:35 +0100acro(~acro@user/acro) (Server closed connection)
2023-11-17 16:26:30 +0100acro(~acro@user/acro)
2023-11-17 16:29:40 +0100terrorjack(~terrorjac@2a01:4f8:c17:87f8::) (Quit: Ping timeout (120 seconds))
2023-11-17 16:34:42 +0100ivelten(~ivelten@38.252.84.3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-11-17 16:35:03 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-11-17 16:35:06 +0100ivelten(~ivelten@38.252.84.3)
2023-11-17 16:36:34 +0100siw5ohs0(~aiw5ohs0@user/aiw5ohs0)
2023-11-17 16:36:46 +0100siw5ohs0(~aiw5ohs0@user/aiw5ohs0) (Leaving)
2023-11-17 16:36:56 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Remote host closed the connection)
2023-11-17 16:37:18 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 16:39:30 +0100ivelten(~ivelten@38.252.84.3) (Ping timeout: 245 seconds)
2023-11-17 16:42:48 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Server closed connection)
2023-11-17 16:43:01 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 16:43:18 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 16:43:44 +0100terrorjack(~terrorjac@2a01:4f8:c17:87f8::)
2023-11-17 16:44:02 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2023-11-17 16:46:04 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Remote host closed the connection)
2023-11-17 16:49:00 +0100finsternis(~X@23.226.237.192) (Server closed connection)
2023-11-17 16:49:22 +0100finsternis(~X@23.226.237.192)
2023-11-17 16:50:29 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-11-17 16:50:57 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-11-17 16:53:56 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-11-17 16:54:54 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-11-17 17:01:39 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-11-17 17:02:46 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-11-17 17:03:28 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-11-17 17:06:37 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-11-17 17:07:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2023-11-17 17:07:46 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de)
2023-11-17 17:07:49 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-11-17 17:12:06 +0100billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2023-11-17 17:12:15 +0100woffs(3cd46299b2@woffs.de) (Server closed connection)
2023-11-17 17:15:09 +0100woffs(3cd46299b2@woffs.de)
2023-11-17 17:15:25 +0100billchenchina(~billchenc@103.152.35.21) (Ping timeout: 276 seconds)
2023-11-17 17:16:12 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2023-11-17 17:17:52 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
2023-11-17 17:20:20 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 17:20:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 17:21:30 +0100Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 260 seconds)
2023-11-17 17:22:42 +0100lortabac(~lorenzo@2a01:e0a:541:b8f0:98e4:3b02:8226:63ec) (Quit: WeeChat 3.5)
2023-11-17 17:24:50 +0100Vajb(~Vajb@2001:999:785:c11e:a1b8:59fa:dee7:e490) (Ping timeout: 252 seconds)
2023-11-17 17:25:10 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2023-11-17 17:25:22 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de)
2023-11-17 17:29:26 +0100gooba_(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-11-17 17:30:50 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Ping timeout: 260 seconds)
2023-11-17 17:30:51 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 17:31:08 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 17:37:13 +0100gooba_(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-11-17 17:38:49 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2023-11-17 17:38:59 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de)
2023-11-17 17:39:24 +0100vglfr(~vglfr@88.154.57.62)
2023-11-17 17:40:50 +0100ivelten(~ivelten@38.252.84.3)
2023-11-17 17:40:55 +0100ft(~ft@mue-88-130-106-120.dsl.tropolys.de)
2023-11-17 17:41:46 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 17:41:49 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4)
2023-11-17 17:42:03 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 17:45:05 +0100acidjnk(~acidjnk@p200300d6e72b9321349e196aee999b14.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-11-17 17:46:53 +0100sabino(~sabino@user/sabino)
2023-11-17 17:51:02 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 17:52:43 +0100ft(~ft@mue-88-130-106-120.dsl.tropolys.de) (Quit: leaving)
2023-11-17 17:54:10 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
2023-11-17 17:55:35 +0100ft(~ft@mue-88-130-106-120.dsl.tropolys.de)
2023-11-17 17:56:34 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-17 18:00:04 +0100fendor(~fendor@2a02:8388:1640:be00:2528:5dc7:a36e:9b87) (Remote host closed the connection)
2023-11-17 18:04:06 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) (Remote host closed the connection)
2023-11-17 18:04:21 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4)
2023-11-17 18:05:33 +0100 <danse-nr3> hmm got a triple ... there ought to be a better way...
2023-11-17 18:12:56 +0100notzmv(~zmv@user/notzmv)
2023-11-17 18:14:45 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 18:16:16 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 264 seconds)
2023-11-17 18:17:42 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-11-17 18:18:16 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2023-11-17 18:19:39 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2023-11-17 18:21:54 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2023-11-17 18:22:16 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2023-11-17 18:26:33 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-11-17 18:28:43 +0100 <EvanR> you'll need Trifunctor now
2023-11-17 18:29:12 +0100 <danse-nr3> (:
2023-11-17 18:31:45 +0100 <erty> ski: I finally understood `unbounded space`, it really improves code execution time. And with that I believe, for code to be performant, we have to think beyond just algorithmic complexity.
2023-11-17 18:32:22 +0100danse-nr3raises eyebrow
2023-11-17 18:33:15 +0100 <EvanR> in haskell the amount of time consumed by the garbage collector is related to how much heap memory is in use, so haskell performance has to be reasoned about in spacetime combined
2023-11-17 18:33:36 +0100 <danse-nr3> oh, for the garbage collector. Makes sense
2023-11-17 18:35:14 +0100 <c_wraith> monochrom: you'll be pleased(?) to know that when I moved to benchmarking the various sum functions with criterion, the higher-order use of it made foldl way slower than foldl' again. Which is why I prefer actually telling the compiler what's going on.
2023-11-17 18:39:09 +0100vglfr(~vglfr@88.154.57.62) (Read error: Connection reset by peer)
2023-11-17 18:40:08 +0100 <EvanR> is the rule of thumb foldl might optimize to something like foldl' or it might not xD
2023-11-17 18:40:38 +0100 <c_wraith> yes
2023-11-17 18:40:45 +0100 <EvanR> good rule
2023-11-17 18:41:18 +0100 <c_wraith> Interesting... []'s foldable instance has a slow implementation of sum... unless it gets to participate in list fusion
2023-11-17 18:41:38 +0100 <EvanR> there was a mailist list debate on that iirc
2023-11-17 18:41:43 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 18:41:46 +0100 <EvanR> mailing*
2023-11-17 18:41:59 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Server closed connection)
2023-11-17 18:42:16 +0100akegalj(~akegalj@89-164-125-210.dsl.iskon.hr) (Quit: leaving)
2023-11-17 18:42:19 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2023-11-17 18:42:34 +0100 <c_wraith> I guess people were concerned about using foldl' by default on lists of types where (+) is non-strict?
2023-11-17 18:42:46 +0100 <c_wraith> err. lists of values of a type where...
2023-11-17 18:43:15 +0100 <EvanR> https://mail.haskell.org/pipermail/libraries/2020-October/030862.html
2023-11-17 18:43:37 +0100 <EvanR> it was kind of hard for me to follow the reasoning
2023-11-17 18:45:23 +0100oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 260 seconds)
2023-11-17 18:46:27 +0100Square(~Square@user/square)
2023-11-17 18:46:40 +0100 <c_wraith> erty: This was inspired by your testing. The criterion library is pretty cool. code: https://paste.tomsmeding.com/b3WRbJmf output: https://paste.tomsmeding.com/o2lAkr45
2023-11-17 18:46:58 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-17 18:47:15 +0100 <c_wraith> erty: you can ignore sumIt3. I was just being silly and rewriting foldl' by hand.
2023-11-17 18:48:18 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2023-11-17 18:48:38 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de)
2023-11-17 18:50:08 +0100 <c_wraith> My major conclusion from that benchmarking is: it's amazing how much of a difference list fusion makes when it is allowed to happen
2023-11-17 18:50:11 +0100 <ski> erty : "we have to think beyond just algorithmic complexity" -- how/why ?
2023-11-17 18:50:40 +0100 <ski> erty : this is algorithmic space complexity, no ? so why would we need to think beyond that (under these considerations) ?
2023-11-17 18:51:07 +0100ridcully(~ridcully@p57b5294c.dip0.t-ipconnect.de) (Server closed connection)
2023-11-17 18:51:30 +0100ridcully(~ridcully@p57b5294c.dip0.t-ipconnect.de)
2023-11-17 18:51:58 +0100 <erty> c_wraith: criterion looks indeed great. But for now I will suffice with `time` command
2023-11-17 18:52:48 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2023-11-17 18:53:14 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 18:53:32 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 18:53:43 +0100 <ski> c_wraith : fwiw, you could have supplied both files in the same paste
2023-11-17 18:54:44 +0100 <erty> ski: This might me very lame, but the space and time complexity for my `sumPlus` function (λ> sumPlus acc (x:xs) = sumPlus (acc+x) xs) [http://ix.io/4LIN] are both, I think, O(n). But by adding a `!` to acc, are the complexities still not the same.
2023-11-17 18:54:48 +0100 <probie> The solution to having a slow implementation of sum is to just not have sum
2023-11-17 18:55:09 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-11-17 18:55:34 +0100 <erty> By adding !, we have changed something beyond space and time
2023-11-17 18:55:56 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 18:56:02 +0100zer0bitz_zer0bitz
2023-11-17 18:56:06 +0100 <erty> I mean not time, we have improved that
2023-11-17 18:56:10 +0100 <c_wraith> erty: well, there's the interaction of using more space taking more time in non-obvious ways
2023-11-17 18:56:28 +0100 <probie> erty: by adding `!` you're now in constant space
2023-11-17 18:56:28 +0100 <c_wraith> erty: but that's still captured by analyzing space and time use carefully
2023-11-17 18:56:42 +0100 <ski> old <hpaste.org>,<lpaste.net> allowed people to add annotations (separate paste files) to the same paste page. <paste.tomsmeding.com> doesn't have that, though
2023-11-17 18:57:49 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-11-17 18:58:04 +0100 <geekosaur> eh? it certainly has multifile pastes
2023-11-17 18:58:23 +0100 <ski> erty : "the space and time complexity for my `sumPlus` function .. are both, I think, O(n)." -- with explicit strictness, you reduce the space to `O(1)'
2023-11-17 18:58:36 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 18:58:36 +0100 <geekosaur> "+ Add another file" bottom left
2023-11-17 18:58:55 +0100 <c_wraith> geekosaur: oh, cool. I ignored that button. But that's still not the same as adding additional things later (with new URLs) that the older ones had
2023-11-17 18:58:58 +0100danse-nr3(~danse@151.43.107.30) (Read error: Connection reset by peer)
2023-11-17 18:59:51 +0100 <ski> geekosaur : yes it does, but not after-the-fact
2023-11-17 19:01:26 +0100 <ski> (yea, iirc, you could both see the annotations at the original paste page, and also see the annotation as a separate page at its own URL)
2023-11-17 19:05:46 +0100qqq(~qqq@92.43.167.61)
2023-11-17 19:06:29 +0100 <erty> I think writing code in Haskell involves a bit different mental model. When I write an algorithm, I think in terms of ADTs. But here, you also have to take in considerations for laziness. Thats why I said "we have to think beyond just algorithmic complexity"
2023-11-17 19:07:08 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 19:07:28 +0100 <c_wraith> It's still part of the complexity. Haskell isn't the only language where you have to consider space usage. But it *is* different, in that you need to think about demand patterns and proper evaluation
2023-11-17 19:07:40 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2023-11-17 19:08:45 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 19:11:11 +0100 <ski> "involves a bit different mental model" -- yes, you have to understand that the result isn't (necessarily) computed all at once, but may "trickle out" in chunks (on a tree-branching fashion, in general), and you can at any point decide to not continue down such a path, abandoning the computation avoiding the remaining cost. while, if you reuse, it'll get computed no more than once
2023-11-17 19:11:37 +0100 <ski> (the last bit assumes laziness, of course, which is not a language guarantee, but something implementations tend to support)
2023-11-17 19:12:25 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds)
2023-11-17 19:12:38 +0100 <ski> a function transforms output demand into (some computation and) input demand
2023-11-17 19:13:36 +0100 <ski> `reverse' and `foldl' are "builky" in that they traverse the whole input list, before releasing the result all at once. otoh `(++)' is incremental, and `foldr' can be (depending on the callback), pay-as-you-go
2023-11-17 19:13:47 +0100 <ski> (er, "bulky")
2023-11-17 19:15:22 +0100 <ski> basically, if you do (only) tail recursion, you're bulky (although you can be bulky without tail recursion). in a strict functional language, people would strive to (for the most part, there are situations where one doesn't want to) be tail recursive, typically using an accumulator
2023-11-17 19:15:38 +0100 <c_wraith> it's even more complicated than that, as `reverse' is bulky only in the list structure. It doesn't even touch the list elements
2023-11-17 19:16:00 +0100 <ski> in Haskell, another common approach is to be incremental instead, to hide the recursive calls behind some computation that hasn't happened yet, that the caller may or may not force
2023-11-17 19:16:07 +0100 <ski> yep
2023-11-17 19:18:42 +0100 <ski> `print (take 10 (filter odd (map triangular [0 ..])))' will act as a loop, whose control is in `print', individual elements percolates up the "pipeline" one at a time. this can e.g. be used to process files in a streaming fashion, even if the whole file doesn't fit into RAM
2023-11-17 19:18:49 +0100manwithluck`(manwithluc@gateway/vpn/protonvpn/manwithluck)
2023-11-17 19:19:34 +0100 <ski> the intermediate list cons cells will be GCed as we go. if fusion kicks in, you'll even avoid the intermediate lists, letting the producer directly hand off elements to the transformers and the consumer
2023-11-17 19:21:26 +0100 <ski> (however, the streaming thing is also a bit brittle, in that if you hold on to some point in the list for a long period of time, that prevents it from being GCed, and so can cause a "space leak" (not in the sense of forgetting to free some memory whose reference pointer you've forgotten, but in the sense of keeping a hold of that reference for longer than you intended to))
2023-11-17 19:21:42 +0100shapr(~user@2600:1700:c640:3100:5b4c:3811:4e1e:b4e5)
2023-11-17 19:22:48 +0100 <EvanR> that kind of thing also happens in "strict" languages like javascript
2023-11-17 19:22:51 +0100 <ski> (fwiw, `triangular n = div (n * (n + 1)) 2', iow `sum [0 .. n]')
2023-11-17 19:22:58 +0100 <EvanR> if you hold onto something accidentally you have a space leak
2023-11-17 19:23:17 +0100 <ski> yep, you can do incremental processing also in strict. but it's not quite as easy
2023-11-17 19:23:23 +0100 <ski> mm, that too
2023-11-17 19:23:52 +0100 <ski> (hence why people often set variables to `null' when they're done with some data)
2023-11-17 19:24:16 +0100 <EvanR> shoulda used linear types!
2023-11-17 19:25:23 +0100paddymahoney(~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Server closed connection)
2023-11-17 19:25:46 +0100 <ski> Mercury has an inst (instantiation state) `dead' .. it could possibly be useful to have an explicit predicate which you can call to enforce that some datum is dead at a certain time, and whose operational behaviour would be to replace the address with a dummy address (`NULL')
2023-11-17 19:26:03 +0100 <c_wraith> yeah, something like a resizable array data structure in many languages will easily hold on to values long after it should have unless you explicitly null out removed entries
2023-11-17 19:26:30 +0100 <ski> (iow, if the datum is not dead, you'd get a compile-time error. so it's a sanity check, but also a help for the GC)
2023-11-17 19:27:05 +0100paddymahoney(~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com)
2023-11-17 19:27:31 +0100ski. o O ( weak references,weak associations (for finite maps) )
2023-11-17 19:27:43 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-11-17 19:27:52 +0100Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-11-17 19:28:21 +0100manwithluck`(manwithluc@gateway/vpn/protonvpn/manwithluck) (Quit: THE END)
2023-11-17 19:28:39 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-11-17 19:29:25 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-11-17 19:29:36 +0100 <ski> occasionally, i've thought it could be useful to have a `Thunk a', with `newThunk :: a -> IO (Thunk a)',`forceThunk :: Thunk a -> a',`resetThunk :: Thunk a -> IO ()', to be used when you have some datum which takes up a lot of space, and you'd like to be able to reclaim that, and perhaps later perform the computation computing it again
2023-11-17 19:29:51 +0100 <EvanR> yes
2023-11-17 19:30:04 +0100 <EvanR> apparently that's not something ghc can just do
2023-11-17 19:30:48 +0100 <ski> (perhaps `newThunk' wouldn't need to be in `IO' .. but if there's `instance Eq (Thunk a)', it would need to, similarly to `IORef', and `IVar')
2023-11-17 19:31:06 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2023-11-17 19:31:20 +0100erty(~user@user/aeroplane) (ERC 5.4 (IRC client for GNU Emacs 28.2))
2023-11-17 19:31:30 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) (Remote host closed the connection)
2023-11-17 19:32:08 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de)
2023-11-17 19:32:13 +0100 <EvanR> you can always use stable names to test identity of Thunks
2023-11-17 19:32:16 +0100 <EvanR> in IO
2023-11-17 19:32:51 +0100 <EvanR> but I'm not sure how the non-IO newThunk would "work"
2023-11-17 19:32:59 +0100ivelten(~ivelten@38.252.84.3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-11-17 19:33:06 +0100 <EvanR> reliably
2023-11-17 19:33:27 +0100 <ski> yea, perhaps it wouldn't .. not sure
2023-11-17 19:34:00 +0100 <c_wraith> I don't think you can write it as a Haskell library, but maybe C-- library?
2023-11-17 19:34:15 +0100 <c_wraith> Now that GHC supports those...
2023-11-17 19:34:27 +0100 <ski> @hackage ivar-simple
2023-11-17 19:34:27 +0100 <lambdabot> https://hackage.haskell.org/package/ivar-simple
2023-11-17 19:35:08 +0100 <EvanR> ivar is awesome
2023-11-17 19:35:48 +0100 <ski> note `new :: IO (IVar a)',`write :: IVar a -> a -> IO a' ("Raises a `BlockedIndefinitelyOnIVar' exception if the variable already has a value"),`read :: IVar a -> a' and `instance Eq (IVar a)'
2023-11-17 19:36:07 +0100 <ski> useful when you want identity (e.g. for graph traversal), but you don't need mutability
2023-11-17 19:36:23 +0100 <ski> and having `read' not in `IO' there is quite nice
2023-11-17 19:36:24 +0100dhil(~dhil@2001:8e0:2014:3100:a0:aa7c:41ab:e261)
2023-11-17 19:36:49 +0100 <ski> unlike
2023-11-17 19:36:51 +0100 <ski> @hackage data-ivar
2023-11-17 19:36:51 +0100 <lambdabot> https://hackage.haskell.org/package/data-ivar
2023-11-17 19:36:55 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds)
2023-11-17 19:37:29 +0100 <ski> which has `new :: IO (IVar a)',`write :: IVar a -> a -> IO ()',`read :: IVar a -> Reader a',`blocking :: Reader a -> IO a'
2023-11-17 19:37:33 +0100erty(~user@user/aeroplane)
2023-11-17 19:37:50 +0100 <EvanR> and Reader is a non-standard wrapper around IO, weird
2023-11-17 19:38:19 +0100 <EvanR> a false friend, not the Reader you know
2023-11-17 19:38:26 +0100 <ski> yea, `instance Monad Reader', for aggregating multiple `read's
2023-11-17 19:39:02 +0100 <haskellbridge> 12<C​elestial> What is the most memory and speed efficient way to build up a graph of 100.000+ integer values where new edges are created frequently?
2023-11-17 19:39:12 +0100Guest71(~Guest71@076-107-045-062.dynamic.caiway.nl)
2023-11-17 19:39:25 +0100 <mauke> ()
2023-11-17 19:39:43 +0100 <haskellbridge> 12<C​elestial> I wanted to use algebraic-graphs originally but I feel like simply using a vector with pairings would be more efficient?
2023-11-17 19:39:43 +0100 <ski> hehe
2023-11-17 19:39:58 +0100manwithluck(~manwithlu@2406:da14:5ea:e400:7863:dbc1:6a84:3050) (Quit: ZNC - https://znc.in)
2023-11-17 19:40:06 +0100 <EvanR> () takes up infinite percent more space than Void
2023-11-17 19:40:37 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-11-17 19:40:46 +0100 <ski> > logBase 2 1 / logBase 2 0
2023-11-17 19:40:47 +0100 <lambdabot> -0.0
2023-11-17 19:41:05 +0100 <haskellbridge> 12<C​elestial> IEEE754
2023-11-17 19:41:18 +0100 <ski> > logBase 0 1
2023-11-17 19:41:19 +0100 <lambdabot> -0.0
2023-11-17 19:41:34 +0100 <EvanR> > (log 1 - log 0) / log 0
2023-11-17 19:41:36 +0100 <lambdabot> NaN
2023-11-17 19:41:51 +0100ivelten(~ivelten@38.252.84.3)
2023-11-17 19:42:16 +0100Guest71(~Guest71@076-107-045-062.dynamic.caiway.nl) (Client Quit)
2023-11-17 19:44:07 +0100 <erty> I like Haskell being explicit and gives you control over optimisation on a compiler level. Unlike, say nodejs, where the event loop handles execution of code.
2023-11-17 19:44:09 +0100 <erty> As we have compared previously, Javascript took ~0.66s to execute `sumPlus` function for an input size of 8373, whereas Haskell took only ~0.10s for an input size of 10089850
2023-11-17 19:44:12 +0100 <haskellbridge> 12<C​elestial> also how fucked is the wikipedia API lol, if an article exists, its page object will be of the form `{ns: <number>, exists: "", *: <name>}` and if not its `{ns: <number>, *: <name>}`
2023-11-17 19:44:15 +0100 <haskellbridge> 12<C​elestial> why ... not a boolean
2023-11-17 19:44:33 +0100 <monochrom> It may not be appropriate to even talk about how much space Void takes.
2023-11-17 19:44:49 +0100 <EvanR> "" = false in some languages
2023-11-17 19:45:05 +0100 <EvanR> some very interesting languages
2023-11-17 19:45:41 +0100 <haskellbridge> 12<C​elestial> but why in a public facing API?
2023-11-17 19:45:45 +0100 <EvanR> monochrom, absent referent like talking about how much space "The King of France" takes up ?
2023-11-17 19:45:50 +0100 <haskellbridge> 12<C​elestial> how would I properly parse this with aeson btw?
2023-11-17 19:46:01 +0100 <monochrom> Yeah!
2023-11-17 19:46:03 +0100 <haskellbridge> 12<C​elestial> I want to just filter those without an `exists` out, I guess?
2023-11-17 19:46:18 +0100 <EvanR> when parsing with aeson you can ask if a field exists
2023-11-17 19:46:48 +0100 <haskellbridge> 12<C​elestial> awesome, thank you I'll look into that
2023-11-17 19:48:12 +0100erty(~user@user/aeroplane) (Remote host closed the connection)
2023-11-17 19:48:19 +0100manwithluck(manwithluc@gateway/vpn/protonvpn/manwithluck)
2023-11-17 19:48:20 +0100 <haskellbridge> 12<C​elestial> My problem is that this is in a list so I have to parse the `exists` optionally. Can I slap a `Maybe` on it and aesons TH engine will do that for me?
2023-11-17 19:48:27 +0100 <monochrom> Whoever designed it did not see the irony in asking "does exists exist?" >:)
2023-11-17 19:48:46 +0100 <ski> monochrom : akin to asking about the degree of the zero polynomial ?
2023-11-17 19:48:49 +0100 <EvanR> fix exists
2023-11-17 19:49:27 +0100 <monochrom> The zero polynomial is still easier to resolve than Void.
2023-11-17 19:49:58 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 255 seconds)
2023-11-17 19:50:02 +0100 <monochrom> I would love to say that because Void contains infinite information, it takes up infinite space. But that's wrong for another reason.
2023-11-17 19:50:19 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-11-17 19:50:23 +0100 <monochrom> At least empirically wrong.
2023-11-17 19:50:44 +0100 <EvanR> so white noise takes up infinite space? xD
2023-11-17 19:51:01 +0100 <monochrom> So a better position may be: it's a singularity, don't even talk about its space.
2023-11-17 19:51:11 +0100ski. o O ( "Existence is a second-order property." -- Frege,Quine )
2023-11-17 19:51:29 +0100 <haskellbridge> 12<C​elestial> isn't it that rather than *containing* infinite information, an infinite amount of information can be derived from it in falsehood?
2023-11-17 19:51:49 +0100 <haskellbridge> 12<C​elestial> so it contains no information which makes it the source of infinite amounts of it?
2023-11-17 19:51:56 +0100 <monochrom> White noise is actually non-controversial for this. You try to run a compression algorithm on white noise, you find it incompressible.
2023-11-17 19:52:36 +0100 <mauke> did you mean: incomprehensible
2023-11-17 19:53:00 +0100 <monochrom> Actually, same difference. >:)
2023-11-17 19:53:54 +0100 <EvanR> > sizeOf (undefined :: Void)
2023-11-17 19:53:56 +0100 <lambdabot> error:
2023-11-17 19:53:56 +0100 <lambdabot> • Variable not in scope: sizeOf :: Void -> t
2023-11-17 19:53:56 +0100 <lambdabot> • Perhaps you meant one of these:
2023-11-17 19:54:00 +0100 <ski> page 5 of "Objects of Categories as Complex Numbers" by Marcelo Fiore,Tom Leinster in 2002-12-30 at <https://arxiv.org/abs/math/0212377> (also see "This Week's Finds in Mathematical Physics (Week 202)" by John Baez in 2004-02-21 at <https://math.ucr.edu/home/baez/week202.html>) defines the rig of degrees (and also of codegrees). in which the zero polynomial has degree `-Infinity' (and codegree `Infinity')
2023-11-17 19:54:35 +0100 <[exa]> EvanR: with noise and stuff we should do `entropyOf`
2023-11-17 19:54:45 +0100vglfr(~vglfr@78.26.242.160)
2023-11-17 19:55:50 +0100 <ski> (oh, and "Seven trees in one" by Andreas Blass in 1995 at <https://dept.math.lsa.umich.edu/~ablass/cat.html> (a neat little paper) is also related to that paper. it gives a constructive, non-recursive, bijection between `T' and `T^7', where `T = 1 + T^2')
2023-11-17 19:56:35 +0100 <EvanR> it's like the banach tarski paradox but tangible
2023-11-17 19:56:48 +0100 <ski> > Foreign.Storable.sizeOf (undefined :: Void)
2023-11-17 19:56:49 +0100 <lambdabot> error:
2023-11-17 19:56:49 +0100 <lambdabot> • No instance for (Storable Void) arising from a use of ‘sizeOf’
2023-11-17 19:56:49 +0100 <lambdabot> • In the expression: sizeOf (undefined :: Void)
2023-11-17 19:57:06 +0100 <monochrom> Ugh n+1 = 2^n is already the limit of my comprehension. :)
2023-11-17 19:57:28 +0100 <ski> well, `T = 1 + T^2' is just `data T = Nil | Branch T T'
2023-11-17 19:57:50 +0100 <monochrom> Yeah but T = T^7 is highly fantastic!
2023-11-17 19:58:00 +0100 <ski> indeed ! :D
2023-11-17 19:58:44 +0100 <ski> anyway, that Baez blag talks about a "golden object" `G', where `G^2 = G + 1'
2023-11-17 19:58:46 +0100 <EvanR> someone should start a mystery cult based on that result before someone else does or someone shows the trivialness of it
2023-11-17 20:00:00 +0100 <ski> (anyway, `T' is countably infinite, so `T = T^7' isn't surprising. the surprising part is the "non-recursive" bit)
2023-11-17 20:00:10 +0100 <monochrom> EvanR, you overestimate humanity. Even after proving trivialness, people can still start mystery cults.
2023-11-17 20:00:39 +0100 <EvanR> a type G where Bool -> G = Maybe G
2023-11-17 20:01:00 +0100 <EvanR> is it in acme hackage somewhere
2023-11-17 20:01:06 +0100 <monochrom> haha
2023-11-17 20:01:10 +0100 <ski> (unlike the `N -> Bool = Maybe N', from the other day)
2023-11-17 20:02:46 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4)
2023-11-17 20:03:37 +0100 <ski> Celestial : "can be derived from it in falsehood" ?
2023-11-17 20:04:03 +0100skiidly ponders Perlis noise
2023-11-17 20:04:08 +0100it_(~quassel@v2202212189510211193.supersrv.de) (Server closed connection)
2023-11-17 20:04:17 +0100it_(~quassel@v2202212189510211193.supersrv.de)
2023-11-17 20:05:10 +0100 <monochrom> I think it means this. Void doesn't have to store infinite information. Instead, when you make use of Void -> Foo, it is you who fill in "I want Foo" so Void does not have to even know "oh one day someone will ask me about Foo".
2023-11-17 20:05:22 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 20:05:39 +0100 <ski> .. should `Void' have a `Storable' instance ?
2023-11-17 20:05:41 +0100 <monochrom> IOW the information "Foo" comes from you. Void just has to be a yes-man.
2023-11-17 20:06:06 +0100 <monochrom> What is Perlis noise?
2023-11-17 20:06:23 +0100 <ski> word play on "Perlin noise", and "Alan Perlis"
2023-11-17 20:06:33 +0100 <mauke> JAPH
2023-11-17 20:06:35 +0100 <ski> @quote stark
2023-11-17 20:06:35 +0100 <lambdabot> AlanPerlis says: The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information.
2023-11-17 20:06:36 +0100 <monochrom> But I don't know Perlin noise!
2023-11-17 20:06:59 +0100 <monochrom> oh hiding information heh
2023-11-17 20:07:08 +0100acidjnk(~acidjnk@p200300d6e72b9332a5871c169e311c1a.dip0.t-ipconnect.de)
2023-11-17 20:07:08 +0100 <ski> <https://en.wikipedia.org/wiki/Perlin_noise> -- smoothly varying spatial (or temporal) noise
2023-11-17 20:07:39 +0100 <haskellbridge> 12<C​elestial> ski: sorry; english bad. I meant to say that from a Void "value" you can derive anything (ex falso quodlibet). Basically `absurd` from base
2023-11-17 20:07:43 +0100 <ski> (well, at least continuously)
2023-11-17 20:08:01 +0100 <ski> ah, i was thinking maybe you meant something like that, Celestial
2023-11-17 20:08:02 +0100 <monochrom> w00t an Oscar for math and CS.
2023-11-17 20:09:33 +0100ski. o O ( "Perlisisms - Epigrams in Programming" due to Alan Perlis at <https://www.cs.yale.edu/homes/perlis-alan/quotes.html> )
2023-11-17 20:09:36 +0100 <EvanR> Void -> a says from a Void you can derive "an a (any type)" but not necessarily any value. For non Void a perhaps it selects a special answer like axiom of choice xD
2023-11-17 20:09:55 +0100 <ski> "3. Syntactic sugar causes cancer of the semicolon." is another well-known one
2023-11-17 20:10:26 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-11-17 20:10:56 +0100 <ncf> seven trees in one is cool here's a game about it https://lebarde.alwaysdata.net/seventrees/
2023-11-17 20:11:05 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-11-17 20:11:05 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-11-17 20:11:05 +0100finn_elijaFinnElija
2023-11-17 20:11:09 +0100 <monochrom> Hrm, Perlis probably didn't realize that some of them are actually theorems.
2023-11-17 20:12:00 +0100 <ski> (i'm kinda reminded of your "Wise Tautologies" <https://www.vex.net/~trebla/humour/tautologies.html>)
2023-11-17 20:12:04 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 20:12:23 +0100 <monochrom> #2 "Functions delay binding; data structures induce binding. Moral: Structure data late in the programming process." is actually one way to design a type and its API: You start with deciding on the API, then its free algebra is almost your data structure. Then maybe you quotient it and optimize it.
2023-11-17 20:12:25 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 20:12:47 +0100 <monochrom> For example, someone's pretty printer paper actually did that.
2023-11-17 20:13:17 +0100 <ski> was that a Functional Pearl ?
2023-11-17 20:13:25 +0100 <monochrom> #5 "5. If a program manipulates a large amount of data, it does so in a small number of ways." Suppose you replace "amount" by "variety". Then it is the parametricity theorem!
2023-11-17 20:13:30 +0100 <monochrom> I think yes.
2023-11-17 20:14:21 +0100 <ski> mauke ?
2023-11-17 20:17:10 +0100 <ski> monochrom : hm, interesting
2023-11-17 20:18:19 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 255 seconds)
2023-11-17 20:18:33 +0100 <ski> ah, also "8. A programming language is low level when its programs require attention to the irrelevant.","19. A language that doesn't affect the way you think about programming, is not worth knowing."
2023-11-17 20:18:37 +0100 <monochrom> But #9 "It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures." is where Haskell+SML etc disagrees with Scheme+Clojure etc.
2023-11-17 20:18:49 +0100billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
2023-11-17 20:19:04 +0100billchenchina-(~billchenc@2408:824e:d2e:38f1:1059:3d3e:1395:9ed2)
2023-11-17 20:19:05 +0100 <ski> still, we use tuples (though mostly pairs)
2023-11-17 20:19:24 +0100 <monochrom> Hrm, maybe actually all of FP disagrees.
2023-11-17 20:20:38 +0100 <monochrom> Conceptually, even though you use lists all the time in Scheme Clojure etc, you don't view them "the same list type". You have 10 types in mind, it's just an implementation detail that all of them are backed by lists.
2023-11-17 20:20:40 +0100 <ski> there's also an argument to (analogously with tuples, say) have lightweight variant types, possibly positional rather than labelled
2023-11-17 20:20:54 +0100 <ski> `Either' kinda does that, except for when you have more than two alternatives
2023-11-17 20:21:34 +0100 <ski> the use case is when you almost always do `case' on the alternatives computed by the call, and then not refer to the compound variant types more
2023-11-17 20:22:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2023-11-17 20:22:37 +0100 <ski> ("lightweight" meaning that you don't have to declare the types, just like you don't have to declare tuple types. and with the record types of Trex in Hugs, these also were lightweight)
2023-11-17 20:23:08 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de)
2023-11-17 20:23:33 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 20:23:50 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-17 20:23:51 +0100 <ski> (OCaml has "polymorphic variants" <https://v2.ocaml.org/manual/polyvariant.html> (in addition to the usual heavyweight, non-row-based, variant types), which are lightweight, using row types)
2023-11-17 20:24:00 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-11-17 20:25:39 +0100 <ski> (you could imagine `(Error | Result)' has values of shape `(err |)' and `(| res)', continuing the pattern of tuple types and tuples)
2023-11-17 20:32:14 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) (Remote host closed the connection)
2023-11-17 20:35:35 +0100 <EvanR> (x||), (|y|), (||z) has type... uh
2023-11-17 20:35:47 +0100 <EvanR> <a|b|c>
2023-11-17 20:36:30 +0100 <EvanR> or (a|b|c) if you reuse the value syntax
2023-11-17 20:36:37 +0100 <EvanR> cool beans
2023-11-17 20:38:22 +0100 <ski> yep
2023-11-17 20:38:47 +0100 <ski> (i guess you'd need to write `(x| |)', though, otherwise it's a section)
2023-11-17 20:39:02 +0100 <ski> (or `(x | | )', if you prefer)
2023-11-17 20:39:11 +0100 <EvanR> I was wondering how to get something like that for a small language with types designed for advent of code
2023-11-17 20:39:22 +0100 <EvanR> now it is clear
2023-11-17 20:40:00 +0100 <ski> (in case it's unclear, this variant is not based on row-types, is just similar to tuples, except for, you know, sum type instead of product type)
2023-11-17 20:40:56 +0100 <EvanR> idris (used to?) implement tuples over size 2 as nested pairs, (a,b,c) sugar for (a,(b,c)), you could do the same thing here...
2023-11-17 20:41:00 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 20:41:23 +0100 <EvanR> but maybe it's simpler to just have them be any size
2023-11-17 20:41:49 +0100 <ski> probably
2023-11-17 20:41:53 +0100 <ski> .. one could even imagine, instead of writing `case ... of (x | |) -> ..x..; (| y |) -> ..y..; (| | z) -> ..z..', you could write `case ... of (x | y | z) -> ..x.. | ..y.. | ..z..'
2023-11-17 20:43:39 +0100 <EvanR> tuples/variants of size 1 through 7 supported only xD
2023-11-17 20:44:24 +0100sagax(~sagax_nb@user/sagax) (Ping timeout: 246 seconds)
2023-11-17 20:44:35 +0100 <EvanR> since 7 trees is all you can get before you wrap back to 1
2023-11-17 20:45:46 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-17 20:50:48 +0100nckx(~nckx@libera/staff/owl/nckx) (Server closed connection)
2023-11-17 20:51:10 +0100nckx(~nckx@libera/staff/owl/nckx)
2023-11-17 20:54:21 +0100 <EvanR> the haskell report describes the parsing of layout by first translating to a form containing { ; }. Does this actually happen or is layout parsed directly somehow
2023-11-17 20:54:43 +0100 <EvanR> and which is easier xD
2023-11-17 21:01:20 +0100notzmv(~zmv@user/notzmv)
2023-11-17 21:01:53 +0100 <monochrom> There was a recent thread on haskell-cafe about it. https://mail.haskell.org/pipermail/haskell-cafe/2023-November/136423.html
2023-11-17 21:03:00 +0100forell(~forell@user/forell) (Server closed connection)
2023-11-17 21:03:17 +0100forell(~forell@user/forell)
2023-11-17 21:03:59 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-11-17 21:10:15 +0100 <EvanR> lovely
2023-11-17 21:11:20 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4)
2023-11-17 21:18:42 +0100eL_Bart0(eL_Bart0@dietunichtguten.org) (Server closed connection)
2023-11-17 21:18:43 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2023-11-17 21:18:53 +0100eL_Bart0(eL_Bart0@dietunichtguten.org)
2023-11-17 21:19:25 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de)
2023-11-17 21:19:43 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 21:21:28 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2023-11-17 21:22:25 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 276 seconds)
2023-11-17 21:23:43 +0100billchenchina-(~billchenc@2408:824e:d2e:38f1:1059:3d3e:1395:9ed2) (Ping timeout: 276 seconds)
2023-11-17 21:24:54 +0100sajith(~sajith@user/sajith) (Server closed connection)
2023-11-17 21:25:01 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds)
2023-11-17 21:25:13 +0100sajith(~sajith@user/sajith)
2023-11-17 21:32:07 +0100johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2023-11-17 21:48:10 +0100shapr(~user@2600:1700:c640:3100:5b4c:3811:4e1e:b4e5) (Remote host closed the connection)
2023-11-17 21:48:23 +0100shapr(~user@2600:1700:c640:3100:3499:6a6b:ae1a:22d5)
2023-11-17 21:48:41 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-11-17 21:49:39 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 21:50:27 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 256 seconds)
2023-11-17 21:50:40 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2023-11-17 21:51:01 +0100sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 276 seconds)
2023-11-17 21:51:01 +0100johnw(~johnw@69.62.242.138)
2023-11-17 21:54:21 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2023-11-17 21:57:18 +0100minigrim0(~minigrim0@2a01:4f9:6b:3416:68ba:8dff:fe58:a5ea) (Ping timeout: 256 seconds)
2023-11-17 21:59:36 +0100minigrim0(~minigrim0@mordor.urlab.be)
2023-11-17 22:01:52 +0100trev(~trev@user/trev) (Quit: trev)
2023-11-17 22:02:29 +0100trev(~trev@user/trev)
2023-11-17 22:09:00 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-11-17 22:09:01 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 255 seconds)
2023-11-17 22:11:57 +0100trev(~trev@user/trev) (Quit: trev)
2023-11-17 22:13:52 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
2023-11-17 22:16:02 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2023-11-17 22:21:25 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-11-17 22:24:55 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-11-17 22:26:14 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 22:28:34 +0100euleritian(~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-11-17 22:28:51 +0100euleritian(~euleritia@77.22.252.56)
2023-11-17 22:31:09 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-11-17 22:33:04 +0100defanor(~defanor@tart.uberspace.net) (Server closed connection)
2023-11-17 22:33:21 +0100defanor(~defanor@tart.uberspace.net)
2023-11-17 22:38:11 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-11-17 22:38:37 +0100Inst(~Inst@120.244.192.250) (Ping timeout: 256 seconds)
2023-11-17 22:39:24 +0100arahael(~arahael@1.145.12.195)
2023-11-17 22:44:06 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-11-17 22:45:24 +0100sawilagar(~sawilagar@user/sawilagar)
2023-11-17 22:45:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-11-17 22:49:00 +0100ystael(~ystael@user/ystael) (Ping timeout: 246 seconds)
2023-11-17 22:53:21 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
2023-11-17 23:01:53 +0100cross(~cross@spitfire.i.gajendra.net) (Quit: leaving)
2023-11-17 23:02:35 +0100cross(~cross@spitfire.i.gajendra.net)
2023-11-17 23:06:34 +0100 <dmj`> EvanR: making a new haskell?
2023-11-17 23:08:17 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
2023-11-17 23:08:39 +0100dhil(~dhil@2001:8e0:2014:3100:a0:aa7c:41ab:e261) (Ping timeout: 256 seconds)
2023-11-17 23:15:19 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 23:16:42 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2023-11-17 23:18:21 +0100kimiamania467(~65804703@user/kimiamania)
2023-11-17 23:19:25 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) (Ping timeout: 276 seconds)
2023-11-17 23:20:22 +0100kimiamania46(~65804703@user/kimiamania) (Ping timeout: 260 seconds)
2023-11-17 23:20:22 +0100kimiamania467kimiamania46
2023-11-17 23:20:30 +0100 <EvanR> NeoNeoHaskell
2023-11-17 23:20:41 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2023-11-17 23:22:12 +0100gentauro(~gentauro@user/gentauro)
2023-11-17 23:22:22 +0100shapr(~user@2600:1700:c640:3100:3499:6a6b:ae1a:22d5) (Remote host closed the connection)
2023-11-17 23:26:42 +0100 <dmj`> ghc-new
2023-11-17 23:31:46 +0100arahael(~arahael@1.145.12.195) (Ping timeout: 276 seconds)
2023-11-17 23:33:04 +0100Xe(~cadey@perl/impostor/xe) (Ping timeout: 276 seconds)
2023-11-17 23:37:24 +0100blackfield(~aenima@85.255.4.218) (Server closed connection)
2023-11-17 23:38:11 +0100blackfield(~aenima@85.255.4.218)
2023-11-17 23:39:21 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net)
2023-11-17 23:40:54 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-11-17 23:41:15 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-11-17 23:44:25 +0100nate4(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-17 23:45:19 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 255 seconds)
2023-11-17 23:46:51 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-11-17 23:57:44 +0100michalz(~michalz@185.246.207.221) (Remote host closed the connection)