2021/06/22

2021-06-22 00:00:28 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2021-06-22 00:00:59 +0000lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-22 00:01:13 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:04:00 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:05:34 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:06:23 +0000Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-06-22 00:07:52 +0000hmmmas(~chenqisu1@183.217.200.246)
2021-06-22 00:08:33 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:10:06 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:10:34 +0000fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
2021-06-22 00:12:12 +0000nineonine(~nineonine@50.216.62.2)
2021-06-22 00:12:37 +0000thyriaen(~thyriaen@45.178.73.238) (Quit: Leaving)
2021-06-22 00:12:48 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:14:22 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:15:52 +0000hololeap(hololeap@user/hololeap) (Quit: Bye)
2021-06-22 00:17:10 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:17:23 +0000tomsmeding(~tomsmedin@2a03:b0c0:0:1010::767:3001) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-22 00:17:37 +0000justsomeguy(~justsomeg@user/justsomeguy)
2021-06-22 00:17:42 +0000tomsmeding(~tomsmedin@tomsmeding.com)
2021-06-22 00:18:43 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:19:09 +0000killsushi_(~killsushi@2607:fea8:3d40:767:f4b9:4189:73f1:3f28)
2021-06-22 00:19:09 +0000killsushi_(~killsushi@2607:fea8:3d40:767:f4b9:4189:73f1:3f28) (Changing host)
2021-06-22 00:19:09 +0000killsushi_(~killsushi@user/killsushi/x-5912268)
2021-06-22 00:20:17 +0000Nahra(~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection)
2021-06-22 00:21:04 +0000ddellacosta(~ddellacos@86.106.121.100)
2021-06-22 00:21:36 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:22:25 +0000killsushi(~killsushi@user/killsushi) (Ping timeout: 244 seconds)
2021-06-22 00:23:11 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:25:34 +0000ddellacosta(~ddellacos@86.106.121.100) (Ping timeout: 252 seconds)
2021-06-22 00:25:41 +0000efvincent-007(~efvincent@71.69.232.38)
2021-06-22 00:25:57 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:27:13 +0000tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2021-06-22 00:27:32 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:30:29 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:31:44 +0000lavaman(~lavaman@98.38.249.169)
2021-06-22 00:32:03 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:35:04 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:35:06 +0000acid(~acid@user/acid) (Ping timeout: 264 seconds)
2021-06-22 00:35:15 +0000acid(~acid@user/acid)
2021-06-22 00:35:31 +0000p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-22 00:35:47 +0000p3n(~p3n@217.198.124.246)
2021-06-22 00:35:54 +0000V(~v@anomalous.eu) (Remote host closed the connection)
2021-06-22 00:36:25 +0000efvincent-007(~efvincent@71.69.232.38) (Ping timeout: 246 seconds)
2021-06-22 00:36:29 +0000lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-06-22 00:36:37 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:36:53 +0000NieDzejkob(~quassel@195.149.98.3) (Ping timeout: 244 seconds)
2021-06-22 00:37:04 +0000NieDzejkob(~quassel@195.149.98.3)
2021-06-22 00:37:19 +0000V(~v@anomalous.eu)
2021-06-22 00:37:28 +0000is7s(~is7s@2a01:4b00:895f:3d00:3d61:e4ff:2003:3c7) (Ping timeout: 246 seconds)
2021-06-22 00:38:58 +0000Ariakenom(~Ariakenom@2001:9b1:efb:fc00:8de:a8d1:83fb:c4a6) (Read error: Connection reset by peer)
2021-06-22 00:39:36 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:41:09 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:41:42 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-22 00:41:47 +0000hololeap(hololeap@user/hololeap)
2021-06-22 00:42:34 +0000hiruji(~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Ping timeout: 244 seconds)
2021-06-22 00:44:09 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:45:44 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:45:57 +0000Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-06-22 00:46:29 +0000lavaman(~lavaman@98.38.249.169)
2021-06-22 00:47:57 +0000ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Ping timeout: 268 seconds)
2021-06-22 00:48:34 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:50:07 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:52:10 +0000argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Ping timeout: 258 seconds)
2021-06-22 00:52:36 +0000delYsid(~user@user/delYsid) (ERC (IRC client for Emacs 27.1.50))
2021-06-22 00:52:55 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:53:57 +0000ddellacosta(~ddellacos@86.106.121.100)
2021-06-22 00:54:29 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 00:57:19 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 00:58:39 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 00:58:41 +0000ddellacosta(~ddellacos@86.106.121.100) (Ping timeout: 258 seconds)
2021-06-22 00:58:51 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 01:00:36 +0000MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
2021-06-22 01:00:53 +0000MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-22 01:04:16 +0000killsushi_(~killsushi@user/killsushi/x-5912268) (Ping timeout: 244 seconds)
2021-06-22 01:05:50 +0000xff0x(~xff0x@2001:1a81:53f8:8c00:146b:f6fc:d9b4:bcad) (Ping timeout: 268 seconds)
2021-06-22 01:06:05 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 01:07:03 +0000xff0x(~xff0x@2001:1a81:5210:a00:e51a:a5db:7d11:7c5d)
2021-06-22 01:07:22 +0000NieDzejkob(~quassel@195.149.98.3) (Ping timeout: 252 seconds)
2021-06-22 01:07:25 +0000mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Ping timeout: 265 seconds)
2021-06-22 01:07:50 +0000NieDzejkob(~quassel@195.149.98.3)
2021-06-22 01:09:45 +0000perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-06-22 01:11:06 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 264 seconds)
2021-06-22 01:17:13 +0000 <qrpnxz> how do i evaluate a value in ghci without printing it, trying to get an effect to occur but it starts to cry if it can't print it
2021-06-22 01:17:37 +0000zebrag(~chris@user/zebrag)
2021-06-22 01:18:06 +0000Feuermagier(~Feuermagi@user/feuermagier)
2021-06-22 01:18:08 +0000 <geekosaur> action >> return () -- ?
2021-06-22 01:18:15 +0000 <Axman6> :t void . evaluate
2021-06-22 01:18:17 +0000 <lambdabot> a -> IO ()
2021-06-22 01:18:40 +0000 <Axman6> @hoogle evaluate
2021-06-22 01:18:41 +0000 <lambdabot> Control.Exception evaluate :: a -> IO a
2021-06-22 01:18:41 +0000 <lambdabot> Control.Exception.Base evaluate :: a -> IO a
2021-06-22 01:18:41 +0000 <lambdabot> GHC.IO evaluate :: a -> IO a
2021-06-22 01:20:54 +0000 <qrpnxz> doesn't work
2021-06-22 01:21:22 +0000 <qrpnxz> had to pull the values out by hand, but them in a list and sequence
2021-06-22 01:21:36 +0000 <qrpnxz> *put
2021-06-22 01:21:45 +0000x_kuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-06-22 01:21:48 +0000 <Axman6> by "doesn't work" you mean "didn't provide enough information to get the answer you needed"
2021-06-22 01:22:23 +0000 <qrpnxz> nope, but if that's what you think alright
2021-06-22 01:23:20 +0000 <Axman6> I can guarantee you what I said does what you said you wanted, but if you need to vully evaluate everything in the entire structure then you might have said that instead. NFData is the class you're after, drom the deepseq package
2021-06-22 01:24:34 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-22 01:27:26 +0000MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
2021-06-22 01:27:47 +0000 <qrpnxz> i think IO won't happen unless it touches ghci at some point so it wasn't even an evaluation problem
2021-06-22 01:29:38 +0000nineonine(~nineonine@50.216.62.2) (Remote host closed the connection)
2021-06-22 01:29:45 +0000MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-22 01:29:46 +0000hololeap(hololeap@user/hololeap) (Quit: Bye)
2021-06-22 01:29:53 +0000 <Axman6> right, you didn't say anythign about executing an IO vlaue, you said evaluate a value. all you need then in void yourExpression
2021-06-22 01:29:55 +0000perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.2)
2021-06-22 01:30:02 +0000 <jackdk> Axman6++
2021-06-22 01:30:21 +0000 <Axman6> evaluation and executing are quite different things
2021-06-22 01:30:50 +0000 <qrpnxz> i did say i was trying to get an effect to occur
2021-06-22 01:31:25 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 250 seconds)
2021-06-22 01:32:40 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-22 01:32:48 +0000 <geekosaur> which is why I suggested the other one, which does the effect but discards the value
2021-06-22 01:33:02 +0000 <geekosaur> so ghci won'[t complain about it
2021-06-22 01:33:22 +0000argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2021-06-22 01:33:46 +0000 <qrpnxz> well it didn't do the effect
2021-06-22 01:33:52 +0000 <qrpnxz> hence why i said it didn't work
2021-06-22 01:34:56 +0000zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-06-22 01:37:43 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 01:40:01 +0000argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Quit: leaving)
2021-06-22 01:40:18 +0000 <qrpnxz> unless "the effect" is heating the room lol
2021-06-22 01:42:11 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 252 seconds)
2021-06-22 01:43:19 +0000 <Axman6> well, evaluating an IO expression won't do very much, only executing it will. an IO a is a recipe which, when _executed_ returns an a. _evaluating_ it just forces it, if it is a think, to be evaluated enough to know that its constructor is the IO constructor
2021-06-22 01:44:57 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-06-22 01:45:16 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-22 01:46:08 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 01:47:41 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 01:50:24 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 01:51:28 +0000waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
2021-06-22 01:51:52 +0000slack1256(~slack1256@181.203.47.107)
2021-06-22 01:51:56 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 01:54:48 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 01:55:19 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net)
2021-06-22 01:56:23 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 01:58:35 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-22 01:59:12 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:00:11 +0000bilegeek(~bilegeek@2600:1008:b017:63a6:c26d:d119:faaa:a6d7) (Quit: Leaving)
2021-06-22 02:00:45 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:02:42 +0000xff0x(~xff0x@2001:1a81:5210:a00:e51a:a5db:7d11:7c5d) (Ping timeout: 264 seconds)
2021-06-22 02:03:33 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:04:12 +0000moet(~moet@172.58.22.170)
2021-06-22 02:04:15 +0000xff0x(~xff0x@2001:1a81:5218:4800:8168:2dc2:e054:da2)
2021-06-22 02:04:19 +0000np(~nerdypepp@user/nerdypepper) (Quit: bye)
2021-06-22 02:05:07 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:08:11 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:08:33 +0000nerdypepper(~nerdypepp@user/nerdypepper)
2021-06-22 02:08:50 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Ping timeout: 258 seconds)
2021-06-22 02:09:03 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 02:09:46 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:09:54 +0000FragByte(~christian@user/fragbyte) (Ping timeout: 264 seconds)
2021-06-22 02:10:47 +0000xff0x(~xff0x@2001:1a81:5218:4800:8168:2dc2:e054:da2) (Ping timeout: 252 seconds)
2021-06-22 02:10:47 +0000jakalx(~jakalx@base.jakalx.net) (Ping timeout: 252 seconds)
2021-06-22 02:11:06 +0000farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 264 seconds)
2021-06-22 02:11:12 +0000Feuermagier(~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
2021-06-22 02:11:20 +0000bjobjo(~bo@user/bjobjo) (Ping timeout: 252 seconds)
2021-06-22 02:11:22 +0000Xe(~cadey@tailscale/xe) (Ping timeout: 272 seconds)
2021-06-22 02:11:40 +0000xff0x(~xff0x@2001:1a81:5218:4800:8168:2dc2:e054:da2)
2021-06-22 02:11:41 +0000Feuermagier(~Feuermagi@user/feuermagier)
2021-06-22 02:11:42 +0000m4lvin(~m4lvin@w4eg.de) (Ping timeout: 264 seconds)
2021-06-22 02:11:42 +0000welterde(welterde@thinkbase.srv.welterde.de) (Ping timeout: 264 seconds)
2021-06-22 02:11:42 +0000yorick(~yorick@user/yorick) (Ping timeout: 264 seconds)
2021-06-22 02:11:44 +0000FragByte(~christian@user/fragbyte)
2021-06-22 02:11:53 +0000nf(~n@monade.li) (Ping timeout: 252 seconds)
2021-06-22 02:12:16 +0000farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
2021-06-22 02:12:18 +0000lisq(~quassel@lis.moe) (Ping timeout: 264 seconds)
2021-06-22 02:12:23 +0000bjobjo(~bo@2a01:79c:cebf:d688::9e6)
2021-06-22 02:12:28 +0000m4lvin(~m4lvin@w4eg.de)
2021-06-22 02:12:29 +0000lisq(~quassel@lis.moe)
2021-06-22 02:12:31 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:12:43 +0000nf(~n@monade.li)
2021-06-22 02:13:07 +0000welterde(welterde@thinkbase.srv.welterde.de)
2021-06-22 02:13:07 +0000Xe(~cadey@tailscale/xe)
2021-06-22 02:13:30 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 264 seconds)
2021-06-22 02:14:03 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:14:50 +0000yorick(~yorick@user/yorick)
2021-06-22 02:16:28 +0000slack1256(~slack1256@181.203.47.107) (Remote host closed the connection)
2021-06-22 02:16:55 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Remote host closed the connection)
2021-06-22 02:17:37 +0000teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-22 02:18:30 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:19:10 +0000 <qrpnxz> :t let i f = f (<*>) id in i $ i $ i $ i i
2021-06-22 02:19:11 +0000 <lambdabot> error:
2021-06-22 02:19:11 +0000 <lambdabot> • Occurs check: cannot construct the infinite type: a0 ~ a0 -> a0
2021-06-22 02:19:12 +0000 <lambdabot> Expected type: (((((((a0 -> a0 -> b0) -> (a0 -> a0) -> a0 -> b0)
2021-06-22 02:21:22 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:22:55 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:25:34 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 02:25:41 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:27:14 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:28:51 +0000killsushi_(~killsushi@user/killsushi/x-5912268)
2021-06-22 02:30:01 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:30:18 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 264 seconds)
2021-06-22 02:31:04 +0000raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2021-06-22 02:31:34 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:34:33 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:36:03 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-06-22 02:36:03 +0000FinnElijaGuest1234
2021-06-22 02:36:03 +0000finn_elijaFinnElija
2021-06-22 02:36:06 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:39:03 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:39:15 +0000Guest1234(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 265 seconds)
2021-06-22 02:40:36 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:43:27 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:45:01 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:45:58 +0000Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-22 02:46:30 +0000stevenxl(~stevenlei@174.128.182.199) (Ping timeout: 265 seconds)
2021-06-22 02:48:01 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:49:36 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:52:36 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:54:10 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 02:56:22 +0000td__(~td@94.134.91.150) (Ping timeout: 258 seconds)
2021-06-22 02:57:07 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 02:57:50 +0000cyclosa(~cyclosa@2603-6011-4a41-8ada-0000-0000-0000-0eaa.res6.spectrum.com) (Quit: computer broke)
2021-06-22 02:57:57 +0000td_(~td@94.134.91.59)
2021-06-22 02:58:42 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-22 03:01:31 +0000betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-22 03:02:04 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 03:05:29 +0000alx741(~alx741@181.196.68.152) (Quit: alx741)
2021-06-22 03:06:32 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-06-22 03:09:07 +0000hiruji(~hiruji@user/hiruji)
2021-06-22 03:10:56 +0000sm(~user@plaintextaccounting/sm) (ERC (IRC client for Emacs 27.0.50))
2021-06-22 03:11:27 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-06-22 03:11:47 +0000stevenxl(~stevenlei@174.128.182.199)
2021-06-22 03:11:51 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-22 03:12:49 +0000sheepduck(~sheepduck@user/sheepduck) (Remote host closed the connection)
2021-06-22 03:13:32 +0000mikail_(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf)
2021-06-22 03:16:18 +0000stevenxl(~stevenlei@174.128.182.199) (Ping timeout: 258 seconds)
2021-06-22 03:18:54 +0000hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-22 03:20:18 +0000hammock(~Hammock@2600:1700:19a1:3330::625) (Ping timeout: 240 seconds)
2021-06-22 03:27:03 +0000AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-06-22 03:29:04 +0000typesafety(~typesafet@umbreller.kvi.sgsnet.se)
2021-06-22 03:29:15 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 03:29:20 +0000typesafety(~typesafet@umbreller.kvi.sgsnet.se) (Client Quit)
2021-06-22 03:34:40 +0000sleblanc(~sleblanc@107.159.26.53)
2021-06-22 03:35:22 +0000beka(~beka@104-244-27-23.static.monkeybrains.net)
2021-06-22 03:37:40 +0000sleblanc(~sleblanc@107.159.26.53) (Client Quit)
2021-06-22 03:37:57 +0000sleblanc(~sleblanc@107.159.26.53)
2021-06-22 03:38:13 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2021-06-22 03:38:16 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-06-22 03:38:19 +0000Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-22 03:39:30 +0000Lord_of_Life_Lord_of_Life
2021-06-22 03:40:22 +0000ddellacosta(~ddellacos@86.106.121.100)
2021-06-22 03:40:23 +0000unyu(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-06-22 03:41:39 +0000lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-06-22 03:42:16 +0000machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 250 seconds)
2021-06-22 03:42:37 +0000sleblancsebleblanc
2021-06-22 03:42:47 +0000sebleblancsleblnac
2021-06-22 03:42:50 +0000sleblnacsleblanc
2021-06-22 03:49:32 +0000sleblanc(~sleblanc@107.159.26.53) (Changing host)
2021-06-22 03:49:32 +0000sleblanc(~sleblanc@user/sleblanc)
2021-06-22 03:49:52 +0000Guest51(~Guest51@78.155.54.115)
2021-06-22 03:50:54 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-06-22 03:51:37 +0000beka(~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection)
2021-06-22 03:56:23 +0000mikail_(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Ping timeout: 252 seconds)
2021-06-22 03:59:19 +0000lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-22 04:01:38 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-22 04:01:44 +0000lavaman(~lavaman@98.38.249.169)
2021-06-22 04:03:27 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-22 04:06:52 +0000moet_(~moet@172.58.27.234)
2021-06-22 04:10:07 +0000moet(~moet@172.58.22.170) (Ping timeout: 265 seconds)
2021-06-22 04:11:02 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-06-22 04:11:02 +0000allbery_b(~geekosaur@xmonad/geekosaur)
2021-06-22 04:12:59 +0000v01d4lph4(~v01d4lph4@122.160.65.250)
2021-06-22 04:12:59 +0000v01d4lph4(~v01d4lph4@122.160.65.250) (Changing host)
2021-06-22 04:12:59 +0000v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-22 04:13:55 +0000teaSlurper(~chris@81.96.113.213)
2021-06-22 04:16:30 +0000juhp(~juhp@128.106.188.66) (Quit: juhp)
2021-06-22 04:16:43 +0000juhp(~juhp@128.106.188.66)
2021-06-22 04:19:52 +0000ddellaco_(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 04:23:04 +0000ddellacosta(~ddellacos@86.106.121.100) (Ping timeout: 268 seconds)
2021-06-22 04:23:12 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-22 04:28:27 +0000haasn(~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-06-22 04:28:57 +0000haasn(~nand@haasn.dev)
2021-06-22 04:30:44 +0000AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-06-22 04:36:44 +0000ddellaco_(~ddellacos@ool-44c73aff.dyn.optonline.net) (Remote host closed the connection)
2021-06-22 04:37:13 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 04:40:08 +0000Topsi1(~Tobias@dyndsl-095-033-016-151.ewe-ip-backbone.de)
2021-06-22 04:41:01 +0000Topsi(~Tobias@dyndsl-091-249-082-141.ewe-ip-backbone.de) (Ping timeout: 258 seconds)
2021-06-22 04:41:47 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 258 seconds)
2021-06-22 04:46:36 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 268 seconds)
2021-06-22 04:52:49 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 04:54:37 +0000 <dminuoso> 112
2021-06-22 04:57:56 +0000Xnuk(~xnuk@45.76.202.58) (Read error: Connection reset by peer)
2021-06-22 04:58:13 +0000Xnuk(~xnuk@vultr.xnu.kr)
2021-06-22 05:00:13 +0000finsternis(~X@23.226.237.192) (Remote host closed the connection)
2021-06-22 05:03:17 +0000renzhi(~xp@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 265 seconds)
2021-06-22 05:10:13 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 05:13:21 +0000pottsy(~pottsy@2400:4050:b560:3700:d9ad:59b1:5f34:93cd)
2021-06-22 05:14:53 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-06-22 05:19:31 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2021-06-22 05:22:45 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 05:23:17 +0000efvincent-007(~efvincent@71.69.232.38)
2021-06-22 05:24:47 +0000Guest51(~Guest51@78.155.54.115) (Quit: Client closed)
2021-06-22 05:26:42 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 240 seconds)
2021-06-22 05:31:45 +0000bitmapper(uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-22 05:34:18 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2021-06-22 05:37:23 +0000deshalb(~deshalb@user/deshalb)
2021-06-22 05:43:30 +0000chomwitt(~Pitsikoko@2a02:587:dc0b:ff00:c813:70d9:31b2:b1b9)
2021-06-22 05:47:41 +0000mpt(~tom@2a00:20:800f:87cc:fcb9:2f31:1e2e:8504)
2021-06-22 05:53:22 +0000mpt(~tom@2a00:20:800f:87cc:fcb9:2f31:1e2e:8504) (Read error: Connection reset by peer)
2021-06-22 05:54:37 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2021-06-22 05:55:05 +0000wei2912(~wei2912@112.199.250.21)
2021-06-22 05:58:05 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-22 05:59:49 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 05:59:55 +0000_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-06-22 06:00:31 +0000efvincent-007(~efvincent@71.69.232.38) (Ping timeout: 246 seconds)
2021-06-22 06:10:48 +0000rookie101(~rookie@207.154.204.166)
2021-06-22 06:11:21 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-22 06:13:19 +0000chexum(~chexum@gateway/tor-sasl/chexum)
2021-06-22 06:15:26 +0000michalz(~michalz@185.246.204.61)
2021-06-22 06:15:44 +0000nerdypepper(~nerdypepp@user/nerdypepper) (Quit: bye)
2021-06-22 06:16:05 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2021-06-22 06:17:40 +0000peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-22 06:19:04 +0000gehmehgeh(~user@user/gehmehgeh)
2021-06-22 06:19:33 +0000Erutuon(~Erutuon@user/erutuon) (Quit: WeeChat 2.8)
2021-06-22 06:19:44 +0000Erutuon(~Erutuon@user/erutuon)
2021-06-22 06:19:50 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:f76a:37dd:7d13:fae6)
2021-06-22 06:19:52 +0000nerdypepper(~nerdypepp@user/nerdypepper)
2021-06-22 06:20:11 +0000fef(~thedawn@user/thedawn)
2021-06-22 06:20:14 +0000Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-22 06:21:13 +0000Erutuon(~Erutuon@user/erutuon) (Client Quit)
2021-06-22 06:21:23 +0000Erutuon(~Erutuon@user/erutuon)
2021-06-22 06:24:29 +0000slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-06-22 06:31:22 +0000leeb(~leeb@KD111239153143.au-net.ne.jp)
2021-06-22 06:33:43 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-22 06:34:29 +0000leeb_(~leeb@KD111239158072.au-net.ne.jp) (Ping timeout: 258 seconds)
2021-06-22 06:35:46 +0000sheepduck(~sheepduck@user/sheepduck)
2021-06-22 06:37:50 +0000fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-06-22 06:38:14 +0000fef(~thedawn@user/thedawn)
2021-06-22 06:43:18 +0000elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net)
2021-06-22 06:48:22 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 252 seconds)
2021-06-22 06:49:14 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-22 06:50:35 +0000bontaq`(~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-06-22 06:50:46 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-06-22 06:51:04 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-06-22 06:51:38 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-06-22 06:52:00 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-06-22 06:52:12 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-06-22 06:55:57 +0000elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net) (Quit: Client closed)
2021-06-22 06:57:31 +0000cfricke(~cfricke@user/cfricke)
2021-06-22 06:59:38 +0000hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2021-06-22 07:03:06 +0000Nahra(~user@static.161.95.99.88.clients.your-server.de)
2021-06-22 07:03:14 +0000hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Remote host closed the connection)
2021-06-22 07:03:51 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 07:05:18 +0000chele(~chele@user/chele)
2021-06-22 07:05:49 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-06-22 07:07:30 +0000Xraell(~yourname@45.157.15.145)
2021-06-22 07:07:56 +0000Xraell(~yourname@45.157.15.145) (Client Quit)
2021-06-22 07:08:02 +0000janiczek(~janiczek@89-24-215-117.customers.tmcz.cz)
2021-06-22 07:08:28 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-06-22 07:10:16 +0000bjobjo(~bo@2a01:79c:cebf:d688::9e6) (Changing host)
2021-06-22 07:10:16 +0000bjobjo(~bo@user/bjobjo)
2021-06-22 07:10:19 +0000Xraell(~yourname@45.157.15.145)
2021-06-22 07:10:31 +0000sheepduck(~sheepduck@user/sheepduck) (Remote host closed the connection)
2021-06-22 07:12:40 +0000IvanDru[m]lwe[m]
2021-06-22 07:12:50 +0000mcfilib(sid302703@user/mcfilib)
2021-06-22 07:14:59 +0000Nahra(~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection)
2021-06-22 07:15:52 +0000Nahra(~user@static.161.95.99.88.clients.your-server.de)
2021-06-22 07:16:34 +0000moet(~moet@172.58.30.115)
2021-06-22 07:17:50 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-22 07:19:32 +0000moet_(~moet@172.58.27.234) (Ping timeout: 252 seconds)
2021-06-22 07:19:43 +0000mcglk(~mcglk@131.191.49.120) (Ping timeout: 258 seconds)
2021-06-22 07:21:59 +0000haskl(~haskeller@2601:643:897f:561d::af3)
2021-06-22 07:22:26 +0000 <haskl> Has anyone had success with building static binaries using the process outlined here? https://www.tweag.io/blog/2020-09-30-bazel-static-haskell/
2021-06-22 07:28:58 +0000hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2021-06-22 07:30:05 +0000hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Remote host closed the connection)
2021-06-22 07:30:10 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 07:32:37 +0000hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2021-06-22 07:32:38 +0000hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Client Quit)
2021-06-22 07:33:10 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-22 07:35:22 +0000mcglk(~mcglk@131.191.49.120)
2021-06-22 07:35:53 +0000 <maerwald[m]> I do fully static binaries in an alpine container
2021-06-22 07:36:24 +0000 <maerwald[m]> Not sure why people complicate this
2021-06-22 07:40:55 +0000 <tdammers> I like deploying "fat binaries" to vanilla debian servers
2021-06-22 07:41:31 +0000moet_(~moet@172.58.27.134)
2021-06-22 07:42:57 +0000 <haskl> I've never made a release of Haskell software before but now I'm interested in doing so for a small project. Anyone care to point me in the right direction? I'm using Debian right now. maerwald[m] could you share an example with me? tdammers not sure what that means. I once just used the static flag for GHC on another project of mine but, without going into specifics, I read about some problems that it introduced and it was unstable for some
2021-06-22 07:42:57 +0000 <haskl> users.
2021-06-22 07:44:00 +0000amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-22 07:44:38 +0000moet(~moet@172.58.30.115) (Ping timeout: 258 seconds)
2021-06-22 07:44:55 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-06-22 07:45:18 +0000 <maerwald[m]> Just docker run an alpine container, ensure system libs hsve static versions, then build with --ghc-options='-split-sections -optl-static'
2021-06-22 07:45:25 +0000 <maerwald[m]> Done
2021-06-22 07:45:42 +0000 <maerwald[m]> No weird nix problems
2021-06-22 07:46:40 +0000euandreh_(~euandreh@2804:14c:33:9fe5:ee71:32ea:12e0:378c) (Ping timeout: 268 seconds)
2021-06-22 07:47:25 +0000euandreh_(~euandreh@2804:14c:33:9fe5:4732:d8b1:5f78:9a82)
2021-06-22 07:49:20 +0000 <haskl> maerwald[m], thanks for pointing me in the right direction, I'll look into that.
2021-06-22 07:51:05 +0000 <haskl> https://github.com/fossas/haskell-static-alpine This looks great!
2021-06-22 07:51:29 +0000 <maerwald[m]> Don't need that
2021-06-22 07:51:41 +0000 <maerwald[m]> Just normal alpine container
2021-06-22 07:52:53 +0000 <tdammers> haskl: "releasing" and "deploying" are different things. "releasing" just means you upload a source bundle (and, optionally, binaries) to some public repository - for Haskell packages, that would typically be Hackage
2021-06-22 07:54:18 +0000amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-06-22 07:54:25 +0000 <haskl> tdammers, I made a little tool for building gopherholes (it's liek a static site builder, but for the Gopher protocol) and I just want to give non-savvy people a binary they can run to test it out as it's in pre-alpha.
2021-06-22 07:55:03 +0000 <haskl> So yeah, I'm looking to make an alpha release of the software with a static binary.
2021-06-22 07:56:02 +0000 <haskl> maerwald[m], a normal alpine container that's setup with the right version of GHC and cabal? and that's it? you mentioned something about making sure all the system libs are static versions. I'm not sure exactly what yo umean by that.
2021-06-22 07:56:36 +0000 <maerwald[m]> You install ghc and cabal via ghcup and static libraries via apk
2021-06-22 08:02:48 +0000boxscape_(~boxscape_@p4ff0b158.dip0.t-ipconnect.de)
2021-06-22 08:03:35 +0000boxscape_(~boxscape_@p4ff0b158.dip0.t-ipconnect.de) (Changing host)
2021-06-22 08:03:35 +0000boxscape_(~boxscape_@user/boxscape)
2021-06-22 08:04:14 +0000Ferdiran1Ferdirand
2021-06-22 08:04:32 +0000Ferdirand(~somebody@2001:4c78:2012:5000::2) (Changing host)
2021-06-22 08:04:32 +0000Ferdirand(~somebody@user/ferdirand)
2021-06-22 08:08:04 +0000boxscape_(~boxscape_@user/boxscape) (Quit: Connection closed)
2021-06-22 08:09:58 +0000hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-06-22 08:11:26 +0000berberman_(~berberman@user/berberman)
2021-06-22 08:12:26 +0000hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-22 08:12:54 +0000berberman(~berberman@user/berberman) (Ping timeout: 264 seconds)
2021-06-22 08:13:40 +0000jiribenes(~jiribenes@rosa.jiribenes.com)
2021-06-22 08:14:11 +0000teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-22 08:14:42 +0000fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-06-22 08:15:28 +0000fef(~thedawn@user/thedawn)
2021-06-22 08:18:28 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-22 08:19:03 +0000teaSlurper(~chris@81.96.113.213)
2021-06-22 08:21:20 +0000hendursaga(~weechat@user/hendursaga)
2021-06-22 08:21:40 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Remote host closed the connection)
2021-06-22 08:22:12 +0000allbery_b(~geekosaur@xmonad/geekosaur) (Ping timeout: 258 seconds)
2021-06-22 08:22:35 +0000hegstal(~hegstal@2a02:c7f:7604:8a00:7821:4ac6:7f63:f8)
2021-06-22 08:23:34 +0000teaSlurper(~chris@81.96.113.213) (Ping timeout: 268 seconds)
2021-06-22 08:28:50 +0000moet_(~moet@172.58.27.134) (Ping timeout: 252 seconds)
2021-06-22 08:29:30 +0000chddr(~Thunderbi@31.148.23.125)
2021-06-22 08:29:44 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2021-06-22 08:31:38 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 08:32:10 +0000qrpnxz(~qrpnxz@user/qrpnxz) (Ping timeout: 250 seconds)
2021-06-22 08:33:36 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-22 08:34:18 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2021-06-22 08:34:52 +0000involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net)
2021-06-22 08:36:18 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 264 seconds)
2021-06-22 08:38:15 +0000dhil(~dhil@195.213.192.47)
2021-06-22 08:38:46 +0000 <haskl> maerwald[m], thanks! i'll read into apk as well. this sounds much simpler. i appreciate all the guidance.
2021-06-22 08:39:26 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-06-22 08:43:49 +0000kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-06-22 08:45:50 +0000kmein(~weechat@user/kmein)
2021-06-22 08:46:48 +0000Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-06-22 08:47:10 +0000chddr(~Thunderbi@31.148.23.125) (Ping timeout: 252 seconds)
2021-06-22 08:47:41 +0000fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-06-22 08:48:54 +0000jumper149(~jumper149@80.240.31.34)
2021-06-22 08:50:54 +0000mcglk_(~mcglk@131.191.49.120)
2021-06-22 08:51:56 +0000mcglk(~mcglk@131.191.49.120) (Ping timeout: 252 seconds)
2021-06-22 08:54:13 +0000mcglk(~mcglk@131.191.49.120)
2021-06-22 08:55:41 +0000mcglk(~mcglk@131.191.49.120) (Read error: Connection reset by peer)
2021-06-22 08:56:14 +0000mcglk(~mcglk@131.191.49.120)
2021-06-22 08:56:20 +0000mcglk_(~mcglk@131.191.49.120) (Ping timeout: 252 seconds)
2021-06-22 09:00:53 +0000even4void(even4void@2607:5300:203:3f52::12)
2021-06-22 09:03:13 +0000smitop(~smitop@user/smitop) (Remote host closed the connection)
2021-06-22 09:03:32 +0000yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-06-22 09:04:13 +0000smitop(~smitop@user/smitop)
2021-06-22 09:05:39 +0000fef(~thedawn@user/thedawn)
2021-06-22 09:06:41 +0000qbt(~edun@user/edun)
2021-06-22 09:10:24 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 09:10:42 +0000Ariakenom(~Ariakenom@2001:9b1:efb:fc00:69d4:ccfd:e578:282b)
2021-06-22 09:10:51 +0000raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-22 09:15:06 +0000ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2021-06-22 09:15:22 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-06-22 09:17:14 +0000raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-06-22 09:19:35 +0000haskl(~haskeller@2601:643:897f:561d::af3) (Changing host)
2021-06-22 09:19:36 +0000haskl(~haskeller@user/haskl)
2021-06-22 09:22:38 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 09:24:25 +0000jneira(~jneira@212.8.115.226)
2021-06-22 09:26:42 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 240 seconds)
2021-06-22 09:29:40 +0000raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-22 09:39:11 +0000teaSlurper(~chris@81.96.113.213)
2021-06-22 09:49:14 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 09:49:18 +0000deshalb(~deshalb@user/deshalb) (Ping timeout: 268 seconds)
2021-06-22 09:50:22 +0000__monty__(~toonn@user/toonn)
2021-06-22 09:50:31 +0000deshalb(~deshalb@user/deshalb)
2021-06-22 09:54:14 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-06-22 09:54:18 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-22 09:55:56 +0000unyu(~pyon@user/pyon)
2021-06-22 09:58:16 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-22 10:00:49 +0000alp(~alp@163.172.83.213) (Changing host)
2021-06-22 10:00:49 +0000alp(~alp@user/alp)
2021-06-22 10:00:57 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-22 10:10:53 +0000lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-22 10:17:30 +0000GIANTWORLDKEEPER(~pjetcetal@2.95.227.207) (Quit: EXIT)
2021-06-22 10:17:49 +0000GIANTWORLDKEEPER(~pjetcetal@2.95.227.207)
2021-06-22 10:18:32 +0000hmmmas(~chenqisu1@183.217.200.246)
2021-06-22 10:21:59 +0000trent2(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-06-22 10:22:24 +0000lavaman(~lavaman@98.38.249.169)
2021-06-22 10:23:09 +0000teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-22 10:23:58 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 10:27:33 +0000Alex_test(~al_test@178.34.160.156) (Ping timeout: 258 seconds)
2021-06-22 10:27:56 +0000AlexZenon(~alzenon@178.34.160.156) (Ping timeout: 258 seconds)
2021-06-22 10:28:00 +0000 <Las[m]> I have a C library I'm using with that isn't thread-safe, so I was thinking of restricting all interaction with it to one bound thread. Are there any common approaches for this? I was thinking I could perhaps somehow send over the IO actions I want to perform through some channel-like thing and then get the result back after performing it in the other thread.
2021-06-22 10:28:01 +0000teaSlurper(~chris@81.96.113.213)
2021-06-22 10:28:18 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 240 seconds)
2021-06-22 10:28:53 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 10:29:32 +0000AlexNoo(~AlexNoo@178.34.160.156) (Ping timeout: 265 seconds)
2021-06-22 10:30:16 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 10:30:37 +0000Morrow(~MorrowM_@147.161.8.246)
2021-06-22 10:31:15 +0000killsushi_(~killsushi@user/killsushi/x-5912268) (Quit: Leaving)
2021-06-22 10:32:45 +0000teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-22 10:33:25 +0000teaSlurper(~chris@81.96.113.213)
2021-06-22 10:33:31 +0000lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-22 10:35:16 +0000Meh(~Meh@202.14.120.214)
2021-06-22 10:35:40 +0000MehGuest4839
2021-06-22 10:35:44 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net)
2021-06-22 10:36:19 +0000Guest4839(~Meh@202.14.120.214) (Client Quit)
2021-06-22 10:37:54 +0000teaSlurper(~chris@81.96.113.213) (Ping timeout: 258 seconds)
2021-06-22 10:45:55 +0000zyklotomic(~ethan@2604:a880:800:10::79f:8001)
2021-06-22 10:46:13 +0000 <zyklotomic> is there syntax sugar for declaring instances for multiple types in one line?
2021-06-22 10:46:40 +0000 <zyklotomic> instead of having to do instance Eq TypeA, newline, instance Eq TypeB
2021-06-22 10:46:50 +0000 <merijn> I don't think there is
2021-06-22 10:46:52 +0000 <zyklotomic> can I like do instance Eq TypeA typeB in one go
2021-06-22 10:46:57 +0000 <zyklotomic> ah i see, just checking, thanks
2021-06-22 10:47:01 +0000mikail_(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf)
2021-06-22 10:47:04 +0000 <merijn> tbh, I've never really had so many types to define instance on that it was relevant
2021-06-22 10:47:35 +0000 <zyklotomic> yeah it isnt' super necessary, thought it might just potentially make it cleaner
2021-06-22 10:47:40 +0000 <merijn> zyklotomic: If you have an empty isntance declaration you could just tag it onto the type definitiin via deriving, no?
2021-06-22 10:48:40 +0000 <tomsmeding> Las[m]: you may be interested in http://www.vex.net/~trebla/haskell/ghc-conc-ffi.xhtml
2021-06-22 10:48:53 +0000xff0x(~xff0x@2001:1a81:5218:4800:8168:2dc2:e054:da2) (Ping timeout: 252 seconds)
2021-06-22 10:49:20 +0000 <zyklotomic> i'm not entirely sure, not all typeclasses though
2021-06-22 10:49:25 +0000xff0x(~xff0x@2001:1a81:5218:4800:1515:545a:1239:1833)
2021-06-22 10:49:50 +0000 <zyklotomic> merijn: like, iirc, there is an AnyTypeDeriving extension, forgot the exact name
2021-06-22 10:50:41 +0000 <zyklotomic> maybe i'm not understanding correctly, am noob
2021-06-22 10:51:16 +0000kayprish(~kayprish@46.240.143.86)
2021-06-22 10:51:42 +0000 <zyklotomic> -XGeneralizedNewTypeDeriving i think
2021-06-22 10:52:13 +0000 <lortabac> zyklotomic: there is DeriveAnyClass, but it goes in the opposite sense: you can derive multiple classes for a single type
2021-06-22 10:53:11 +0000 <lortabac> also, that extension can be confusing (unless you specify the strategy explicitly with DerivingStrategies)
2021-06-22 10:53:16 +0000mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
2021-06-22 10:53:35 +0000 <zyklotomic> you mean GenearilezdNewTypeDeriving?
2021-06-22 10:53:44 +0000 <zyklotomic> by "that extension"
2021-06-22 10:53:50 +0000 <lortabac> DeriveAnyClass
2021-06-22 10:53:56 +0000 <zyklotomic> ah ok
2021-06-22 10:54:55 +0000 <zyklotomic> lortabac, merijn: thanks, the both of you, for your input
2021-06-22 10:55:53 +0000 <zyklotomic> the confusing part makes sense yes, because otherwise it feels too auto-magical
2021-06-22 11:00:11 +0000teaSlurper(~chris@81.96.113.213)
2021-06-22 11:00:52 +0000gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-22 11:03:36 +0000 <Las[m]> tomsmeding: Thanks! This looks like a nice resouce
2021-06-22 11:03:36 +0000 <Las[m]> resource*
2021-06-22 11:04:18 +0000lavaman(~lavaman@98.38.249.169)
2021-06-22 11:04:20 +0000 <tomsmeding> written by an active member of this channel :)
2021-06-22 11:05:44 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-22 11:06:59 +0000 <Cale> zyklotomic: If it really got serious, it'd be possible to generate a lot of instances like that using TemplateHaskell (but you probably want more than a few)
2021-06-22 11:07:14 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Ping timeout: 265 seconds)
2021-06-22 11:08:00 +0000stevenxl(~stevenlei@174.128.182.215)
2021-06-22 11:08:38 +0000ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Quit: ubert)
2021-06-22 11:08:42 +0000lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-22 11:08:55 +0000 <zyklotomic> Cale: have never dabbled in TemplateHaskell before lol, but yeah my use case right now definitely doesnt justify it
2021-06-22 11:11:01 +0000chddr(~Thunderbi@31.148.23.125)
2021-06-22 11:11:52 +0000teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-22 11:15:12 +0000biggs(~biggs@host-80-43-81-131.as13285.net)
2021-06-22 11:17:48 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 11:22:13 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-06-22 11:22:26 +0000machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-06-22 11:22:39 +0000Codaraxis(~Codaraxis@user/codaraxis) (Read error: Connection reset by peer)
2021-06-22 11:22:59 +0000Codaraxis(~Codaraxis@user/codaraxis)
2021-06-22 11:25:16 +0000fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-06-22 11:26:28 +0000Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Remote host closed the connection)
2021-06-22 11:27:07 +0000hseg(~gesh@185.120.126.29)
2021-06-22 11:27:47 +0000biggs(~biggs@host-80-43-81-131.as13285.net) (Quit: Client closed)
2021-06-22 11:28:08 +0000 <hseg> Hi. Am trying to construct a list, and have the entire expression be an empty list if any of the preconditions fail
2021-06-22 11:28:19 +0000 <hseg> have written two ways: http://ix.io/3qJM
2021-06-22 11:28:31 +0000 <hseg> but neither is aesthetically appealing
2021-06-22 11:29:48 +0000 <hseg> (especially considering these lists occur in an expression context, so I'd have tm:tm':complicated_term:...
2021-06-22 11:30:20 +0000involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 252 seconds)
2021-06-22 11:30:24 +0000unyu(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-06-22 11:31:15 +0000 <Las[m]> tomsmeding: this is a nice resource, but it doesn't describe a way of executing an `IO a` in a specific OS thread, which is what I want
2021-06-22 11:31:31 +0000 <Las[m]> since I want to provide a safe abstraction over the library
2021-06-22 11:32:47 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) ()
2021-06-22 11:33:00 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-06-22 11:33:55 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Client Quit)
2021-06-22 11:34:09 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-06-22 11:34:42 +0000euandreh_(~euandreh@2804:14c:33:9fe5:4732:d8b1:5f78:9a82) (Ping timeout: 240 seconds)
2021-06-22 11:35:28 +0000 <dminuoso> % let pred = (< 3) in foldrM (\x xs -> if (pred x) then (Just (x:xs)) else Nothing) [] [1,2,2]
2021-06-22 11:35:28 +0000 <yahb> dminuoso: Just [1,2,2]
2021-06-22 11:35:31 +0000 <dminuoso> hseg: This maybe?
2021-06-22 11:35:43 +0000euandreh_(~euandreh@2804:14c:33:9fe5:3fd5:92e4:b3b4:44e0)
2021-06-22 11:35:48 +0000 <dminuoso> Im thinking this can be improved still, just busy with other stuff
2021-06-22 11:37:58 +0000fef(~thedawn@user/thedawn)
2021-06-22 11:38:51 +0000 <merijn> Las[m]: You can't specify a specific OS thread. You can require that a Haskell thread always executes on the *same* OS thread
2021-06-22 11:39:35 +0000 <merijn> Las[m]: i.e. you can say "this haskell thread should always run on the same thread" for cases where you call C code that uses, thread local storage, for example
2021-06-22 11:39:50 +0000wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-06-22 11:41:35 +0000awth13(~user@user/awth13) (Remote host closed the connection)
2021-06-22 11:41:53 +0000 <dminuoso> Ah perhaps you could write:
2021-06-22 11:42:06 +0000 <dminuoso> % let pred = (< 3) in foldrM (\x xs -> guard (pred x); Just (x:xs)) [] [1,2,2]
2021-06-22 11:42:06 +0000 <yahb> dminuoso: ; <interactive>:23:52: error: parse error on input `;'
2021-06-22 11:42:13 +0000 <dminuoso> % let pred = (< 3) in foldrM (\x xs -> do { guard (pred x); Just (x:xs) }) [] [1,2,2]
2021-06-22 11:42:13 +0000 <yahb> dminuoso: Just [1,2,2]
2021-06-22 11:42:17 +0000 <dminuoso> This looks kind of nice
2021-06-22 11:42:51 +0000 <Las[m]> merijn: then couldn't I somehow pass over the `IO a` I want to execute to some bound thread over a channel or similar?
2021-06-22 11:43:21 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds)
2021-06-22 11:43:25 +0000awth13(~user@user/awth13)
2021-06-22 11:45:09 +0000 <kritzefitz> Las[m], yes you can, exactly as you say. Start a bound thread and pass your IO actions there using a channel.
2021-06-22 11:45:18 +0000Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 264 seconds)
2021-06-22 11:46:21 +0000 <boxscape> dminuoso: MonadComprehensions works nicely with that
2021-06-22 11:46:22 +0000 <boxscape> % let pred = (< 3) in foldrM (\x xs -> [x:xs | pred x]) [] [1,2,2]
2021-06-22 11:46:22 +0000 <yahb> boxscape: [1,2,2]
2021-06-22 11:46:46 +0000 <dminuoso> mmm
2021-06-22 11:46:56 +0000 <dminuoso> Oh, using list monad itself, thats not bad either!
2021-06-22 11:47:00 +0000 <dminuoso> % let pred = (< 1) in foldrM (\x xs -> [x:xs | pred x]) [] [1,2,2]
2021-06-22 11:47:01 +0000 <yahb> dminuoso: *** Exception: user error (mzero)
2021-06-22 11:47:10 +0000 <dminuoso> boxscape: except this is bad. mmm
2021-06-22 11:47:13 +0000 <dminuoso> % :t let pred = (< 1) in foldrM (\x xs -> [x:xs | pred x]) [] [1,2,2]
2021-06-22 11:47:14 +0000 <yahb> dminuoso: (Monad m, Alternative m, Ord a, Num a) => m [a]
2021-06-22 11:47:16 +0000 <boxscape> :/
2021-06-22 11:47:22 +0000 <dminuoso> Oh, this probably defaults to IO
2021-06-22 11:47:36 +0000 <dminuoso> % let pred = (< 1) in foldrM (\x xs -> [x:xs | pred x]) [] [1,2,2] :: Maybe [Int]
2021-06-22 11:47:37 +0000 <yahb> dminuoso: Nothing
2021-06-22 11:47:39 +0000 <dminuoso> Yeah this is good
2021-06-22 11:48:32 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-22 11:49:24 +0000 <boxscape> ah yeah I didn't realize the Just was missing in the output at first
2021-06-22 11:49:57 +0000Feuermagier(~Feuermagi@user/feuermagier)
2021-06-22 11:52:09 +0000kayprish(~kayprish@46.240.143.86) (Remote host closed the connection)
2021-06-22 11:52:12 +0000 <Las[m]> kritzefitz: Thanks! Do you have any recommendations for how I'd get the result back to the calling Haskell thread?
2021-06-22 11:52:36 +0000 <merijn> Las[m]: Oh, there's a simple solution for that
2021-06-22 11:52:42 +0000 <merijn> Well "simple" :p
2021-06-22 11:53:29 +0000 <merijn> Las[m]: Pass an empty MVar along with the IO action and have the thread running it write the result to the empty MVar
2021-06-22 11:53:31 +0000 <boxscape> @pl \x -> [x | True]
2021-06-22 11:53:31 +0000 <lambdabot> return . (| True)
2021-06-22 11:53:54 +0000 <boxscape> that's kind of funny
2021-06-22 11:53:57 +0000chomwitt(~Pitsikoko@2a02:587:dc0b:ff00:c813:70d9:31b2:b1b9) (Ping timeout: 268 seconds)
2021-06-22 11:54:01 +0000 <Las[m]> Ah yeah that is simple, thanks
2021-06-22 11:54:06 +0000 <merijn> boxscape: That's because pl is dumb and doesn't parse Haskell
2021-06-22 11:54:19 +0000 <merijn> Las[m]: Then the original thread can just block on the empty MVar until it's done :)
2021-06-22 11:54:25 +0000 <boxscape> yeah
2021-06-22 11:54:37 +0000 <merijn> It's a super useful trick
2021-06-22 11:55:03 +0000 <Las[m]> Thanks for the help!
2021-06-22 11:55:54 +0000 <dminuoso> merijn: Wait, so automatically running @pl on my edit on save in emacs is a bad idea?
2021-06-22 11:55:54 +0000xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Read error: Connection reset by peer)
2021-06-22 11:55:59 +0000fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-06-22 11:56:16 +0000 <merijn> dminuoso: For several reasons :p
2021-06-22 11:56:30 +0000fef(~thedawn@user/thedawn)
2021-06-22 11:56:37 +0000 <merijn> Pretty sure that @pl on save is a great way to get lynched by future maintainers
2021-06-22 11:56:37 +0000 <boxscape> I prefer running a macro that runs pl . unpl until a get a fixpoint
2021-06-22 11:57:44 +0000 <dminuoso> merijn: Im sure that running @pl keeps you safe from future maintainers in the first place.
2021-06-22 11:57:53 +0000 <dminuoso> So my life is safe.
2021-06-22 11:58:56 +0000 <maerwald[m]> It's HLint's fault making haskellers believe that caring about pointfree is something inherently idiomatic
2021-06-22 11:59:05 +0000 <dminuoso> boxscape: Sounds great. `let code' = fix (pl . unpl) code in ...`
2021-06-22 11:59:12 +0000 <merijn> HLint is to blame for lots of stuff :p
2021-06-22 11:59:12 +0000 <dminuoso> Profit?
2021-06-22 11:59:36 +0000 <tomsmeding> just like writing in APL is profit, I guess
2021-06-22 11:59:53 +0000 <boxscape> every once in a while running it on a function diverges but you know, that's what makes it fun
2021-06-22 12:00:14 +0000 <dminuoso> tomsmeding: Im sure that if you're capable in APL, you will earn more than the top 5% Haskell earners..
2021-06-22 12:00:44 +0000 <tomsmeding> https://github.com/Co-dfns/Co-dfns/tree/master/cmp
2021-06-22 12:01:04 +0000maroloccio(~marolocci@189.15.9.54)
2021-06-22 12:01:13 +0000 <boxscape> ooh, self-documenting code
2021-06-22 12:01:55 +0000 <maerwald[m]> Yeah, HLint also makes people put newtype everywhere there is only one constructor, thinking that's gonna fix all their space leaks
2021-06-22 12:01:58 +0000Codaraxis(~Codaraxis@user/codaraxis) (Remote host closed the connection)
2021-06-22 12:02:17 +0000Codaraxis(~Codaraxis@user/codaraxis)
2021-06-22 12:02:19 +0000CookE[](~thedawn@user/thedawn)
2021-06-22 12:02:39 +0000 <dminuoso> If you have your ancient APL codebase, then due to lack of programmers you as the developer can dictate your price easily I think.
2021-06-22 12:03:06 +0000 <dminuoso> APL is not like your run-off-the-mill JS clone that you simply teach to your average pythonista
2021-06-22 12:03:20 +0000CookE[](~thedawn@user/thedawn) (Remote host closed the connection)
2021-06-22 12:04:07 +0000 <tomsmeding> maerwald[m]: not all that comes out of hlint is nonsense though. What I'd like, I think, is some way to run hlint in my HLS, but then be able to mark certain notes as "I don't want this" without having to pollute my source with annotations
2021-06-22 12:04:13 +0000xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net)
2021-06-22 12:04:23 +0000 <tomsmeding> but that's going to be hard to robustly implement
2021-06-22 12:05:34 +0000fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-06-22 12:06:35 +0000 <boxscape> tomsmeding: do you mean "I don't want this type of warning" or "I don't want this specific instance of this warning"?
2021-06-22 12:06:50 +0000 <maerwald[m]> Most of what comes out of hlint is nonsense imo... or just not very useful, like "yoe could have omitted that 'do'"... yeah, so what
2021-06-22 12:07:01 +0000 <tomsmeding> boxscape: this specific instance
2021-06-22 12:07:10 +0000 <boxscape> ah, yeah, that sounds difficult
2021-06-22 12:07:25 +0000 <tomsmeding> yeah I know that you can disable particular notes wholesale; not talking about that
2021-06-22 12:09:06 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-06-22 12:10:11 +0000 <merijn> HLint is great...if your opinions on formatting/writing Haskell overlap for 95% with Neil Mitchell :p
2021-06-22 12:10:29 +0000 <maerwald> Then it tries to tell me that I should avoid `maybe` for golfing reasons
2021-06-22 12:10:30 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2021-06-22 12:10:46 +0000 <tomsmeding> or replace a non-trivial do block with applicative style :p
2021-06-22 12:12:40 +0000 <maerwald> and then people think it's so useful, they have to include it as ERRORS in their CI, so now you got increased roundtrip times for fixing nonsensical stuff... or remember to run it before pushing
2021-06-22 12:13:13 +0000 <maerwald> Then have annoyieg discussions about why you disabled a suggestion
2021-06-22 12:13:59 +0000 <maerwald> "because it's nonsense" apparently isn't enough :p
2021-06-22 12:14:02 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-22 12:14:11 +0000 <stevenxl> morning folks
2021-06-22 12:16:00 +0000 <maerwald> linters are placebo for code cleanliness
2021-06-22 12:16:57 +0000korayal(~Koray_Al@213.14.171.115) (Quit: WeeChat 3.3-dev)
2021-06-22 12:17:08 +0000korayal(~Koray_Al@213.14.171.115)
2021-06-22 12:17:27 +0000korayal(~Koray_Al@213.14.171.115) (Changing host)
2021-06-22 12:17:27 +0000korayal(~Koray_Al@user/korayal)
2021-06-22 12:17:49 +0000korayal(~Koray_Al@user/korayal) (Client Quit)
2021-06-22 12:17:59 +0000korayal(~Koray_Al@user/korayal)
2021-06-22 12:20:55 +0000korayal(~Koray_Al@user/korayal) (Client Quit)
2021-06-22 12:21:06 +0000korayal(~Koray_Al@user/korayal)
2021-06-22 12:21:17 +0000 <dminuoso> merijn: Yeah this is precisely why I dont also use ormolu.
2021-06-22 12:21:25 +0000 <dminuoso> I dont need someone else dictating their style on me.
2021-06-22 12:21:45 +0000 <dminuoso> stylish-haskell's way of formatting import lists matches what I do anyway, so I use it for nothing but import list formatting
2021-06-22 12:22:42 +0000tomsmeding. o O ( users 1, 3, 4, 5 on this list are non-fans of linters and formatters https://ircbrowse.tomsmeding.com/nicks/lchaskell/all )
2021-06-22 12:23:33 +0000 <tomsmeding> maerwald is a bit further down the list on the old freenode haskell stats :p
2021-06-22 12:25:30 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 12:25:45 +0000chddr(~Thunderbi@31.148.23.125) (Quit: chddr)
2021-06-22 12:29:24 +0000 <merijn> I'm simultaneously sad and glad the old ircbrowse stats died
2021-06-22 12:29:40 +0000 <merijn> because they made me look like a slacker xD
2021-06-22 12:29:48 +0000ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-22 12:29:57 +0000Feuermagier_(~Feuermagi@2a02:2488:4211:3400:5def:8486:9e4:b49a)
2021-06-22 12:30:18 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 264 seconds)
2021-06-22 12:30:45 +0000ukari(~ukari@user/ukari)
2021-06-22 12:31:23 +0000 <tomsmeding> merijn: you're still on top in the freenode stats
2021-06-22 12:31:38 +0000 <merijn> Yes
2021-06-22 12:31:43 +0000 <merijn> but not nearly as much as before >.>
2021-06-22 12:32:19 +0000AlexNoo(~AlexNoo@178.34.150.65)
2021-06-22 12:32:43 +0000Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds)
2021-06-22 12:33:14 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 12:33:43 +0000Alex_test(~al_test@178.34.150.65)
2021-06-22 12:34:23 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-22 12:34:39 +0000AlexZenon(~alzenon@178.34.150.65)
2021-06-22 12:37:47 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 252 seconds)
2021-06-22 12:38:06 +0000 <boxscape> tomsmeding: I don't use either of those things, so I guess that completes the set
2021-06-22 12:38:13 +0000 <tomsmeding> nice
2021-06-22 12:39:06 +0000 <maerwald> I used to use formatters, but then I realized they're just a form of OCD treatment
2021-06-22 12:39:16 +0000 <tomsmeding> perhaps there is a non-trivial (indirect) causal relationship between "uses IRC" and "doesn't like software to decide code formatting for them"
2021-06-22 12:39:41 +0000 <tomsmeding> where maerwald doesn't count because you use matrix
2021-06-22 12:39:56 +0000 <maerwald> no, I'm on Irc and matrix
2021-06-22 12:40:04 +0000Morrow(~MorrowM_@147.161.8.246) (Remote host closed the connection)
2021-06-22 12:40:21 +0000 <maerwald[m]> maerwald: right
2021-06-22 12:40:22 +0000azeem(~azeem@dynamic-adsl-84-220-246-6.clienti.tiscali.it) (Ping timeout: 252 seconds)
2021-06-22 12:40:22 +0000Morrow(~MorrowM_@147.161.8.246)
2021-06-22 12:40:28 +0000 <tomsmeding> :D
2021-06-22 12:40:34 +0000 <tomsmeding> ok then double
2021-06-22 12:40:46 +0000tomsmedingwonders why you're on both
2021-06-22 12:41:06 +0000 <maerwald> different clients... irc client on mobile can be wonky
2021-06-22 12:41:22 +0000 <tomsmeding> ah yes mobile clients for irc, the swampfest
2021-06-22 12:41:39 +0000 <tomsmeding> freenode has an app now!
2021-06-22 12:42:20 +0000 <maerwald> Revolution IRC works, ish, but it can swallow DMs that I have to recover by logging into my bouncer and grepping through files
2021-06-22 12:42:25 +0000 <maerwald> software. ..
2021-06-22 12:42:46 +0000 <tomsmeding> it can swallow DMs? that's good to know I guess
2021-06-22 12:42:55 +0000 <tomsmeding> also it eats a lot of battery
2021-06-22 12:44:10 +0000 <maerwald> yeah, DM windows get closed after a reconnect or so
2021-06-22 12:44:21 +0000 <maerwald> which is... a lot on mobile
2021-06-22 12:44:32 +0000tomsmedingdoesn't have that problem, perhaps it's some interaction with the bouncer? I'm using znc
2021-06-22 12:44:39 +0000 <maerwald> me too
2021-06-22 12:44:46 +0000 <maerwald> weechat works normal
2021-06-22 12:44:52 +0000 <tomsmeding> ¯\_(ツ)_/¯
2021-06-22 12:45:03 +0000 <maerwald> gg
2021-06-22 12:46:34 +0000mikail__(~mikail@90.212.77.3)
2021-06-22 12:46:58 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net)
2021-06-22 12:47:51 +0000azeem(~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it)
2021-06-22 12:49:27 +0000mikail_(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Ping timeout: 268 seconds)
2021-06-22 12:49:56 +0000 <trcc> Off-topic, but people are usually good to come up with stuff in here: I am to argue in a funding application for an open-source library (paid (very cheap) if commercial use -> money goes to non-for-profit association). How can I argue over big industrial products by e.g. Siemens on anything else than price? A pricey tool can provide 24/7 support, a overwhelming amount of features, great user-interface etc. Any ideas on pote
2021-06-22 12:49:56 +0000 <trcc> ntial ideas?
2021-06-22 12:50:43 +0000 <trcc> No vendor lock-in is one... Open-source is of course another
2021-06-22 12:51:05 +0000 <trcc> but typically such industrial tools supports customization
2021-06-22 12:51:42 +0000Wally(~Wally@dragonbox/forum-staff/wally)
2021-06-22 12:52:00 +0000 <maerwald> you mean why open source is better than. ..what?
2021-06-22 12:53:17 +0000 <trcc> a commercial tool from the point of view of industry.
2021-06-22 12:53:31 +0000 <trcc> anything else to compete on except price?
2021-06-22 12:54:06 +0000 <maerwald> It allows to build an ecosystem of contributors
2021-06-22 12:54:39 +0000 <maerwald> More coverage/users, potentially, for early stage products
2021-06-22 12:55:00 +0000 <trcc> many commercial tools do so as well through plugins
2021-06-22 12:55:22 +0000 <maerwald> Not in the same way, no
2021-06-22 12:55:37 +0000v01d4lph4(~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
2021-06-22 12:56:15 +0000v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-22 12:56:51 +0000Ariakenom(~Ariakenom@2001:9b1:efb:fc00:69d4:ccfd:e578:282b) (Ping timeout: 268 seconds)
2021-06-22 12:56:58 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 12:57:09 +0000 <maerwald> Then there's the ethical dimension snd the security dimension. for the latter you can find tons of posts from Bruce Schneier
2021-06-22 12:58:12 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 12:58:19 +0000 <trcc> The ethical is an easy one. The security dimension is more tough.
2021-06-22 12:58:29 +0000 <trcc> I will target a bit on the ethical part
2021-06-22 12:58:35 +0000 <maerwald> there's also the trust argument: would you put your money on a proprietary blockchain?
2021-06-22 12:58:38 +0000 <trcc> Can you elaborate on "not in the same way"?
2021-06-22 12:58:44 +0000jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-22 12:59:06 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-22 12:59:14 +0000 <maerwald> Linux Kernel
2021-06-22 12:59:36 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 12:59:49 +0000involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net)
2021-06-22 13:00:14 +0000 <maerwald> there's also the "it's more like the science approach " argument
2021-06-22 13:00:53 +0000 <maerwald> not much more so salvage, except marketing those arguments more fancy
2021-06-22 13:01:05 +0000v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 268 seconds)
2021-06-22 13:01:09 +0000alx741(~alx741@181.196.68.152)
2021-06-22 13:03:11 +0000Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Ping timeout: 258 seconds)
2021-06-22 13:04:03 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Remote host closed the connection)
2021-06-22 13:04:20 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-22 13:06:47 +0000 <trcc> hehe ye. Thanks
2021-06-22 13:07:06 +0000hseg(~gesh@185.120.126.29) (Ping timeout: 265 seconds)
2021-06-22 13:08:53 +0000kuribas(~user@ptr-25vy0i89phmaoo2wmls.18120a2.ip6.access.telenet.be)
2021-06-22 13:10:48 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-22 13:11:55 +0000Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-06-22 13:12:43 +0000Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-22 13:12:46 +0000Wally(~Wally@dragonbox/forum-staff/wally) (https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-06-22 13:13:10 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-22 13:14:09 +0000 <lwe[m]> Hey guys, I’d love to learn Haskell. Can you recommend any books, tutors?
2021-06-22 13:14:18 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2021-06-22 13:14:45 +0000 <maerwald> @where learnhaskell
2021-06-22 13:14:45 +0000 <lambdabot> https://wiki.haskell.org/Learning_Haskell
2021-06-22 13:15:06 +0000waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-22 13:15:14 +0000 <maerwald> @where cis192
2021-06-22 13:15:14 +0000 <lambdabot> I know nothing about cis192.
2021-06-22 13:15:47 +0000 <maerwald> @where cis194
2021-06-22 13:15:47 +0000 <lambdabot> https://www.seas.upenn.edu/~cis194/spring13/lectures.html
2021-06-22 13:15:58 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-22 13:16:05 +0000 <maerwald> lwe[m]: ^
2021-06-22 13:16:10 +0000 <lwe[m]> Thank you 💕
2021-06-22 13:16:44 +0000 <rawles> It sounds really obvious, but I found with Haskell more than other languages that having my own mini-project to try to realise in code, even if it wasn't the best code, really helped me learn.
2021-06-22 13:16:50 +0000bontaq`(~user@ool-18e47f8d.dyn.optonline.net)
2021-06-22 13:17:03 +0000 <rawles> But I'm still very much a beginner!
2021-06-22 13:17:46 +0000 <lwe[m]> What your pet project is about?
2021-06-22 13:18:14 +0000bontaq`bontaq
2021-06-22 13:18:27 +0000 <rawles> My first ever one was to store and process GPS traces of my favourite hikes.
2021-06-22 13:18:31 +0000AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-06-22 13:18:52 +0000 <rawles> I had to think about data structures, and pipelines of functions that would perform the transformations I needed.
2021-06-22 13:19:03 +0000sekun(~sekun@180.190.208.125)
2021-06-22 13:19:33 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-22 13:21:38 +0000 <jumper149> Is it possible to view a servant API in some form of tree?
2021-06-22 13:22:24 +0000 <sekun> This is just a hypothetical question. I've read on Reddit that GHC has accumulated a lot of baggage in the past 30 years of its development. How can this issue be addressed? Is a full rewrite of GHC a reasonable thing, or would it be better to just fix them along the way with the current GHC?
2021-06-22 13:22:48 +0000nerdypepper(~nerdypepp@user/nerdypepper) (Quit: bye)
2021-06-22 13:23:27 +0000hendursaga(~weechat@user/hendursaga) (Quit: hendursaga)
2021-06-22 13:24:18 +0000trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-06-22 13:24:50 +0000trcc(~trcc@130.225.16.16)
2021-06-22 13:25:14 +0000nerdypepper(~nerdypepp@user/nerdypepper)
2021-06-22 13:30:24 +0000 <lyxia> even without whatever baggage GHC is a huge thing. A rewrite would not go well.
2021-06-22 13:30:24 +0000hendursaga(~weechat@user/hendursaga)
2021-06-22 13:30:26 +0000kw(~user@152.1.137.158)
2021-06-22 13:30:36 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 13:30:37 +0000maroloccio(~marolocci@189.15.9.54) (Ping timeout: 246 seconds)
2021-06-22 13:30:55 +0000MorrowM(~MorrowM_@147.161.12.3)
2021-06-22 13:31:19 +0000 <merijn> sekun: What baggage do you imagine could be removed?
2021-06-22 13:32:23 +0000maroloccio(~marolocci@189.15.9.54)
2021-06-22 13:33:10 +0000 <kw> Is it possible to write a function `traverseAlt :: (Alternative m)=> (a -> m b) -> NonEmpty a -> m (NonEmpty b)` , where, for instance, `traverseAlt (const empty)` === `empty` ? Or would that require a `Monad` constraint?
2021-06-22 13:33:39 +0000hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-22 13:33:54 +0000Morrow(~MorrowM_@147.161.8.246) (Ping timeout: 252 seconds)
2021-06-22 13:34:14 +0000 <sekun> merijn: (i'm not sure how to reply in IRC sorry). I'm not sure either. I just started with this language a couple months ago. I just see it get thrown here and there on /r/Haskell
2021-06-22 13:34:50 +0000 <sekun> lyxia: Oh ok. So incremental refactors is the only realistic option?
2021-06-22 13:34:59 +0000 <lyxia> yes
2021-06-22 13:35:46 +0000 <sekun> I see
2021-06-22 13:35:57 +0000qrpnxz(~qrpnxz@user/qrpnxz)
2021-06-22 13:36:02 +0000 <justsomeguy> (Sometimes I wonder why there aren't more Haskell compilers, maybe only covering the subset of Haskell 2010, as opposed to modern Haskell with tons of language extensions.)
2021-06-22 13:36:58 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 13:39:02 +0000 <qrpnxz> even w/o extensions it would be pretty hard to make a haskell compiler, but without extentions it would be hard to compete as well
2021-06-22 13:39:27 +0000 <even4void> resp <- 2:5
2021-06-22 13:39:27 +0000 <even4void> idx <- grep("4cat", names(d))[1:12]
2021-06-22 13:39:27 +0000 <even4void> pca <- PCA(d[, idx], graph = FALSE)
2021-06-22 13:39:32 +0000 <lyxia> kw: is the idea that if one element fails in a list of more than one, you still get the others in the result?
2021-06-22 13:39:47 +0000 <even4void> Wrong terminal window -- sorry for the noise!
2021-06-22 13:40:54 +0000chomwitt(~Pitsikoko@athedsl-351576.home.otenet.gr)
2021-06-22 13:41:13 +0000 <[exa]> sekun, justsomeguy: ghc is "too good" for any simple side development to succeed, or even become visible quickly. Many people tried, tbh.
2021-06-22 13:41:25 +0000janiczek(~janiczek@89-24-215-117.customers.tmcz.cz) (Ping timeout: 265 seconds)
2021-06-22 13:41:54 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-06-22 13:41:56 +0000Ariakenom(~Ariakenom@2001:9b1:efb:fc00:c14c:3118:b974:8ae3)
2021-06-22 13:42:01 +0000li(~li@libera/staff/li) ()
2021-06-22 13:42:19 +0000 <maerwald> You can't even do transformers in haskell 2010, can you?
2021-06-22 13:42:52 +0000 <maerwald> Or maybe not mtl
2021-06-22 13:42:53 +0000qrpnxz(~qrpnxz@user/qrpnxz) (Error from remote client)
2021-06-22 13:42:58 +0000 <[exa]> I kindof expect that we're not getting a different haskell compiler without some significant scientifical development happening, that would e.g. substantiate a completely different type system internals or compilation method
2021-06-22 13:43:15 +0000 <Taneb> maerwald: I think transformers is fine but mtl needs multiparam type classes and fundeps
2021-06-22 13:43:38 +0000 <Taneb> And undecidable instances, too
2021-06-22 13:43:40 +0000thyriaen(~thyriaen@45.178.73.238)
2021-06-22 13:45:03 +0000 <thyriaen> Howdy, friends :: I am going through a tutorial and have solved an exercise - however it feels like i did not really embrace the functional way in my answer : what would be a more ideal way to achive doubleing every 2nd entry from the back ? https://hastebin.com/neholubeke.yaml
2021-06-22 13:45:09 +0000 <tomsmeding> justsomeguy: Helium exists https://github.com/Helium4Haskell/helium
2021-06-22 13:45:40 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection)
2021-06-22 13:45:40 +0000hmmmas(~chenqisu1@183.217.200.246)
2021-06-22 13:45:52 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 13:46:08 +0000 <[exa]> thyriaen: generate both possibilities on the way, and return the one that matches once you reach the end
2021-06-22 13:46:09 +0000 <tomsmeding> it has a focus on better-quality type errors
2021-06-22 13:46:11 +0000 <Taneb> thyriaen: I'd have two functions that call each other. One which doubles the odd elements and one which doubles the even elements. Calling "length" every recursive step is generally a sign you're doing something wrong
2021-06-22 13:46:45 +0000 <thyriaen> Taneb, so 2 recursive functions calling eachother alternatingly ?
2021-06-22 13:47:01 +0000 <Taneb> Yeah
2021-06-22 13:47:02 +0000 <thyriaen> Taneb, yeath thats what i thought so too about the length thaths why i came here
2021-06-22 13:47:20 +0000 <thyriaen> ok thanks
2021-06-22 13:47:40 +0000 <sekun> exa: Bummer. Yeah I just checked the Haskell about its compilers, and all the others pretty much ate GHC's dust
2021-06-22 13:48:16 +0000 <thyriaen> Taneb, but the way i see it - that doubles them from the front not form the back
2021-06-22 13:48:35 +0000 <Taneb> thyriaen: oh, hmm
2021-06-22 13:48:58 +0000 <Taneb> thyriaen: I didn't see that. In which case, listen to what [exa] wrote
2021-06-22 13:48:59 +0000qrpnxz(~qrpnxz@user/qrpnxz)
2021-06-22 13:49:06 +0000 <[exa]> sekun: I'd say that technically reproducing SOME haskell isn't even a really complex task now, there are perfect tutorials for everything and type system and runtime approaches are well documented. But you kinda want a haskell that can run the stuff on Hackage, which uses a ton of the tiny extensions
2021-06-22 13:49:19 +0000 <[exa]> which puts QUITE some overhead into the task
2021-06-22 13:49:30 +0000 <thyriaen> [exa], not really sure how to do that
2021-06-22 13:50:12 +0000 <thyriaen> Taneb, reversing the function twice is also bad form, right ?
2021-06-22 13:50:37 +0000 <Taneb> It's better than taking the length every step but yes
2021-06-22 13:50:45 +0000Morrow_(~MorrowM_@147.161.9.235)
2021-06-22 13:51:16 +0000 <[exa]> thyriaen: let's play lego. Try to combine `repeat [id,(*2)]` with `zipWith`, and write a `isEvenLength` that doesn't use `length` because we don't need them ugly integers right?
2021-06-22 13:52:48 +0000 <thyriaen> is repeat a haskell function ?
2021-06-22 13:52:54 +0000 <[exa]> yap
2021-06-22 13:52:54 +0000 <Taneb> Yes
2021-06-22 13:53:27 +0000 <[exa]> you probably won't be able to print the result of this one (unless your ghci has magicks), but you can try `repeat [1,2,3]`
2021-06-22 13:53:43 +0000 <[exa]> actually I meant `cycle`, sorry
2021-06-22 13:54:00 +0000 <[exa]> `cycle [id, (*2)]` or `cycle [1,2,3]`, yeah. :D
2021-06-22 13:54:07 +0000MorrowM(~MorrowM_@147.161.12.3) (Ping timeout: 268 seconds)
2021-06-22 13:55:03 +0000janiczek(~janiczek@89-24-215-117.customers.tmcz.cz)
2021-06-22 13:56:03 +0000trcc(~trcc@130.225.16.16) (Remote host closed the connection)
2021-06-22 13:56:16 +0000 <[exa]> anyway, for the first implementation, I wouldn't object just doing the stuff on a reversed list
2021-06-22 13:56:31 +0000trcc(~trcc@130.225.16.16)
2021-06-22 13:56:45 +0000derelict(~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-06-22 13:57:00 +0000derelict(~derelict@user/derelict)
2021-06-22 13:57:34 +0000vicfred(~vicfred@user/vicfred)
2021-06-22 13:57:54 +0000 <thyriaen> you mean cycle [1,2] right ?
2021-06-22 13:58:05 +0000Feuermagier_(~Feuermagi@2a02:2488:4211:3400:5def:8486:9e4:b49a) (Ping timeout: 252 seconds)
2021-06-22 13:59:14 +0000 <[exa]> yes, that may also be useful
2021-06-22 13:59:40 +0000janiczek(~janiczek@89-24-215-117.customers.tmcz.cz) (Ping timeout: 268 seconds)
2021-06-22 13:59:57 +0000 <thyriaen> [exa], cause with a cycled [1,2] list i can then ZipWith that with * to double every 2nd element
2021-06-22 14:00:09 +0000 <[exa]> yeah
2021-06-22 14:00:53 +0000 <[exa]> with the thing I wrote above, you can save some multiplication-by-1, using `zipWith ($) (repeat [id,(*2)]) yourNums`
2021-06-22 14:01:06 +0000 <thyriaen> $ ?
2021-06-22 14:01:38 +0000 <[exa]> that's the same $ that you use for writing `f 1 (2+3)` as `f 1 $ 2+3`
2021-06-22 14:02:03 +0000 <thyriaen> i have not reached $ yet
2021-06-22 14:02:10 +0000 <[exa]> ah okay worry not then
2021-06-22 14:02:12 +0000trcc(~trcc@130.225.16.16) (Ping timeout: 265 seconds)
2021-06-22 14:02:18 +0000 <thyriaen> yes
2021-06-22 14:02:19 +0000 <[exa]> it just applies function on the left to the parameter on the right
2021-06-22 14:02:26 +0000 <thyriaen> cool
2021-06-22 14:02:38 +0000 <[exa]> really can avoid a lot of )))))))))))))
2021-06-22 14:03:28 +0000 <thyriaen> so if i would write isEvenLength, i would go through the list and return a boolean depending when the list ends
2021-06-22 14:03:29 +0000wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-22 14:03:30 +0000o1lo01ol1o(~o1lo01ol1@bl7-89-228.dsl.telepac.pt)
2021-06-22 14:04:03 +0000 <[exa]> e.g. `pure (f 1 (g 2 3))` can be written as `pure $ f 1 $ g 2 3`
2021-06-22 14:04:05 +0000notzmv(~zmv@user/notzmv)
2021-06-22 14:05:15 +0000 <[exa]> thyriaen: yeah. Note you don't produce the unnecessary Int in the process
2021-06-22 14:06:03 +0000Morrow_(~MorrowM_@147.161.9.235) (Ping timeout: 258 seconds)
2021-06-22 14:06:08 +0000 <thyriaen> [exa], so i my case i have a function toDigitsRev :: Integer -> [Integer] and i can just write reverse $ toDigitsRev [1,2] instead of reverse(toDigitsRev [1,2]) ?
2021-06-22 14:06:33 +0000 <[exa]> yeah that should work
2021-06-22 14:07:03 +0000 <[exa]> (at least if there aren't any more parameters to reverse, which I guess there isn't)
2021-06-22 14:07:12 +0000 <[exa]> (aren't)
2021-06-22 14:07:25 +0000 <thyriaen> [exa], okay thanks - I didn't fully understand how i can put these things together, but let me write up the single functions and fiddle with them a bit
2021-06-22 14:07:36 +0000 <thyriaen> then ill be back if i can still not get the answer
2021-06-22 14:07:58 +0000 <[exa]> ok
2021-06-22 14:08:24 +0000 <[exa]> extra inspiration for avoiding explicit Booleans: compare (tail $ cycle [1,2]) and (id $ cycle [1,2])
2021-06-22 14:08:50 +0000slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-22 14:08:51 +0000 <thyriaen> is id a keyword ?
2021-06-22 14:09:22 +0000 <[exa]> no, just a normal function that doesn't change the parameter
2021-06-22 14:09:26 +0000 <thyriaen> ok
2021-06-22 14:09:37 +0000 <[exa]> pretty useful for various placeholding and dummy values
2021-06-22 14:09:49 +0000 <nitrix> id x = x
2021-06-22 14:10:22 +0000 <thyriaen> its just the idendity function
2021-06-22 14:10:29 +0000 <[exa]> yes
2021-06-22 14:11:28 +0000 <thyriaen> doesnt cycle need another argument how many times it needs to cycle ?
2021-06-22 14:11:47 +0000janiczek(~janiczek@89-24-215-117.customers.tmcz.cz)
2021-06-22 14:11:48 +0000fendor_(~fendor@178.115.129.107.wireless.dyn.drei.com)
2021-06-22 14:11:56 +0000 <Taneb> thyriaen: nope, it just keeps going
2021-06-22 14:12:10 +0000Xraell(~yourname@45.157.15.145) (Remote host closed the connection)
2021-06-22 14:13:06 +0000 <thyriaen> how can i make it stop T_T cycle 3 [1,2] ?
2021-06-22 14:13:48 +0000 <tdammers> you can just take as much of it as you need
2021-06-22 14:13:58 +0000 <thyriaen> tdammers, haha
2021-06-22 14:14:00 +0000 <nitrix> cycle produces an infinite list but you can take a shorter list from that list.
2021-06-22 14:14:14 +0000fendor(~fendor@91.141.3.62.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-06-22 14:15:01 +0000 <tdammers> I was being serious. Remember that Haskell does non-strict evaluation by default, so just let-binding an expression that would evaluate to an infinitely long list does not actually allocate an infinitely long list in memory, nor does it take infinitely long to bind it
2021-06-22 14:15:17 +0000 <tdammers> that list only gets evaluated as far as is demanded
2021-06-22 14:15:41 +0000 <tdammers> so if you say `take 10 (cycle [1,2])`, it'll evaluate as many list items as necessary to get you the first 10 elements
2021-06-22 14:15:52 +0000safinaskar(~safinaska@109.252.90.89)
2021-06-22 14:15:55 +0000 <thyriaen> tdammers, it was funny because i did not know there was a "take" function and id did sound so natural to just take a few
2021-06-22 14:16:10 +0000 <tdammers> well, yeah, it's called take for a reason
2021-06-22 14:16:15 +0000 <thyriaen> ;p
2021-06-22 14:16:26 +0000 <safinaskar> hi. https://hackage.haskell.org/package/base-4.12.0.0/docs/Control-Applicative.html says that "fmap f x = pure f <*> x" follows from other applicative laws. how to prove this?
2021-06-22 14:16:45 +0000 <nitrix> Alternatively, you could use `replicate`, which accepts a number of times and something to replicate, so `replicate 3 [1,2]`, but that would produce the list [[1,2], [1,2], [1,2]] which you would then have to concatenate them all as [1,2,1,2,1,2] with the function `concat`.
2021-06-22 14:17:10 +0000 <nitrix> % concat $ replicate 3 [1,2]
2021-06-22 14:17:10 +0000 <yahb> nitrix: [1,2,1,2,1,2]
2021-06-22 14:17:38 +0000Sgeo(~Sgeo@user/sgeo)
2021-06-22 14:18:30 +0000 <nitrix> It avoids the little bit of arithmetic of multiplying the cycle count with the cycle length to `take` the right amount.
2021-06-22 14:22:46 +0000 <[exa]> thyriaen: zipWith automagically truncates the longer list for you
2021-06-22 14:22:49 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-06-22 14:23:21 +0000 <[exa]> > zipWith (+) (cycle [1,2]) [1,2,3,4]
2021-06-22 14:23:23 +0000 <lambdabot> [2,4,4,6]
2021-06-22 14:24:04 +0000 <lyxia> safinaskar: \f x -> pure f <*> x satisfies the functor laws and by parametricity there is only one function that satisfies the functor laws.
2021-06-22 14:24:56 +0000 <safinaskar> lyxia: "parametricity" - you mean theorems for free?
2021-06-22 14:25:04 +0000 <lyxia> yes
2021-06-22 14:25:09 +0000 <safinaskar> thanks
2021-06-22 14:26:57 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 14:27:00 +0000 <kw> `<*>` still has to satisfy the Applicative laws for that to work, though.
2021-06-22 14:27:23 +0000 <lyxia> yeah but the question is about why the docs say "follows from the other applicative laws"
2021-06-22 14:27:23 +0000 <kw> As does `pure` .
2021-06-22 14:28:16 +0000fendor_fendor
2021-06-22 14:30:03 +0000 <kw> Right. I'm just saying that 'It follows from the Applicative laws' by parametricity.' does not explain why that is true.
2021-06-22 14:31:06 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 240 seconds)
2021-06-22 14:31:36 +0000kw(~user@152.1.137.158) (Quit: work)
2021-06-22 14:32:35 +0000finsternis(~X@23.226.237.192)
2021-06-22 14:33:11 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-06-22 14:33:22 +0000trent2(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 244 seconds)
2021-06-22 14:35:27 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-22 14:38:17 +0000 <thyriaen> [exa], neat ! how considerate of zipWith
2021-06-22 14:38:32 +0000safinaskar(~safinaska@109.252.90.89) ()
2021-06-22 14:39:06 +0000 <thyriaen> [exa], but in essence, i have to run length on my initial list first to check which one to take, no ?
2021-06-22 14:39:31 +0000 <thyriaen> or how do i get the oddness of the list without the explict boolean ?
2021-06-22 14:40:10 +0000cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.1)
2021-06-22 14:40:33 +0000Guest31(~Guest31@202.166.32.155)
2021-06-22 14:42:41 +0000 <Guest31> is this the correct place to ask beginner questions regarding Haskell? I just started on the fp-course on windows and was facing some difficulty with basic setup
2021-06-22 14:44:12 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
2021-06-22 14:45:09 +0000peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 258 seconds)
2021-06-22 14:45:16 +0000 <[exa]> thyriaen: you can return `id` if the length's even or `tail` if the length is odd, and just apply that to the `cycle [1,2]` to conditionally drop the first item
2021-06-22 14:45:48 +0000curiousgay(~curiousgg@178.217.208.8) (Remote host closed the connection)
2021-06-22 14:45:53 +0000peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-22 14:46:05 +0000curiousgay(~curiousgg@178.217.208.8)
2021-06-22 14:46:18 +0000 <thyriaen> [exa], yea - but in order to determine that i have to first check if the length is indeed odd or even
2021-06-22 14:46:21 +0000 <thyriaen> i cannot get around that
2021-06-22 14:46:54 +0000hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-22 14:47:23 +0000 <L29Ah> hello, i'm trying to use the new OverloadedRecordDot syntax extension, i've enabled it and dependencies, and now have the following error in irrelevant code:
2021-06-22 14:47:23 +0000 <L29Ah> Not in scope: ‘setField’
2021-06-22 14:47:23 +0000 <L29Ah> 94 | let preTAM = def{salt = salt}
2021-06-22 14:47:28 +0000 <L29Ah> do i need to import something else?
2021-06-22 14:47:58 +0000mikail__(~mikail@90.212.77.3) (Ping timeout: 252 seconds)
2021-06-22 14:50:32 +0000hounded(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com)
2021-06-22 14:50:58 +0000 <hounded> #
2021-06-22 14:51:25 +0000nerdypepper(~nerdypepp@user/nerdypepper) (Quit: bye)
2021-06-22 14:51:26 +0000 <Guest31> i've cloned the fp-course directory and used chocolatey to install make; i've also installed stack and am able to execute stack ghci without issue for example. However if i try make GHCI i get the following error:
2021-06-22 14:51:30 +0000 <Guest31> STACK_YAML="stack.yaml" stack ghci course:lib
2021-06-22 14:51:30 +0000 <Guest31> 'STACK_YAML' is not recognized as an internal or external command,
2021-06-22 14:51:30 +0000wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-22 14:51:31 +0000 <Guest31> operable program or batch file.
2021-06-22 14:51:31 +0000 <Guest31> make: *** [Makefile:22: ghci] Error 1
2021-06-22 14:52:24 +0000 <Guest31> if anyone could help with this it would be greatly appreciated; I'm trying to get this to work on a windows 10 machine for reference. Am a haskell beginner trying to do the fp-course
2021-06-22 14:52:42 +0000nerdypepper(~nerdypepp@user/nerdypepper)
2021-06-22 14:52:50 +0000 <Las[m]> This isn't really a solution, but I suggest you'd really do all development through WSL
2021-06-22 14:53:34 +0000derelict(~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-06-22 14:54:24 +0000 <Las[m]> Does anyone know why you can't call into Haskell again from an unsafe foreign call?
2021-06-22 14:54:59 +0000 <jiribenes> Guest31: maybe try first setting the variable, 'SET STACK_YAML="stack.yaml"' and then run 'stack ghci course:lib'?
2021-06-22 14:55:09 +0000 <merijn> Las[m]: Because the capability is locked
2021-06-22 14:56:08 +0000 <Las[m]> merijn: Thanks that makes sense
2021-06-22 14:56:23 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-22 14:57:05 +0000 <Guest31> jiribenes: do you mean setting an environment variable? sorry i'm really new and not sure where i should change this setting
2021-06-22 14:58:21 +0000 <jiribenes> Guest31: try first writting the command 'SET STACK_YAML="stack.yaml"' to the command line
2021-06-22 14:58:32 +0000 <jiribenes> and after that write 'stacj ghci course:lib'
2021-06-22 14:58:42 +0000 <jiribenes> sorry, 'stack ghci course:lib'
2021-06-22 14:58:44 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection)
2021-06-22 14:58:54 +0000 <Guest31> Getting project config file from STACK_YAML environment
2021-06-22 14:58:54 +0000 <Guest31> InvalidAbsFile "D:\\Documents\\GitHub\\fp-course\\\"stack.yaml\""
2021-06-22 14:59:11 +0000 <Guest31> i just tried that; it then gives me this error
2021-06-22 14:59:50 +0000 <jiribenes> maybe try setting it without the quote marks, that is 'SET STACK_YAML=stack.yaml'
2021-06-22 15:00:10 +0000GIANTWORLDKEEPER(~pjetcetal@2.95.227.207) (Quit: EXIT)
2021-06-22 15:00:59 +0000 <Guest31> jiribenes: it worked!! thank you so much
2021-06-22 15:03:33 +0000 <Guest31> can I also ask if anyone knows where stack downloads its files? and if its possible to change this. Reading through the documentation it sounded like stack downloads a local copy of ghc for each project? i'm not sure if i understood correctly
2021-06-22 15:04:08 +0000 <Guest31> not really an issue at present; but in general if stack sets up and downloads files for me to do things, i was hoping to check where the downloaded files go
2021-06-22 15:05:25 +0000 <Boarders> Does anyone know if in a stack yaml file if I can overwrite a $everything flag with a $locals flag, e.g. if I pass `-O2` to $everything and -O1 to $locals then which one wins?
2021-06-22 15:08:51 +0000o1lo01ol1o(~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Remote host closed the connection)
2021-06-22 15:14:42 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:f76a:37dd:7d13:fae6) (Ping timeout: 264 seconds)
2021-06-22 15:15:09 +0000martinjaniczek(~janiczek@89-24-44-164.nat.epc.tmcz.cz)
2021-06-22 15:15:49 +0000janiczek(~janiczek@89-24-215-117.customers.tmcz.cz) (Ping timeout: 258 seconds)
2021-06-22 15:16:11 +0000argento(~argent0@168-227-96-26.ptr.westnet.com.ar)
2021-06-22 15:16:57 +0000safinaskar(~safinaska@109.252.90.89)
2021-06-22 15:18:01 +0000Guest31(~Guest31@202.166.32.155) (Quit: Client closed)
2021-06-22 15:20:25 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-22 15:20:28 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 15:20:30 +0000sekun(~sekun@180.190.208.125) (Ping timeout: 265 seconds)
2021-06-22 15:20:38 +0000 <safinaskar> % proof :: forall (a :: *). (forall (x :: a). x :~: x) -> (forall (x :: a). x :~: x); proof = error ""
2021-06-22 15:20:38 +0000 <yahb> safinaskar: ; <interactive>:49:93: error:; * Couldn't match expected type `(forall (x :: a). x :~: x) -> forall (x :: a). x :~: x' with actual type `a0'; Cannot instantiate unification variable `a0'; with a type involving polytypes: (forall (x :: a). x :~: x) -> forall (x :: a). x :~: x; * In the expression: error ""; In an equation for `proof': proof = error ""; * Relevant bindings inc
2021-06-22 15:20:48 +0000 <safinaskar> why this gives compilation error?
2021-06-22 15:20:56 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection)
2021-06-22 15:21:08 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 15:21:16 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection)
2021-06-22 15:22:47 +0000GIANTWORLDKEEPER(~pjetcetal@2.95.227.207)
2021-06-22 15:22:54 +0000ezzieygu1wufezzieyguywuf
2021-06-22 15:23:13 +0000gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-06-22 15:23:16 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-22 15:23:31 +0000gentauro(~gentauro@user/gentauro)
2021-06-22 15:25:14 +0000derelict(~derelict@user/derelict)
2021-06-22 15:26:27 +0000 <c_wraith> safinaskar: the error message seems pretty specific "Cannot instantiate unification variable `a0'; with a type involving polytypes:"
2021-06-22 15:27:17 +0000 <c_wraith> safinaskar: that particular case might seem obvious, but the larger technique is not
2021-06-22 15:27:32 +0000 <safinaskar> c_wraith: okey, but how this is possible that (error "") cannot match with (proof)? (error) has type (forall a. String -> a)
2021-06-22 15:27:47 +0000 <safinaskar> c_wraith: so (error "") should match with everything, right?
2021-06-22 15:28:33 +0000 <c_wraith> safinaskar: because it needs to unify the type of (error "") with the type you provided
2021-06-22 15:28:52 +0000 <lyxia> "forall a" does not mean a can literally be anything in existence.
2021-06-22 15:28:52 +0000maroloccio(~marolocci@189.15.9.54) (Quit: Client closed)
2021-06-22 15:29:04 +0000 <c_wraith> safinaskar: and that unification fails because it would require a polytype
2021-06-22 15:29:17 +0000 <lyxia> there is a range of things a can be, and polytypes are not among them.
2021-06-22 15:29:19 +0000jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
2021-06-22 15:29:36 +0000 <c_wraith> safinaskar: What version of GHC are you using?
2021-06-22 15:30:40 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Quit: WeeChat 3.1)
2021-06-22 15:30:41 +0000 <safinaskar> c_wraith: 9.2.0.20210422 (latest which can be installed using ghcup)
2021-06-22 15:30:53 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net)
2021-06-22 15:31:05 +0000 <c_wraith> do you have -XImpredicativeTypes on?
2021-06-22 15:31:13 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Client Quit)
2021-06-22 15:31:27 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net)
2021-06-22 15:31:58 +0000 <c_wraith> I'm not sure about the limits of the new implementation for it. It *might* be able to handle this case.
2021-06-22 15:32:39 +0000 <safinaskar> c_wraith: lyxia: thanks, what are polytypes?
2021-06-22 15:33:33 +0000 <safinaskar> c_wraith: i didn't have ImpredicativeTypes . now i enabled it, and the code works. thanks!
2021-06-22 15:33:33 +0000martinjaniczek(~janiczek@89-24-44-164.nat.epc.tmcz.cz) (Read error: Connection reset by peer)
2021-06-22 15:34:14 +0000 <c_wraith> a polytype is essentially a type with a forall anywhere other than the top level
2021-06-22 15:34:16 +0000martinjaniczek(~janiczek@89-24-215-117.customers.tmcz.cz)
2021-06-22 15:35:03 +0000 <c_wraith> (I'm sure you could find some counterexamples that you need a more precise definition to deal with, but that's a good starting point)
2021-06-22 15:35:14 +0000 <lyxia> (short for "types with polymorphism")
2021-06-22 15:38:48 +0000 <c_wraith> In any case, -XImpredicativeTypes exists specifically to allow unification to work with polytypes
2021-06-22 15:39:07 +0000 <c_wraith> It has some limits - you can get sophisticated enough that it gives up.
2021-06-22 15:40:01 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Quit: WeeChat 3.1)
2021-06-22 15:40:42 +0000pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net)
2021-06-22 15:41:27 +0000 <monochrom> IIRC 9.2 uses what's on the QuickLook impredicavity paper, so it is fairly well-defined what it tries.
2021-06-22 15:42:17 +0000Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-22 15:43:45 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 15:43:46 +0000 <c_wraith> yeah, I just don't know what the limits are - I haven't read the paper.
2021-06-22 15:44:00 +0000 <monochrom> Ha nice ghcup knows 9.2 prerelease.
2021-06-22 15:47:52 +0000 <monochrom> The nice thing is if you don't know, but you have had experience and good habits in handwriting type sigs for ordinary Haskell code, you won't be surprised about where you need to handwrite types.
2021-06-22 15:48:18 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 264 seconds)
2021-06-22 15:48:22 +0000 <monochrom> A long way to say "intuitive" but it's a vague and much abused word.
2021-06-22 15:48:23 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 15:48:24 +0000Morrow_(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net)
2021-06-22 15:53:51 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-22 15:55:38 +0000lbseale(~lbseale@user/ep1ctetus)
2021-06-22 15:55:47 +0000Morrow_(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 265 seconds)
2021-06-22 15:56:10 +0000safinaskar(~safinaska@109.252.90.89) ()
2021-06-22 15:59:54 +0000oniko
2021-06-22 16:00:58 +0000fef(~thedawn@user/thedawn)
2021-06-22 16:01:59 +0000 <tomsmeding> % proof :: forall (a :: *). (forall (x :: a). x :~: x) -> (forall (x :: a). x :~: x); proof _ = error ""
2021-06-22 16:01:59 +0000 <yahb> tomsmeding:
2021-06-22 16:02:13 +0000 <tomsmeding> (added a _ argument)
2021-06-22 16:03:47 +0000xff0x(~xff0x@2001:1a81:5218:4800:1515:545a:1239:1833) (Ping timeout: 244 seconds)
2021-06-22 16:04:38 +0000xff0x(~xff0x@2001:1a81:5218:4800:ee:cf49:8e18:79e1)
2021-06-22 16:07:00 +0000Erutuon(~Erutuon@user/erutuon)
2021-06-22 16:07:01 +0000ArsenArsenArsen
2021-06-22 16:07:09 +0000ArsenArsenArsen
2021-06-22 16:07:42 +0000ArsenArsenArsen
2021-06-22 16:07:53 +0000moet(~moet@172.58.35.6)
2021-06-22 16:09:30 +0000pragma-garp
2021-06-22 16:09:34 +0000garppragma-
2021-06-22 16:10:47 +0000_________noodly
2021-06-22 16:10:51 +0000noodly__________
2021-06-22 16:11:01 +0000___________________
2021-06-22 16:12:26 +0000safinaskar(~safinaska@109.252.90.89)
2021-06-22 16:12:39 +0000 <safinaskar> why this code doesn't compile? https://paste.debian.net/1202044/
2021-06-22 16:13:06 +0000 <safinaskar> I see error: "Illegal equational constraint a ~ a (Use GADTs or TypeFamilies to permit this)"
2021-06-22 16:13:20 +0000 <safinaskar> how GADTs and TypeFamilies are related to my code?
2021-06-22 16:14:01 +0000 <Cale> They both need type equalities to work
2021-06-22 16:14:33 +0000 <Cale> It's possible that there ought to be a third extension TypeEqualities that they both imply, but there isn't.
2021-06-22 16:14:47 +0000 <tomsmeding> % proof :: forall (a :: *). (forall (x :: a). x :~: x) -> (forall (x :: a). x :~: x); proof _ = error "" -- safinaskar
2021-06-22 16:14:48 +0000 <yahb> tomsmeding:
2021-06-22 16:14:57 +0000 <tomsmeding> (note the _)
2021-06-22 16:15:51 +0000hrnzHenselierung
2021-06-22 16:15:56 +0000hiruji(~hiruji@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-22 16:16:13 +0000hiruji(~hiruji@user/hiruji)
2021-06-22 16:16:16 +0000 <safinaskar> Cale: thanks
2021-06-22 16:16:25 +0000lavaman(~lavaman@98.38.249.169)
2021-06-22 16:16:33 +0000 <safinaskar> tomsmeding: thanks. i already enabled typeimpredicativity, and it works
2021-06-22 16:17:13 +0000hiruji(~hiruji@user/hiruji) (Client Quit)
2021-06-22 16:17:17 +0000hounded_woodstoc(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com)
2021-06-22 16:17:29 +0000hounded_1969(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com)
2021-06-22 16:17:32 +0000hiruji(~hiruji@user/hiruji)
2021-06-22 16:18:11 +0000hiruji(~hiruji@user/hiruji) (Client Quit)
2021-06-22 16:18:29 +0000hiruji(~hiruji@user/hiruji)
2021-06-22 16:18:46 +0000 <thyriaen> i thought that the point of reduce & fold to use it on monoids so it doesnt matter in which order the operation is applied, why is there foldl foldr foldt - when i use it for + for example i dont care bout the order
2021-06-22 16:18:48 +0000hounded_1969(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Client Quit)
2021-06-22 16:20:05 +0000wagle(~wagle@quassel.wagle.io) (Ping timeout: 272 seconds)
2021-06-22 16:23:00 +0000wagle(~wagle@quassel.wagle.io)
2021-06-22 16:23:35 +0000chele(~chele@user/chele) (Remote host closed the connection)
2021-06-22 16:23:39 +0000 <Cale> thyriaen: Not necessarily
2021-06-22 16:24:03 +0000 <Cale> There are plenty of cases where the type of the result does not even match the type of elements in the list
2021-06-22 16:24:27 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 16:25:47 +0000safinaskar(~safinaska@109.252.90.89) ()
2021-06-22 16:25:54 +0000safinaskar(~safinaska@109.252.90.89)
2021-06-22 16:25:56 +0000eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-06-22 16:26:01 +0000 <safinaskar> why this doesn't compile? https://paste.debian.net/1202047/
2021-06-22 16:27:00 +0000 <Cale> safinaskar: Because 3868 still hasn't gotten merged ;)
2021-06-22 16:27:42 +0000wagle(~wagle@quassel.wagle.io) (Ping timeout: 252 seconds)
2021-06-22 16:27:43 +0000xkuru(~xkuru@user/xkuru)
2021-06-22 16:27:50 +0000 <safinaskar> Cale: please, give a link
2021-06-22 16:27:52 +0000xkuru(~xkuru@user/xkuru) (Remote host closed the connection)
2021-06-22 16:28:01 +0000 <Cale> https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3868/
2021-06-22 16:28:14 +0000xkuru(~xkuru@user/xkuru)
2021-06-22 16:28:31 +0000 <Cale> (I need to update some test outputs, and rebase it right now, as it happens...)
2021-06-22 16:29:21 +0000 <Cale> safinaskar: Note that regardless, pr would be dead code, since you could never actually satisfy its constraint in order to use it
2021-06-22 16:29:38 +0000 <Cale> But it's probable that this should merely be a warning.
2021-06-22 16:30:35 +0000eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-06-22 16:31:07 +0000 <Cale> Oh, actually, I'm not even sure 3868 will save you here
2021-06-22 16:31:22 +0000ystael(~ystael@user/ystael) (Ping timeout: 252 seconds)
2021-06-22 16:32:13 +0000 <Cale> Haven't thought much about the case with QuantifiedConstraints...
2021-06-22 16:33:24 +0000 <safinaskar> i changed type to this: "pr :: forall a. (forall b. a ~ b) => Int", and i still get same error
2021-06-22 16:33:48 +0000 <safinaskar> but not this constraint is satisfable!
2021-06-22 16:34:27 +0000 <Cale> That's still not going to be satisfiable... there's no type which is equal to every other type
2021-06-22 16:34:36 +0000wagle(~wagle@quassel.wagle.io)
2021-06-22 16:35:35 +0000 <Cale> Did you just want forall a b. (a ~ b) => Int ? This is merely ambiguous.
2021-06-22 16:35:55 +0000 <Cale> (since a and b are unused by the rest of the type)
2021-06-22 16:36:19 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-22 16:38:14 +0000 <Cale> What behaviour do you get if you turn on AllowAmbiguousTypes by the way?
2021-06-22 16:38:43 +0000Guest75(~Guest75@166.70.242.157)
2021-06-22 16:38:44 +0000 <safinaskar> Cale: "Did you just want forall a b. (a ~ b) => Int" - of course, no. My final goal is to compile this code: https://paste.debian.net/1202048/
2021-06-22 16:39:10 +0000 <safinaskar> Cale: i want to compile it to prove functor law from applicative laws
2021-06-22 16:39:27 +0000 <safinaskar> Cale: i am curious whether this is possible using haskell type system
2021-06-22 16:39:55 +0000 <safinaskar> so now i go through ghc errors which are show when i try to compile this code
2021-06-22 16:40:20 +0000 <Cale> If it was possible, I still wouldn't trust the result :P
2021-06-22 16:40:49 +0000 <safinaskar> Cale: why?
2021-06-22 16:42:42 +0000 <dminuoso> Why is a proof of type inequality not something we can express?
2021-06-22 16:43:28 +0000wagle(~wagle@quassel.wagle.io) (Ping timeout: 252 seconds)
2021-06-22 16:43:33 +0000fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-06-22 16:43:33 +0000 <Cale> Well, maybe that's a little unfair, but we're using a whole bunch of type system features which haven't been around very long, and GHC's type checker is a giant and complicated beast. There's no shortage of weird bugs.
2021-06-22 16:43:42 +0000wagle(~wagle@quassel.wagle.io)
2021-06-22 16:44:10 +0000fef(~thedawn@user/thedawn)
2021-06-22 16:44:44 +0000peterhil_(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-22 16:44:49 +0000 <Cale> dminuoso: You want something like (a :~: b) -> Void ?
2021-06-22 16:45:19 +0000peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-06-22 16:45:40 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-22 16:45:52 +0000 <dminuoso> Cale: No, Im just curious why we dont have something like (a :!~: b)
2021-06-22 16:46:01 +0000 <dminuoso> I dont have any acute need, it's just curiosity
2021-06-22 16:46:24 +0000 <Cale> You typically can't do very much with the information that two types are not equal
2021-06-22 16:47:52 +0000 <Cale> Knowing that two types *are* equal lets you apply functions that operate on one of the types to values of the other, for example.
2021-06-22 16:47:57 +0000hexfive(~eric@50.35.83.177)
2021-06-22 16:48:07 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-22 16:48:16 +0000 <Cale> But knowing that they aren't equal doesn't really give you any additional permission that you wouldn't have otherwise had.
2021-06-22 16:49:11 +0000hexfive(~eric@50.35.83.177) (Client Quit)
2021-06-22 16:50:25 +0000 <dminuoso> Cale: Well but at the same time I do have something like (==) so I can express: (a == b) ~ 'False => ...
2021-06-22 16:50:48 +0000wagle(~wagle@quassel.wagle.io) (Ping timeout: 252 seconds)
2021-06-22 16:50:48 +0000 <dminuoso> Is that not the same amount of information?
2021-06-22 16:51:29 +0000 <Cale> I suppose, but what do you do with that?
2021-06-22 16:51:55 +0000wagle(~wagle@quassel.wagle.io)
2021-06-22 16:52:51 +0000 <Cale> For something like a promoted data type, where you're pretending that Haskell is dependently typed and doing some sort of type level computations, doing inequality tests at the type level might make sense.
2021-06-22 16:52:59 +0000 <safinaskar> dminuoso: try to express type inequality using this: (forall x. (a ~ b) => x). this essentially means a is not equal to b
2021-06-22 16:53:28 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 16:53:47 +0000Morrow_(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net)
2021-06-22 16:54:20 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2021-06-22 16:55:13 +0000 <tomsmeding> Cale: perhaps to exclude a particular branch in a case expression?
2021-06-22 16:55:24 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 16:55:54 +0000Erutuon(~Erutuon@user/erutuon) (Quit: WeeChat 2.8)
2021-06-22 16:56:50 +0000Topsi1(~Tobias@dyndsl-095-033-016-151.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-06-22 16:58:43 +0000ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5)
2021-06-22 16:58:45 +0000justBull(~justache@user/justache) (Remote host closed the connection)
2021-06-22 16:59:07 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-06-22 16:59:58 +0000justBull(~justache@user/justache)
2021-06-22 16:59:59 +0000 <Cale> tomsmeding: You mean like, reflecting the work of the pattern match checker back into the type system?
2021-06-22 17:00:58 +0000wagle(~wagle@quassel.wagle.io) (Ping timeout: 268 seconds)
2021-06-22 17:01:04 +0000argento(~argent0@168-227-96-26.ptr.westnet.com.ar) (Ping timeout: 252 seconds)
2021-06-22 17:01:20 +0000wagle(~wagle@quassel.wagle.io)
2021-06-22 17:01:23 +0000oatsot
2021-06-22 17:01:29 +0000otailur
2021-06-22 17:01:31 +0000ailurhugs
2021-06-22 17:01:33 +0000hugsoats
2021-06-22 17:01:38 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 17:02:40 +0000 <dminuoso> Cale: So I havent done much type level programming, but I'd have thought that knowing whether type types are equal might be as interesting as knowing that they are not.
2021-06-22 17:02:45 +0000 <dminuoso> Perhaps Im wrong
2021-06-22 17:02:48 +0000 <thyriaen> guys
2021-06-22 17:02:54 +0000 <thyriaen> i think i am in love
2021-06-22 17:02:57 +0000 <tomsmeding> Cale: my point was that theoretically, you might be able to have e.g. data Foo a where { A :: Int -> Foo 'True ; B :: Bool -> Foo 'False } ; foo :: (a !~ 'False) => Foo a -> Int ; foo (A i) = i
2021-06-22 17:03:11 +0000 <tomsmeding> and then the pattern match checker would be fine with that because of the inequality context
2021-06-22 17:03:14 +0000 <thyriaen> why do non-functional languages even exist
2021-06-22 17:03:21 +0000 <tomsmeding> not sure how useful this ability would even be
2021-06-22 17:03:32 +0000Erutuon(~Erutuon@user/erutuon)
2021-06-22 17:04:02 +0000 <tomsmeding> thyriaen: ease of compiler implementation, more control over the compiled form, more natural expression of imperative algorithms, inertia
2021-06-22 17:04:11 +0000 <tomsmeding> not necessarily in that order :p
2021-06-22 17:04:17 +0000 <dminuoso> tomsmeding: Because it took decades before a half way efficient encoding of a lazy functional programming language was found. Imperative languages tend to be simpler to compile into locally good code?
2021-06-22 17:04:36 +0000 <Cale> thyriaen: Because lots of stuff got done before people had any idea how to compile functional programs into a reasonably efficient form, and people kept using those languages because relearning how to program is annoying.
2021-06-22 17:04:41 +0000 <dminuoso> Err thyriaen ^-
2021-06-22 17:05:13 +0000econo(uid147250@user/econo)
2021-06-22 17:05:36 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 17:06:21 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-06-22 17:06:34 +0000chomwitt(~Pitsikoko@athedsl-351576.home.otenet.gr) (Ping timeout: 252 seconds)
2021-06-22 17:06:38 +0000 <safinaskar> thyriaen: ha-ha. i hate haskell. currently i write my parser lib in haskell and my prover in haskell. The whole reason why i pick haskell is this: because I already wrote a lot of code. :) If I started now, I'd pick rust. because it is impure. and gives full control on speed
2021-06-22 17:08:37 +0000 <mikko> isn't that how it usually goes, every language seems really good until you do something bigger with and then it's too late to change :)
2021-06-22 17:09:17 +0000arjun(~user@user/arjun)
2021-06-22 17:09:59 +0000 <arjun> hi all
2021-06-22 17:10:01 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-22 17:10:09 +0000 <tomsmeding> safinaskar: this experimentation with moving stuff to the type level that you're doing would be completely impossible from the start in rust :p
2021-06-22 17:10:25 +0000 <arjun> how do i deal with if this throws an error ?-> https://hackage.haskell.org/package/directory-1.3.6.2/docs/System-Directory.html#v:removeDirectory
2021-06-22 17:10:57 +0000 <safinaskar> tomsmeding: yes, still rust has more benefits
2021-06-22 17:11:29 +0000Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-22 17:11:32 +0000 <tomsmeding> safinaskar: for your purpose / in your opinion :)
2021-06-22 17:11:36 +0000haveo(~haveo@sl35.iuwt.fr) (Quit: leaving)
2021-06-22 17:11:39 +0000 <Cale> tomsmeding: Which is possibly a point in rust's favour on its own, since it would save him wasting time messing around with fancy types, haha :D
2021-06-22 17:11:46 +0000 <tomsmeding> :D
2021-06-22 17:12:10 +0000 <safinaskar> tomsmeding: also, surprisingly, c++ has dependent types! (but arguments to type-level expressions should be compile-time values)
2021-06-22 17:12:17 +0000jess(~jess@libera/staff/jess) ()
2021-06-22 17:12:36 +0000 <tomsmeding> and rust is getting that same capability (const generics)
2021-06-22 17:12:38 +0000 <Cale> For some value of "has", yeah
2021-06-22 17:13:21 +0000 <dminuoso> GHC Haskell has capabilities too!
2021-06-22 17:13:50 +0000 <tomsmeding> % Control.Concurrent.getNumCapabilities
2021-06-22 17:13:51 +0000 <yahb> tomsmeding: 1
2021-06-22 17:14:28 +0000wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-22 17:14:56 +0000curiousgay(~curiousgg@178.217.208.8) (Remote host closed the connection)
2021-06-22 17:14:56 +0000 <tomsmeding> arjun: try 'catch' from Control.Exception
2021-06-22 17:15:12 +0000curiousgay(~curiousgg@178.217.208.8)
2021-06-22 17:15:46 +0000alx741(~alx741@181.196.68.152) (Ping timeout: 268 seconds)
2021-06-22 17:18:11 +0000Guest75(~Guest75@166.70.242.157) (Quit: Ping timeout (120 seconds))
2021-06-22 17:18:51 +0000lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-06-22 17:18:51 +0000 <safinaskar> tomsmeding: C++ can be used as a prover! look here: https://godbolt.org/z/MzhedqeKE . I can write more code to show the point, i. e. give some example proofs
2021-06-22 17:20:05 +0000chisui(~chisui@200116b866492700f0ddc72238639ee4.dip.versatel-1u1.de)
2021-06-22 17:20:38 +0000sheepduck(~sheepduck@user/sheepduck)
2021-06-22 17:20:40 +0000 <tomsmeding> hah, neat
2021-06-22 17:20:45 +0000 <chisui> Hey, is there a reason why there are no closed data families?
2021-06-22 17:21:29 +0000 <Cale> The static nature of template instantiation will eventually get in your way trying to do that stuff in C++, and of course the syntax is insanely cumbersome and not really meant for that, but you can do a fair amount.
2021-06-22 17:22:11 +0000 <Cale> chisui: How would that differ from a GADT?
2021-06-22 17:22:42 +0000 <chisui> Cale You can't have the instance be newtypes.
2021-06-22 17:22:55 +0000 <Cale> ah, fair
2021-06-22 17:26:03 +0000haveo(~haveo@sl35.iuwt.fr)
2021-06-22 17:27:20 +0000 <safinaskar> Cale: "What behaviour do you get if you turn on AllowAmbiguousTypes by the way?": my (final) code still gives nearly same error if I enable AllowAmbiguousTypes: https://paste.debian.net/1202054/
2021-06-22 17:28:00 +0000Guest9(~Guest9@43.250.158.34)
2021-06-22 17:28:28 +0000alx741(~alx741@181.196.68.156)
2021-06-22 17:28:49 +0000 <arjun> tomsmeding: i'll do that, thanks!
2021-06-22 17:31:27 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 17:32:17 +0000justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-06-22 17:33:10 +0000 <Cale> safinaskar: On 3868, your code compiles without warning, but I'm not sure I'm actually happy about that, since an attempt to use proof will result in a type error.
2021-06-22 17:36:30 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-22 17:36:40 +0000kuribas(~user@ptr-25vy0i89phmaoo2wmls.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-06-22 17:37:00 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 252 seconds)
2021-06-22 17:41:46 +0000azeem(~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it) (Ping timeout: 252 seconds)
2021-06-22 17:42:32 +0000azeem(~azeem@176.201.6.138)
2021-06-22 17:45:53 +0000thyriaen(~thyriaen@45.178.73.238) (Quit: Leaving)
2021-06-22 17:47:08 +0000safinaskar(~safinaska@109.252.90.89) ()
2021-06-22 17:47:25 +0000notzmv(~zmv@user/notzmv)
2021-06-22 17:49:23 +0000safinaskar(~safinaska@109.252.90.89)
2021-06-22 17:51:34 +0000 <safinaskar> is there any other uses for GADTs except for writing type checkers and provers?
2021-06-22 17:53:27 +0000 <dminuoso> No, they were built for that sole usage. They are forbidden for all other things like modelling ASTs
2021-06-22 17:53:47 +0000 <dminuoso> (that was sarcasm, by the way)
2021-06-22 17:56:06 +0000azeem(~azeem@176.201.6.138) (Read error: Connection reset by peer)
2021-06-22 17:56:26 +0000arjun(~user@user/arjun) (Ping timeout: 258 seconds)
2021-06-22 17:56:38 +0000 <safinaskar> dminuoso: "modelling ASTs" - this is type checking, again. is there any example where GADTs can be used for AST modeling, but not for type checking?
2021-06-22 17:56:48 +0000 <dminuoso> this is not type checking.
2021-06-22 17:58:10 +0000azeem(~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it)
2021-06-22 17:58:48 +0000fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-06-22 18:00:00 +0000fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-06-22 18:00:07 +0000 <tomsmeding> safinaskar: probably no, but "provers" is very general
2021-06-22 18:00:42 +0000__monty__SirJection
2021-06-22 18:00:49 +0000 <tomsmeding> e.g. a compiler can represent the AST of the program being compiled with a GADT; by doing so, the act of writing the compiler using that data type proves that all compiler passes are type-correct with respect to the language being compiled
2021-06-22 18:00:58 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-22 18:01:10 +0000SirJection__monty__
2021-06-22 18:02:08 +0000 <tomsmeding> it's a partial version of dependent typing, so I guess it's similar answers as the same question for "dependent types" would have
2021-06-22 18:02:23 +0000 <safinaskar> ok
2021-06-22 18:06:28 +0000 <dminuoso> tomsmeding: re "type-correct" - Im not sure that really holds.
2021-06-22 18:07:29 +0000 <tomsmeding> for a narrow enough definition of "type-correct" :)
2021-06-22 18:07:34 +0000vicfred(~vicfred@user/vicfred) (Ping timeout: 268 seconds)
2021-06-22 18:07:40 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-22 18:07:48 +0000 <tomsmeding> you know that the output of the compiler pass is valid in the object type system
2021-06-22 18:08:07 +0000 <tomsmeding> but this says precious little about actual semantical correctness of the pass
2021-06-22 18:08:21 +0000 <dminuoso> Sure, but you could still have a separate type system imposing additional constraints, like maybe there's polymorphism that the GADTs dont express or phantom types maybe
2021-06-22 18:08:32 +0000dsf(~dsf@cpe-66-75-56-205.san.res.rr.com) (Quit: Konversation terminated!)
2021-06-22 18:08:45 +0000dsf(~dsf@cpe-66-75-56-205.san.res.rr.com)
2021-06-22 18:08:46 +0000 <tomsmeding> right, if there are type system features that the GADT doesn't express, you don't prove anything about that
2021-06-22 18:08:49 +0000martinjaniczek(~janiczek@89-24-215-117.customers.tmcz.cz) (Quit: WeeChat 3.2)
2021-06-22 18:12:00 +0000 <Cale> safinaskar: GADTs are rather good for protocols, because you can index a "query" type by the type of response you'll receive back.
2021-06-22 18:12:37 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-22 18:13:58 +0000 <Cale> You can also use fairly simple GADTs along with DMap to have "extensible records" of a sort -- the GADT values become like "structured field labels"
2021-06-22 18:15:49 +0000TranquilEcho(~grom@user/tranquilecho)
2021-06-22 18:17:43 +0000amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-22 18:19:10 +0000raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-06-22 18:19:10 +0000azeem(~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-22 18:19:12 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Remote host closed the connection)
2021-06-22 18:19:18 +0000altern(~altern@altern.corbina.com.ua)
2021-06-22 18:19:48 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 18:20:19 +0000azeem(~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it)
2021-06-22 18:20:21 +0000 <maerwald> Do we have a pure haskell implementation of `findmnt`?
2021-06-22 18:22:49 +0000Xe_(~cadey@tailscale/xe)
2021-06-22 18:22:51 +0000Xe(~cadey@tailscale/xe) (Killed (zirconium.libera.chat (Nickname regained by services)))
2021-06-22 18:22:51 +0000Xe_Xe
2021-06-22 18:23:48 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 244 seconds)
2021-06-22 18:24:50 +0000 <safinaskar> ok, thanks
2021-06-22 18:25:42 +0000mcglk(~mcglk@131.191.49.120) (Quit: (seeya))
2021-06-22 18:26:03 +0000mcglk(~mcglk@131.191.49.120)
2021-06-22 18:26:29 +0000 <safinaskar> maerwald: you mean linux util findmnt? it essentially reads from /proc/mounts (and /proc/self/mountinfo) and adds some formatting
2021-06-22 18:27:23 +0000ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Ping timeout: 268 seconds)
2021-06-22 18:28:13 +0000ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5)
2021-06-22 18:28:49 +0000 <maerwald> yes
2021-06-22 18:31:28 +0000 <safinaskar> maerwald: i think this is trivial to write haskell program which converts that two files to findmnt output
2021-06-22 18:31:37 +0000 <maerwald> Also, it does a little more than that
2021-06-22 18:31:55 +0000ArsenArsenArsen
2021-06-22 18:32:11 +0000 <maerwald> Yeah, I know I can code everything myself
2021-06-22 18:36:57 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 18:37:19 +0000curiousgay(~curiousgg@178.217.208.8) (Remote host closed the connection)
2021-06-22 18:37:30 +0000curiousgay(~curiousgg@178.217.208.8)
2021-06-22 18:40:03 +0000 <__monty__> Does anyone know where I can find Okasaki's Maxiphobic heaps paper from 2005? Came across a dead link, http://www.eecs.usma.edu/webs/people/okasaki/sigcse05.pdf
2021-06-22 18:42:49 +0000 <shachaf> That's a nice paper.
2021-06-22 18:43:03 +0000 <shachaf> The title is "Alternatives to Two Classic Data Structures", that should help you find it.
2021-06-22 18:43:24 +0000 <shachaf> It looks like Google has links? If not I have a copy.
2021-06-22 18:44:11 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2021-06-22 18:44:37 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-06-22 18:44:45 +0000hounded_woodstoc(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Quit: Leaving)
2021-06-22 18:44:55 +0000 <__monty__> shachaf: Ah, thanks, I thought "Maxphobic heaps" was the title.
2021-06-22 18:44:58 +0000 <__monty__> <3
2021-06-22 18:45:40 +0000shutdown_-h_now(~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl)
2021-06-22 18:45:54 +0000DkHmmEbpohxS(~DkHmmEbpo@88.155.49.35)
2021-06-22 18:45:54 +0000 <DkHmmEbpohxS> 1I8eRA.ChAT 15 4 Sc4M, C0M3 8ACk T0 frEenodE
2021-06-22 18:45:55 +0000DkHmmEbpohxS(~DkHmmEbpo@88.155.49.35) (Client Quit)
2021-06-22 18:48:01 +0000 <chisui> are there any resources on what `magicDict` does? I saw it in the internals of `GHC.TypeNats` and I'm it seems really magic.
2021-06-22 18:52:10 +0000 <chisui> Ok, found something https://ghc-compiler-notes.readthedocs.io/en/latest/notes/compiler/basicTypes/MkId.hs.html
2021-06-22 18:52:34 +0000 <tomsmeding> chisui: also check out this email thread: https://mail.haskell.org/pipermail/ghc-devs/2021-April/019833.html
2021-06-22 18:55:28 +0000 <lyxia> chisui: it's also being replaced with withDict, and there are some notes about this new version https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/HsToCore/Expr.hs#L1307
2021-06-22 18:56:12 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-06-22 18:56:54 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2021-06-22 18:57:18 +0000altern(~altern@altern.corbina.com.ua) (Ping timeout: 252 seconds)
2021-06-22 18:59:18 +0000curiousgay(~curiousgg@178.217.208.8) (Remote host closed the connection)
2021-06-22 18:59:47 +0000curiousgay(~curiousgg@178.217.208.8)
2021-06-22 18:59:47 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-22 19:00:33 +0000sheepduck(~sheepduck@user/sheepduck) (Read error: Connection reset by peer)
2021-06-22 19:02:56 +0000 <maerwald> safinaskar: https://hackage.haskell.org/package/mountpoints-1.0.2/docs/System-MountPoints.html
2021-06-22 19:03:19 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-22 19:03:24 +0000MoC(~moc@user/moc)
2021-06-22 19:03:45 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-22 19:04:16 +0000dhil(~dhil@195.213.192.47) (Ping timeout: 252 seconds)
2021-06-22 19:04:28 +0000 <geekosaur> if you want portability, it won't be there; every system has its own way to record mount points
2021-06-22 19:05:09 +0000 <geekosaur> linux does it one way, freebsd another, darwin a third
2021-06-22 19:05:58 +0000 <chisui> tomsmeding, lyxia: Thanks, that's some deep magic
2021-06-22 19:06:34 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-22 19:07:47 +0000Alex_test(~al_test@178.34.150.65) (Quit: ;-)
2021-06-22 19:08:16 +0000AlexZenon(~alzenon@178.34.150.65) (Quit: ;-)
2021-06-22 19:08:25 +0000moet_(~moet@172.58.27.140)
2021-06-22 19:08:46 +0000tzar_bomba(~tzar_bomb@78-56-41-78.static.zebra.lt)
2021-06-22 19:09:27 +0000MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-06-22 19:10:04 +0000chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
2021-06-22 19:11:36 +0000moet(~moet@172.58.35.6) (Ping timeout: 252 seconds)
2021-06-22 19:15:31 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-22 19:16:34 +0000AlexZenon(~alzenon@178.34.150.65)
2021-06-22 19:16:59 +0000wrunt(~ajc@vmx14030.hosting24.com.au) (Ping timeout: 272 seconds)
2021-06-22 19:17:08 +0000 <maerwald> geekosaur: "Works on: Linux, BSD, Mac OS X, Android"
2021-06-22 19:17:45 +0000 <geekosaur> the utility may, the files it reads don't
2021-06-22 19:18:17 +0000dhil(~dhil@80.208.56.181)
2021-06-22 19:18:19 +0000 <maerwald> did you read the implementation?
2021-06-22 19:18:29 +0000Alex_test(~al_test@178.34.150.65)
2021-06-22 19:18:32 +0000wrunt(~ajc@vmx14030.hosting24.com.au)
2021-06-22 19:18:58 +0000vicfred(~vicfred@user/vicfred)
2021-06-22 19:18:58 +0000 <davean> geekosaur: i'm confused - what are you talking about?
2021-06-22 19:19:36 +0000 <geekosaur> there's a linux-commpatible /proc inplementation for freebsd but it's not mounted by default and is mounted in a different place when it is (BSD /proc is different)
2021-06-22 19:19:57 +0000 <maerwald> it uses libmount.h
2021-06-22 19:20:01 +0000 <davean> Yah
2021-06-22 19:20:09 +0000 <davean> I have no idea why you're mentioning that geekosaur
2021-06-22 19:20:34 +0000zeenk(~zeenk@2a02:2f04:a00e:6e00:d401:4c92:fecc:16f9)
2021-06-22 19:20:42 +0000 <davean> geekosaur: it says nothing about /proc
2021-06-22 19:20:47 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-22 19:21:18 +0000 <geekosaur> <safinaskar> maerwald: you mean linux util findmnt? it essentially reads from /proc/mounts (and /proc/self/mountinfo) and adds some formatting
2021-06-22 19:21:20 +0000 <davean> sorry, theres one comment about the C implimentation
2021-06-22 19:21:32 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 19:22:18 +0000 <geekosaur> plus I've written such tilities (granted, over a decade ago) and had to do something different on every system
2021-06-22 19:22:23 +0000hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-22 19:22:39 +0000 <davean> geekosaur: right, but it uses libmount.h
2021-06-22 19:22:48 +0000 <geekosaur> some of which hopefully nobody cares about any more (looking at you hp/ux)
2021-06-22 19:22:50 +0000 <davean> which does the different thing on different systems
2021-06-22 19:23:38 +0000 <maerwald> the implementation looks portable
2021-06-22 19:23:51 +0000 <davean> geekosaur: I'm a little confused if you're paying attention to this conversation or not
2021-06-22 19:23:59 +0000 <davean> we keep saying "its not the thing you keep claiming it is"
2021-06-22 19:24:59 +0000fendor(~fendor@178.115.129.107.wireless.dyn.drei.com) (Remote host closed the connection)
2021-06-22 19:25:03 +0000 <maerwald> but... is libmount.h in POSIX? Can't find it
2021-06-22 19:25:36 +0000 <davean> maerwald: Its uh, well theres a few versions of it
2021-06-22 19:25:48 +0000 <davean> maerwald: and its SysV
2021-06-22 19:26:04 +0000 <davean> yah, thats complicated
2021-06-22 19:26:14 +0000 <davean> sorry, the functions
2021-06-22 19:26:18 +0000 <davean> so hence libmount.h
2021-06-22 19:26:26 +0000 <maerwald> It seems to be bundled
2021-06-22 19:26:34 +0000 <davean> ight
2021-06-22 19:27:07 +0000qbt(~edun@user/edun) (Ping timeout: 268 seconds)
2021-06-22 19:27:13 +0000 <maerwald> and I can't read it on my phone... since it's an obscure git repo :p
2021-06-22 19:27:42 +0000fendor(~fendor@178.115.129.107.wireless.dyn.drei.com)
2021-06-22 19:28:55 +0000nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-06-22 19:32:12 +0000Guest9(~Guest9@43.250.158.34) (Quit: Connection closed)
2021-06-22 19:32:20 +0000ec(~ec@gateway/tor-sasl/ec)
2021-06-22 19:32:24 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 19:34:11 +0000nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-06-22 19:34:22 +0000MoC(~moc@user/moc)
2021-06-22 19:35:07 +0000 <maerwald> So it seems it uses /etc/mtab and falls back to /proc on android
2021-06-22 19:36:06 +0000dhil(~dhil@80.208.56.181) (Ping timeout: 258 seconds)
2021-06-22 19:39:28 +0000wrunt(~ajc@vmx14030.hosting24.com.au) (Ping timeout: 252 seconds)
2021-06-22 19:40:32 +0000Deide(~Deide@wire.desu.ga)
2021-06-22 19:40:32 +0000Deide(~Deide@wire.desu.ga) (Changing host)
2021-06-22 19:40:32 +0000Deide(~Deide@user/deide)
2021-06-22 19:41:14 +0000 <maerwald> mtab is specified by glibc
2021-06-22 19:41:34 +0000 <maerwald> https://www.gnu.org/software/libc/manual/html_node/Mount-Information.html
2021-06-22 19:42:37 +0000wrunt(~ajc@vmx14030.hosting24.com.au)
2021-06-22 19:44:44 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-22 19:47:32 +0000 <__monty__> Anyone know what "PFDS on SSDs for performance reasons" might refer to? The accompanying url is useless, http://rethinkdb.com/jobs/ It must be something to do with functional data structures.
2021-06-22 19:47:37 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-06-22 19:48:53 +0000 <shachaf> I would guess "purely functional data structure".
2021-06-22 19:49:38 +0000 <tdammers> that, or "Primary Flight Displays"
2021-06-22 19:49:43 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-22 19:51:28 +0000dhil(~dhil@195.213.192.47)
2021-06-22 19:51:45 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3-dev)
2021-06-22 19:55:15 +0000amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-06-22 19:57:12 +0000BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-22 19:57:15 +0000nilof(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-22 19:57:26 +0000nilof(~olofs@90-227-86-119-no542.tbcn.telia.com) (Remote host closed the connection)
2021-06-22 19:59:18 +0000 <tchakka> ... what is the currently recommended way of generating random numbers? Is StdGen still bad?
2021-06-22 20:00:11 +0000 <dminuoso> First you have to explain what kind of randomness you want
2021-06-22 20:00:41 +0000moet_(~moet@172.58.27.140) (Quit: leaving)
2021-06-22 20:01:05 +0000notzmv(~zmv@user/notzmv)
2021-06-22 20:01:09 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-22 20:02:39 +0000blackfield(~blackfiel@85.255.4.218)
2021-06-22 20:04:55 +0000_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-06-22 20:05:04 +0000Kobold(~koboldchi@12.18.150.83)
2021-06-22 20:05:14 +0000juhp(~juhp@128.106.188.66) (Ping timeout: 258 seconds)
2021-06-22 20:05:16 +0000 <Cajun> how about cryptographic-level randomness?
2021-06-22 20:05:18 +0000 <tchakka> Of the pseudo-variety >_> My current use-case does not care about cryptographic security one way or the other. It's pretty much a shuffling algorithm and a "pick one from a set of X" thingy.
2021-06-22 20:05:49 +0000 <dminuoso> tchakka: Also, you might be happy to find out that many of the old issues were addressed: https://github.com/haskell/random/pull/61
2021-06-22 20:05:53 +0000MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-06-22 20:06:35 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-06-22 20:06:37 +0000 <tchakka> Oooh!
2021-06-22 20:07:35 +0000juhp(~juhp@128.106.188.66)
2021-06-22 20:09:50 +0000 <lyxia> yes, now it's "use random"
2021-06-22 20:11:28 +0000 <tchakka> Then I will gladly use that, until I need something fancy and/or I suddenly know what I'm doing.
2021-06-22 20:12:06 +0000derelict(~derelict@user/derelict) (Ping timeout: 244 seconds)
2021-06-22 20:13:34 +0000mc47(~mc47@xmonad/TheMC47)
2021-06-22 20:14:36 +0000 <sclv> random is actually really good and fancy now, under the hood
2021-06-22 20:14:49 +0000 <sclv> so even for Most Uses of Most People that know what they're doing, its the right choice
2021-06-22 20:16:39 +0000gehmehgeh(~user@user/gehmehgeh)
2021-06-22 20:16:40 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Remote host closed the connection)
2021-06-22 20:18:41 +0000pavonia(~user@user/siracusa)
2021-06-22 20:19:02 +0000ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 258 seconds)
2021-06-22 20:24:00 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-22 20:24:12 +0000awth13(~user@user/awth13) (Ping timeout: 252 seconds)
2021-06-22 20:27:13 +0000themc47(~mc47@xmonad/TheMC47)
2021-06-22 20:29:50 +0000mc47(~mc47@xmonad/TheMC47) (Ping timeout: 265 seconds)
2021-06-22 20:32:16 +0000deshalb(~deshalb@user/deshalb) (Quit: leaving)
2021-06-22 20:32:39 +0000mc47(~mc47@xmonad/TheMC47)
2021-06-22 20:34:06 +0000themc47(~mc47@xmonad/TheMC47) (Ping timeout: 252 seconds)
2021-06-22 20:39:14 +0000peterhil_(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-06-22 20:39:51 +0000peterhil_(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-22 20:42:00 +0000Kobold(~koboldchi@12.18.150.83) (Quit: Leaving)
2021-06-22 20:43:21 +0000Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-22 20:46:32 +0000safinaskar(~safinaska@109.252.90.89) ()
2021-06-22 20:47:25 +0000safinaskar(~safinaska@109-252-90-89.nat.spd-mgts.ru)
2021-06-22 20:48:17 +0000 <safinaskar> geekosaur: so you wrote portable utils for various systems, including hp/ux? it's cool. and you did it in time when hp/ux was relevant?
2021-06-22 20:48:29 +0000 <geekosaur> yes
2021-06-22 20:49:26 +0000 <dsal> Is there a way to ask hoogle what instances of X it knows?
2021-06-22 20:50:46 +0000 <safinaskar> geekosaur: how to know which unixes are relevant and which are not? maybe there is some hypothetical site with regularly updated list "this systems are relevant"? :)
2021-06-22 20:51:13 +0000derelict(~derelict@user/derelict)
2021-06-22 20:51:19 +0000curiousgay(~curiousgg@178.217.208.8) (Remote host closed the connection)
2021-06-22 20:51:26 +0000 <geekosaur> linux more or less killed off commercial unix
2021-06-22 20:51:34 +0000curiousgay(~curiousgg@178.217.208.8)
2021-06-22 20:52:14 +0000 <geekosaur> (unfortunately since linux often is the worst or near worst implementation of many things)
2021-06-22 20:53:08 +0000 <maerwald> And has a dictator who celebrates rudeness :p
2021-06-22 20:54:31 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-22 20:55:52 +0000safinaskar(~safinaska@109-252-90-89.nat.spd-mgts.ru) ()
2021-06-22 20:56:32 +0000nvmd(~nvmd@user/nvmd) (Ping timeout: 268 seconds)
2021-06-22 20:57:24 +0000 <sclv> dsal: sadly, not that i know of
2021-06-22 20:58:14 +0000nvmd(~nvmd@user/nvmd)
2021-06-22 20:58:17 +0000 <dsal> Kind of odd. I'll just do a lock haddock. :)
2021-06-22 21:03:21 +0000nf(~n@monade.li) (Quit: Fairfarren.)
2021-06-22 21:03:51 +0000nf(~n@monade.li)
2021-06-22 21:04:32 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-22 21:05:12 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8)
2021-06-22 21:06:14 +0000 <gentauro> glguy: I saw this message "two week two hour rule". Does it mean that when I go on a 3 week holiday, my IRC account will be removed?
2021-06-22 21:06:34 +0000derelict(~derelict@user/derelict) (Ping timeout: 258 seconds)
2021-06-22 21:08:09 +0000 <ChaiTRex> gentauro: No: https://github.com/Libera-Chat/libera-chat.github.io/commit/cf52115#commitcomment-52513840
2021-06-22 21:08:29 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 258 seconds)
2021-06-22 21:09:08 +0000 <glguy> gentauro: have you been using your whole account longer than 2 hours so far?
2021-06-22 21:09:57 +0000nf(~n@monade.li) (Quit: Fairfarren.)
2021-06-22 21:10:09 +0000nf(~n@monade.li)
2021-06-22 21:10:24 +0000bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Remote host closed the connection)
2021-06-22 21:10:47 +0000mc47(~mc47@xmonad/TheMC47) (Ping timeout: 258 seconds)
2021-06-22 21:12:09 +0000mc47(~mc47@xmonad/TheMC47)
2021-06-22 21:12:45 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection)
2021-06-22 21:12:56 +0000mikail__(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf)
2021-06-22 21:16:21 +0000lavaman(~lavaman@98.38.249.169)
2021-06-22 21:20:06 +0000mc47(~mc47@xmonad/TheMC47) (Ping timeout: 265 seconds)
2021-06-22 21:20:45 +0000lavaman(~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
2021-06-22 21:24:01 +0000derelict(~derelict@user/derelict)
2021-06-22 21:29:58 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-22 21:33:22 +0000curiousggay_(~curiousgg@178.217.208.8)
2021-06-22 21:34:09 +0000 <gentauro> yes
2021-06-22 21:34:21 +0000 <gentauro> I use it with a machine (ssh+screen)
2021-06-22 21:34:46 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-06-22 21:35:24 +0000 <gentauro> ChaiTRex: thx :)
2021-06-22 21:35:42 +0000curiousgay(~curiousgg@178.217.208.8) (Ping timeout: 258 seconds)
2021-06-22 21:36:06 +0000aostiles(uid505622@id-505622.stonehaven.irccloud.com)
2021-06-22 21:37:51 +0000argento(~argent0@168-227-96-26.ptr.westnet.com.ar)
2021-06-22 21:38:33 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-22 21:39:03 +0000SoF(~skius@user/skius) (Quit: Ping timeout (120 seconds))
2021-06-22 21:39:47 +0000SoF(~skius@user/skius)
2021-06-22 21:46:34 +0000lavaman(~lavaman@98.38.249.169)
2021-06-22 21:46:57 +0000mikail_(~mikail@90.212.77.3)
2021-06-22 21:47:43 +0000derelict(~derelict@user/derelict) (Ping timeout: 268 seconds)
2021-06-22 21:49:26 +0000mikail__(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Ping timeout: 244 seconds)
2021-06-22 21:49:30 +0000haskl(~haskeller@user/haskl) (Ping timeout: 264 seconds)
2021-06-22 21:51:18 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-22 21:55:38 +0000warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 244 seconds)
2021-06-22 21:57:31 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-06-22 21:59:22 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2021-06-22 21:59:26 +0000Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 268 seconds)
2021-06-22 21:59:44 +0000michalz(~michalz@185.246.204.61) (Remote host closed the connection)
2021-06-22 22:00:00 +0000 <Boarders> is there anywhere that lists which flag -O2 turns on?
2021-06-22 22:00:34 +0000x_kuru(~xkuru@user/xkuru)
2021-06-22 22:00:48 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-22 22:01:48 +0000 <geekosaur> "The easiest way to see what -O (etc.) “really mean” is to run with -v, then stand back in amazement.
2021-06-22 22:01:48 +0000 <geekosaur> "
2021-06-22 22:02:11 +0000 <geekosaur> presumably it's listed in the source code somewhere
2021-06-22 22:02:30 +0000wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-22 22:02:57 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-22 22:03:04 +0000gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-22 22:03:18 +0000xkuru(~xkuru@user/xkuru) (Ping timeout: 258 seconds)
2021-06-22 22:10:16 +0000 <Cale> Boarders: https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Driver/Session.hs#L3850
2021-06-22 22:11:58 +0000 <Cale> also https://downloads.haskell.org/ghc/latest/docs/html/users_guide/flags.html#options-f-compact
2021-06-22 22:14:17 +0000SoF(~skius@user/skius) (Read error: Connection reset by peer)
2021-06-22 22:14:39 +0000SoF(~skius@user/skius)
2021-06-22 22:16:05 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-22 22:18:20 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-06-22 22:21:32 +0000SoF(~skius@user/skius) (Ping timeout: 252 seconds)
2021-06-22 22:23:40 +0000SoF(~skius@user/skius)
2021-06-22 22:25:37 +0000derelict(~derelict@user/derelict)
2021-06-22 22:26:47 +0000Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-22 22:27:34 +0000ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Quit: Leaving)
2021-06-22 22:29:50 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-06-22 22:29:50 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-22 22:34:35 +0000Morrow_(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 268 seconds)
2021-06-22 22:36:56 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-22 22:41:56 +0000GIANTWORLDKEEPER(~pjetcetal@2.95.227.207) (Quit: EXIT)
2021-06-22 22:43:20 +0000o1lo01ol1o(~o1lo01ol1@bl7-89-228.dsl.telepac.pt)
2021-06-22 22:45:55 +0000GIANTWORLDKEEPER(~pjetcetal@2.95.227.207)
2021-06-22 22:47:46 +0000o1lo01ol1o(~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Ping timeout: 258 seconds)
2021-06-22 22:52:13 +0000Ariakenom(~Ariakenom@2001:9b1:efb:fc00:c14c:3118:b974:8ae3) (Quit: Leaving)
2021-06-22 22:52:44 +0000 <dminuoso> Boarders: There's also a bunch of things that get activated simply based on optimization level without any more granular flags.
2021-06-22 22:54:41 +0000 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/StgToCmm/Layout.hs#L215
2021-06-22 22:55:07 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-22 22:56:01 +0000 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Cmm/Pipeline.hs#L146
2021-06-22 22:56:04 +0000 <dminuoso> And few others
2021-06-22 22:57:41 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-06-22 22:58:22 +0000tzar_bomba(~tzar_bomb@78-56-41-78.static.zebra.lt) (Quit: Client closed)
2021-06-22 22:59:58 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-22 23:01:27 +0000safinaskar(~safinaska@109-252-90-89.nat.spd-mgts.ru)
2021-06-22 23:01:29 +0000 <safinaskar> https://paste.debian.net/1202082/
2021-06-22 23:01:33 +0000 <safinaskar> why this doesn't compile?
2021-06-22 23:03:29 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-22 23:04:16 +0000shutdown_-h_now(~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl) (Ping timeout: 268 seconds)
2021-06-22 23:05:06 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-22 23:06:57 +0000obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-06-22 23:09:07 +0000obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2021-06-22 23:09:20 +0000mpt(~tom@2a02:908:1862:49e0::3)
2021-06-22 23:09:34 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-06-22 23:09:44 +0000alex3(~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 268 seconds)
2021-06-22 23:09:45 +0000 <eggplantade> Perhaps it doesn't instantiate parameteric types under @
2021-06-22 23:10:00 +0000Erutuon(~Erutuon@user/erutuon) (Ping timeout: 258 seconds)
2021-06-22 23:10:23 +0000shutdown_-h_now(~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl)
2021-06-22 23:10:31 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-22 23:10:38 +0000 <eggplantade> oh, it went the other way
2021-06-22 23:11:54 +0000Erutuon(~Erutuon@user/erutuon)
2021-06-22 23:12:18 +0000 <eggplantade> From the error message, it instantiated `IId` as `k -> k` for some new type variable k
2021-06-22 23:14:04 +0000 <eggplantade> This is the same as how when you use the function `id`, the type is `a -> a` for some new type variable a. The type is not `forall a. a -> a`
2021-06-22 23:14:12 +0000acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-06-22 23:19:05 +0000chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 252 seconds)
2021-06-22 23:21:53 +0000 <Axman6> is there a way to get cabal to build docs for all dependencies of a package locally?
2021-06-22 23:22:34 +0000alex3(~alex3@bsn-77-82-41.static.siol.net)
2021-06-22 23:22:41 +0000Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-06-22 23:23:28 +0000mpt(~tom@2a02:908:1862:49e0::3) (Ping timeout: 244 seconds)
2021-06-22 23:25:45 +0000 <safinaskar> eggplantade: the error persists even if I write xx @(IId :: (forall (k :: Type). k -> k))
2021-06-22 23:31:50 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-06-22 23:34:11 +0000henninb(~henninb@63.226.174.157)
2021-06-22 23:40:40 +0000chisui(~chisui@200116b866492700f0ddc72238639ee4.dip.versatel-1u1.de) (Ping timeout: 246 seconds)
2021-06-22 23:42:08 +0000 <eggplantade> I just noticed you defined IId as a type synonym
2021-06-22 23:42:54 +0000 <eggplantade> a type family
2021-06-22 23:44:03 +0000 <eggplantade> I think that is the problem. There are restrictions on how you can apply type families to arguments
2021-06-22 23:44:07 +0000 <janus> Axman6: i know you said cabal, but seems like stack can do it: https://www.reddit.com/r/haskell/comments/3glp5v/how_to_download_a_set_of_packages_and/ctz9mw4/
2021-06-22 23:44:08 +0000 <eggplantade> Can you use a newtype family instead
2021-06-22 23:44:21 +0000trent2(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-06-22 23:44:45 +0000 <janus> another person in the thread claims that cabal can do it if you pass --reinstall
2021-06-22 23:45:44 +0000 <safinaskar> eggplantade: this is type synonym, not type family
2021-06-22 23:46:06 +0000 <safinaskar> eggplantade: i don't want newtype family. i want type synonym (or type family)
2021-06-22 23:46:30 +0000waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
2021-06-22 23:47:28 +0000zeenk(~zeenk@2a02:2f04:a00e:6e00:d401:4c92:fecc:16f9) (Quit: Konversation terminated!)
2021-06-22 23:47:34 +0000 <eggplantade> hmm. I haven't seen that syntax with type synonyms before
2021-06-22 23:48:09 +0000 <eggplantade> The way you are using IId looks like you are trying to use a type-level function. However, you can't do that.
2021-06-22 23:49:12 +0000yoctocell(~user@h87-96-130-155.cust.a3fiber.se) (Ping timeout: 268 seconds)
2021-06-22 23:52:00 +0000hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-22 23:53:12 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-22 23:53:15 +0000chisui(~chisui@200116b866492700342cdc4d594c896c.dip.versatel-1u1.de)
2021-06-22 23:55:02 +0000 <safinaskar> eggplantade: yes, i want this
2021-06-22 23:55:09 +0000 <safinaskar> eggplantade: why i cannot do this?
2021-06-22 23:55:33 +0000fef(~thedawn@user/thedawn)
2021-06-22 23:55:53 +0000 <eggplantade> The type checker's job is to decide whether types are equal, but it is undecidable whether two functions are equal
2021-06-22 23:55:58 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-22 23:56:41 +0000 <safinaskar> eggplantade: please give some link about this
2021-06-22 23:59:33 +0000 <janus> if you can't know whether an arbitrary recursive function terminates, how would you know if it is equal? i wonder if it follows from the Entscheidungsproblem
2021-06-22 23:59:56 +0000hounded(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Quit: Leaving)