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