2021/07/07

2021-07-07 00:02:00 +0200hgolden(uid507415@id-507415.highgate.irccloud.com) ()
2021-07-07 00:02:20 +0200hgolden(uid507415@id-507415.highgate.irccloud.com)
2021-07-07 00:02:55 +0200dunj3(~dunj3@2001:16b8:30db:ce00:b825:b46d:5278:e0d1) (Remote host closed the connection)
2021-07-07 00:03:09 +0200hgolden(uid507415@id-507415.highgate.irccloud.com) (Client Quit)
2021-07-07 00:03:26 +0200hgolden(uid507415@id-507415.highgate.irccloud.com)
2021-07-07 00:03:44 +0200warnz(~warnz@2600:1700:77c0:5610:a5ca:de51:28ba:edf0) (Ping timeout: 252 seconds)
2021-07-07 00:16:24 +0200zeenk(~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!)
2021-07-07 00:19:02 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 00:24:36 +0200Nyeogmi(~Nyeogmi@2601:645:8700:bea0:4d5e:7bf4:e290:5648)
2021-07-07 00:26:11 +0200ubert(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) (Quit: ubert)
2021-07-07 00:33:34 +0200warnz(~warnz@2600:1700:77c0:5610:a5ca:de51:28ba:edf0)
2021-07-07 00:35:00 +0200haskl[error](~haskl@98.37.78.63)
2021-07-07 00:35:07 +0200haskl(~haskl@user/haskl) (Ping timeout: 246 seconds)
2021-07-07 00:37:25 +0200sh9(~sh9@softbank060116136158.bbtec.net)
2021-07-07 00:37:46 +0200warnz(~warnz@2600:1700:77c0:5610:a5ca:de51:28ba:edf0) (Ping timeout: 246 seconds)
2021-07-07 00:39:25 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-07 00:40:37 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-07 00:41:07 +0200hexfive(~eric@50.35.83.177)
2021-07-07 00:41:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 00:41:49 +0200obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-07-07 00:42:10 +0200obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2021-07-07 00:42:40 +0200ephemient(uid407513@id-407513.tooting.irccloud.com)
2021-07-07 00:42:57 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-07-07 00:43:02 +0200chris-the-slurpa(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-07 00:43:33 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 00:46:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-07-07 00:47:13 +0200xff0x(~xff0x@2001:1a81:5361:2500:809c:f58:ea4b:fa4b) (Ping timeout: 246 seconds)
2021-07-07 00:47:46 +0200chris-the-slurpa(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2021-07-07 00:48:17 +0200xff0x(~xff0x@2001:1a81:5361:2500:d703:4594:70ae:f456)
2021-07-07 00:50:06 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 00:51:33 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se)
2021-07-07 00:51:49 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-07-07 00:52:15 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-07-07 00:56:04 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 01:00:31 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2021-07-07 01:01:41 +0200berberman(~berberman@user/berberman)
2021-07-07 01:08:15 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-07 01:12:45 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-07-07 01:20:41 +0200cjb(~cjb@user/cjb)
2021-07-07 01:26:27 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-07 01:31:11 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-07-07 01:31:19 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 246 seconds)
2021-07-07 01:31:43 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-07-07 01:36:44 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se) (Read error: Connection reset by peer)
2021-07-07 01:37:07 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-07-07 01:42:24 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 01:46:42 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 252 seconds)
2021-07-07 01:47:10 +0200hendursa1(~weechat@user/hendursaga) (Remote host closed the connection)
2021-07-07 01:47:48 +0200acidjnk_new(~acidjnk@p200300d0c72b9519d1d3899e95f4527e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-07-07 01:48:21 +0200hendursa1(~weechat@user/hendursaga)
2021-07-07 01:49:31 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2021-07-07 01:51:23 +0200benin0369(~benin@183.82.204.181)
2021-07-07 01:55:44 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-07-07 01:56:10 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-07-07 01:58:26 +0200lortabac(~lortabac@95.138.56.124) (Ping timeout: 272 seconds)
2021-07-07 02:05:03 +0200sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1)
2021-07-07 02:08:33 +0200dajoer(~david@user/gvx)
2021-07-07 02:09:25 +0200Axman6(~Axman6@user/axman6) (Remote host closed the connection)
2021-07-07 02:09:39 +0200Axman6(~Axman6@user/axman6)
2021-07-07 02:15:19 +0200mpt(~tom@2a02:908:1862:49e0::8)
2021-07-07 02:17:28 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-07-07 02:17:49 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-07-07 02:18:26 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-07-07 02:19:01 +0200leah2(~leah@vuxu.org) (Read error: Connection reset by peer)
2021-07-07 02:21:35 +0200Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-07-07 02:22:38 +0200P1RATEZ(piratez@user/p1ratez) (Remote host closed the connection)
2021-07-07 02:29:25 +0200mpt(~tom@2a02:908:1862:49e0::8) (Ping timeout: 246 seconds)
2021-07-07 02:33:53 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 252 seconds)
2021-07-07 02:34:49 +0200lavaman(~lavaman@98.38.249.169)
2021-07-07 02:41:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 02:45:15 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 02:45:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-07 02:53:07 +0200shapr`(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-07-07 02:54:54 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-07-07 03:01:21 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-07-07 03:06:38 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-07-07 03:11:20 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-07-07 03:12:27 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-07-07 03:18:11 +0200chris-the-slurpa(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-07 03:18:44 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 03:23:30 +0200chris-the-slurpa(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-07-07 03:28:51 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 265 seconds)
2021-07-07 03:30:53 +0200Erutuon(~Erutuon@user/erutuon)
2021-07-07 03:33:58 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 244 seconds)
2021-07-07 03:35:29 +0200xff0x(~xff0x@2001:1a81:5361:2500:d703:4594:70ae:f456) (Ping timeout: 252 seconds)
2021-07-07 03:35:56 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2021-07-07 03:37:35 +0200xff0x(~xff0x@2001:1a81:539d:3600:fb37:d824:cc4b:5c87)
2021-07-07 03:44:38 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-07 03:44:43 +0200neurocyte403(~neurocyte@IP-185189140104.dynamic.medianet-world.de)
2021-07-07 03:44:43 +0200neurocyte403(~neurocyte@IP-185189140104.dynamic.medianet-world.de) (Changing host)
2021-07-07 03:44:43 +0200neurocyte403(~neurocyte@user/neurocyte)
2021-07-07 03:45:02 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Quit: Leaving)
2021-07-07 03:45:54 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-07-07 03:48:15 +0200neurocyte40(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-07-07 03:48:15 +0200neurocyte403neurocyte40
2021-07-07 03:48:41 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-07 03:52:03 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 03:54:05 +0200 <qrpnxz> ah nice, haskell has case lambdas
2021-07-07 03:54:33 +0200 <Axman6> also known as LambdaCase
2021-07-07 03:55:10 +0200ebn(~ebn@h-46-59-94-79.A463.priv.bahnhof.se)
2021-07-07 03:55:39 +0200 <qrpnxz> wait, ApplicativeDo not on by default? why?
2021-07-07 03:56:08 +0200 <geekosaur> becuase it massively complicates desugaring do-s
2021-07-07 03:56:13 +0200chris-the-slurpa(~chris@81.96.113.213) (Ping timeout: 246 seconds)
2021-07-07 03:56:57 +0200 <qrpnxz> well i'm not doing it by hand xD
2021-07-07 03:57:11 +0200 <geekosaur> besides which almost no extensions over H2010 are on by default
2021-07-07 03:57:24 +0200 <qrpnxz> fair enough
2021-07-07 03:57:26 +0200 <geekosaur> unless you're talking about GHC2021 in 9.2-pre maybe
2021-07-07 03:57:37 +0200Mathnerd314(~Mathnerd3@2601:281:d080:4533::1000)
2021-07-07 03:57:42 +0200beka(~beka@104-244-27-23.static.monkeybrains.net)
2021-07-07 03:57:56 +0200 <qrpnxz> :O
2021-07-07 03:58:04 +0200 <qrpnxz> didn't know that was coming
2021-07-07 03:58:05 +0200 <qrpnxz> epic
2021-07-07 04:00:05 +0200 <geekosaur> looks like it's not in GHC2021 either
2021-07-07 04:01:01 +0200mei(~mei@user/mei) (Read error: Connection reset by peer)
2021-07-07 04:01:25 +0200 <qrpnxz> hm, well i'm sure a lot of other cool stuff is, reading the prop right now
2021-07-07 04:02:25 +0200 <geekosaur> actually it's quite conservative
2021-07-07 04:03:21 +0200 <geekosaur> no LambdaCase I notice
2021-07-07 04:06:18 +0200 <Mathnerd314> Is there a paper or something on defining IO as an operational monad like `data IO a = Val a | Put Str (IO a) | Get (Str -> IO a)`? As an alternative to the State# RealWorld stuff it seems worth exploring.
2021-07-07 04:07:12 +0200 <geekosaur> I think that runs into complications once you bring in things like FFI
2021-07-07 04:07:17 +0200 <qrpnxz> it's like two dozen, it's a lot
2021-07-07 04:11:16 +0200 <c_wraith> Mathnerd314: edwardk wrote some articles about using that model for Ermine
2021-07-07 04:13:00 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-07-07 04:13:01 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-07-07 04:13:46 +0200ebn(~ebn@h-46-59-94-79.A463.priv.bahnhof.se) (Remote host closed the connection)
2021-07-07 04:15:27 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-07-07 04:17:20 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 258 seconds)
2021-07-07 04:18:34 +0200alx741(~alx741@181.196.69.147) (Quit: alx741)
2021-07-07 04:23:14 +0200lavaman(~lavaman@98.38.249.169)
2021-07-07 04:23:15 +0200hgolden_(~hgolden2@cpe-172-114-84-61.socal.res.rr.com)
2021-07-07 04:24:41 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-07-07 04:24:41 +0200FinnElijaGuest1139
2021-07-07 04:24:41 +0200finn_elijaFinnElija
2021-07-07 04:24:42 +0200 <qrpnxz> this page shows there an indeed very clever ways to get primes as fast as the C code https://wiki.haskell.org/Prime_numbers namely this one `primes = 2 : 3 : minus [5,7..] (unionAll [[p*p, p*p+2*p..] | p <- tail primes])` using some *really* neat-o, yet straight-forward, stuff from the data-ordlist package. Now sure, this different algorithm could also be translated into C, but even if you had the source f
2021-07-07 04:24:42 +0200 <qrpnxz> or all the library functions used here, reimplementing it and getting it to have the correct lazy behaviour to stream would be total hell and super coupled. Haskell powerful!
2021-07-07 04:24:59 +0200td_(~td@94.134.91.135) (Ping timeout: 252 seconds)
2021-07-07 04:26:35 +0200td_(~td@94.134.91.101)
2021-07-07 04:27:19 +0200 <qrpnxz> on the other hand, idk if i woulda ever come up with that, but hey, it's there lol
2021-07-07 04:27:24 +0200 <Mathnerd314> c_wraith: ah, the blog post "Free monads for less" mentions http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf, which uses a free monad with I/O at the end. I guess that's as close as I'll get
2021-07-07 04:27:43 +0200Guest1139(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 246 seconds)
2021-07-07 04:30:43 +0200 <qrpnxz> that solution is way to cool, easily understood and so fast
2021-07-07 04:32:07 +0200lemmih(~lemmih@2406:3003:2072:44:5d:3e69:de9c:e320) (Quit: Leaving)
2021-07-07 04:32:57 +0200 <monochrom> Haskell2010, Ubuntu 21.04, GHC2021, and T-1000
2021-07-07 04:41:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 04:42:10 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 04:43:04 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2021-07-07 04:45:50 +0200charukiewicz_charukiewicz
2021-07-07 04:46:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-07 04:47:06 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-07 04:48:45 +0200shapr`(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-07-07 04:49:55 +0200warnz(~warnz@2600:1700:77c0:5610:a5ca:de51:28ba:edf0)
2021-07-07 04:50:17 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2021-07-07 04:50:35 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-07-07 04:52:21 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-07-07 04:54:15 +0200warnz(~warnz@2600:1700:77c0:5610:a5ca:de51:28ba:edf0) (Ping timeout: 252 seconds)
2021-07-07 04:55:14 +0200 <qrpnxz> even with really simple implementations for minus and unionAll, it performs rather well
2021-07-07 04:58:15 +0200 <monochrom> Yeah pretty nice.
2021-07-07 04:58:40 +0200 <monochrom> I also just ran into a case of: my student's solution is both simpler and faster than mine. :)
2021-07-07 05:00:32 +0200 <qrpnxz> lol, the essence of bittersweat
2021-07-07 05:00:35 +0200 <qrpnxz> *sweet
2021-07-07 05:00:43 +0200 <qrpnxz> bittersweat ew!
2021-07-07 05:06:32 +0200Reyu[M](~reyureyuz@matrix.reyuzenfold.com) (Remote host closed the connection)
2021-07-07 05:07:09 +0200Reyu[M](~reyureyuz@matrix.reyuzenfold.com)
2021-07-07 05:09:56 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 05:10:20 +0200 <Mathnerd314> aha, the paper I was looking for: https://www.cs.nott.ac.uk/~psztxa/publ/beast.pdf
2021-07-07 05:10:57 +0200zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-07-07 05:11:56 +0200 <Mathnerd314> although, it's a model, not directly compiling with the types
2021-07-07 05:14:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 05:18:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-07 05:20:08 +0200finsternis(~X@23.226.237.192) (Remote host closed the connection)
2021-07-07 05:22:58 +0200 <qrpnxz> what's this about?
2021-07-07 05:23:00 +0200khumba(~khumba@user/khumba)
2021-07-07 05:24:10 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
2021-07-07 05:25:06 +0200 <Mathnerd314> I'm looking for papers about defining IO as an operational monad like `data IO a = Val a | Put Str (IO a) | Get (Str -> IO a)`. So far: Ermine uses a Codensity monad with an FFI datatype. A few papers on modeling IO with free monads.
2021-07-07 05:28:14 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-07 05:28:28 +0200anandprabhu(~anandprab@94.202.243.198)
2021-07-07 05:29:29 +0200 <Mathnerd314> or rather, not Codensity, but the "indexed store comonad". http://comonad.com/reader/2011/free-monads-for-less-3/
2021-07-07 05:32:28 +0200wei2912(~wei2912@112.199.250.21)
2021-07-07 05:32:34 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2021-07-07 05:42:51 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-07 05:42:53 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-07-07 05:43:33 +0200keutoi(~keutoi@157.47.77.5)
2021-07-07 05:46:42 +0200 <keutoi> I came across this in Semigroup instance of NonEmpty a.
2021-07-07 05:46:44 +0200 <keutoi> (a :| as) <> ~(b :| bs) = a :| (as ++ b : bs)
2021-07-07 05:46:53 +0200 <keutoi> Why is the lazy pattern used?
2021-07-07 05:47:36 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-07-07 05:53:15 +0200 <monochrom> To be as lazy as the [a] case: (a:as) ++ ys = a : (as ++ ys).
2021-07-07 05:53:43 +0200 <monochrom> No one wants (a:as) ++ (b:bs) = a : (as ++ (b:bs))
2021-07-07 05:54:31 +0200 <monochrom> In both cases people would like head ((1:undefined) <> undefined) = 1
2021-07-07 06:02:22 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 06:02:57 +0200 <qrpnxz> oh my lord that page has some crazier even faster algos, all fitting on a postcard, all using lists!
2021-07-07 06:05:43 +0200 <keutoi> monochrom: thank you
2021-07-07 06:12:48 +0200oxide(~lambda@user/oxide)
2021-07-07 06:16:56 +0200hewxle(~hewxle@S010600fc8d321b13.vn.shawcable.net)
2021-07-07 06:24:20 +0200hewxle(~hewxle@S010600fc8d321b13.vn.shawcable.net) (Ping timeout: 252 seconds)
2021-07-07 06:25:41 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-07-07 06:26:20 +0200gambpang(~ian@207.181.230.156)
2021-07-07 06:34:04 +0200Mathnerd314(~Mathnerd3@2601:281:d080:4533::1000) (Quit: Client closed)
2021-07-07 06:36:41 +0200hewxle(~hewxle@S010600fc8d321b13.vn.shawcable.net)
2021-07-07 06:39:01 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-07-07 06:39:53 +0200m7zs3gzw(~m7zs3gzw@188.170.172.108)
2021-07-07 06:41:37 +0200m7zs3gzw(~m7zs3gzw@188.170.172.108) (Remote host closed the connection)
2021-07-07 06:43:24 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 06:47:46 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-07-07 06:52:10 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 240 seconds)
2021-07-07 06:55:47 +0200jakalx(~jakalx@base.jakalx.net)
2021-07-07 06:57:16 +0200fengctor(~fengctor@bras-base-ngflon0508w-grc-11-76-68-2-143.dsl.bell.ca)
2021-07-07 06:59:58 +0200hewxle(~hewxle@S010600fc8d321b13.vn.shawcable.net) ()
2021-07-07 07:01:00 +0200gambpang(~ian@207.181.230.156) (Remote host closed the connection)
2021-07-07 07:05:11 +0200spatchkaa(~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Leaving)
2021-07-07 07:06:14 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 07:11:22 +0200hewxle(~hewxle@user/hewxle)
2021-07-07 07:13:05 +0200anandprabhu(~anandprab@94.202.243.198) (Quit: Leaving)
2021-07-07 07:13:05 +0200dunkeln_(~dunkeln@188.70.10.207)
2021-07-07 07:14:14 +0200 <Axman6> qrpnxz: which page?
2021-07-07 07:14:33 +0200 <qrpnxz> this https://wiki.haskell.org/Prime_numbers
2021-07-07 07:14:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-07-07 07:15:23 +0200 <Axman6> there was a talk on this recently actually, I'll see if I can find it
2021-07-07 07:16:55 +0200mei(~mei@user/mei)
2021-07-07 07:18:13 +0200 <Axman6> I don't think this is the one I was after but it looks like you might enjoy it: https://www.youtube.com/watch?v=UPy7TXgrK1A
2021-07-07 07:19:36 +0200 <qrpnxz> :o thanks
2021-07-07 07:20:33 +0200dunkeln_(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-07 07:21:18 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 07:24:24 +0200jneira(~jneira@212.8.115.226)
2021-07-07 07:29:43 +0200xff0x(~xff0x@2001:1a81:539d:3600:fb37:d824:cc4b:5c87) (Ping timeout: 246 seconds)
2021-07-07 07:29:51 +0200 <Axman6> I think this is the thing I was looking for: https://patternsinfp.wordpress.com/2021/05/10/the-genuine-sieve-of-eratosthenes/
2021-07-07 07:30:52 +0200xff0x(~xff0x@2001:1a81:539d:3600:7f6d:8918:f53:97d7)
2021-07-07 07:31:35 +0200 <qrpnxz> huh, will look at that
2021-07-07 07:31:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-07 07:35:40 +0200canta(~canta@cvm0.d5k.one) (Quit: WeeChat 2.8)
2021-07-07 07:35:46 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-07-07 07:35:50 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 265 seconds)
2021-07-07 07:44:43 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 07:45:30 +0200hewxle(~hewxle@user/hewxle) (Ping timeout: 272 seconds)
2021-07-07 07:47:59 +0200canta(~canta@user/canta)
2021-07-07 07:49:09 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-07 07:49:38 +0200jonatan(~nate@h77-53-70-163.cust.a3fiber.se) (Remote host closed the connection)
2021-07-07 07:52:49 +0200hiruji(~hiruji@user/hiruji) (Read error: Connection reset by peer)
2021-07-07 07:53:29 +0200hiruji(~hiruji@user/hiruji)
2021-07-07 07:58:44 +0200fengctor(~fengctor@bras-base-ngflon0508w-grc-11-76-68-2-143.dsl.bell.ca) (Read error: Connection reset by peer)
2021-07-07 08:05:20 +0200haskl[error](~haskl@98.37.78.63) (Changing host)
2021-07-07 08:05:20 +0200haskl[error](~haskl@user/haskl)
2021-07-07 08:06:21 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-07-07 08:08:00 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-07-07 08:08:27 +0200 <haskl[error]> I'm going to make a website that has a graphical representation of chat rooms. Which libraries should I look at? Miso? `websockets`? Any suggestions?
2021-07-07 08:09:23 +0200haskl[error]haskl
2021-07-07 08:12:46 +0200khumba(~khumba@user/khumba) ()
2021-07-07 08:14:04 +0200 <dminuoso> qrpnxz: Re aggressive optimizations in GCC/clang. All of these optimizations are either in accordance with the semantic model of the underlying language, or they are not observable.
2021-07-07 08:14:10 +0200beka(~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 240 seconds)
2021-07-07 08:14:58 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 240 seconds)
2021-07-07 08:16:39 +0200cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-07-07 08:16:43 +0200Kirat(~Gill@103.217.122.15)
2021-07-07 08:16:50 +0200cheater(~Username@user/cheater)
2021-07-07 08:17:16 +0200kammka(~kammka@188.27.129.10)
2021-07-07 08:18:11 +0200Kirat(~Gill@103.217.122.15) (Client Quit)
2021-07-07 08:19:13 +0200jespada(~jespada@90.254.247.46) (Ping timeout: 258 seconds)
2021-07-07 08:20:33 +0200 <kammka> Hello! Could you guys point out why is my intuition wrong on this? According to this : -- foldl :: (b -> a -> b) -> b -> [a] -> b
2021-07-07 08:20:33 +0200 <kammka> -- foldl f b [] = b
2021-07-07 08:20:34 +0200 <kammka> -- foldl f b (x:xs) = foldl f (f b x) xs
2021-07-07 08:21:06 +0200jespada(~jespada@90.254.247.46)
2021-07-07 08:22:10 +0200kammka(~kammka@188.27.129.10) (Quit: Client closed)
2021-07-07 08:22:21 +0200kammka(~kammka@188.27.129.10)
2021-07-07 08:23:13 +0200 <dminuoso> kammka: Your client was closed. The last line we received was: 08:20:34 kammka | -- foldl f b (x:xs) = foldl f (f b x) xs
2021-07-07 08:24:14 +0200 <dminuoso> qrpnxz: In part the reason why Haskell gets away with pretty good performance, is because our evaluation model makes larger scale transformations easy. We have relatively little rules with regards to evaluation.
2021-07-07 08:24:14 +0200 <kammka> dminuoso : Oh, dang. I pasted the code here : https://paste.tomsmeding.com/AT3fU529
2021-07-07 08:24:27 +0200 <dminuoso> kammka: Alright! What does your intuition tell you?
2021-07-07 08:25:22 +0200 <kammka> That foldl (+) ((+) ((+) 0 2) 3) []
2021-07-07 08:25:23 +0200 <kammka> should pattern match to foldl f b [] and return that 0 that I put at the end
2021-07-07 08:25:26 +0200 <kammka> But surely that is wrong
2021-07-07 08:25:55 +0200 <dminuoso> kammka: Do you know how lists in Haskell are constructed with (:) and []?
2021-07-07 08:26:31 +0200 <kammka> Yes? I thought [3] is 3 : []
2021-07-07 08:27:19 +0200 <dminuoso> Yes, good. Just making sure that your basis is covered
2021-07-07 08:27:50 +0200 <shachaf> kammka: I think the question here is where the second 0 comes from on the last line.
2021-07-07 08:29:37 +0200 <kammka> I suppose I was thinking that the 0 comes from f b [] = b. Maybe I shouldnt have put it there..
2021-07-07 08:30:07 +0200 <kammka> I did this for foldr : https://paste.tomsmeding.com/TUcmHsST
2021-07-07 08:30:17 +0200 <kammka> And that seems ok, right?
2021-07-07 08:30:42 +0200 <dminuoso> Looks good
2021-07-07 08:31:59 +0200 <dminuoso> Well, you did expansoin both times right. So the way I think of foldr/foldl on lists, is that it replaces (:) with a function.
2021-07-07 08:32:01 +0200 <kammka> so I thought this : foldl (+) ((+) ((+) 0 2) 3) [] is equivalent to this: f b [] = b. Therefore I put that second 0 in the last line that probably should not be there
2021-07-07 08:32:16 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-07-07 08:32:22 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-07-07 08:32:40 +0200 <dminuoso> So for instance: foldr f z (1:2:3:[]) gives me: 1 `f` (2 `f` (3 `f` z))
2021-07-07 08:32:49 +0200 <dminuoso> Note how foldr replaces the (:) with f, and the final last element with z.
2021-07-07 08:33:09 +0200 <kammka> That is really helpful actually
2021-07-07 08:33:11 +0200 <dminuoso> The key difference between foldr and foldl is just how the `f` is associated here:
2021-07-07 08:33:40 +0200 <dminuoso> If we assumed foldl behaved like you assumed, foldl would give you:
2021-07-07 08:34:40 +0200 <dminuoso> ((1 `f` 2) `f` 3) `f` z -- but what happens instead, is that the `z` wanders to the left side
2021-07-07 08:34:41 +0200 <dminuoso> so you get:
2021-07-07 08:35:13 +0200 <dminuoso> foldl f z (1:2:3:[]) = (((z `f` 1) `f` 2) `f` 3)
2021-07-07 08:35:38 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-07-07 08:35:53 +0200 <dminuoso> But also see how, conceptually we can think of foldl replacing (:) with f. And this might also give you a hint how both foldr and foldl go from left-to-right. It's just that what (:) is replaced with associates differently
2021-07-07 08:37:07 +0200 <kammka> It makes sense now. Mainly because of ' replace the (:) with f' ; And it just becomes a matter of association regarding the difference between foldl and foldr
2021-07-07 08:37:11 +0200 <kammka> Thanks a lot!!
2021-07-07 08:37:49 +0200 <dminuoso> kammka: By the way, this intuition holds for *all* foldables, if we implicitly go through toListOf first.
2021-07-07 08:38:26 +0200ahdyt(~ahdyt@103.105.28.181)
2021-07-07 08:39:46 +0200aman(~aman@user/aman)
2021-07-07 08:40:51 +0200kammka45(~kammka@188.27.129.10)
2021-07-07 08:41:43 +0200kammka55(~kammka@188.27.129.10)
2021-07-07 08:42:39 +0200 <kammka55> dminuoso: doesn't it behave differently for tuples , for example? foldr (+) 1 (2,3) seems to disregard the first element of the pair
2021-07-07 08:42:52 +0200 <dminuoso> Let's entertain this train of thought:
2021-07-07 08:42:55 +0200 <dminuoso> % :t foldr
2021-07-07 08:42:56 +0200 <yahb> dminuoso: forall {t :: * -> *} {a} {b}. Foldable t => (a -> b -> b) -> b -> t a -> b
2021-07-07 08:43:25 +0200 <dminuoso> kammka55: Stare at this type signature, and tell me what you'd set for `t` in the above.
2021-07-07 08:43:28 +0200kammka(~kammka@188.27.129.10) (Ping timeout: 246 seconds)
2021-07-07 08:44:08 +0200 <dminuoso> Or
2021-07-07 08:44:13 +0200 <dminuoso> No, let's actually go with my claim.
2021-07-07 08:44:16 +0200 <dminuoso> 08:37:49 dminuoso | kammka: By the way, this intuition holds for *all* foldables, if we implicitly go through toListOf first.
2021-07-07 08:44:22 +0200 <dminuoso> % toListOf (1,2)
2021-07-07 08:44:22 +0200 <yahb> dminuoso: ; <interactive>:131:10: error:; * Couldn't match type: (a0, b0); with: (a -> Const (Endo [a]) a) -> s -> Const (Endo [a]) s; Expected: Getting (Endo [a]) s a; Actual: (a0, b0); * In the first argument of `toListOf', namely `(1, 2)'; In the expression: toListOf (1, 2); In an equation for `it': it = toListOf (1, 2); * Relevant bindings include it ::
2021-07-07 08:44:34 +0200 <dminuoso> % toList (1,2)
2021-07-07 08:44:35 +0200 <yahb> dminuoso: [2]
2021-07-07 08:44:41 +0200 <dminuoso> kammka55: Yeah I know, this is unexpected.
2021-07-07 08:45:13 +0200kammka45(~kammka@188.27.129.10) (Ping timeout: 246 seconds)
2021-07-07 08:45:19 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 08:46:30 +0200 <kammka55> dminuoso: I need to look up that function first- unfortunately I don't know the type of that? Or it should take the tuple and convert it to a list?
2021-07-07 08:46:38 +0200 <dminuoso> % :t toList
2021-07-07 08:46:38 +0200 <yahb> dminuoso: forall {t :: * -> *} {a}. Foldable t => t a -> [a]
2021-07-07 08:47:14 +0200dunkeln_(~dunkeln@188.70.10.207)
2021-07-07 08:47:20 +0200 <dminuoso> Let's assume that (1,2) :: (Int, Int) - in prefix notation that is: (1,2) :: (,) Int Int
2021-07-07 08:47:33 +0200 <dminuoso> % :t foldr
2021-07-07 08:47:33 +0200 <yahb> dminuoso: forall {t :: * -> *} {a} {b}. Foldable t => (a -> b -> b) -> b -> t a -> b
2021-07-07 08:47:52 +0200 <dminuoso> The only way this will work out, is if we set `t ~ (,) Int` and `a ~ Int`
2021-07-07 08:48:20 +0200 <dminuoso> Informally you can already see here, that the first element type is not considered part of the "content" here.
2021-07-07 08:48:40 +0200 <dminuoso> We could also use (Char, Int) here.
2021-07-07 08:49:01 +0200 <dminuoso> Informally 2-tuples are treated as singleton lists of the second element (and the first element is just some sort of tag)
2021-07-07 08:49:29 +0200 <dminuoso> Its debatable whether this instance is useful or perhaps even misleading, but it's the only possible implementation...
2021-07-07 08:49:46 +0200sayola1(~vekto@dslb-088-078-152-192.088.078.pools.vodafone-ip.de) (Quit: Leaving.)
2021-07-07 08:50:03 +0200sayola(~vekto@dslb-088-078-152-192.088.078.pools.vodafone-ip.de)
2021-07-07 08:50:06 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2021-07-07 08:52:43 +0200kammka(~kammka@188.27.129.10)
2021-07-07 08:52:50 +0200 <kammka> dminuoso: I always replaced t a with [a] in my mind. So in reality t stand for the data constructor? [] for lists and , for tuples?
2021-07-07 08:53:05 +0200 <dibblego> [] and (a,)
2021-07-07 08:53:14 +0200 <kammka> Oh I see it now
2021-07-07 08:53:16 +0200ahdyt(~ahdyt@103.105.28.181) (Ping timeout: 246 seconds)
2021-07-07 08:53:19 +0200 <dibblego> @kind Foldable
2021-07-07 08:53:20 +0200 <lambdabot> (* -> *) -> Constraint
2021-07-07 08:53:29 +0200 <dminuoso> kammka: a type constructor! :)
2021-07-07 08:54:35 +0200 <dminuoso> kammka: [T] can also be written as `[] T`, so if you then line it up with `t a`, it should be obvious what happens.
2021-07-07 08:55:07 +0200 <dminuoso> So here `[]` (not at the value-level, but at the type-level) is a proper type constructor.
2021-07-07 08:55:25 +0200 <dminuoso> We can think of `[T]` as just fancy syntax for what could have been `List T` instead
2021-07-07 08:55:52 +0200 <kammka> Mhm, I see
2021-07-07 08:56:19 +0200welterde(welterde@thinkbase.srv.welterde.de) (Quit: WeeChat 3.0.1)
2021-07-07 08:56:25 +0200kammka55(~kammka@188.27.129.10) (Ping timeout: 246 seconds)
2021-07-07 08:56:27 +0200welterde(welterde@thinkbase.srv.welterde.de)
2021-07-07 08:57:04 +0200fendor(~fendor@178.165.171.166.wireless.dyn.drei.com)
2021-07-07 08:57:17 +0200 <shachaf> dminuoso: But foldl *doesn't* replace (:) and [] with functions.
2021-07-07 08:57:19 +0200 <dminuoso> kammka: Similarly for the type (again, not value level!) (S, T), which can also be written as `(,) S T`, and because type-level application like value level application is left-associative, you get:
2021-07-07 08:57:49 +0200 <shachaf> It does all sorts of computation. That's why you gotta know about foldl' and all these things if you use it.
2021-07-07 08:58:48 +0200 <dibblego> foldr does, foldl does other things
2021-07-07 08:59:19 +0200 <shachaf> foldr is special in that it does the thing you said (some people would say it's initial). Other "folds" on lists don't.
2021-07-07 08:59:36 +0200kammka38(~kammka@188.27.129.10)
2021-07-07 08:59:51 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-07-07 09:00:15 +0200 <dminuoso> shachaf: I think it's still a good first approximation to get acquainted with foldr/foldl. But you're right that due to strictness there should be a note that Im telling a simplified lie.
2021-07-07 09:00:27 +0200hatz_Hatz_
2021-07-07 09:00:56 +0200 <dibblego> I do not believe it is a helpful lie.
2021-07-07 09:01:30 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-07 09:02:45 +0200 <dminuoso> dibblego: Given that I provided concrete examples of what foldl does to a list, I disagree. *shrugs*
2021-07-07 09:03:00 +0200 <shachaf> It's a good thing to know about foldr, and you can certainly point out that foldl f z [a,b,c] = ((z `f` a) `f` b) `f` c
2021-07-07 09:03:04 +0200kammka(~kammka@188.27.129.10) (Ping timeout: 246 seconds)
2021-07-07 09:03:35 +0200 <dibblego> here is a good measure of a helpful lie: the benefits of what can now be done because of the lie, outweight the effort to require to not lie
2021-07-07 09:03:40 +0200 <dminuoso> But I'll take your hint and re-think whether I can find a better formulation of it.
2021-07-07 09:03:59 +0200 <dibblego> in this case, the benefits are at least small — possibly none (I cannot think of any), and the effort required to not lie is less than lying anyway
2021-07-07 09:04:43 +0200 <dibblego> foldl f z list does a loop; this one: { var r = z; foreach (el in list) { r = f r el }; return r }
2021-07-07 09:05:02 +0200 <dibblego> that was a lie; but it is helpful, because the analogy is dead accurate
2021-07-07 09:05:16 +0200dunkeln_(~dunkeln@188.70.10.207) (Ping timeout: 246 seconds)
2021-07-07 09:05:31 +0200 <dibblego> "foldl replaces constructors" is a lie, and now you cannot do anything useful because of it (since it's not accurate, even as an analogy)
2021-07-07 09:06:57 +0200 <dibblego> I've left off "the effort required to now correct the lie", but: it is pretty big ime
2021-07-07 09:09:13 +0200cfricke(~cfricke@user/cfricke)
2021-07-07 09:10:00 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-07 09:10:26 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-07-07 09:12:33 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de)
2021-07-07 09:18:34 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-07-07 09:18:56 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2021-07-07 09:19:10 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2021-07-07 09:24:18 +0200juhp(~juhp@128.106.188.66) (Ping timeout: 252 seconds)
2021-07-07 09:25:23 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 09:25:30 +0200nschoe(~quassel@178.251.84.79)
2021-07-07 09:26:44 +0200 <DigitalKiwi> .glirclogs/#mostlyabsurd/2019-06-27.log:[12:10:24] <DigitalKiwi> is this a bad mnemonic: foldLeft/foldl => FL => For Loop; foldRight/foldr => fR => constructor Replacement
2021-07-07 09:27:04 +0200andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com)
2021-07-07 09:27:17 +0200biberu(~biberu@user/biberu)
2021-07-07 09:28:17 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-07-07 09:30:49 +0200Guest8466(~Guest84@188.27.129.10)
2021-07-07 09:32:32 +0200chele(~chele@user/chele)
2021-07-07 09:32:46 +0200Hatz_hatz_
2021-07-07 09:36:49 +0200mpt(~tom@2a02:908:1862:49e0::8)
2021-07-07 09:36:57 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-07 09:38:56 +0200 <tomsmeding> dibblego: foldr replaces constructors, not foldl; but I assume that was a typo :)
2021-07-07 09:39:09 +0200Nyeogmi(~Nyeogmi@2601:645:8700:bea0:4d5e:7bf4:e290:5648) (Ping timeout: 252 seconds)
2021-07-07 09:39:54 +0200 <dibblego> I said that rite
2021-07-07 09:40:16 +0200 <tomsmeding> your second-to-last message
2021-07-07 09:40:35 +0200 <dibblego> "foldl replaces constructors" is a lie
2021-07-07 09:40:36 +0200 <tomsmeding> well, your message is strictly speaking correct; "foldl replaces constructors" is a lie, and a big one :p
2021-07-07 09:40:48 +0200 <dibblego> yes, that was the discussion
2021-07-07 09:40:52 +0200 <tomsmeding> was it?
2021-07-07 09:40:55 +0200 <dibblego> as well as: not a helpful lie
2021-07-07 09:41:21 +0200 <tomsmeding> ah I see I read the conversation wrong
2021-07-07 09:41:55 +0200ubert(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de)
2021-07-07 09:42:37 +0200 <Axman6> English needs more types
2021-07-07 09:42:51 +0200 <tomsmeding> then it would be inconvenient to speak :p
2021-07-07 09:43:01 +0200 <tomsmeding> we need more domain specific languages
2021-07-07 09:43:11 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-07-07 09:43:15 +0200 <Hecate> I reckon these are called Jargons
2021-07-07 09:43:16 +0200 <Hecate> :P
2021-07-07 09:43:20 +0200 <tomsmeding> yes
2021-07-07 09:44:11 +0200 <tomsmeding> Axman6: related: lojban
2021-07-07 09:44:39 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-07 09:45:45 +0200trcc(~trcc@users-1190.st.net.au.dk)
2021-07-07 09:46:57 +0200Schrostfutz(~Schrostfu@schettlerdck.tkn.tu-berlin.de) (Quit: Leaving)
2021-07-07 09:47:51 +0200trcc(~trcc@users-1190.st.net.au.dk) (Client Quit)
2021-07-07 09:48:52 +0200 <DigitalKiwi> but nobody would want to talk to you then
2021-07-07 09:49:14 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-07-07 09:49:30 +0200 <DigitalKiwi> https://xkcd.com/191/
2021-07-07 09:49:38 +0200 <tomsmeding> just means that the conversations you do have are very efficient ;)
2021-07-07 09:50:06 +0200acidjnk_new(~acidjnk@p200300d0c72b9519e1b6d7c282fb2b66.dip0.t-ipconnect.de)
2021-07-07 09:54:58 +0200mpt(~tom@2a02:908:1862:49e0::8) (Ping timeout: 246 seconds)
2021-07-07 09:57:35 +0200 <sshine> tomsmeding, I've found that Chinese is a framework designed for having domain-specific sub-languages.
2021-07-07 09:58:21 +0200 <sshine> tomsmeding, the number of times I've heard one Chinese person say "You can't say that." and the thing was something another Chinese person suggested, are plentiful.
2021-07-07 09:58:36 +0200 <nshepperd> jargons are good because they avoid false friends
2021-07-07 09:59:03 +0200kammka38(~kammka@188.27.129.10) (Quit: Client closed)
2021-07-07 10:00:26 +0200 <nshepperd> (another bit of jargon: 'false friend' - a foreign word that looks like a word you already know but means something different and confuses students)
2021-07-07 10:02:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 10:03:50 +0200 <DigitalKiwi> Some thirty people gathered to celebrate the birthday of the host. After a few bottles of vodka were imbibed, the tongues got loose, and the guests started telling political jokes. Through laughter, a voice sounded, "Comrades, please, it's too noisy. In such a noise, I can't hear the jokes. I am writing it down, you know."
2021-07-07 10:03:51 +0200 <DigitalKiwi> A man sitting next to the one who's writing down, says admiringly, "How do you manage to write down that fast?"
2021-07-07 10:03:53 +0200 <DigitalKiwi> "Oh, I'm writing down only the initials."
2021-07-07 10:04:17 +0200ubert(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-07-07 10:06:56 +0200Taren(~Taren@port-92-196-211-46.dynamic.as20676.net)
2021-07-07 10:07:22 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 10:07:38 +0200 <[exa]> DigitalKiwi: I'm adding you to the list. :]
2021-07-07 10:08:25 +0200 <Hecate> hahahaha
2021-07-07 10:08:33 +0200 <Hecate> I love that in itself it's a political joke
2021-07-07 10:08:42 +0200hendursa1(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-07-07 10:09:35 +0200zeenk(~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3)
2021-07-07 10:10:47 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 10:11:17 +0200 <DigitalKiwi> DigitalKiwi Identified Mail
2021-07-07 10:13:46 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 240 seconds)
2021-07-07 10:14:39 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-07-07 10:17:11 +0200andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com) (Quit: WeeChat 2.8)
2021-07-07 10:19:11 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-07-07 10:19:28 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 246 seconds)
2021-07-07 10:19:55 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-07-07 10:21:58 +0200 <zincy__> Is this correct thinking...
2021-07-07 10:22:09 +0200ahdyt(~ahdyt@103.105.35.88)
2021-07-07 10:22:22 +0200 <zincy__> Haskell has side effects but they are modelled differently from mainstream languages
2021-07-07 10:22:37 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2021-07-07 10:22:37 +0200Lord_of_Life_Lord_of_Life
2021-07-07 10:23:40 +0200 <veverak> seems ok
2021-07-07 10:23:43 +0200 <Hecate> zincy__: https://www.goodreads.com/quotes/14638-cyberspace-a-consensual-hallucination-experienced-daily-by-…
2021-07-07 10:24:10 +0200 <[exa]> zincy__: "haskell provides a way to describe impure computation"
2021-07-07 10:24:13 +0200 <ahdyt> how's the haskell cafe?
2021-07-07 10:24:33 +0200jumper149(~jumper149@80.240.31.34)
2021-07-07 10:24:39 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-07 10:24:59 +0200 <zincy__> [exa]: I like that
2021-07-07 10:25:05 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-07 10:25:05 +0200 <[exa]> zincy__: (I'm feeling literally `unsafe` saying that haskell has side effects)
2021-07-07 10:25:12 +0200 <Hecate> "Side-effects" in Haskell are a consensual hallucination because while every operation produces side effects at one level or another, we have decided that interactions with IO devices (network, filesystem, rng) are impure
2021-07-07 10:25:47 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 10:25:51 +0200 <zincy__> Yeah I read somewhere it wasn't that impurity was forbidden from Haskell it just wasn't added in the first place
2021-07-07 10:26:01 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-07-07 10:26:20 +0200 <Hecate> zincy__: by lack of a nice way to do things (Monads) at first, but it was research in progress, not just an after-thought
2021-07-07 10:26:25 +0200 <[exa]> Hecate: seems they somehow don't accept thinking in a model
2021-07-07 10:26:36 +0200 <Hecate> [exa]: who's 'they'?
2021-07-07 10:27:05 +0200dunj3(~dunj3@2001:16b8:3020:e900:566b:618c:a738:2a84)
2021-07-07 10:27:05 +0200 <DigitalKiwi> primary side-effect of haskell is making me miserable using other languages ;(
2021-07-07 10:27:06 +0200 <sshine> I suppose another view of IO is that it's a garbage bin of non-categorised effects. so side-effects vs. effects are when we have no way of quantifying what effect was made, and what its imprint on our model of the state was. no?
2021-07-07 10:27:37 +0200 <Hecate> hmm
2021-07-07 10:27:45 +0200 <sshine> IO = all the effects we can't account for (i.e. side-effects)
2021-07-07 10:27:47 +0200 <ahdyt> Hecate I want a Monad m please?
2021-07-07 10:27:48 +0200 <[exa]> Hecate: the non-hallucinating people (sorry I was a bit under-specific :D )
2021-07-07 10:27:53 +0200 <zincy__> I feel as though "getting" side effects in Haskell by being able to think in models serves as a great filter between theory allergic and theory loving coders
2021-07-07 10:28:03 +0200Hecategives ahdyt a Monad m
2021-07-07 10:28:11 +0200 <Hecate> [exa]: eh :)
2021-07-07 10:28:58 +0200 <ahdyt> I think side effect isn't observable effect, hence called side effect? it's just unexpected?
2021-07-07 10:29:54 +0200leah2(~leah@vuxu.org)
2021-07-07 10:30:09 +0200cjb(~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50)
2021-07-07 10:30:21 +0200 <zincy__> Depends what you mean by *observable*
2021-07-07 10:30:36 +0200 <Hecate> observability is *something else*
2021-07-07 10:30:44 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-07 10:31:17 +0200 <zincy__> maybe change the word observable for external
2021-07-07 10:31:48 +0200 <Hecate> Let's all read this stackoverflow answer before venturing further:; https://cstheory.stackexchange.com/a/21265
2021-07-07 10:32:00 +0200 <sshine> ahdyt, at least not predictably. 'setDate :: UTCDate -> IO ()' could be measured with 'getDate :: IO UTCDate', but you'd never know if that was the full extent from the type.
2021-07-07 10:32:28 +0200 <sshine> Hecate, thanks :)
2021-07-07 10:34:41 +0200 <zincy__> Wow this is an amazing answer
2021-07-07 10:34:52 +0200 <Hecate> isn't it?
2021-07-07 10:34:55 +0200 <zincy__> So a side effect can be all of the above
2021-07-07 10:35:11 +0200 <zincy__> internal/external observable/non-observable
2021-07-07 10:35:28 +0200 <zincy__> I feel like my thinking on the subject just entered a new level of clarity
2021-07-07 10:36:13 +0200 <Hecate> yeah, when I said that's a collective, consensual hallucination, it's because we took all of Haskell's execution semantics, separated it from what we don't care about (in the context of those semantics), and labeled those things "side effects"
2021-07-07 10:36:16 +0200 <zincy__> So is purity relative according to the semantics of the program?
2021-07-07 10:36:32 +0200 <zincy__> impurity means outside the model of the program?
2021-07-07 10:36:54 +0200 <Hecate> rather the model of the language
2021-07-07 10:36:59 +0200 <zincy__> yeah
2021-07-07 10:37:11 +0200 <zincy__> Thanks so much for this insight
2021-07-07 10:37:35 +0200 <Hecate> zincy__: there are ways to annotate your functions with labels such as "This functions is doing DB operations, this function is sending missiles"
2021-07-07 10:37:53 +0200 <Hecate> and their callers have to provide facilities for those "constraints" to be validated
2021-07-07 10:37:57 +0200 <merijn> Hecate: Where can I get that function? >.>
2021-07-07 10:38:09 +0200 <Hecate> merijn: work for Lockheed-Martin
2021-07-07 10:38:13 +0200 <Hecate> (plz don't)
2021-07-07 10:38:24 +0200michalz(~michalz@185.246.204.126)
2021-07-07 10:39:01 +0200 <merijn> Hecate: Could be SpaceX too :p
2021-07-07 10:39:06 +0200 <sshine> Hecate, but modern, granular effect systems break this illusion because the programmer gets to specify what's a first-class effect and what isn't, right?
2021-07-07 10:40:25 +0200 <Hecate> hmm
2021-07-07 10:40:34 +0200 <Hecate> I don't feel that way when using an effect system
2021-07-07 10:40:51 +0200 <Hecate> sshine: do you know MTL and typeclasses?
2021-07-07 10:40:55 +0200 <sshine> yes
2021-07-07 10:41:12 +0200 <ahdyt> and know how to use it to solve problems?
2021-07-07 10:41:13 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-07 10:41:21 +0200 <sshine> but I haven't used an effect system in Haskell, only used mtl and toyed around with effect systems in Scala briefly.
2021-07-07 10:41:27 +0200 <merijn> Let's all repeat our mantra: mtl is not an effect system, unless you like torturing yourself >.>
2021-07-07 10:41:39 +0200 <ahdyt> ah haha
2021-07-07 10:41:44 +0200 <Hecate> okay so, when we use MTL at work, it's usually not "MonadFileSystem" or "MonadDB", but higher-level significations for business logic
2021-07-07 10:41:47 +0200 <Hecate> like "MonadStorage"
2021-07-07 10:41:59 +0200 <ahdyt> ah, okay.
2021-07-07 10:42:04 +0200 <merijn> Hecate: That's not even using mtl, though?
2021-07-07 10:42:06 +0200 <Hecate> "MonadTracing" instead of "MonadNetwork" + "MonadMetrics"
2021-07-07 10:42:39 +0200 <Hecate> merijn: (MonadStorage m, MonadTracing m) => arg1 -> m returnType
2021-07-07 10:42:42 +0200 <ahdyt> is that storage used for building distributed file system?
2021-07-07 10:43:05 +0200 <merijn> Hecate: That's just using tagless final, no?
2021-07-07 10:43:22 +0200 <Hecate> ahdyt: it only matters if your business logic deals with the intrisics of distributed file systems :P
2021-07-07 10:43:24 +0200 <merijn> Which is also what mtl uses, but to pointless effect >.>
2021-07-07 10:43:29 +0200 <Hecate> merijn: no?
2021-07-07 10:43:42 +0200 <Hecate> I mean, when you say tagless final I think of Oleg's paper
2021-07-07 10:43:56 +0200 <Hecate> and from what I recall of it, no it's not "just using tagless final"
2021-07-07 10:44:32 +0200 <merijn> Hecate: I mean, MonadStorage/MonadTracing in no way use mtl (except, maybe, as incidental implementation detail)
2021-07-07 10:45:00 +0200 <Hecate> merijn: uuuh yes?
2021-07-07 10:45:01 +0200 <sshine> Hecate, so defining that hierarchy of Monad* classes is sort of extending the semantics of your effects. I suppose there's an entire design space I haven't yet explored. I understand how picking one class of effects makes for one set of abstractions instead of another.
2021-07-07 10:45:23 +0200 <Hecate> merijn: they are typeclass constraints that we use in mtl style
2021-07-07 10:45:39 +0200 <merijn> Hecate: https://serokell.io/blog/tagless-final seems to support my understanding that mtl is just tagless final encoding too
2021-07-07 10:45:52 +0200 <merijn> Hecate: The "mtl style" *is* tagless final encoding :p
2021-07-07 10:46:12 +0200 <sshine> is "mtl-style" and "has-style" the same except for wording? or does "has-style" also say something about a specific taxonomy of effects?
2021-07-07 10:46:18 +0200 <merijn> I like tagless final encoding, I just dislike mtl :p
2021-07-07 10:46:23 +0200 <Hecate> sshine: the nice stuff is that you need MonadIO for a buch of those operation, but if you don't put it explicitly in your type signature, you can't really use liftIO
2021-07-07 10:46:32 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 10:46:56 +0200 <Hecate> sshine: has-style is just sugar
2021-07-07 10:47:06 +0200 <Hecate> don't worry too much about this, it's just a typeclass
2021-07-07 10:47:19 +0200 <sshine> Hecate, ah, so the full implementation of a MonadFoo might really need MonadIO, but as the library user, you neither need to know nor get to abuse this fact?
2021-07-07 10:48:21 +0200 <Hecate> sshine: if you have (MonadStorage m) in your constraints (which obviously requires doing some IO access, whether on the network of FS), you get to access the methods provided by this typeclass
2021-07-07 10:48:30 +0200 <Hecate> an opaque "store" and an opaque "get", for example
2021-07-07 10:48:37 +0200 <merijn> sshine: The advantage is that you can entirely rewrite your Foo/Storage implementation without 90% of your code needing to be refactored
2021-07-07 10:48:54 +0200 <Hecate> now, if in your function you want to do `liftIO getCurrentTime", GHC will complain to you that you need MonadIO in your constraints
2021-07-07 10:49:21 +0200 <merijn> sshine: If all code *using* Storage only knows about a tiny number of primitives implemented in the typeclass, then any code *using* Storage is only affected if that interface changes, but not when any of its internals change
2021-07-07 10:49:21 +0200 <Hecate> merijn: can I ask your opinion on https://github.com/arybczak/effectful ?
2021-07-07 10:49:37 +0200 <Hecate> merijn: I wrote a time handler for it https://github.com/Kleidukos/effectful-time/
2021-07-07 10:50:08 +0200 <merijn> Hecate: My opinion is: I am a busy, busy man, who can't be arsed to look at 10 million effects systems that seem to have dubious/marginal improvements for the code I write :p
2021-07-07 10:50:58 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-07-07 10:51:08 +0200ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2021-07-07 10:51:11 +0200 <Hecate> merijn: very well :P
2021-07-07 10:51:44 +0200 <merijn> Most I've seen of all these effects libraries is pointless navelgazing with little to no ecosystem support :p
2021-07-07 10:52:09 +0200 <merijn> Maybe if the language was designed from the ground up to accommodate it I'd be more interested
2021-07-07 10:52:18 +0200mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Ping timeout: 252 seconds)
2021-07-07 10:52:27 +0200 <zincy__> I haven't bothered to learn a single effects library yet apart from monad transformers hehe
2021-07-07 10:52:40 +0200 <merijn> But right now it's just "some wrappers around base and you gotta hope they keep up"
2021-07-07 10:52:52 +0200 <Hecate> zincy__: don't bother yet
2021-07-07 10:52:54 +0200 <merijn> zincy__: I would argue transformers aren't really effects systems at all
2021-07-07 10:53:12 +0200 <Hecate> effect systems like effectful are most useful in big applications where MTL style shows its limits
2021-07-07 10:53:20 +0200 <zincy__> Is that because of the fact monad transformers are static?
2021-07-07 10:53:21 +0200 <merijn> Hecate: You know what would get my interest? An effect system designed around/playing nice with something like OpenBSD's pledge()
2021-07-07 10:53:27 +0200ikex(~ash@user/ikex) (Quit: ZNC - https://znc.in)
2021-07-07 10:53:35 +0200 <Hecate> merijn: never heard about this syscall
2021-07-07 10:53:36 +0200 <merijn> Also, I wish every other OS would port pledge >.<
2021-07-07 10:53:40 +0200ikex(ash@user/ikex)
2021-07-07 10:53:41 +0200 <zincy__> merijn: Would you say using something like free monads would be an effects system?
2021-07-07 10:53:46 +0200 <merijn> Hecate: pledge is amazing
2021-07-07 10:53:59 +0200 <Hecate> merijn: ok let me read about it
2021-07-07 10:54:01 +0200ahdyt(~ahdyt@103.105.35.88) (Ping timeout: 246 seconds)
2021-07-07 10:54:27 +0200 <merijn> Hecate: It's basically granular privilege drop
2021-07-07 10:54:28 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 258 seconds)
2021-07-07 10:54:50 +0200 <Hecate> merijn: I can see this, it's most interesting
2021-07-07 10:55:28 +0200 <merijn> But they spend a lot of effort to make it easy to integrate in existing codebases. As opposed to all these capability networks that basically require full rewrites of your code
2021-07-07 10:56:24 +0200 <merijn> If you could design and match your effect system to that and have the language auto-pledge away everything your types say you won't use. *That* would be cool
2021-07-07 10:58:28 +0200 <tomsmeding> then would be a really cool use of the type system guarantees
2021-07-07 11:03:14 +0200 <fendor> can I make an uninhabitable type synonym?
2021-07-07 11:03:30 +0200 <sshine> type LikeThis = Void ?
2021-07-07 11:04:34 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 11:05:14 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-07 11:05:19 +0200 <fendor> I want `pattern T n <- <Impossible pattern>`
2021-07-07 11:05:40 +0200 <sshine> oh, you mean pattern synonym
2021-07-07 11:06:36 +0200 <tomsmeding> (1 -> 2) with ViewPatterns?
2021-07-07 11:07:34 +0200 <fendor> yeah, pattern synonym
2021-07-07 11:07:44 +0200 <fendor> that wont typecheck, right?
2021-07-07 11:08:30 +0200 <tomsmeding> hm yeah, maybe (const True -> False) -- switching to booleans to not have to default to some integral type
2021-07-07 11:09:51 +0200 <fendor> huh... yeah, seems like a good idea
2021-07-07 11:09:54 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds)
2021-07-07 11:09:57 +0200 <haskl> What are people's thoughts on Options.Applicative?
2021-07-07 11:10:04 +0200 <tomsmeding> fendor: pattern T x <- ((\x -> (True, x)) -> (False, x))
2021-07-07 11:10:11 +0200 <tomsmeding> seems to type check?
2021-07-07 11:12:52 +0200tomsmedingwonders about why one would need such a pattern synonym
2021-07-07 11:14:13 +0200 <sshine> haskl, do you mean thoughts on the optparse-applicative library, or its submodule in particular?
2021-07-07 11:14:51 +0200 <fendor> since I had to change the type, pattern T y <- ((\x -> (True, undefined) -> (False, y)) typechecks
2021-07-07 11:14:56 +0200 <haskl> sshine, sorry, yes, optparse-applicative library
2021-07-07 11:15:07 +0200__monty__(~toonn@user/toonn)
2021-07-07 11:15:08 +0200 <sshine> haskl, sorry for not making that assumption :P it's an awesome library.
2021-07-07 11:15:14 +0200 <fendor> tomsmeding, ghc Avail constructor changed from Name to a union of Name and FieldLabel
2021-07-07 11:15:23 +0200 <sshine> haskl, did you see optparse-generic, though? (you can't always use this, but when you can, it saves time.)
2021-07-07 11:16:01 +0200 <fendor> trying to be backwards compatible, I thought introducing a pattern synonym for the union Name and Fieldlabel, e.g. introduce AvailName and AvailFieldLabel, would be a good idea
2021-07-07 11:16:09 +0200 <haskl> I feel like I've gone from complete beginner to intermediate/okayish/mediocre in Haskell programming but every time I use that library I feel a little confused and often like I'm twisting it to do what I want.
2021-07-07 11:16:20 +0200 <fendor> but to achieve that, AvailFieldLabel must never be a valid pattern synonym for ghc < 9.2
2021-07-07 11:16:30 +0200 <haskl> I feel relatively comfortable with applicative functors, too
2021-07-07 11:16:50 +0200 <haskl> no I didn't see optparse-generic
2021-07-07 11:17:33 +0200 <sshine> haskl, I haven't had to model a CLI argument set that was so complicated the library gave me trouble.
2021-07-07 11:17:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection)
2021-07-07 11:19:43 +0200 <haskl> This is what I did. https://github.com/hyperrealgopher/burrow/blob/master/app/Main.hs
2021-07-07 11:20:26 +0200 <haskl> (planning to add many more subcommands soon)
2021-07-07 11:21:29 +0200 <sshine> cool
2021-07-07 11:21:37 +0200darklambda(~whateverg@111.65.56.40)
2021-07-07 11:21:50 +0200 <darklambda> oooh... lot's of people here now
2021-07-07 11:22:18 +0200 <sshine> yeah, but we were active from day one. :)
2021-07-07 11:22:39 +0200 <haskl> I'm trying out Miso. It's really cool.
2021-07-07 11:22:48 +0200 <darklambda> i just came to know about the freenode debacle yesterday :-P
2021-07-07 11:22:56 +0200 <darklambda> been away from irc for months
2021-07-07 11:23:08 +0200 <darklambda> i like Miso
2021-07-07 11:23:09 +0200toms(~foobar@pogostick.net)
2021-07-07 11:23:29 +0200 <darklambda> usually i get that when visiting japanese restaurant
2021-07-07 11:23:42 +0200 <haskl> good one
2021-07-07 11:23:46 +0200 <darklambda> :-)
2021-07-07 11:23:48 +0200 <haskl> I have to learn about Nix more before I use Miso properly
2021-07-07 11:24:03 +0200 <sshine> haskl, I did these: https://github.com/sshine/lira/blob/master/src/Main.hs - https://github.com/sshine/hello/blob/master/src/Hello.hs - the latter is optparse-generic. you'll see that the actual parser is auto-generated from a data type. :)
2021-07-07 11:24:13 +0200 <haskl> thanks for sharing that sshine
2021-07-07 11:24:44 +0200 <darklambda> i came to know it first from last year's munich haskell conf... i forgot why i end up not trying it... not sure if it's because of nix requirement (running win10 here)
2021-07-07 11:25:54 +0200 <darklambda> anyway, one of the good things about new network is that a bunch of nicks became available...
2021-07-07 11:25:58 +0200 <darklambda> check this out...
2021-07-07 11:26:01 +0200darklambdapointfree
2021-07-07 11:26:03 +0200 <pointfree> :-)
2021-07-07 11:28:04 +0200haskllinustorvalds
2021-07-07 11:28:15 +0200linustorvaldshaskl
2021-07-07 11:28:24 +0200 <haskl> i should've made a less lazy username, but that's ok
2021-07-07 11:29:38 +0200 <pointfree> i wanted lambda.. but it was already taken
2021-07-07 11:30:29 +0200pointfreedarklambda
2021-07-07 11:31:44 +0200zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-07-07 11:31:45 +0200 <sshine> haskl, and the --help is also auto-generated with the content of the <?> annotations.
2021-07-07 11:33:44 +0200 <sshine> haskl, optparse-generic is mostly smart when you can get away with having record fields that match exactly the argument names. otherwise you're not implicitly deriving things anyway.
2021-07-07 11:34:27 +0200 <haskl> Thanks.
2021-07-07 11:35:41 +0200 <darklambda> when's the next haskell conf?
2021-07-07 11:36:04 +0200 <haskl> Next thing I want to look into is error handling in optparse-applicative.
2021-07-07 11:36:59 +0200zaquest(~notzaques@5.128.210.178)
2021-07-07 11:37:21 +0200 <sshine> haskl, what's insufficient with the default error handling?
2021-07-07 11:37:53 +0200 <Profpatsch> I wonder how hard it is to switch from Validation to These
2021-07-07 11:38:06 +0200 <Profpatsch> where you go from “accumulate errors” to “just collect warnings”
2021-07-07 11:38:22 +0200 <haskl> sshine, well, for example, if I don't specify a subcommand or flag, it just tells me "missing COMMAND" without telling me the options for the commands which can be used or the like. maybe even just displaying the help page would be ideal.
2021-07-07 11:40:45 +0200 <merijn> haskl: There's an option for that with optarse-applicative
2021-07-07 11:40:57 +0200 <merijn> Dunno if optparse-generic supports that, though
2021-07-07 11:41:39 +0200kamy(~kamy@83-245-253-38-nat-p.elisa-mobile.fi)
2021-07-07 11:41:42 +0200 <sshine> I do 'customExecParser (prefs showHelpOnError) argsParserInfo' in one case.
2021-07-07 11:41:47 +0200 <merijn> haskl: https://hackage.haskell.org/package/optparse-applicative-0.16.1.0/docs/Options-Applicative.html#t:…
2021-07-07 11:41:55 +0200 <haskl> amazing
2021-07-07 11:41:59 +0200 <merijn> haskl: see prefShowHelpOnError and prefShowHelpOnEmpty
2021-07-07 11:42:00 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 258 seconds)
2021-07-07 11:42:15 +0200 <haskl> thanks i figured
2021-07-07 11:42:50 +0200jushur(~human@user/jushur)
2021-07-07 11:43:02 +0200 <sshine> the --help of some programs can get pretty huge, though. so I wouldn't print the whole --help if it grows beyond a few lines :) much rather have the somewhat uninformative "these are your options, go guess what they mean."
2021-07-07 11:43:10 +0200 <haskl> i'll get back to that after fiddling around with Miso, i promised someone i'd at least write one line with Miso
2021-07-07 11:43:22 +0200stefan-_(~cri@42dots.de) (Ping timeout: 240 seconds)
2021-07-07 11:43:50 +0200 <haskl> oh i don't think i have to worry about that, i divide things up nicely with hsubcommands or whatever it's called
2021-07-07 11:44:13 +0200 <haskl> the app in question is a gopherhole builder. like a static site builder, but for gopher protocol.
2021-07-07 11:44:30 +0200azeem(~azeem@176.201.33.66)
2021-07-07 11:44:57 +0200 <sshine> cool
2021-07-07 11:45:07 +0200 <haskl> ty
2021-07-07 11:45:09 +0200 <sshine> I'm trying to quit the WWW, so I appreciate alternatives.
2021-07-07 11:45:17 +0200 <haskl> are you in #gopher?
2021-07-07 11:45:23 +0200 <sshine> I was too young.
2021-07-07 11:45:35 +0200 <sshine> I only really went online in 1997. :)
2021-07-07 11:45:48 +0200 <haskl> i made a gopher client, a gopher builder, and i'm working on a gopher server docker image that will help you with serving using burrow
2021-07-07 11:46:06 +0200 <sshine> nice.
2021-07-07 11:46:15 +0200 <darklambda> nice
2021-07-07 11:46:26 +0200 <darklambda> what language you use for those? haskell?
2021-07-07 11:46:40 +0200 <haskl> darklambda, yes
2021-07-07 11:46:45 +0200 <darklambda> wow
2021-07-07 11:46:53 +0200 <haskl> https://github.com/hyperrealgopher/burrow
2021-07-07 11:47:06 +0200 <haskl> https://github.com/hyperrealgopher/waffle
2021-07-07 11:47:21 +0200 <haskl> i started doing projects in haskell about a year ago
2021-07-07 11:47:50 +0200stefan-_(~cri@42dots.de)
2021-07-07 11:47:51 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 11:47:57 +0200 <darklambda> nice
2021-07-07 11:48:09 +0200 <haskl> i started waffle about a year ago to learn haskell
2021-07-07 11:48:25 +0200 <haskl> so its code sucks comparatively to burrow
2021-07-07 11:49:22 +0200 <sshine> surely waffles aren't staple gopher diet.
2021-07-07 11:49:52 +0200 <sshine> do you really want to risk introducing diabetes into such a small community?
2021-07-07 11:49:55 +0200 <haskl> i would hope not! very sugary
2021-07-07 11:50:05 +0200 <haskl> "The origin of the word 'gopher' is uncertain; French gaufre, meaning 'waffle', has been suggested, on account of the gopher tunnels resembling the honeycomb-like pattern of holes in a waffle…"
2021-07-07 11:50:05 +0200 <darklambda> at first, i thought it's a utility for golang.. hehe
2021-07-07 11:50:19 +0200 <sshine> ahh :)
2021-07-07 11:50:47 +0200 <darklambda> gophers are golang's mascots
2021-07-07 11:50:53 +0200 <darklambda> like minions... so cute
2021-07-07 11:50:57 +0200 <haskl> nah it's just a nerdy retro protocol project i did because of how I needed to detox from the direction the web has taken
2021-07-07 11:51:38 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 11:51:39 +0200 <haskl> i have mixed feelings about the modern web. it's not all bad.
2021-07-07 11:52:03 +0200 <darklambda> i have high hopes for modern web
2021-07-07 11:52:10 +0200 <darklambda> especially for web assembly
2021-07-07 11:52:40 +0200 <sshine> haskl, since adblockers seem to be winning, I'm only struggling with the addictiveness of the availability of resources.
2021-07-07 11:52:41 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-07 11:52:50 +0200 <haskl> lots of cool stuff on the bend. yes i was just going to say wasm/wasi. i actually have been trying to write a forth itnerpreter to learn forth because forth is being used in webasm and it has lots of other interesteing properties which make it high level with low level speeds
2021-07-07 11:52:58 +0200oxide(~lambda@user/oxide) (Ping timeout: 240 seconds)
2021-07-07 11:53:45 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 11:53:47 +0200 <sshine> also, not discouraging this conversation, but #haskell-offtopic :)
2021-07-07 11:54:26 +0200 <sshine> haskl, writing a Forth interpreter in Haskell is a rewarding exercise. :)
2021-07-07 11:54:55 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-07-07 11:54:59 +0200 <sshine> haskl, https://github.com/exercism/haskell/tree/main/exercises/practice/forth
2021-07-07 11:55:00 +0200 <darklambda> interesting.. i haven't tried forth yet
2021-07-07 11:55:02 +0200oxide(~lambda@user/oxide)
2021-07-07 11:55:21 +0200 <darklambda> oooh.. there's forth in exercism?
2021-07-07 11:55:50 +0200 <haskl> it's also just a wildly different way of thinking about programming. i decided i wanted to do it after haskell really opened me up to the different ways of thinking about code. but i also have to checkout all these cool proof-driven languages people keep talking about in haskell circles
2021-07-07 11:55:54 +0200 <sshine> haskl, the example solution doesn't use MonadState, so you could extend it that way, too.
2021-07-07 11:56:07 +0200 <haskl> darklambda, oh i definitely have to try that
2021-07-07 11:56:16 +0200 <darklambda> so far i've only tried rust, c++, c#(blazor), f#(bolero) for web assembly
2021-07-07 11:56:17 +0200 <sshine> darklambda, there's a generic forth interpreter exercise that the Haskell track also specifies, yes.
2021-07-07 11:56:38 +0200 <darklambda> let me check the exercism for forth :-)
2021-07-07 11:56:54 +0200 <haskl> oh yeah i was thinking about using monadstate for the forth interpreter
2021-07-07 11:57:13 +0200 <haskl> then i learned abou tdefining forth words and i had to take a break
2021-07-07 11:57:37 +0200 <darklambda> ooh.. the forth exercise is classified as hard
2021-07-07 11:57:52 +0200 <darklambda> it's still locked in my list.. :-)
2021-07-07 11:58:21 +0200 <sshine> haskl, as in, the interpreter extends its own list of what words are available to use?
2021-07-07 11:58:39 +0200 <sshine> darklambda, they're all available in GitHub. ;)
2021-07-07 11:58:50 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-07 11:58:57 +0200 <haskl> sshine, yep defined between : and ;
2021-07-07 11:59:31 +0200 <darklambda> ah https://github.com/exercism/haskell/blob/main/exercises/practice/forth/src/Forth.hs
2021-07-07 12:00:15 +0200 <sshine> darklambda, the unlocking mechanism works better if you assume that there are enough mentors to give timely feedback; I don't know how populated the Haskell feedback mentor staff is right now, since I quit the project around when they started language policing.
2021-07-07 12:00:45 +0200 <Rembane> sshine: What language policing did they do?
2021-07-07 12:01:07 +0200 <sshine> Rembane, censoring Slack messages that used "guys" as a gender-neutral plural.
2021-07-07 12:01:32 +0200 <Rembane> sshine: Oh. That kind of languages. I thought they threw out C# or something.
2021-07-07 12:02:06 +0200 <darklambda> ah... i just checked my haskell exercism... i noticed that i'm not in mentor mode... lol... i think i used haskel previously to practice problems.. then apply the same solution in the elm track (which i have in mentored mode)
2021-07-07 12:03:17 +0200 <darklambda> Rembrane, there's also a C# track...
2021-07-07 12:03:22 +0200 <darklambda> :-)
2021-07-07 12:03:58 +0200 <sshine> Rembane, hehe :) I don't think they threw out any languages. but they do run Exercism v3 quite differently than v1/v2. it used to be run as a federation, but now it's more centralised, e.g. most of the git history in the haskell repo was wiped due to carelessly moving files, whereas that repo in particular had a style of deeply linking issues and PRs to retain a history of documenting every single choice
2021-07-07 12:04:04 +0200 <sshine> point.
2021-07-07 12:04:52 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 12:05:16 +0200 <sshine> I preferred to work on it when I had the freedom to practice a high standard of documentation. :-D I learned a lot doing that.
2021-07-07 12:05:27 +0200derelict(~derelict@user/derelict) (Ping timeout: 252 seconds)
2021-07-07 12:05:45 +0200 <Rembane> sshine: Got it. I suppose they can run it any way they want but regardless of what style they choose it will attract some people and repel others.
2021-07-07 12:05:49 +0200 <darklambda> documentation as in code comments or markdown?
2021-07-07 12:06:55 +0200 <sshine> darklambda, as in git commit messages and interlinking with GitHub issues/PRs that carry discussion.
2021-07-07 12:07:04 +0200 <darklambda> ah
2021-07-07 12:07:24 +0200 <sshine> Rembane, yup, it's just a different style of organisation now.
2021-07-07 12:08:25 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-07 12:08:45 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-07-07 12:09:15 +0200Vajb(~Vajb@n2hz3gq4auh6ltn9l-2.v6.elisa-mobile.fi)
2021-07-07 12:09:22 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 240 seconds)
2021-07-07 12:11:00 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 12:12:25 +0200 <kamy> if I haven't defined some function f yet, but I have a call to 'f (length xs)' somewhere in my code, is there a way to get GHC to tell me about the inferred type 'f :: Int -> t1' but still let me load the other stuff in the file into ghci? if I don't define f at all, I get the inferred type in the error message but obviously the file won't compile
2021-07-07 12:12:26 +0200 <kamy> at all, but if I do 'f n = undefined' and compile with -ddump-tc I just get 'f :: forall p a. p -> a'... wondering if there's a way to sort this out with typed holes or something
2021-07-07 12:13:23 +0200 <sshine> kamy, f = _
2021-07-07 12:13:34 +0200 <sshine> kamy, https://downloads.haskell.org/~ghc/7.10.1/docs/html/users_guide/typed-holes.html
2021-07-07 12:13:56 +0200 <sshine> oops, old compiler
2021-07-07 12:14:15 +0200 <sshine> kamy, https://wiki.haskell.org/GHC/Typed_holes
2021-07-07 12:15:49 +0200coldmountain(sid484352@id-484352.brockwell.irccloud.com)
2021-07-07 12:15:53 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds)
2021-07-07 12:18:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 12:21:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-07-07 12:22:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 12:22:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Ping timeout: 246 seconds)
2021-07-07 12:25:55 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-07-07 12:26:44 +0200jippiedoe(~david@2a02-a44c-e14e-1-bdc0-a007-878c-4e7a.fixed6.kpn.net)
2021-07-07 12:27:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-07-07 12:28:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 12:29:33 +0200 <kamy> sshine, thanks for the link :) unfortunately the info about taking an Int still seems to be lost somewhere along the way: f = _ gives an inferred type f :: t, and f n = _ gives an inferred type f :: p -> t
2021-07-07 12:32:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-07 12:33:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 12:34:54 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-07-07 12:38:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-07-07 12:39:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 12:40:02 +0200juhp(~juhp@128.106.188.66)
2021-07-07 12:45:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-07-07 12:45:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 12:48:36 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 12:49:44 +0200derelict(~derelict@user/derelict)
2021-07-07 12:52:32 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 258 seconds)
2021-07-07 12:53:30 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-07-07 12:55:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-07-07 12:56:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 13:02:27 +0200lavaman(~lavaman@98.38.249.169)
2021-07-07 13:05:01 +0200derelict(~derelict@user/derelict) (Ping timeout: 246 seconds)
2021-07-07 13:05:38 +0200 <tomsmeding> kamy: presumably the other way round?
2021-07-07 13:05:53 +0200 <tomsmeding> oh wait, yes the inferred type of f would be that
2021-07-07 13:06:34 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-07-07 13:06:35 +0200 <tomsmeding> I think GHC typechecks global definitions independently, so the usage of f with an Int argument doesn't propagate to the type checking of te global f
2021-07-07 13:06:50 +0200AlexNoo_(~AlexNoo@178.34.162.146)
2021-07-07 13:07:01 +0200 <tomsmeding> hm, it does seem to
2021-07-07 13:08:41 +0200 <kamy> ah, that makes sense
2021-07-07 13:08:41 +0200Vajb(~Vajb@n2hz3gq4auh6ltn9l-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-07-07 13:08:50 +0200 <tomsmeding> kamy: perhaps passing -fdefer-type-errors to GHC can be some substitute for what you want?
2021-07-07 13:09:16 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 13:10:00 +0200 <tomsmeding> the information seems to propagate "late"; GHC does notice if there's a type error, but if the definition of 'f' is generic enough, at instantiation of that right-hand side of 'f' the specific information isn't there yet
2021-07-07 13:10:10 +0200AlexZenon(~alzenon@178.34.162.171) (Ping timeout: 258 seconds)
2021-07-07 13:10:10 +0200Alex_test(~al_test@178.34.162.171) (Ping timeout: 258 seconds)
2021-07-07 13:10:46 +0200AlexNoo(~AlexNoo@178.34.162.171) (Ping timeout: 268 seconds)
2021-07-07 13:11:15 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-07 13:15:11 +0200Alex_test(~al_test@178.34.162.146)
2021-07-07 13:15:30 +0200AlexZenon(~alzenon@178.34.162.146)
2021-07-07 13:16:10 +0200jippiedoe(~david@2a02-a44c-e14e-1-bdc0-a007-878c-4e7a.fixed6.kpn.net) (Ping timeout: 240 seconds)
2021-07-07 13:16:37 +0200 <kamy> tomsmeding: looks like -fdefer-type-errors does what I wanted, thank you!
2021-07-07 13:21:08 +0200azeem(~azeem@176.201.33.66) (Ping timeout: 252 seconds)
2021-07-07 13:21:40 +0200azeem(~azeem@176.201.33.66)
2021-07-07 13:21:58 +0200ahdyt(~ahdyt@103.105.35.90)
2021-07-07 13:24:32 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-07-07 13:26:39 +0200kamy(~kamy@83-245-253-38-nat-p.elisa-mobile.fi) (Quit: Client closed)
2021-07-07 13:28:42 +0200hendursa1(~weechat@user/hendursaga)
2021-07-07 13:29:03 +0200brown121407smarton
2021-07-07 13:29:10 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 246 seconds)
2021-07-07 13:31:37 +0200gehmehgeh(~user@user/gehmehgeh)
2021-07-07 13:33:08 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Remote host closed the connection)
2021-07-07 13:35:35 +0200 <merijn> What was the usecase?
2021-07-07 13:38:48 +0200AlexNoo_AlexNoo
2021-07-07 13:39:11 +0200absence_absence
2021-07-07 13:40:14 +0200ahdyt(~ahdyt@103.105.35.90) (Quit: Client closed)
2021-07-07 13:41:42 +0200frobnicator(~frobnicat@185-227-75-147.dsl.cambrium.nl)
2021-07-07 13:42:32 +0200 <frobnicator> in templatehaskell, if I have a Name and want to convert this to for example a lowercase variant. How would I do this properly? For example, Name is "Main.T" and I want to make a new Name that has the value "t"
2021-07-07 13:43:15 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
2021-07-07 13:44:28 +0200y04nn(~y04nn@91.193.4.106)
2021-07-07 13:45:23 +0200notzmv(~zmv@user/notzmv)
2021-07-07 13:45:58 +0200notzmv(~zmv@user/notzmv) (Remote host closed the connection)
2021-07-07 13:46:09 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-07 13:47:02 +0200notzmv(~zmv@user/notzmv)
2021-07-07 13:48:38 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-07 13:49:43 +0200TheRAtTheRAt_AWAY
2021-07-07 13:49:46 +0200TheRAt_AWAYTheRAt
2021-07-07 13:50:34 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2021-07-07 13:51:57 +0200 <absence> in ghc 9, template haskell was changed so liftTyped returns Quote m => Code m a instead of Q (TExp a). this breaks the code "either fail liftTyped something" because Code doesn't have a MonadFail instance. what's the recommended way to deal with this? manually wrap the result of fail in Code, i.e. "either (Code . fail) liftTyped something", or does that have other consequences?
2021-07-07 13:53:05 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-07-07 13:53:09 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-07-07 13:53:42 +0200chris-the-slurpa(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-07 13:56:43 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 13:58:05 +0200lortabac(~lortabac@95.138.56.124)
2021-07-07 13:59:37 +0200azeem(~azeem@176.201.33.66) (Ping timeout: 246 seconds)
2021-07-07 14:00:35 +0200azeem(~azeem@176.200.218.50)
2021-07-07 14:02:42 +0200mikail(~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f)
2021-07-07 14:04:01 +0200fef(~thedawn@user/thedawn)
2021-07-07 14:04:34 +0200comerijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 14:04:45 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 14:05:12 +0200merijnGuest5099
2021-07-07 14:05:34 +0200comerijnmerijn
2021-07-07 14:06:01 +0200alcume(~alcume@35.16.60.213.dynamic.reverse-mundo-r.com)
2021-07-07 14:07:13 +0200jneira_(~jneira_@217.red-81-39-172.dynamicip.rima-tde.net) (Quit: Connection closed)
2021-07-07 14:07:49 +0200Guest5099(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-07-07 14:09:10 +0200chris-the-slurpa(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-07-07 14:15:15 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-07 14:18:24 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-07-07 14:19:44 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 14:24:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Ping timeout: 240 seconds)
2021-07-07 14:29:01 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 14:30:25 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 246 seconds)
2021-07-07 14:30:31 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 14:33:57 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-07 14:34:19 +0200unyu(~pyon@user/pyon)
2021-07-07 14:35:27 +0200unyu(~pyon@user/pyon) ()
2021-07-07 14:43:30 +0200azeem(~azeem@176.200.218.50) (Ping timeout: 272 seconds)
2021-07-07 14:43:44 +0200acidjnk_new(~acidjnk@p200300d0c72b9519e1b6d7c282fb2b66.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-07-07 14:43:51 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-07 14:44:36 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 14:45:12 +0200azeem(~azeem@176.200.218.50)
2021-07-07 14:48:21 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-07-07 14:51:29 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-07-07 14:54:33 +0200pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net)
2021-07-07 14:57:55 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-07-07 14:58:13 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-07-07 14:58:52 +0200habib(~habib@89.38.69.210)
2021-07-07 15:00:47 +0200hiruji(~hiruji@user/hiruji) (Ping timeout: 252 seconds)
2021-07-07 15:01:08 +0200alx741(~alx741@181.196.69.147)
2021-07-07 15:01:25 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-07 15:03:57 +0200hiruji(~hiruji@user/hiruji)
2021-07-07 15:07:50 +0200hiruji(~hiruji@user/hiruji) (Read error: Connection reset by peer)
2021-07-07 15:08:32 +0200hiruji(~hiruji@user/hiruji)
2021-07-07 15:10:05 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net)
2021-07-07 15:12:32 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 15:15:27 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-07-07 15:17:00 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-07 15:20:12 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 15:20:37 +0200re101-bombay-7(~re101-bom@2601:203:c200:d6f0:2d33:506:5f01:fb2c)
2021-07-07 15:22:26 +0200andreabedini(~andreabed@8s8kj6n700qk9hqmfk36.ip6.superloop.com)
2021-07-07 15:27:21 +0200bwe_bwe
2021-07-07 15:28:52 +0200re101-bombay-7(~re101-bom@2601:203:c200:d6f0:2d33:506:5f01:fb2c) (Quit: Client closed)
2021-07-07 15:30:10 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 240 seconds)
2021-07-07 15:32:58 +0200benin0369(~benin@183.82.204.181) (Ping timeout: 240 seconds)
2021-07-07 15:38:12 +0200azeem(~azeem@176.200.218.50) (Ping timeout: 265 seconds)
2021-07-07 15:38:31 +0200azeem(~azeem@176.200.218.50)
2021-07-07 15:39:27 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-07 15:43:06 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-07-07 15:43:39 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 15:47:46 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2021-07-07 15:48:44 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-07 15:49:04 +0200Taren(~Taren@port-92-196-211-46.dynamic.as20676.net) (Ping timeout: 246 seconds)
2021-07-07 15:49:12 +0200isekaijin(~pyon@user/pyon)
2021-07-07 15:50:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 15:50:59 +0200chris-the-slurpa(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-07 15:51:37 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-07 15:53:32 +0200Sgeo(~Sgeo@user/sgeo)
2021-07-07 15:53:54 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-07-07 15:54:46 +0200 <tromp> in ghci, how do I see a value rather than the result of function show?
2021-07-07 15:55:19 +0200 <Clint> what?
2021-07-07 15:56:06 +0200 <tromp> i have a record that is instance of Show
2021-07-07 15:56:20 +0200chris-the-slurpa(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2021-07-07 15:56:22 +0200 <tromp> but i want to see record fields
2021-07-07 15:57:04 +0200 <turlando> tromp maybe `:i Thing'?
2021-07-07 15:57:18 +0200 <nshepperd> this is the regret one faces the morning after having the clever idea to write a custom Show instance
2021-07-07 15:57:44 +0200 <geekosaur> there's a way to have ghci use something other than show, but it will then use it for everything
2021-07-07 15:57:50 +0200 <tromp> no, :i doesn't show record value
2021-07-07 15:59:05 +0200 <tromp> ok, will try remove my instance...
2021-07-07 15:59:09 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 15:59:14 +0200 <geekosaur> you will probably have to write your own function to format the record. as nshepperd said, this is why you shouldn't get clever with Show instances
2021-07-07 15:59:35 +0200 <polux> tromp: if the record has a Generic instance then there must be some library that implements a generic show
2021-07-07 16:00:19 +0200 <polux> but +1 to what everyone just said above: Show should probably not be used for custom formatting
2021-07-07 16:00:33 +0200 <polux> instance write a Pretty instance or something like that
2021-07-07 16:00:42 +0200 <polux> s/instance/instead/
2021-07-07 16:03:01 +0200 <tromp> thx for all suggestions
2021-07-07 16:03:46 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 240 seconds)
2021-07-07 16:04:02 +0200cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-07-07 16:04:10 +0200y04nn(~y04nn@91.193.4.106) (Ping timeout: 240 seconds)
2021-07-07 16:04:17 +0200 <polux> tromp: I just tried https://hackage.haskell.org/package/generic-deriving-1.14/docs/Generics-Deriving-Show.html, it works as intended for records
2021-07-07 16:04:18 +0200cheater(~Username@user/cheater)
2021-07-07 16:04:24 +0200 <polux> Prelude Generics.Deriving.Show GHC.Generics> data Record = R { a :: Int, b :: Bool } deriving (Generic)
2021-07-07 16:04:24 +0200 <polux> Prelude Generics.Deriving.Show GHC.Generics> instance GShow Record
2021-07-07 16:04:24 +0200 <polux> Prelude Generics.Deriving.Show GHC.Generics> gshow (R 1 True)
2021-07-07 16:04:24 +0200 <polux> "R {a = 1, b = True}"
2021-07-07 16:04:49 +0200 <polux> so if getting rid of your custom Show instance is impractical, that is a valid workaround
2021-07-07 16:04:55 +0200 <tromp> i now use derive (Show) on the record and added a custom formatting function
2021-07-07 16:04:57 +0200y04nn(~y04nn@91.193.4.106)
2021-07-07 16:05:43 +0200 <merijn> \o/
2021-07-07 16:05:49 +0200 <merijn> Another person converted back to sanity
2021-07-07 16:06:29 +0200Danishman(~Allan@2-104-144-110-cable.dk.customer.tdc.net) (Quit: Leaving)
2021-07-07 16:07:27 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-07-07 16:07:44 +0200Vajb(~Vajb@n2hz3gq4auh6ltn9l-2.v6.elisa-mobile.fi)
2021-07-07 16:12:16 +0200azeem(~azeem@176.200.218.50) (Ping timeout: 246 seconds)
2021-07-07 16:13:55 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-07-07 16:13:58 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 265 seconds)
2021-07-07 16:14:26 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 16:15:20 +0200dunj3(~dunj3@2001:16b8:3020:e900:566b:618c:a738:2a84) (Remote host closed the connection)
2021-07-07 16:16:45 +0200azeem(~azeem@176.200.218.50)
2021-07-07 16:16:59 +0200vpan(~vilius@212.117.1.172)
2021-07-07 16:20:05 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-07-07 16:22:14 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 16:23:20 +0200notzmv(~zmv@user/notzmv)
2021-07-07 16:23:20 +0200alcume(~alcume@35.16.60.213.dynamic.reverse-mundo-r.com) (Read error: Connection reset by peer)
2021-07-07 16:25:58 +0200keutoi(~keutoi@157.47.77.5) (Remote host closed the connection)
2021-07-07 16:26:03 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2021-07-07 16:26:34 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Ping timeout: 240 seconds)
2021-07-07 16:28:14 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-07-07 16:28:43 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 246 seconds)
2021-07-07 16:29:16 +0200azeem(~azeem@176.200.218.50) (Ping timeout: 272 seconds)
2021-07-07 16:30:46 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 16:32:56 +0200azeem(~azeem@176.201.11.138)
2021-07-07 16:34:04 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-07-07 16:35:18 +0200nova(novasenco@user/nova) (♥☺)
2021-07-07 16:36:36 +0200statusbot1(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
2021-07-07 16:36:49 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2021-07-07 16:39:13 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-07-07 16:40:18 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-07 16:42:55 +0200rostero(uid236576@id-236576.tooting.irccloud.com)
2021-07-07 16:44:07 +0200cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2021-07-07 16:44:32 +0200cheater(~Username@user/cheater)
2021-07-07 16:48:16 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 272 seconds)
2021-07-07 16:49:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-07 16:49:44 +0200azeem(~azeem@176.201.11.138) (Ping timeout: 265 seconds)
2021-07-07 16:49:54 +0200azeem(~azeem@176.201.11.138)
2021-07-07 16:50:18 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 16:54:37 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2021-07-07 16:55:27 +0200chris-the-slurpa(~chris@94.119.64.0)
2021-07-07 16:56:55 +0200korayal(~Koray_Al@user/korayal) (Quit: WeeChat 3.3-dev)
2021-07-07 16:57:08 +0200azeem(~azeem@176.201.11.138) (Ping timeout: 272 seconds)
2021-07-07 16:57:43 +0200azeem(~azeem@176.201.11.138)
2021-07-07 17:00:18 +0200habib(~habib@89.38.69.210) (Ping timeout: 272 seconds)
2021-07-07 17:01:52 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Ping timeout: 252 seconds)
2021-07-07 17:04:03 +0200lavaman(~lavaman@98.38.249.169)
2021-07-07 17:05:03 +0200Kirat(~Gill@103.217.122.15)
2021-07-07 17:05:29 +0200Kirat(~Gill@103.217.122.15) (Client Quit)
2021-07-07 17:06:34 +0200habib(~habib@188.241.156.95)
2021-07-07 17:07:38 +0200hewxle(~hewxle@user/hewxle)
2021-07-07 17:09:10 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-07-07 17:10:48 +0200dunkeln_(~dunkeln@188.70.10.207)
2021-07-07 17:12:57 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-07 17:14:56 +0200Vajb(~Vajb@n2hz3gq4auh6ltn9l-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-07-07 17:15:07 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-07 17:18:53 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 17:19:57 +0200habib(~habib@188.241.156.95) (Read error: Connection reset by peer)
2021-07-07 17:20:17 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.2)
2021-07-07 17:21:15 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-07 17:21:46 +0200andreabedini(~andreabed@8s8kj6n700qk9hqmfk36.ip6.superloop.com) (Quit: Textual IRC Client: www.textualapp.com)
2021-07-07 17:22:24 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-07 17:23:33 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 258 seconds)
2021-07-07 17:23:49 +0200mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
2021-07-07 17:28:10 +0200azeem(~azeem@176.201.11.138) (Ping timeout: 240 seconds)
2021-07-07 17:28:22 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-07-07 17:28:40 +0200chris-the-slurpa(~chris@94.119.64.0) (Remote host closed the connection)
2021-07-07 17:29:12 +0200chris-the-slurpa(~chris@94.119.64.3)
2021-07-07 17:32:35 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 252 seconds)
2021-07-07 17:32:40 +0200azeem(~azeem@176.201.11.138)
2021-07-07 17:33:17 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-07 17:33:22 +0200chris-the-slurpa(~chris@94.119.64.3) (Ping timeout: 240 seconds)
2021-07-07 17:38:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-07-07 17:38:49 +0200habib(~habib@109.70.150.189)
2021-07-07 17:39:06 +0200habib(~habib@109.70.150.189) ()
2021-07-07 17:41:05 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 17:44:24 +0200 <monochrom> Wouldn't it be more fun to convert to the insane way? >:)
2021-07-07 17:45:06 +0200 <monochrom> Handwrite your own non-standard Show instance. For the standard one, derive Generic and use GShow. >:)
2021-07-07 17:47:53 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-07-07 17:50:33 +0200lortabac(~lortabac@95.138.56.124) (Quit: WeeChat 2.8)
2021-07-07 17:53:04 +0200azeem(~azeem@176.201.11.138) (Ping timeout: 258 seconds)
2021-07-07 17:54:32 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-07-07 17:55:37 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 17:57:18 +0200azeem(~azeem@176.201.11.138)
2021-07-07 17:57:57 +0200re101-bombay-4(~re101-bom@2601:203:c200:d6f0:2d33:506:5f01:fb2c)
2021-07-07 17:58:17 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
2021-07-07 18:00:01 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 18:03:07 +0200MiguelNegrao(~MiguelNeg@2001:818:dc71:d100:9e5a:44ff:fe17:1240)
2021-07-07 18:04:34 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-07 18:04:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 18:05:15 +0200fengctor(~fengctor@bras-base-ngflon0508w-grc-11-76-68-2-143.dsl.bell.ca)
2021-07-07 18:05:27 +0200 <MiguelNegrao> Hi. I'd like to define a function (Arrow a, Traversable f, more constraints here...) => t (a b c) -> a (t b) (t c) Are there constraints I can add to make this possible ?
2021-07-07 18:05:49 +0200michalz(~michalz@185.246.204.126) (Remote host closed the connection)
2021-07-07 18:05:59 +0200 <MiguelNegrao> I've already implemeted it for lists (requiring ArrowChoice)
2021-07-07 18:06:35 +0200 <MiguelNegrao> and for vector-sized Vector (not requiring ArrrowChoice)
2021-07-07 18:06:57 +0200 <MiguelNegrao> https://github.com/miguel-negrao/arrow-utils/blob/main/src/Control/Arrow/Utils.hs
2021-07-07 18:09:00 +0200dunkeln_(~dunkeln@188.70.10.207) (Ping timeout: 265 seconds)
2021-07-07 18:09:26 +0200 <MiguelNegrao> it also looks similar to traverse' :: Traversable f => p a b -> p (f a) (f b) from profunctors
2021-07-07 18:09:50 +0200derelict(~derelict@user/derelict)
2021-07-07 18:10:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-07 18:10:57 +0200 <amesgen[m]> Is there a "standard" `StateT`-ish transformer for `Quote` from recent template-haskell?
2021-07-07 18:10:59 +0200 <jle`> MiguelNegrao: what do you want it to do?
2021-07-07 18:11:21 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-07-07 18:11:47 +0200 <MiguelNegrao> If I have a container of arrows, I want to create a new arrow that takes a container of inputs, applies each arrow to each input generating a container of outputs
2021-07-07 18:12:16 +0200 <MiguelNegrao> It's useful for FRP stuff with arrows
2021-07-07 18:13:33 +0200 <MiguelNegrao> On that link you can see it implemented for lists
2021-07-07 18:13:58 +0200 <MiguelNegrao> It's called sequenceArrList
2021-07-07 18:14:10 +0200fef(~thedawn@user/thedawn)
2021-07-07 18:16:32 +0200ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2021-07-07 18:17:09 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-07-07 18:17:53 +0200re101-bombay-4(~re101-bom@2601:203:c200:d6f0:2d33:506:5f01:fb2c) (Quit: Client closed)
2021-07-07 18:18:50 +0200isekaijin(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-07-07 18:19:04 +0200Deide(~Deide@217.155.19.23)
2021-07-07 18:19:04 +0200Deide(~Deide@217.155.19.23) (Changing host)
2021-07-07 18:19:04 +0200Deide(~Deide@user/deide)
2021-07-07 18:22:41 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-07-07 18:23:26 +0200fef(~thedawn@user/thedawn)
2021-07-07 18:26:02 +0200notzmv(~zmv@user/notzmv)
2021-07-07 18:27:19 +0200Guest8466(~Guest84@188.27.129.10) (Quit: Client closed)
2021-07-07 18:27:37 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-07-07 18:28:55 +0200radw(~radw@user/radw) (Ping timeout: 246 seconds)
2021-07-07 18:29:02 +0200azeem(~azeem@176.201.11.138) (Read error: Connection reset by peer)
2021-07-07 18:30:04 +0200radw(~radw@user/radw)
2021-07-07 18:30:23 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-07 18:34:49 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-07-07 18:35:29 +0200pfurla_(~pfurla@216.151.180.130)
2021-07-07 18:36:27 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-07 18:37:47 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-07-07 18:38:13 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-07-07 18:38:58 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 240 seconds)
2021-07-07 18:40:07 +0200fendor(~fendor@178.165.171.166.wireless.dyn.drei.com) (Remote host closed the connection)
2021-07-07 18:40:08 +0200chele(~chele@user/chele) (Remote host closed the connection)
2021-07-07 18:41:36 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-07 18:43:35 +0200notzmv(~zmv@user/notzmv) (Remote host closed the connection)
2021-07-07 18:47:47 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-07 18:48:43 +0200fengctor(~fengctor@bras-base-ngflon0508w-grc-11-76-68-2-143.dsl.bell.ca) (Read error: Connection reset by peer)
2021-07-07 18:49:52 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-07-07 18:50:26 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 18:51:05 +0200 <exarkun> Anyone know how to get a non-Haskell dependency into the latest Haskell.nix-generated Nix expressions?
2021-07-07 18:51:21 +0200 <exarkun> non-Haskell, non-nixpkgs
2021-07-07 18:51:42 +0200 <exarkun> I have an overlay defining it that worked fine with older Haskell.nix but the new recommended default.nix doesn't have an obvious place for overlays
2021-07-07 18:52:01 +0200 <exarkun> And jamming it in the non-obvious place leaves me with the failure "Setup: The pkg-config package 'libchallenge_bypass_ristretto_ffi' is required"
2021-07-07 18:52:10 +0200 <exarkun> "but it could not be found"
2021-07-07 18:53:36 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net)
2021-07-07 18:54:19 +0200radw(~radw@user/radw) (Ping timeout: 246 seconds)
2021-07-07 18:54:37 +0200 <glguy> Using GHC-8.10.5 I seem to be getting messages like "Currently only 10 to 12 is supported. System LLVM version: 9.0.1" but I was under the impression LLVM-9 was the only one supported
2021-07-07 18:55:05 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-07 18:55:42 +0200radw(~radw@user/radw)
2021-07-07 18:55:44 +0200 <glguy> I don't think these details matter, but: armv7l, running `cabal install cabal-install`, raspberry pi
2021-07-07 19:00:02 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net)
2021-07-07 19:00:19 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net) (Remote host closed the connection)
2021-07-07 19:00:51 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net)
2021-07-07 19:01:04 +0200 <maerwald> it's just a GHC bug afair... the message is incorrect
2021-07-07 19:02:02 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-07-07 19:03:48 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net) (Remote host closed the connection)
2021-07-07 19:04:00 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net)
2021-07-07 19:04:53 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net) (Remote host closed the connection)
2021-07-07 19:05:07 +0200 <glguy> maerwald: so I should stick with 9?
2021-07-07 19:05:23 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2)
2021-07-07 19:05:24 +0200lavaman(~lavaman@98.38.249.169)
2021-07-07 19:05:35 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net)
2021-07-07 19:05:52 +0200 <maerwald> glguy: https://gitlab.haskell.org/ghc/ghc/-/issues/19959
2021-07-07 19:06:16 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net) (Remote host closed the connection)
2021-07-07 19:06:22 +0200 <glguy> maerwald: thank you
2021-07-07 19:06:29 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net)
2021-07-07 19:07:44 +0200 <monochrom> Nice, there will be a 8.10.6
2021-07-07 19:09:11 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net) (Remote host closed the connection)
2021-07-07 19:09:26 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar)
2021-07-07 19:09:43 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 246 seconds)
2021-07-07 19:10:29 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-07 19:10:30 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-07 19:10:30 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 258 seconds)
2021-07-07 19:10:36 +0200mikail(~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Ping timeout: 252 seconds)
2021-07-07 19:11:05 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Quit: Leaving)
2021-07-07 19:11:20 +0200azeem(~azeem@176.201.13.131)
2021-07-07 19:12:43 +0200rostero(uid236576@id-236576.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-07 19:13:22 +0200azeem(~azeem@176.201.13.131) (Read error: Connection reset by peer)
2021-07-07 19:13:36 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-07 19:15:26 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-07-07 19:16:04 +0200Atum_(~IRC@user/atum/x-2392232)
2021-07-07 19:18:19 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-07-07 19:18:26 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8)
2021-07-07 19:19:36 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-07 19:21:01 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 19:21:11 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-07-07 19:22:28 +0200rostero(uid236576@id-236576.tooting.irccloud.com)
2021-07-07 19:23:15 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 252 seconds)
2021-07-07 19:24:15 +0200jneira[m](~jneira@174.red-37-10-141.dynamicip.rima-tde.net)
2021-07-07 19:25:21 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection)
2021-07-07 19:25:26 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2021-07-07 19:25:50 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 258 seconds)
2021-07-07 19:26:12 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 244 seconds)
2021-07-07 19:27:45 +0200fef(~thedawn@user/thedawn) (Quit: Leaving)
2021-07-07 19:27:55 +0200 <maerwald> yeah, 8.10.5 was a bit of a rush
2021-07-07 19:28:58 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar) (Ping timeout: 240 seconds)
2021-07-07 19:29:46 +0200xff0x(~xff0x@2001:1a81:539d:3600:7f6d:8918:f53:97d7) (Ping timeout: 240 seconds)
2021-07-07 19:30:44 +0200xff0x(~xff0x@2001:1a81:539d:3600:1c1d:c169:6e6:5e55)
2021-07-07 19:31:07 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-07-07 19:31:46 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds)
2021-07-07 19:33:47 +0200nschoe(~quassel@2a01:e0a:8e:a190:180:9002:34a9:8370)
2021-07-07 19:36:32 +0200econo(uid147250@user/econo)
2021-07-07 19:37:04 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 19:37:06 +0200jneira[m](~jneira@174.red-37-10-141.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-07-07 19:40:11 +0200 <AWizzArd> If you want to do Single Sign-On with Microsoft Azure and Auth0 – which Haskell lib would you use? Something with OAuth 2 perhaps?
2021-07-07 19:41:27 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net)
2021-07-07 19:41:57 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-07 19:42:37 +0200dunkeln_(~dunkeln@188.70.10.207)
2021-07-07 19:42:37 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 246 seconds)
2021-07-07 19:44:40 +0200azeem(~azeem@176.201.13.131)
2021-07-07 19:46:45 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-07-07 19:46:54 +0200nschoe(~quassel@2a01:e0a:8e:a190:180:9002:34a9:8370) (Ping timeout: 252 seconds)
2021-07-07 19:46:54 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-07 19:47:55 +0200ahdyt(~ahdyt@103.105.35.90)
2021-07-07 19:48:26 +0200ahdyt(~ahdyt@103.105.35.90) (Client Quit)
2021-07-07 19:48:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 19:51:10 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-07 19:52:04 +0200sheepduck(~sheepduck@user/sheepduck)
2021-07-07 19:52:58 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-07 19:53:16 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 19:53:58 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net) (Remote host closed the connection)
2021-07-07 19:55:03 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-07-07 19:55:16 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-07 19:56:05 +0200hrnz(~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb)
2021-07-07 19:56:25 +0200hrnz(~ulli@irc.plumbing)
2021-07-07 19:57:30 +0200jolly(~jolly@208.180.97.158) (Quit: Connection closed)
2021-07-07 19:58:14 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
2021-07-07 19:59:26 +0200MiguelNegrao(~MiguelNeg@2001:818:dc71:d100:9e5a:44ff:fe17:1240) (Quit: Client closed)
2021-07-07 20:00:08 +0200aman(~aman@user/aman) (Quit: aman)
2021-07-07 20:00:53 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 20:05:22 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 240 seconds)
2021-07-07 20:05:29 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-07-07 20:06:02 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 20:07:05 +0200pavonia(~user@user/siracusa)
2021-07-07 20:09:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection)
2021-07-07 20:09:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 20:10:06 +0200y04nn(~y04nn@91.193.4.106) (Ping timeout: 268 seconds)
2021-07-07 20:10:11 +0200mikail(~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f)
2021-07-07 20:12:15 +0200lortabac(~lortabac@95.138.56.124)
2021-07-07 20:13:55 +0200azeem(~azeem@176.201.13.131) (Read error: Connection reset by peer)
2021-07-07 20:14:07 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Ping timeout: 246 seconds)
2021-07-07 20:14:42 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-07 20:15:57 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-07-07 20:22:22 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-07 20:22:43 +0200y04nn(~y04nn@91.193.4.106)
2021-07-07 20:26:13 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net)
2021-07-07 20:27:01 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net) (Remote host closed the connection)
2021-07-07 20:29:43 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-07-07 20:35:41 +0200 <Atum_> Hey, total newbie here, I'm trying to import a function from a second file (lib.hs) into my main, but I'm getting a variable not in scope error, whenever I try to call the function.. the paste is: https://paste.tomsmeding.com/EFLYwZDH
2021-07-07 20:36:10 +0200 <Atum_> I'm using the vscode extension, and a stack default project
2021-07-07 20:37:12 +0200 <sm[m]> hi Atum_ . double != doubleNum
2021-07-07 20:37:22 +0200 <sm[m]> double != doubleFunc, rather
2021-07-07 20:37:31 +0200 <AWizzArd> Yeah, try to call `doubleFunc` instead of `double`.
2021-07-07 20:37:42 +0200 <Atum_> oh lol, yea
2021-07-07 20:37:45 +0200 <Atum_> thanks
2021-07-07 20:37:47 +0200 <AWizzArd> Atum_: line 7 in Main.hs looks problematic.
2021-07-07 20:37:51 +0200 <sm[m]> 🦆
2021-07-07 20:37:56 +0200 <Atum_> thanks duck
2021-07-07 20:38:11 +0200 <AWizzArd> And: calling it may not do too many interesting things.
2021-07-07 20:38:23 +0200 <Atum_> yea, I'm literally 15 mins into my haskell adventure
2021-07-07 20:38:31 +0200 <AWizzArd> Excellent :)
2021-07-07 20:38:33 +0200 <Atum_> I don't know how long it will last, lol
2021-07-07 20:38:42 +0200 <sm[m]> a grand adventure begins!
2021-07-07 20:38:47 +0200 <AWizzArd> At least you are trying it at all.
2021-07-07 20:39:10 +0200 <AWizzArd> Perhaps you will get an error message. In that case try something like: let x = doubleFunc 2
2021-07-07 20:39:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-07 20:40:03 +0200 <Atum_> Ok! thanks :)
2021-07-07 20:40:26 +0200 <AWizzArd> Atum_: your adventure may lead you deep into that rabbit hole, and who knows, at the end you might be playing with injective type families and contravariant bifunctors.
2021-07-07 20:43:10 +0200 <Atum_> AWizzArd: If I get this far it will be nice, haha
2021-07-07 20:43:33 +0200y04nn(~y04nn@91.193.4.106) (Ping timeout: 252 seconds)
2021-07-07 20:47:22 +0200mikail(~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Remote host closed the connection)
2021-07-07 20:47:28 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-07-07 20:47:33 +0200lortabac(~lortabac@95.138.56.124) (Quit: WeeChat 2.8)
2021-07-07 20:47:53 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Quit: Leaving)
2021-07-07 20:48:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 20:48:16 +0200y04nn(~y04nn@91.193.4.106)
2021-07-07 20:48:30 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-07-07 20:49:30 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2021-07-07 20:51:40 +0200pjb(~pjb@user/pjb)
2021-07-07 20:52:01 +0200mikail(~mikail@90.212.77.3)
2021-07-07 20:54:10 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 20:55:11 +0200nschoe(~quassel@2a01:e0a:8e:a190:cd08:592:d0aa:def9)
2021-07-07 20:57:18 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se)
2021-07-07 20:58:50 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-07 20:59:25 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection)
2021-07-07 20:59:56 +0200dunkeln_(~dunkeln@188.70.10.207) (Read error: Connection reset by peer)
2021-07-07 21:03:04 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-07-07 21:03:05 +0200fengctor(~fengctor@bras-base-ngflon0508w-grc-11-76-68-2-143.dsl.bell.ca)
2021-07-07 21:05:55 +0200pfurla_(~pfurla@216.151.180.130) (Ping timeout: 246 seconds)
2021-07-07 21:08:06 +0200vpan(~vilius@212.117.1.172) (Quit: Leaving.)
2021-07-07 21:08:18 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-07 21:08:26 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-07-07 21:10:13 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-07-07 21:11:40 +0200 <Boarders> is there a standard library function that returns from a list of lists all the longests lists?
2021-07-07 21:11:53 +0200 <Boarders> I can do it with groupOn but wondering if there is something else
2021-07-07 21:13:43 +0200 <adamse> Boarders: perhaps maximumBy
2021-07-07 21:15:17 +0200 <adamse> nvm
2021-07-07 21:18:28 +0200hewxle(~hewxle@user/hewxle) (Ping timeout: 265 seconds)
2021-07-07 21:20:32 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 21:21:51 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net)
2021-07-07 21:24:58 +0200MidAutumnMoon9(~MidAutumn@user/midautumnmoon)
2021-07-07 21:25:17 +0200chris-the-slurpa(~chris@cpc68332-cdif16-2-0-cust330.5-1.cable.virginm.net) (Remote host closed the connection)
2021-07-07 21:25:34 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 21:25:40 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2021-07-07 21:25:57 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar)
2021-07-07 21:27:56 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Ping timeout: 256 seconds)
2021-07-07 21:27:56 +0200MidAutumnMoon9MidAutumnMoon
2021-07-07 21:29:30 +0200MidAutumnMoon9(~MidAutumn@user/midautumnmoon)
2021-07-07 21:30:44 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-07 21:32:58 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Ping timeout: 265 seconds)
2021-07-07 21:36:29 +0200lavaman(~lavaman@98.38.249.169)
2021-07-07 21:37:57 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-07-07 21:37:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 21:41:42 +0200 <monochrom> Do you mind: first find the maximum length, then filter (\x -> length x == maxlength)?
2021-07-07 21:42:41 +0200 <exarkun> Anyone know about Haskell.nix native dependencies? https://github.com/input-output-hk/haskell.nix/issues/1163
2021-07-07 21:44:00 +0200 <Boarders> monochrom: probably the cleanest suggestion without simply writing the recursion by hand :)
2021-07-07 21:47:52 +0200ec(~ec@gateway/tor-sasl/ec)
2021-07-07 21:50:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection)
2021-07-07 21:52:27 +0200fengctor(~fengctor@bras-base-ngflon0508w-grc-11-76-68-2-143.dsl.bell.ca) (Read error: Connection reset by peer)
2021-07-07 21:52:39 +0200cheater(~Username@user/cheater) (Ping timeout: 258 seconds)
2021-07-07 21:53:08 +0200cheater(~Username@user/cheater)
2021-07-07 21:54:53 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-07-07 21:57:55 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-07 21:58:14 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-07 22:00:00 +0200xff0x(~xff0x@2001:1a81:539d:3600:1c1d:c169:6e6:5e55) (Ping timeout: 252 seconds)
2021-07-07 22:00:15 +0200jneira_(~jneira_@217.red-81-39-172.dynamicip.rima-tde.net)
2021-07-07 22:00:56 +0200xff0x(~xff0x@2001:1a81:539d:3600:dd23:6975:e62a:a95)
2021-07-07 22:06:02 +0200juhp(~juhp@128.106.188.66) (Ping timeout: 268 seconds)
2021-07-07 22:07:03 +0200juhp(~juhp@128.106.188.66)
2021-07-07 22:08:01 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-07-07 22:08:44 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2021-07-07 22:09:09 +0200ec(~ec@gateway/tor-sasl/ec)
2021-07-07 22:11:40 +0200pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Quit: WeeChat 3.1)
2021-07-07 22:20:28 +0200autogenerated(~autogener@24.133.69.243)
2021-07-07 22:24:08 +0200autogenerated(~autogener@24.133.69.243) ()
2021-07-07 22:30:30 +0200add_alias-LUA(~add_alias@2601:203:c200:d6f0:2d33:506:5f01:fb2c)
2021-07-07 22:30:34 +0200 <boxscape> Is the run time of a case expression roughly linear in the number of alternatives?
2021-07-07 22:31:45 +0200 <sm[m]> the run time for selecting an alternative ?
2021-07-07 22:32:22 +0200 <boxscape> yeah
2021-07-07 22:33:26 +0200nschoe(~quassel@2a01:e0a:8e:a190:cd08:592:d0aa:def9) (Ping timeout: 252 seconds)
2021-07-07 22:35:01 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 268 seconds)
2021-07-07 22:36:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-07 22:39:49 +0200manually_generat(~manually_@24.133.69.243)
2021-07-07 22:40:11 +0200manually_generat(~manually_@24.133.69.243) (Client Quit)
2021-07-07 22:40:46 +0200manually_generat(~manually_@24.133.69.243)
2021-07-07 22:41:02 +0200manually_generat(~manually_@24.133.69.243) (Client Quit)
2021-07-07 22:41:48 +0200manually_generat(~manually_@24.133.69.243)
2021-07-07 22:44:27 +0200chexum(~chexum@gateway/tor-sasl/chexum) (Quit: -)
2021-07-07 22:46:01 +0200cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2021-07-07 22:46:35 +0200 <veverak> hmm how to easily convert UTCTime into a epoch time? preferably as Float
2021-07-07 22:46:38 +0200cheater(~Username@user/cheater)
2021-07-07 22:47:55 +0200acidjnk_new(~acidjnk@p200300d0c72b9526e1b6d7c282fb2b66.dip0.t-ipconnect.de)
2021-07-07 22:48:40 +0200chexum(~chexum@gateway/tor-sasl/chexum)
2021-07-07 22:49:00 +0200add_alias-LUA(~add_alias@2601:203:c200:d6f0:2d33:506:5f01:fb2c) (Quit: Client closed)
2021-07-07 22:52:43 +0200rostero(uid236576@id-236576.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-07 22:54:11 +0200manually_generatsonat_suer
2021-07-07 22:55:00 +0200hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349) ()
2021-07-07 22:55:48 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se) (Remote host closed the connection)
2021-07-07 22:56:06 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se)
2021-07-07 22:56:15 +0200Sgeo_(~Sgeo@user/sgeo)
2021-07-07 22:56:18 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-07-07 22:56:40 +0200 <sonat_suer> /msg NickServ VERIFY REGISTER sonat_suer MiYQCEEiJNiDSYo6
2021-07-07 22:56:47 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
2021-07-07 22:57:58 +0200stianhj(~stianhj@128.199.58.13) (Quit: The Lounge - https://thelounge.chat)
2021-07-07 22:58:38 +0200hewxle(~hewxle@user/hewxle)
2021-07-07 22:59:32 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
2021-07-07 22:59:49 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-07-07 23:00:49 +0200 <glguy> sonat_suer: You'll need to send that one-time use verification code without the leading space
2021-07-07 23:01:18 +0200 <veverak> hmm, float is meh
2021-07-07 23:01:24 +0200 <boxscape> @hoogle Either a1 b -> Either a2 b -> Either a1 b
2021-07-07 23:01:25 +0200 <lambdabot> No results found
2021-07-07 23:01:30 +0200 <boxscape> :(
2021-07-07 23:01:34 +0200 <veverak> so the question is actually simple, how to get milliseconds epoch time from UTCTime?
2021-07-07 23:01:57 +0200 <Rembane> veverak: Do you use any package for your time?
2021-07-07 23:02:11 +0200 <veverak> I am getting data as Data.Time.Clock.UTCTime
2021-07-07 23:02:13 +0200 <veverak> that's all
2021-07-07 23:02:25 +0200 <glguy> You'd use utcTimeToPOSIXSeconds first
2021-07-07 23:02:49 +0200hewxle(~hewxle@user/hewxle) (Ping timeout: 246 seconds)
2021-07-07 23:02:54 +0200 <glguy> realToFrac :: NominalDiffTime -> Float
2021-07-07 23:03:03 +0200 <glguy> and then you could convert to seconds like that
2021-07-07 23:03:08 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 252 seconds)
2021-07-07 23:03:30 +0200 <veverak> oh
2021-07-07 23:03:45 +0200 <veverak> the fact that nominalDiffTimeToSeconds returns `Pico` is hella confusing
2021-07-07 23:03:58 +0200 <boxscape> is there a better way to write this? either (const $ r str) Right (l str)
2021-07-07 23:04:32 +0200 <glguy> A Float is probably too imprecise to be all that useful, though
2021-07-07 23:05:25 +0200 <veverak> yeah
2021-07-07 23:08:59 +0200gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-07-07 23:10:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-07-07 23:13:42 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 252 seconds)
2021-07-07 23:13:58 +0200maf654321(~maf654321@user/maf654321) (Ping timeout: 272 seconds)
2021-07-07 23:16:00 +0200re101-bombay-30(~re101-bom@2601:203:c200:d6f0:2d33:506:5f01:fb2c)
2021-07-07 23:18:02 +0200 <AWizzArd> About Channels (i.e. Control.Concurrent.Chan): I can do a blocking `readChan` to wait until some data becomes available. But: can I also wait for multiple channels at the same time, and unblock as soon as one of them has data?
2021-07-07 23:20:15 +0200 <hpc> if you don't mind the seemingly frivolous use of threads, you can have a thread for each Chan feeding into a combined Chan that your main thread waits on
2021-07-07 23:20:28 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-07 23:21:59 +0200 <AWizzArd> I wonder if one could add an Alternative implementation that in a way monoidically combines all chans into a single one.
2021-07-07 23:22:00 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-07 23:22:28 +0200jolly(~jolly@208.180.97.158)
2021-07-07 23:22:29 +0200 <AWizzArd> (value, chanThatReadData) <- readChan c1 <|> readChan c2 <|> readChan c3
2021-07-07 23:23:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection)
2021-07-07 23:24:25 +0200 <monochrom> IO's <|> doesn't do that.
2021-07-07 23:24:32 +0200 <monochrom> But STM's <|> does.
2021-07-07 23:24:48 +0200 <monochrom> A good reason to switch to TChan.
2021-07-07 23:26:24 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-07 23:26:34 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 258 seconds)
2021-07-07 23:28:04 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-07-07 23:28:10 +0200Erutuon(~Erutuon@user/erutuon)
2021-07-07 23:28:11 +0200 <monochrom> BTW most of the complaints against Haskell's time package are only because people mistake "used to the C unix way" for "the C unix way is right".
2021-07-07 23:28:25 +0200 <monochrom> No, Haskell's time package is the one that does it right.
2021-07-07 23:28:52 +0200 <maerwald> I don't even know what time is... and computers can freely navigate into future and past. It's all over.
2021-07-07 23:30:29 +0200spruit11_(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b)
2021-07-07 23:31:23 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 265 seconds)
2021-07-07 23:32:42 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 258 seconds)
2021-07-07 23:33:04 +0200re101-bombay-30(~re101-bom@2601:203:c200:d6f0:2d33:506:5f01:fb2c) ()
2021-07-07 23:33:44 +0200spruit11(~quassel@2a02:a467:ccd6:1:d8ed:8d81:7c94:d830) (Ping timeout: 256 seconds)
2021-07-07 23:34:01 +0200 <boxscape> Am I missing some indentation rule here? I'm pretty confused about the first one not working https://paste.tomsmeding.com/ptyYkVPO
2021-07-07 23:34:13 +0200 <boxscape> err, the second one not working
2021-07-07 23:34:21 +0200 <AWizzArd> maerwald: 12 minutes that help you to see more into time and understand why currently you move with speed of light: https://www.youtube.com/watch?v=au0QJYISe4c
2021-07-07 23:34:30 +0200 <monochrom> Yes, there were famous DOS shareware programs that had expiry dates unless you pay up. People who didn't want to pay pulled the simple trick of setting the computer clock to the past.
2021-07-07 23:34:56 +0200 <maerwald> that's an actual HACK
2021-07-07 23:36:37 +0200 <boxscape> oh actually
2021-07-07 23:36:51 +0200 <boxscape> I had indented the second one one space more than in the paste
2021-07-07 23:36:58 +0200 <boxscape> s/second/first
2021-07-07 23:37:09 +0200 <boxscape> and the second one also works if I indent it one space further
2021-07-07 23:37:19 +0200 <boxscape> though that still seems strange...
2021-07-07 23:37:40 +0200 <boxscape> err, hold on
2021-07-07 23:37:52 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-07-07 23:37:56 +0200 <boxscape> I think I'm just getting confused by how my font's italics look like they're one space further to the right than they are
2021-07-07 23:38:17 +0200 <monochrom> fancy
2021-07-07 23:38:41 +0200 <boxscape> I should probably turn off italics for syntax highlighting...
2021-07-07 23:40:42 +0200hewxle(~hewxle@user/hewxle)
2021-07-07 23:40:52 +0200spruit11_(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-07-07 23:41:14 +0200spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b)
2021-07-07 23:41:19 +0200hiruji(~hiruji@user/hiruji) (Ping timeout: 246 seconds)
2021-07-07 23:42:05 +0200tcard(~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2021-07-07 23:42:30 +0200hiruji(~hiruji@user/hiruji)
2021-07-07 23:45:45 +0200tcard(~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp)
2021-07-07 23:46:34 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-07-07 23:48:17 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-07-07 23:49:53 +0200 <lechner> Hi, is cabal really preferred over stack again? (Sorry, no flame intended; this channel is civilized, anyway.) Thanks!
2021-07-07 23:50:53 +0200 <monochrom> I prefer cabal. I can't speak for others.
2021-07-07 23:50:54 +0200 <geekosaur> cabal's problems were solved with cabal 2; we're on cabal 3.4 now
2021-07-07 23:51:27 +0200 <lechner> okay, i am totally behind the times
2021-07-07 23:51:37 +0200 <monochrom> In fact, it can get down to the point you really have to ask yourself what you want, not what other people want.
2021-07-07 23:52:16 +0200 <monochrom> I prefer cabal because it doesn't install ghc. Other people prefer stack because it does install ghc. There is no way you can win.
2021-07-07 23:52:43 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-07 23:52:48 +0200notzmv(~zmv@user/notzmv)
2021-07-07 23:53:04 +0200maf654321(~maf654321@user/maf654321)
2021-07-07 23:53:13 +0200 <monochrom> And why doesn't someone bring nix to the debate...
2021-07-07 23:53:34 +0200 <Rembane> nix will solve all problems! <- there, is fix
2021-07-07 23:53:41 +0200 <justsomeguy> Which one is preferred is subjective, but I think it's safe to say that cabal has implemented many features that used to be exclusive to stack. A few features that I have in mind when saying that are project local builds and caching of libraries shared between projects.
2021-07-07 23:53:42 +0200 <monochrom> Just to celebrate diversity and free will.
2021-07-07 23:53:43 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-07 23:54:18 +0200 <monochrom> I meta-prefer a free country.
2021-07-07 23:54:37 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-07-07 23:56:56 +0200 <Rembane> IIRC weeder needs stack and weeder is useful, so that's a + for stack.
2021-07-07 23:57:46 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar) (Ping timeout: 246 seconds)
2021-07-07 23:58:24 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-07 23:59:29 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)