Home liberachat/#haskell: Logs Calendar

Logs on 2023-07-14 (liberachat/#haskell)

00:09:35 × boxscape_ quits (~boxscape_@81.191.27.107) (Ping timeout: 264 seconds)
00:10:12 tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
00:12:35 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 264 seconds)
00:13:03 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
00:14:43 × dsrt^ quits (~cd@24.125.210.85) (Remote host closed the connection)
00:16:02 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:16:02 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:16:02 wroathe joins (~wroathe@user/wroathe)
00:16:50 × wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
00:16:50 ryanbooker joins (uid4340@id-4340.hampstead.irccloud.com)
00:17:41 wagle joins (~wagle@quassel.wagle.io)
00:18:38 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds)
00:19:52 nick2 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
00:20:11 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection)
00:20:30 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
00:21:35 × falafel quits (~falafel@2603-7000-a700-8710-f0a4-a73f-8e9b-67cd.res6.spectrum.com) (Ping timeout: 264 seconds)
00:21:48 phma_ is now known as phma
00:24:07 × nick2 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 245 seconds)
00:26:22 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
00:35:12 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
00:40:08 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
00:40:26 × bramhaag quits (~bramhaag@134.195.121.39) (Quit: The Lounge - https://thelounge.chat)
00:42:25 bramhaag joins (~bramhaag@134.195.121.39)
00:43:40 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
00:48:20 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
00:48:21 thegeekinside joins (~thegeekin@189.217.90.138)
00:48:24 nick2 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
00:52:08 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
00:52:27 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Ping timeout: 245 seconds)
00:53:28 × nick2 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 272 seconds)
00:55:25 × wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
00:55:44 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
00:57:31 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
00:57:39 dsrt^ joins (~cd@24.125.210.85)
00:58:20 × son0p quits (~ff@181.136.122.143) (Ping timeout: 246 seconds)
00:59:44 × sweater quits (~sweater@206.81.18.26) (Ping timeout: 246 seconds)
01:00:05 × user___ quits (~user@162.255.84.96) (Ping timeout: 246 seconds)
01:00:06 × shryke quits (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd) (Ping timeout: 246 seconds)
01:00:06 × robbert-vdh quits (~robbert@robbertvanderhelm.nl) (Ping timeout: 246 seconds)
01:01:08 user___ joins (~user@162.255.84.96)
01:01:35 shryke joins (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd)
01:03:07 nick2 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
01:04:45 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
01:05:15 Sgeo joins (~Sgeo@user/sgeo)
01:05:54 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
01:06:03 wagle joins (~wagle@quassel.wagle.io)
01:06:42 sweater joins (~sweater@206.81.18.26)
01:06:43 × asivitz quits (uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity)
01:06:58 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
01:07:43 robbert-vdh joins (~robbert@robbertvanderhelm.nl)
01:09:50 razetime joins (~quassel@117.193.5.125)
01:10:49 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:05 × rselim quits (ce261f06ff@2604:bf00:561:2000::257) (Changing host)
01:13:05 rselim joins (ce261f06ff@user/milesrout)
01:13:36 jmdaemon joins (~jmdaemon@user/jmdaemon)
01:16:57 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:08 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Remote host closed the connection)
01:20:20 × phma quits (phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433) (Read error: Connection reset by peer)
01:20:49 phma joins (~phma@host-67-44-208-125.hnremote.net)
01:26:34 bilegeek joins (~bilegeek@2600:1008:b047:918a:b8d8:907:6be9:390e)
01:38:22 buckwheat joins (~buckwheat@209.122.211.192)
01:41:48 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
01:42:48 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
01:47:56 × razetime quits (~quassel@117.193.5.125) (Ping timeout: 272 seconds)
01:47:58 razetime_ joins (~quassel@117.193.5.223)
01:50:47 × xff0x_ quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 245 seconds)
01:52:29 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
01:52:52 xff0x_ joins (~xff0x@178.255.149.135)
01:54:32 falafel joins (~falafel@2603-7000-a700-8710-99ea-6875-913a-634e.res6.spectrum.com)
01:56:30 × phma quits (~phma@host-67-44-208-125.hnremote.net) (Read error: Connection reset by peer)
01:56:58 phma joins (phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433)
01:59:26 × doyougnu quits (~doyougnu@45.46.170.68) (Ping timeout: 246 seconds)
02:00:07 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
02:01:53 × hdggxin quits (~hdggxin@122.175.41.19) (Ping timeout: 246 seconds)
02:04:50 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
02:08:50 × xff0x_ quits (~xff0x@178.255.149.135) (Ping timeout: 272 seconds)
02:09:32 × td_ quits (~td@i5387091F.versanet.de) (Ping timeout: 245 seconds)
02:10:16 xff0x_ joins (~xff0x@2405:6580:b080:900:4b46:1f06:e600:57cc)
02:11:40 td_ joins (~td@i5387091B.versanet.de)
02:12:11 × nick2 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 246 seconds)
02:16:27 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
02:16:34 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:16:51 nick2 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
02:17:24 hdggxin joins (~hdggxin@122.175.41.19)
02:27:57 <jackdk> A colleague just asked me if there's a connection between `parse . print = Just` roundtripping and adjunctions, and I don't know enough CT to answer. It smells like it should, and the `unit :: a -> u (f a)` from package `adjunctions` looks like a thing, but can anyone here say something more solid about it?
02:28:59 × razetime_ quits (~quassel@117.193.5.223) (Ping timeout: 246 seconds)
02:29:14 razetime joins (~quassel@117.193.1.250)
02:37:58 × razetime quits (~quassel@117.193.1.250) (Ping timeout: 272 seconds)
02:38:22 razetime joins (~quassel@117.193.7.148)
02:40:43 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
02:44:46 × razetime quits (~quassel@117.193.7.148) (Ping timeout: 250 seconds)
02:45:37 thegeekinside joins (~thegeekin@189.217.90.138)
02:46:28 razetime joins (~quassel@117.193.5.248)
02:52:24 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
02:52:32 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 272 seconds)
02:57:24 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:57:25 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:57:25 finn_elija is now known as FinnElija
03:00:04 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
03:00:19 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
03:05:14 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:07:18 son0p joins (~ff@181.136.122.143)
03:11:02 × ddellacosta quits (~ddellacos@146.70.165.140) (Ping timeout: 260 seconds)
03:16:56 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:18:41 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
03:20:47 × razetime quits (~quassel@117.193.5.248) (Ping timeout: 245 seconds)
03:21:44 razetime joins (~quassel@117.193.0.225)
03:23:23 ddellacosta joins (~ddellacos@146.70.166.140)
03:25:28 × nick2 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 272 seconds)
03:26:37 × ryanbooker quits (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
03:26:44 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
03:27:02 × xff0x_ quits (~xff0x@2405:6580:b080:900:4b46:1f06:e600:57cc) (Ping timeout: 245 seconds)
03:27:25 xff0x_ joins (~xff0x@ai086045.d.east.v6connect.net)
03:29:23 × mxs quits (~mxs@user/mxs) (Ping timeout: 264 seconds)
03:29:45 Inst_ joins (~Inst@2601:6c4:4081:2fc0:25dd:4a6c:9344:e183)
03:32:02 × razetime quits (~quassel@117.193.0.225) (Ping timeout: 245 seconds)
03:32:37 razetime joins (~quassel@117.193.0.119)
03:34:55 × Psybur quits (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 240 seconds)
03:36:33 aforemny_ joins (~aforemny@2001:9e8:6cd3:fb00:3e3b:718b:2209:2cf8)
03:37:27 × aforemny quits (~aforemny@i59F516E4.versanet.de) (Ping timeout: 245 seconds)
03:38:06 nick2 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
03:42:34 × nick2 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 272 seconds)
03:45:22 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
03:45:23 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
03:45:23 wroathe joins (~wroathe@user/wroathe)
03:50:26 × razetime quits (~quassel@117.193.0.119) (Ping timeout: 245 seconds)
03:52:11 mxs joins (~mxs@user/mxs)
03:52:19 razetime joins (~quassel@117.193.7.234)
03:54:32 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
03:55:03 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
03:55:16 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
03:58:38 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:25dd:4a6c:9344:e183) (Remote host closed the connection)
03:58:59 Inst_ joins (~Inst@2601:6c4:4081:2fc0:25dd:4a6c:9344:e183)
04:00:22 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 245 seconds)
04:04:28 ezzieygu1wuf joins (~Unknown@user/ezzieyguywuf)
04:07:54 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 272 seconds)
04:09:43 buckwheat joins (~buckwheat@209.122.211.192)
04:09:50 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:13:17 × razetime quits (~quassel@117.193.7.234) (Ping timeout: 246 seconds)
04:15:26 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:15:30 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 272 seconds)
04:17:28 × ezzieygu1wuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
04:21:03 × monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER)
04:21:17 ezzieygu1wuf joins (~Unknown@user/ezzieyguywuf)
04:22:36 × foul_owl quits (~kerry@193.29.61.81) (Ping timeout: 252 seconds)
04:25:11 × shapr quits (~user@2600:1700:c640:3100:8173:1c9d:ab8d:9a27) (Ping timeout: 264 seconds)
04:27:20 thegeekinside joins (~thegeekin@189.217.90.138)
04:28:08 monochrom joins (trebla@216.138.220.146)
04:30:14 <Clinton[m]> If I've got the function:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/99909fa3ec60c42419365daa10d875c9dc4a3a45>)
04:30:37 × ezzieygu1wuf quits (~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
04:34:38 <probie> Clinton[m]: No. Using `bmap` you can only get as far as `(forall a. f a -> m (g a)) -> b f -> (b (Compose m g))`. If you're using barbies (which I'm guessing from `bmap`), look at `btraverse` and `TraversableB`
04:34:38 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
04:35:26 foul_owl joins (~kerry@71.212.137.212)
04:35:45 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 246 seconds)
04:37:11 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
04:38:49 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
04:43:08 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
04:43:22 ezzieygu1wuf joins (~Unknown@user/ezzieyguywuf)
04:44:09 ezzieygu1wuf is now known as ezzieyguywuf
04:44:28 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
04:49:05 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
04:50:37 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
04:51:35 notzmv joins (~zmv@user/notzmv)
04:51:36 × falafel quits (~falafel@2603-7000-a700-8710-99ea-6875-913a-634e.res6.spectrum.com) (Ping timeout: 272 seconds)
04:52:12 razetime joins (~quassel@117.193.7.234)
04:54:41 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
04:56:41 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Remote host closed the connection)
04:58:45 × phma quits (phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433) (Read error: Connection reset by peer)
04:59:12 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 272 seconds)
04:59:38 phma joins (phma@2001:5b0:210d:3298:dd2c:b032:4dd7:14f9)
05:00:13 <jackdk> "If I've got the function... na na na na na na na na na na na na na na ..." (apologies to Fiddler on the Roof)
05:00:37 hgolden joins (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
05:06:19 <probie> You may ask, how did this tradition get started? I'll tell you... I don't know.
05:07:23 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
05:10:45 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
05:11:29 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
05:11:39 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
05:12:18 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
05:12:59 trev joins (~trev@user/trev)
05:13:29 califax joins (~califax@user/califx)
05:15:35 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 264 seconds)
05:15:46 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Ping timeout: 252 seconds)
05:17:20 lambdabot joins (~lambdabot@silicon.int-e.eu)
05:17:20 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
05:17:20 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
05:18:39 × bilegeek quits (~bilegeek@2600:1008:b047:918a:b8d8:907:6be9:390e) (Quit: Leaving)
05:20:19 Sgeo joins (~Sgeo@user/sgeo)
05:23:17 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
05:23:27 × cheater quits (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
05:25:13 frase joins (~Fraser@159.196.13.236)
05:25:42 <frase> o/ Is there a machine-readable list or index of GHC release versions somewhere?
05:25:53 <frase> Asking for a Security Response Team :)
05:27:35 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
05:30:35 <probie> I don't know, but if all else fails (and you only need versions >= 7.2.1), you could always pull the latest version of ghc's repo and run `git tag -l | grep -E 'release$'`
05:32:23 × razetime quits (~quassel@117.193.7.234) (Ping timeout: 246 seconds)
05:32:53 razetime joins (~quassel@117.193.1.196)
05:33:06 <frase> probie: that will probably be OK, if I can get the tag list via the GitLab API.
05:33:09 <frase> thanks for the tip
05:34:54 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
05:35:06 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
05:36:40 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:39:52 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
05:42:56 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
05:44:23 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
05:46:58 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
05:48:02 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 252 seconds)
05:48:12 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
05:48:38 mncheck joins (~mncheck@193.224.205.254)
05:50:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:50:20 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
05:50:20 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
05:50:20 dibblego joins (~dibblego@haskell/developer/dibblego)
05:50:25 × actioninja6 quits (~actioninj@user/actioninja) (Ping timeout: 240 seconds)
05:51:40 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
05:52:54 × califax quits (~califax@user/califx) (Remote host closed the connection)
05:53:07 califax joins (~califax@user/califx)
05:57:48 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
06:00:13 CiaoSen joins (~Jura@2a05:5800:2dc:9500:664b:f0ff:fe37:9ef)
06:01:53 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
06:04:20 hugo joins (znc@verdigris.lysator.liu.se)
06:06:46 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Remote host closed the connection)
06:12:15 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
06:12:36 hgolden joins (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
06:14:12 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
06:17:15 titibandit joins (~titibandi@user/titibandit)
06:18:20 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
06:24:38 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:24:53 michalz joins (~michalz@185.246.207.200)
06:30:45 <jackdk> frase: surely ghcup queries for such a list?
06:31:01 <jackdk> Clinton[m]: did probie's suggestion get you unstuck?
06:31:18 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
06:31:43 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
06:32:53 <frase> jackdk: as I understand it, ghcup gets explicitly told about particular "supported" releases, rather than querying and making anything available
06:33:10 <frase> i.e. after a new GHC release, GHCUp will then have to be updated to learn about it. Maybe I'm wrong, that's just the feeling I get :)
06:36:32 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
06:38:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:39:09 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Remote host closed the connection)
06:39:57 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 245 seconds)
06:40:43 acidjnk joins (~acidjnk@p200300d6e7072f84d1756600c61e2eb6.dip0.t-ipconnect.de)
06:41:24 catch22 joins (~catch22@204.40.96.58.static.exetel.com.au)
06:42:09 Guest9190 joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
06:47:08 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 246 seconds)
06:47:57 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
06:48:55 alexbiehl joins (~alexbiehl@2a02:8108:323f:c964:29bb:a87f:706d:368f)
06:52:02 <frase> jackdk: yeah, GHCUp uses curated metadata from the haskell/ghcup-metadata repo: https://github.com/haskell/ghcup-metadata/blob/develop/ghcup-0.0.7.yaml
06:52:17 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
06:55:24 hgolden joins (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
06:56:22 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 272 seconds)
06:57:29 × alexbiehl quits (~alexbiehl@2a02:8108:323f:c964:29bb:a87f:706d:368f) (Remote host closed the connection)
06:58:00 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
06:58:36 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
06:59:18 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
06:59:36 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
07:00:01 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
07:02:42 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
07:03:44 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 246 seconds)
07:05:06 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
07:05:59 alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
07:08:07 × alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
07:08:25 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
07:09:26 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
07:10:23 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
07:11:12 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
07:11:48 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
07:12:51 sagax joins (~sagax_nb@user/sagax)
07:13:15 <arahael_> I'm re-reading about monads. (Some much, much needed "revision", really). And the haskell wiki mentions this about Monads:
07:13:20 <arahael_> The sequence function takes a list of monadic computations, executes each one in turn and returns a list of the results. If any of the computations fail, then the whole function fails:
07:13:25 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
07:13:54 <arahael_> My question is: Are monads really inherently a "computation"? What's the "computation" involved with say, a single Maybe monad?
07:15:28 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
07:15:30 <eggplantade> It decides whether the monad has zero or one values and what the one value is
07:15:55 <arahael_> So it only works for MonadPlsu?
07:15:58 <arahael_> *MonadPlus?
07:16:03 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
07:16:58 <eggplantade> Not necessarily
07:17:33 <arahael_> I mean, I can mechanically figure out what is happening with the sequence function it gives as an advantage, what I'm strugglign with is the language: Why does it describe it as applying a list of *computations*?
07:17:53 <eggplantade> Saying that monads are computations is an analogy. There's always an interpretation of "monad" that makes it true, but that interpretation isn't always useful.
07:18:43 <arahael_> Ah, so it could be a list of computations, if the monad you're using just happens to be a computation, and it was trying to describe it like that to make it easier to think of? So eg, if it was an IO monad that makes sense I guess.
07:18:47 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Remote host closed the connection)
07:18:58 <Hecate> arahael_: the thing with monads (a vast majority of them) is sequentiality
07:19:33 <Hecate> that's a way to make two things depend on one another, and more specifically on the value they produce
07:19:46 <Hecate> and what produces values? a computation :)
07:19:47 <arahael_> Hecate: But they aren't inherently a computation of their own?
07:20:01 <Rembane> It becomes syntactically obvious if written out with many bind (>>=) operators.
07:20:27 <arahael_> Oooh, I see. So you can think of them as "This monad produces a value depending on the value that's put into it"?
07:20:28 <Hecate> arahael_: they are by virtue of producing something that the next function has to wait on
07:20:48 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
07:20:56 <arahael_> Hecate: I was trying to figure out what the stored computation of the following list of computations were: [Just 42]
07:21:37 <Hecate> arahael_: there is no bind / >>= involved :p
07:21:42 <Hecate> so, no monad
07:21:51 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
07:21:59 <eggplantade> It's still a monad when it just has return, like in this case
07:22:12 <arahael_> Hecate: Pretty sure :t will state that there is categorically a monad there.
07:22:17 <Rembane> A boring monad. :D
07:22:18 <Maxdamantus> I think the use of the term "computation" is to avoid calling the `m a` value a "monad", since that's inaccurate.
07:22:47 <arahael_> Maxdamantus: Oooh, why is that incorrect if 'm' has been defined to be a Monad type?
07:22:57 <eggplantade> And it's still a computation, just a trivial one. The computation provides the value that was put into it.
07:23:05 <Maxdamantus> they just need some term to generically describe the `m a` values, eg, `IO String` or `Maybe Int`
07:23:11 <Hecate> arahael_: the interface necessary for calling bind has been implemented (that's what :t would tell you) but you don't make use of it :'D
07:23:33 <Maxdamantus> arahael_: because the monad is really the implementation of the `Monad m` interface.
07:23:33 <arahael_> eggplantade: Makes sense. :D
07:24:19 <eggplantade> May be more helpful to look at the difference when you put `undefined` in place of part of it
07:24:28 <Maxdamantus> arahael_: `Just 4` is not a monad. The relevant monad is the one defined using `instance Monad Maybe ...`
07:24:55 <eggplantade> It's a value of that monadic type, to be precise
07:25:05 <arahael_> Maxdamantus: This is the type definition of the 'sequence' function that the original statement I'm asking about is applied against: sequence :: Monad m => [m a] -> m [a]
07:25:14 <arahael_> That list could be empty, have only one item, or have many items.
07:25:15 <Hecate> yeah, let's use some terminology here: values are, computations do
07:25:26 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:25:26 <Hecate> Just 4 is a monadic value, it doesn't do much
07:25:48 <Maxdamantus> Well, I think that's what is meant by "computation" in the Haskell wiki.
07:25:53 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
07:25:59 <Hecate> when you use bind / >>= / do-notation, several computations are waiting on each-other in order to execute
07:25:59 <Maxdamantus> "monadic value" = "computation"
07:26:10 <arahael_> Hecate: That makes sense, so these would be a a list of monad values, and `sequence` applies the monadic computations for those values, in sequence?
07:26:49 <Hecate> let me see the definition of sequence again
07:27:04 <arahael_> > The sequence function takes a list of monadic computations, executes each one in turn and returns a list of the results. If any of the computations fail, then the whole function fails:
07:27:05 <lambdabot> <hint>:1:36: error: parse error on input ‘of’
07:27:30 <Hecate> yeah it's a foldr for lists
07:27:45 <arahael_> https://wiki.haskell.org/All_About_Monads#The_sequencing_functions
07:28:04 <Maxdamantus> imo calling them "computations" is more precise, since "monadic value" is also a potentially misleading term.
07:28:05 hgolden joins (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
07:28:21 <arahael_> Maxdamantus: That's precisely the insight I'm trying to understand.
07:28:29 <Maxdamantus> although it doesn't really work in Haskell, the values could be independent of any particular monad.
07:28:46 <arahael_> Ah, and I'm only concerned about Haskell in this case...
07:29:04 <Maxdamantus> eg, you could conceptually have an "identity" monad, where every value is already a computation.
07:29:55 <Maxdamantus> (again, this doesn't really work in Haskell due to the way type classes work .. or at least, it doesn't work when thinking about the standard `Monad` type class)
07:30:22 <arahael_> So where are they getting that concept from? Category theory?
07:33:02 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Remote host closed the connection)
07:33:29 <eggplantade> So to think of the list monad as a computation, consider `primes :: [Integer]` that computes the prime numbers in order
07:33:29 <Maxdamantus> possibly. I've never quite understood how things fit together in category theory, but you can always take the Haskell `Monad` type class and imagine it as an interface in basically any programming language (though depending on the language, you might have to break some rules).
07:34:01 <eggplantade> Given a reasonable implementation of `primes, you can take values from the list as much as you want until the computer runs out of memory
07:34:26 <eggplantade> as you take more values, you're making it work with bigger numbers and it will slow down
07:34:44 <eggplantade> But you don't have to take all the values. You can take just a few. And it will only compute those few numbers.
07:35:08 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
07:37:19 titiband1t joins (~titibandi@user/titibandit)
07:37:24 <Maxdamantus> eg, here's the interface expressed in Java: interface Monad<M> { <A> M<A> unit(A v); <A, B> M<B> bind(M<A> a, Function<A, B> fn); }
07:37:47 <Maxdamantus> then if you provide an implementation of `Monad<List>`, that would be a `List` monad.
07:37:48 <arahael_> I think the trouble I had was both in thinking that the list contained *distinct* computations - I think it's probably more correct for me to say that the whole list defines a computation, it's only going to be using the one monad instance to run it anyway.
07:38:13 <arahael_> Effectively 'sequence' runs a program.
07:38:25 phma_ joins (~phma@host-67-44-208-224.hnremote.net)
07:39:04 <eggplantade> Ah, `sequence` does some specific kind of computation using the monad operations. It doesn't "run" a monad.
07:39:14 <Maxdamantus> (the Java interface is not quite valid Java, since `M` is meant to be a type-level function rather than a type, and Java only allows types as type parameters)
07:39:47 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:40:41 × phma quits (phma@2001:5b0:210d:3298:dd2c:b032:4dd7:14f9) (Ping timeout: 246 seconds)
07:40:54 <Maxdamantus> arahael_: no, they are distinct computations.
07:41:18 <Maxdamantus> arahael_: an `m a` value is a computation. "computation" is just a generic term that is used for all monads.
07:41:36 <Maxdamantus> arahael_: eg, `Just 4` is considered to be a computation that would yield the value `4`
07:41:41 × titiband1t quits (~titibandi@user/titibandit) (Ping timeout: 245 seconds)
07:43:05 <Maxdamantus> arahael_: there isn't a universal way to actually run a computation, but the monad provides the bind operation which allows you to derive one "computation" into another "computation".
07:43:35 <Maxdamantus> arahael_: `sequence` makes use of that to derive multiple "computations" into another "computation".
07:44:11 cheater joins (~Username@user/cheater)
07:45:25 <Maxdamantus> arahael_: eg, `[Just 4, Just 3, Just 9]` is a list of computations (3 computations, yielding 3 values). `sequence` will turn that into a single computation, particularly `Just [4, 3, 9]` (one computation, yielding one value).
07:46:19 <probie> Is `3` a computation yielding `3`?
07:47:15 <Maxdamantus> probie: it could be thought of that way in an identity monad, yes.
07:47:33 <Maxdamantus> probie: though it doesn't really work that way in Haskell.
07:48:03 <Maxdamantus> probie: Haskell's `Monad` type class always requires a distinct type constructor for each monad.
07:48:48 <probie> so the only things that are computations are those which involve "monads"?
07:49:16 <arahael_> Maxdamantus: I think that makes sense when I think about it more.
07:49:29 <Maxdamantus> probie: yes. The things that are acceptable as the first argument to the `(>>=)` function.
07:49:37 <eggplantade> probie: In this context, we are only talking about how monads are used for representing computations
07:50:34 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
07:50:35 <eggplantade> Computation can also happen without monads, but that isn't what the question was about
07:50:53 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:51:22 <arahael_> Yeah, the question was pretty specific - just about monads being referred to as a computation.
07:51:33 × catch22 quits (~catch22@204.40.96.58.static.exetel.com.au) (Quit: Leaving)
07:52:43 zeenk joins (~zeenk@2a02:2f04:a00b:1800::7fe)
07:53:04 <Maxdamantus> probie: in a constructor-less identity monad, you could have `return = id` and `(>>=) = map`
07:53:09 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
07:53:23 <Maxdamantus> er, `(>>=) = flip map`
07:53:41 <Maxdamantus> er, wait, no, that's not right.
07:53:44 <probie> :t flip ($)
07:53:45 <lambdabot> a -> (a -> c) -> c
07:54:35 <Maxdamantus> Yeah, it should be `(>>=) = flip ($)` (or `(>>=) = flip id)`
07:54:37 <Maxdamantus> )
07:54:51 <Maxdamantus> :t flip id
07:54:52 <lambdabot> b -> (b -> c) -> c
07:57:09 <Maxdamantus> anyway, in such a monad, every value would be allowed as the first argument to `(>>=)`. do{ a <- 4; b <- 5; return (a + b) }
07:57:27 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
07:57:32 <Maxdamantus> 4 >>= \a -> 5 >>= \b -> return (a + b)
08:01:12 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
08:02:41 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
08:05:15 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
08:10:55 misterfish joins (~misterfis@92-66-207-29.biz.kpn.net)
08:12:56 × ft quits (~ft@p3e9bc835.dip0.t-ipconnect.de) (Quit: leaving)
08:13:36 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
08:13:44 × xff0x_ quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 246 seconds)
08:14:27 × Luj quits (~Luj@2a01:e0a:5f9:9681:3e8f:d5c0:40b7:2d50) (Quit: Ping timeout (120 seconds))
08:14:33 <Profpatsch> Is there any way to write an instance without having to import the instance functions I’m defining
08:14:43 <Profpatsch> import Control.Category((.)) is a bit annoying
08:14:45 × zeenk quits (~zeenk@2a02:2f04:a00b:1800::7fe) (Remote host closed the connection)
08:14:46 Luj joins (~Luj@2a01:e0a:5f9:9681:7c72:c188:aac9:48ed)
08:15:07 zeenk joins (~zeenk@2a02:2f04:a00b:1800::fba)
08:15:25 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 240 seconds)
08:16:24 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
08:21:27 <Profpatsch> Oh, looks like I can import Control.Category qualified and it still registers
08:22:34 <jackdk> Profpatsch https://www.irccloud.com/pastebin/uR9oDyF3/QualifiedCategory.hs
08:22:38 <jackdk> Oh, you got it
08:24:31 × tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:27:20 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
08:27:41 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
08:29:55 × razetime quits (~quassel@117.193.1.196) (Ping timeout: 240 seconds)
08:32:00 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 246 seconds)
08:34:54 × dcoutts_ quits (~duncan@195.80.64.243) (Ping timeout: 250 seconds)
08:36:07 mixfix41 joins (~sdeny9ee@user/mixfix41)
08:36:42 × mrmr quits (~mrmr@user/mrmr) (Ping timeout: 252 seconds)
08:37:08 mixfix41 parts (~sdeny9ee@user/mixfix41) ()
08:37:43 mrmr joins (~mrmr@user/mrmr)
08:38:56 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
08:41:53 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
08:44:47 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
08:45:03 danse-nr3 joins (~francesco@151.37.248.218)
08:45:37 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
08:45:51 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
08:46:24 × mei quits (~mei@user/mei) (Remote host closed the connection)
08:46:24 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
08:48:49 mei joins (~mei@user/mei)
08:48:50 razetime joins (~quassel@117.193.1.196)
08:54:44 danse-nr3_ joins (~francesco@151.37.251.36)
08:56:31 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
08:57:58 × danse-nr3 quits (~francesco@151.37.248.218) (Ping timeout: 272 seconds)
08:58:17 <Profpatsch> yeah :)
08:58:19 <Profpatsch> it’s a bit confusing
08:58:35 <Profpatsch> I usually get it right, but when I don’t I’ve forgotten about the edge case
08:59:02 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection)
08:59:19 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
09:02:23 chele joins (~chele@user/chele)
09:06:46 × lilpotent_jlemen quits (~lilpotent@2001:470:69fc:105::3:6eb6) (Remote host closed the connection)
09:07:11 × johnw_ quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
09:11:28 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Remote host closed the connection)
09:14:27 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
09:14:58 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
09:15:14 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
09:15:45 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
09:16:30 <jade[m]> I wonder whether we could get some sort of first-class module system in the future
09:16:35 buckwheat joins (~buckwheat@209.122.211.192)
09:18:08 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
09:20:39 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
09:21:15 thblt parts (~thblt@user/thblt) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.0.92))
09:23:16 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:24:10 <merijn> jade[m]: have you looked at backpack?
09:25:14 califax joins (~califax@user/califx)
09:27:26 × misterfish quits (~misterfis@92-66-207-29.biz.kpn.net) (Ping timeout: 246 seconds)
09:28:43 alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
09:32:18 × tcard_ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
09:32:56 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
09:34:46 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
09:35:01 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
09:35:26 × foul_owl quits (~kerry@71.212.137.212) (Ping timeout: 245 seconds)
09:35:38 frase parts (~Fraser@159.196.13.236) ()
09:39:28 erisco_ joins (~erisco@d24-141-66-165.home.cgocable.net)
09:40:52 × erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 245 seconds)
09:40:52 erisco_ is now known as erisco
09:41:54 Kaladin joins (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net)
09:42:39 × Kaladin quits (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) (Remote host closed the connection)
09:44:29 × dsrt^ quits (~cd@24.125.210.85) (Remote host closed the connection)
09:44:55 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 240 seconds)
09:46:28 hellwolf joins (~user@5b3d-5cac-bb28-d008-0f00-4d40-07d0-2001.sta.estpak.ee)
09:48:12 foul_owl joins (~kerry@157.97.134.168)
09:51:12 misterfish joins (~misterfis@87.215.131.102)
09:54:14 × driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
09:54:48 driib joins (~driib@vmi931078.contaboserver.net)
09:57:19 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
09:57:40 wootehfoot joins (~wootehfoo@user/wootehfoot)
09:59:16 × alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
10:00:44 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
10:02:52 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
10:08:54 × Guest9190 quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds)
10:09:21 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
10:09:34 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
10:10:06 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
10:11:59 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
10:12:40 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
10:13:12 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
10:16:25 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
10:18:53 × mechap quits (~mechap@user/mechap) (Ping timeout: 246 seconds)
10:20:10 mechap joins (~mechap@user/mechap)
10:24:02 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
10:31:21 × mechap quits (~mechap@user/mechap) (Ping timeout: 246 seconds)
10:31:36 ubert joins (~Thunderbi@178.115.54.100.wireless.dyn.drei.com)
10:32:29 mechap joins (~mechap@user/mechap)
10:35:42 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
10:36:00 L29Ah joins (~L29Ah@wikipedia/L29Ah)
10:36:26 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
10:37:56 ss4 joins (~wootehfoo@user/wootehfoot)
10:38:42 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
10:40:29 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
10:41:00 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 250 seconds)
10:42:36 buckwheat joins (~buckwheat@209.122.211.192)
10:47:55 × mrmr quits (~mrmr@user/mrmr) (Ping timeout: 240 seconds)
10:48:10 × CiaoSen quits (~Jura@2a05:5800:2dc:9500:664b:f0ff:fe37:9ef) (Ping timeout: 272 seconds)
10:51:40 __monty__ joins (~toonn@user/toonn)
10:53:27 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
10:55:26 × danse-nr3_ quits (~francesco@151.37.251.36) (Ping timeout: 246 seconds)
10:57:26 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:57:59 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
11:00:48 Tlsx joins (~rscastilh@187.40.124.54)
11:03:51 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
11:06:10 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
11:06:25 × ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
11:06:44 Claro is now known as m4
11:07:49 m4 is now known as Claro
11:11:14 danse-nr3_ joins (~francesco@151.37.251.36)
11:11:59 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
11:14:11 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
11:17:43 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
11:18:59 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
11:21:11 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
11:22:24 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
11:23:17 × cyphase_eviltwin quits (~cyphase@user/cyphase) (Ping timeout: 245 seconds)
11:25:40 Claro is now known as m4
11:28:24 × Tlsx quits (~rscastilh@187.40.124.54) ()
11:29:49 m4 is now known as claro
11:30:11 shapr joins (~user@2600:1700:c640:3100:cde4:ca2f:725:21b4)
11:30:13 claro is now known as claro_
11:30:19 claro_ is now known as claro
11:30:45 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
11:33:34 × danse-nr3_ quits (~francesco@151.37.251.36) (Remote host closed the connection)
11:33:57 danse-nr3_ joins (~francesco@151.37.251.36)
11:35:05 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
11:39:36 cyphase joins (~cyphase@user/cyphase)
11:40:47 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Remote host closed the connection)
11:41:30 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
11:43:21 × foul_owl quits (~kerry@157.97.134.168) (Ping timeout: 245 seconds)
11:43:46 foul_owl joins (~kerry@157.97.134.168)
11:44:05 × mei quits (~mei@user/mei) (Ping timeout: 246 seconds)
11:45:35 × Buggys quits (Buggys@shelltalk.net) (Ping timeout: 264 seconds)
11:46:46 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
11:50:17 × danse-nr3_ quits (~francesco@151.37.251.36) (Remote host closed the connection)
11:50:43 danse-nr3 joins (~francesco@151.37.251.36)
11:50:50 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
11:55:58 × ubert quits (~Thunderbi@178.115.54.100.wireless.dyn.drei.com) (Read error: Connection reset by peer)
11:56:16 ubert joins (~Thunderbi@178.115.54.100.wireless.dyn.drei.com)
11:57:15 gurkenglas joins (~gurkengla@dynamic-046-114-181-072.46.114.pool.telefonica.de)
11:58:00 × titibandit quits (~titibandi@user/titibandit) (Read error: Connection reset by peer)
11:58:50 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:02:21 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 246 seconds)
12:03:05 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
12:03:41 titibandit joins (~titibandi@user/titibandit)
12:04:43 Tlsx joins (~rscastilh@187.40.124.54)
12:06:50 xff0x_ joins (~xff0x@ai086045.d.east.v6connect.net)
12:10:44 titiband1t joins (~titibandi@user/titibandit)
12:13:25 doyougnu joins (~doyougnu@45.46.170.68)
12:14:28 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
12:15:41 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:16:05 Buggys joins (Buggys@shelltalk.net)
12:16:12 × titiband1t quits (~titibandi@user/titibandit) (Ping timeout: 272 seconds)
12:16:31 × doyougnu quits (~doyougnu@45.46.170.68) (Client Quit)
12:18:48 doyougnu joins (~doyougnu@45.46.170.68)
12:19:11 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 264 seconds)
12:19:45 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
12:20:14 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
12:21:51 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:22:26 razetime_ joins (~quassel@117.193.6.88)
12:22:32 × razetime quits (~quassel@117.193.1.196) (Ping timeout: 272 seconds)
12:24:35 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 264 seconds)
12:26:11 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
12:27:30 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:27:36 × acidjnk quits (~acidjnk@p200300d6e7072f84d1756600c61e2eb6.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
12:31:08 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
12:31:32 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
12:31:47 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
12:33:09 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:35:44 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 246 seconds)
12:36:38 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:37:23 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
12:38:48 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:41:01 nick3 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
12:42:59 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
12:44:26 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:44:30 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds)
12:46:49 euandreh joins (~Thunderbi@189.6.18.7)
12:48:56 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
12:49:54 Guest9190 joins (~finn@176-151-21-224.abo.bbox.fr)
12:50:01 × razetime_ quits (~quassel@117.193.6.88) (Ping timeout: 245 seconds)
12:50:35 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:51:11 × zeenk quits (~zeenk@2a02:2f04:a00b:1800::fba) (Quit: Konversation terminated!)
12:54:53 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
12:54:54 danse-nr3_ joins (~francesco@151.37.253.148)
12:56:14 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
12:58:00 × danse-nr3 quits (~francesco@151.37.251.36) (Ping timeout: 272 seconds)
13:00:28 jappiejappie joins (~jappiejap@181-41-6-201.setardsl.aw)
13:00:50 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
13:02:22 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
13:03:31 Lycurgus joins (~juan@98.4.112.204)
13:03:31 × Lycurgus quits (~juan@98.4.112.204) (Changing host)
13:03:31 Lycurgus joins (~juan@user/Lycurgus)
13:06:26 × anon24339985 quits (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
13:07:56 <albet70> if call g inside f and call z inside g, now how to pass a new parameter to z in where f is calling? add a new parameter in all of they definition?
13:08:14 <albet70> their
13:08:30 <geekosaur> there is an evil hack (imo) called implicit parameters
13:09:11 <albet70> example?
13:09:11 × titibandit quits (~titibandi@user/titibandit) (Read error: Connection reset by peer)
13:10:06 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
13:11:36 <albet70> like def f(a, b=1) in python?
13:11:53 <geekosaur> no
13:11:56 <lyxia> https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/implicit_parameters.html
13:12:12 <geekosaur> it hides values in the context instead of as parameters
13:12:42 <merijn> alternatively, if you're using ReaderT with an environment, you can pass stuff that way
13:13:05 <merijn> This is why I often like ReaderT for exploring what kinda API I want, easy to thread stuff through the application
13:13:06 <lyxia> though you should just try adding the parameters normally first and see what pain point you run into specifically
13:14:03 <Rembane> Another way is to put everything into a record and pass that along.
13:14:22 <int-e> or maybe define functions locally (if g and z are locally defined inside f, then they get access to f's parameters without syntactic noise)
13:14:36 titibandit joins (~titibandi@user/titibandit)
13:15:02 <albet70> into a record is very OOP
13:15:45 <geekosaur> not really
13:15:58 <lyxia> even if it were, OOP doesn't mean bad
13:15:59 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:16:01 <albet70> inside f would make f very big, not good for composing
13:16:18 califax joins (~califax@user/califx)
13:17:20 <danse-nr3_> implicit parameters looks like an evil hack indeed
13:18:09 × trev quits (~trev@user/trev) (Quit: trev)
13:18:17 × sagax quits (~sagax_nb@user/sagax) (Ping timeout: 245 seconds)
13:18:42 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection)
13:19:05 <dminuoso> https://chrisdone.com/posts/whats-wrong-with-implicitparams/
13:19:06 ft joins (~ft@p3e9bc835.dip0.t-ipconnect.de)
13:19:27 <dminuoso> Also see https://old.reddit.com/r/haskell/comments/m8o88a/who_still_uses_readert/grkh17q/
13:19:43 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
13:20:14 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
13:20:55 <Rembane> I think this talk has some really good points about FP vs OOP: https://www.youtube.com/watch?v=QyJZzq0v7Z4
13:21:03 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
13:21:27 <danse-nr3_> i find that when cases like these occur, it is an hint that those functions could be composed instead of being called inside each other. In this case, consider passing z to g (or having a gWith where z is an argument)
13:22:28 <albet70> is that cps?
13:23:09 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
13:25:03 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
13:25:20 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
13:26:14 <danse-nr3_> not as far as i understand
13:26:54 <Rembane> Higher order function perhaps?
13:26:57 <geekosaur> just higher order, I think
13:27:37 alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
13:27:55 × troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
13:28:12 troydm joins (~troydm@user/troydm)
13:28:23 × troydm quits (~troydm@user/troydm) (Client Quit)
13:29:51 troydm joins (~troydm@user/troydm)
13:31:27 × troydm quits (~troydm@user/troydm) (Client Quit)
13:31:44 troydm joins (~troydm@user/troydm)
13:33:04 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:33:41 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 258 seconds)
13:34:50 <albet70> how about trans that into cps? possible?
13:35:58 <geekosaur> …why
13:39:32 × jappiejappie quits (~jappiejap@181-41-6-201.setardsl.aw) (Quit: Client closed)
13:41:39 <albet70> curious
13:42:01 × troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
13:42:18 troydm joins (~troydm@user/troydm)
13:44:21 × Tlsx quits (~rscastilh@187.40.124.54) ()
13:45:55 × alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
13:48:35 × nick3 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 264 seconds)
13:50:51 razetime joins (~quassel@117.193.6.228)
13:51:33 × razetime quits (~quassel@117.193.6.228) (Remote host closed the connection)
13:53:08 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
13:54:33 dcoutts joins (~duncan@195.80.64.243)
13:55:08 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 250 seconds)
13:56:56 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
13:59:25 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
14:00:04 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Client Quit)
14:04:18 nick3 joins (~nick@50.86.118.19)
14:07:21 × gurkenglas quits (~gurkengla@dynamic-046-114-181-072.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
14:07:25 <danse-nr3_> does anyone have opinions about serokell's haskell certification program? I would not mind spending some money to learn haskell better, but the way they organised topics by level did not convince me
14:09:32 thegeekinside joins (~thegeekin@189.217.90.138)
14:11:28 × dcoutts quits (~duncan@195.80.64.243) (Ping timeout: 272 seconds)
14:11:30 × mechap quits (~mechap@user/mechap) (Ping timeout: 246 seconds)
14:11:31 shriekingnoise joins (~shrieking@186.137.175.87)
14:13:15 <jade[m]> never heard of that myself and neither heard it reccomended here
14:13:15 <ddellacosta> danse-nr3_: in case you haven't seen it yet, here's a discourse post where folks discuss it, and among others SPJ and the Serokell CEO both make a comment https://discourse.haskell.org/t/has-anyone-done-the-serokell-certification-yet-should-i/6685/34
14:13:33 <maerwald> if that allows you to skip annoying coding interviews yes... otherwise, what for?
14:13:33 <ddellacosta> I don't have any opinion on it myself, but I generally stay away from certifications
14:14:21 <jade[m]> if you want to learn haskell better there's a bunch of books that the money would be better spent on, imo :)
14:14:24 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
14:14:38 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 272 seconds)
14:14:42 <ddellacosta> about my feeling...as someone else in a position of hiring commented in that thread, they would see it as just another data point. Given that, I'd rather learn more or work on open source stuff
14:14:49 <ddellacosta> and exactly jade[m]
14:15:04 <ddellacosta> but hey, it may be helpful for some folks!
14:15:40 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
14:19:54 <danse-nr3_> i do not like the idea of certifications, reading a book or learning while contributing to a communities sounds much better to me, but i had mixed experience with haskell interviews. Different companies would care about rather different aspects, so i thought that could help. Probably there is a pool of companies that get in touch with who passes those exams
14:21:19 <danse-nr3_> thanks ddellacosta for the pointer, i do not hang out on discourse
14:21:19 × titibandit quits (~titibandi@user/titibandit) (Read error: Connection reset by peer)
14:22:09 <ddellacosta> np, and good point about the post-certification company connection, that could be helpful just as a way to get hired
14:22:22 <ddellacosta> worth confirming that exists
14:26:34 titibandit joins (~titibandi@user/titibandit)
14:26:48 <danse-nr3_> i would not take a certification because of that anyways ... so yeah i guess certifications are not for me
14:27:54 <maerwald> certifications for standards are useful
14:27:58 <maerwald> and needed in some industries
14:28:43 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
14:30:50 <danse-nr3_> probably i am biased because i have mainly been exposed to certifications about private systems granted by the same tool producers (cisco, microsoft...). Anyways, a language like haskell is probably to be handled differently than a standard
14:31:27 <maerwald> Haskell is not a standard
14:32:13 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
14:32:26 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
14:32:28 noscript parts (~james@user/earldouglas) ()
14:32:59 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
14:33:02 trev joins (~trev@user/trev)
14:35:28 <Inst_> when did accelerate come back online?
14:35:29 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
14:35:31 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
14:36:25 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
14:37:32 × Cale quits (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Remote host closed the connection)
14:38:17 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds)
14:39:05 <danse-nr3_> maerwald, that is why i wrote i could be biased
14:40:05 <danse-nr3_> ops nevermind i have read your message wrong. Well haskell is based on the report ... in theory someone could do certifications on that =D
14:40:22 <maerwald> in what way?
14:40:38 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 250 seconds)
14:40:55 <maerwald> also, a report is not a standard
14:41:04 <maerwald> neither is a spec
14:42:02 <danse-nr3_> alright, i do not mean to take the certification anyways
14:44:37 <Inst_> danse-nr3: serokell's haskell certification program is a t-shirt
14:45:55 <danse-nr3_> unfortunately it is a t-shirt that can get someone a job
14:46:44 <Inst_> do employers actually care about serokell haskell certifications yet?
14:47:25 <Inst_> the t-shirt comparison is that even if it's useless, it's something you can wear
14:47:32 <Inst_> fun to have around
14:47:43 <Inst_> whoa, let's see if this works
14:48:01 <danse-nr3_> do employers care about how you look like in your linkedin picture?
14:48:18 <maerwald> some might
14:49:12 <danse-nr3_> Inst_, you have got your answer
14:49:39 <Inst_> yeah, i mean, i'd imagine main use case for serokell certification would be non-haskell jobs
14:51:27 <juri_> is anyone aware of security trainings specifically targeted toward haskellers?
14:55:35 Midjak joins (~Midjak@82.66.147.146)
14:57:40 dcoutts joins (~duncan@195.80.64.243)
14:58:35 <danse-nr3_> juri_ (are you tomsmending?) i just read that there is a security task force in the haskell foundation, might check what they are doing if you are interested in that area
14:59:10 Lycurgus joins (~juan@98.4.112.204)
14:59:10 × Lycurgus quits (~juan@98.4.112.204) (Changing host)
14:59:10 Lycurgus joins (~juan@user/Lycurgus)
15:01:53 <juri_> danse-nr3_: i'm not, and i've already asked there.
15:02:16 <juri_> (i'm Julia Longtin, the "crazy haskell 3d printer nerd", FWIW)
15:02:39 <danse-nr3_> haha nice to meet you. Sorry tomsmending also had a similar nick
15:02:42 <merijn> juri_: What kinda security training are you thinking of?
15:03:46 <merijn> because just 'security' is broad to the point of meaninglessness :)
15:03:52 × Lycurgus quits (~juan@user/Lycurgus) (Client Quit)
15:03:56 <juri_> honestly, i don't know. we're getting security trainings for the other platform teams (do not dereference null pointers, do not trust client input...), but.. we're a haskell team. i'm not even sure what to advise, other than "be a haskeller"
15:04:08 mechap joins (~mechap@user/mechap)
15:04:28 × dcoutts quits (~duncan@195.80.64.243) (Ping timeout: 250 seconds)
15:04:38 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
15:04:59 <merijn> juri_: I mean, a bunch of the same stuff applies (not trusting user input, pointer validity, etc.) and then there's the whole topic of side-channel attacks
15:05:00 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
15:05:17 <juri_> yep.
15:05:32 <merijn> but I don't think specific trainings exist for Haskell
15:06:41 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
15:06:45 Tlsx joins (~rscastilh@187.40.124.54)
15:07:12 Lycurgus joins (~juan@user/Lycurgus)
15:09:49 <maerwald> people think too much of cryptography when they hear 'security'
15:09:57 <maerwald> it's a niche area
15:10:12 <mauke> do not trust input, be careful when assembling structured data as strings (and avoid assembling raw strings whenever possible)
15:10:50 <maerwald> attacking crypto algorithms isn't something your regular attacker does... it needs insane amount of resources
15:11:21 <mauke> like "https://example.com/stuff?token=" <> apiToken <> "&size=42" is not how you build a URL
15:11:36 <maerwald> https://langsec.org/ is a good introduction into the security problem
15:13:03 pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-54-65-92-160-21.dsl.bell.ca)
15:13:46 <maerwald> then there are a couple of approaches on how to formalize security and measure it
15:14:16 Sgeo joins (~Sgeo@user/sgeo)
15:14:25 <maerwald> the main two I think are: your system as an IO automaton (number of syscalls user input can trigger) and a purely economic measure (which I like more)
15:14:26 <mauke> oh, and haskell does nothing to protect you from race conditions
15:14:28 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
15:14:42 <merijn> mauke: well, arguably STM does a bit
15:15:07 ubert1 joins (~Thunderbi@178.165.175.35.wireless.dyn.drei.com)
15:15:11 <maerwald> so a secure system is basically just a system that is expensive to crack... and there are ways to calculate it
15:15:34 <mauke> merijn: that's all internal, so mostly boring :-)
15:15:43 <maerwald> can't find the thesis, my file server has certificate issues again (lol)
15:15:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:15:47 <Hecate> unsure what you'd like to see, mauke
15:16:23 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
15:16:36 <mauke> I'm not calling for changes. just saying that security trainings aren't pointless just because you're using haskell
15:17:02 Square joins (~Square@user/square)
15:17:20 × ubert quits (~Thunderbi@178.115.54.100.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
15:17:21 ubert1 is now known as ubert
15:17:46 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
15:18:15 zeenk joins (~zeenk@2a02:2f04:a00b:1800::fba)
15:19:13 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
15:20:35 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Ping timeout: 246 seconds)
15:20:38 <Inst_> tomsmeding: quick question, is accelerate still working on any newer versions of GHC?
15:24:07 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
15:26:36 gurkenglas joins (~gurkengla@dynamic-046-114-181-072.46.114.pool.telefonica.de)
15:26:49 Goodbye_Vincent joins (~Goodbye_V@freakshells.net)
15:30:20 <ddellacosta> juri_: neat, I did not know https://github.com/Haskell-Things/ImplicitCAD existed, glad you mentioned you were the "crazy Haskell 3d printing nerd" lol. Been wanting to dip my toes in the 3d printing waters so this is timely
15:30:30 × Goodbye_Vincent quits (~Goodbye_V@freakshells.net) (Client Quit)
15:32:17 <danse-nr3_> Inst_, i think they have a badge on github, was red last time i checked
15:32:28 <Inst_> yeah, i know
15:32:48 thegeekinside joins (~thegeekin@189.217.90.138)
15:32:52 <Inst_> just saw it got updated, saw some signs it might still be working
15:32:57 <Inst_> the last i heard it was stuck on 9.0.x
15:33:01 <Inst_> which is buggy and no one uses
15:33:51 <Inst_> i really should just join stack club
15:34:24 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
15:37:49 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
15:41:02 mei joins (~mei@user/mei)
15:41:57 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
15:44:05 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
15:44:29 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
15:45:42 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 252 seconds)
15:48:31 <juri_> ddellacosta: It's worse than that. i also have a slicer i'm working ot. :)
15:50:06 ripspin joins (~chatzilla@1.145.240.82)
15:51:36 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
15:54:49 <jade[m]> what's the plan for return in monad? I've heard that it'll be deprecated in the near future but I haven't seen any specifics about it
15:55:38 hugo joins (znc@verdigris.lysator.liu.se)
15:56:35 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
15:57:04 <ddellacosta> juri_: are you talking about https://github.com/Slicer/Slicer? I didn't know this existed either
15:57:28 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:59:04 <juri_> ddellacosta: nope! https://github.com/Haskell-Things/HSlice
15:59:06 picklejuice joins (~root@c-73-196-164-60.hsd1.nj.comcast.net)
15:59:28 <picklejuice> join #archlinux
15:59:30 × elkcl quits (~elkcl@broadband-95-84-180-37.ip.moscow.rt.ru) (Ping timeout: 250 seconds)
15:59:45 × picklejuice quits (~root@c-73-196-164-60.hsd1.nj.comcast.net) (Client Quit)
15:59:50 <juri_> ddellacosta: we talk about all of this stuff in #implicitcad .
15:59:53 <ddellacosta> "Wait but...why? Haskell all of the things." haha
16:00:08 picklejuice joins (~root@c-73-196-164-60.hsd1.nj.comcast.net)
16:00:24 <ddellacosta> thanks, I'll check both of these out in more depth
16:00:58 <juri_> the slicer is still a work in progress. i give a talk on it in a month at the Chaos Communication Camp.
16:01:18 <ddellacosta> nice!
16:02:02 <ddellacosta> haven't thought about CCC in a while, that brings me back
16:03:57 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 258 seconds)
16:04:58 × Daniel[m]1 quits (~danieltan@2001:470:69fc:105::3:6e5e) (Remote host closed the connection)
16:05:58 × m1-s[m] quits (~m1-smatri@2001:470:69fc:105::2:39da) (Remote host closed the connection)
16:07:04 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:07:11 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:09:07 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
16:10:21 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Client Quit)
16:11:50 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
16:11:57 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
16:13:14 Psybur joins (~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
16:13:22 <yin> there is a way of asking for a specialized type in ghcior lambdabot, i dont recall. something like `:t join @(->)` ?
16:13:29 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
16:13:40 <yin> what is it?
16:14:01 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
16:18:37 dcoutts joins (~duncan@195.80.64.243)
16:18:46 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
16:19:43 <geekosaur> lambdabot doesn't support that, but yahb2 and ghci do (enable TypeApplications)
16:19:56 <geekosaur> % :t join @(->)
16:19:56 <yahb2> <interactive>:1:1: error: Variable not in scope: join
16:20:05 <geekosaur> o.O
16:20:12 justsomeguy joins (~justsomeg@user/justsomeguy)
16:20:12 <geekosaur> % import Control.Monad
16:20:12 <yahb2> <no output>
16:20:14 hugo joins (znc@verdigris.lysator.liu.se)
16:20:15 <geekosaur> % :t join @(->)
16:20:16 <yahb2> <interactive>:1:7: error: ; • Expecting one more argument to ‘(->)’ ; Expected kind ‘* -> *’, but ‘(->)’ has kind ‘* -> * -> *’ ; • In the type ‘(->)’ ; In the expression: join ...
16:20:31 <geekosaur> % :t join @((->) _)
16:20:31 <yahb2> join @((->) _) :: Monad ((->) w) => (w -> (w -> a)) -> w -> a
16:21:29 <yin> oh that was it! thanks
16:22:39 <yin> funny how it writes (w -> (w -> a))
16:27:18 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
16:32:42 × dcoutts quits (~duncan@195.80.64.243) (Ping timeout: 272 seconds)
16:34:11 × picklejuice quits (~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
16:35:25 picklejuice joins (~root@172.56.219.136)
16:35:47 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:35:53 L29Ah joins (~L29Ah@wikipedia/L29Ah)
16:41:50 fweht joins (uid404746@id-404746.lymington.irccloud.com)
16:47:40 × kimiamania6 quits (~681cf57f@user/kimiamania) (Ping timeout: 252 seconds)
16:48:58 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
16:50:30 × mechap quits (~mechap@user/mechap) (Ping timeout: 260 seconds)
16:50:38 gmg joins (~user@user/gehmehgeh)
16:51:30 mechap joins (~mechap@user/mechap)
16:54:18 × nonzen quits (~nonzen@user/nonzen) (Quit: Gone)
16:54:18 × sajith quits (~sajith@user/sajith) (Quit: Gone)
16:54:35 nonzen joins (~nonzen@user/nonzen)
16:54:55 danse-nr3__ joins (~francesco@151.47.251.156)
16:55:07 sajith joins (~sajith@user/sajith)
16:55:53 × danse-nr3_ quits (~francesco@151.37.253.148) (Read error: Connection reset by peer)
16:55:57 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
16:56:02 mrmr joins (~mrmr@user/mrmr)
16:56:20 kimiamania6 joins (~681cf57f@user/kimiamania)
16:56:22 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
16:56:50 × zeenk quits (~zeenk@2a02:2f04:a00b:1800::fba) (Quit: Konversation terminated!)
16:57:20 acidjnk joins (~acidjnk@p200300d6e7072f846d698869e9f24b6e.dip0.t-ipconnect.de)
16:59:59 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:00:25 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 240 seconds)
17:00:39 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:02:28 × danse-nr3__ quits (~francesco@151.47.251.156) (Ping timeout: 272 seconds)
17:08:48 × nick3 quits (~nick@50.86.118.19) (Ping timeout: 272 seconds)
17:11:10 danse-nr3__ joins (~francesco@151.47.251.156)
17:14:51 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Remote host closed the connection)
17:18:45 AkechiShiro joins (~licht@user/akechishiro)
17:23:51 × Tlsx quits (~rscastilh@187.40.124.54) ()
17:24:54 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:27:24 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
17:27:25 × Guest9190 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 240 seconds)
17:34:05 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds)
17:34:54 thegeekinside joins (~thegeekin@189.217.90.138)
17:36:04 × danse-nr3__ quits (~francesco@151.47.251.156) (Ping timeout: 252 seconds)
17:37:55 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
17:39:09 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
17:39:47 dcoutts joins (~duncan@195.80.64.243)
17:43:42 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
17:45:38 × mei quits (~mei@user/mei) (Quit: mei)
17:46:10 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:25dd:4a6c:9344:e183) (Ping timeout: 272 seconds)
17:47:19 mei joins (~mei@user/mei)
17:49:18 hgolden joins (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
17:49:34 nick3 joins (~nick@2600:8807:9084:7800:8973:eff0:2771:c97b)
17:50:11 <tomsmeding> @tell Inst_ being worked on, I believe the intent was to make a release that works on some newer ghcs (though not the newest yet) soon
17:50:12 <lambdabot> Consider it noted.
17:51:01 × ripspin quits (~chatzilla@1.145.240.82) (Remote host closed the connection)
17:52:19 <tomsmeding> @tell danse-nr3_ my nick is in the pastebin and logs urls in the channel topic ;)
17:52:19 <lambdabot> Consider it noted.
17:53:42 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
17:54:24 × nick3 quits (~nick@2600:8807:9084:7800:8973:eff0:2771:c97b) (Ping timeout: 272 seconds)
17:55:03 × nonzen quits (~nonzen@user/nonzen) (Quit: Gone)
17:55:03 × sajith quits (~sajith@user/sajith) (Quit: Gone)
17:55:20 nonzen joins (~nonzen@user/nonzen)
17:55:46 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
17:55:52 sajith joins (~sajith@user/sajith)
17:56:19 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
17:56:56 × Square quits (~Square@user/square) (Ping timeout: 272 seconds)
17:58:47 × trev quits (~trev@user/trev) (Quit: trev)
17:59:42 × sajith quits (~sajith@user/sajith) (Client Quit)
17:59:42 × nonzen quits (~nonzen@user/nonzen) (Client Quit)
18:00:00 nonzen joins (~nonzen@user/nonzen)
18:00:31 sajith joins (~sajith@user/sajith)
18:01:12 × dcoutts quits (~duncan@195.80.64.243) (Ping timeout: 245 seconds)
18:02:09 × nonzen quits (~nonzen@user/nonzen) (Client Quit)
18:02:09 × sajith quits (~sajith@user/sajith) (Remote host closed the connection)
18:02:44 nonzen joins (~nonzen@user/nonzen)
18:03:16 sajith joins (~sajith@user/sajith)
18:08:41 thegeekinside joins (~thegeekin@189.217.90.138)
18:11:34 × sajith quits (~sajith@user/sajith) (Quit: Gone)
18:11:34 × nonzen quits (~nonzen@user/nonzen) (Quit: Gone)
18:11:52 nonzen joins (~nonzen@user/nonzen)
18:12:24 sajith joins (~sajith@user/sajith)
18:12:25 elkcl joins (~elkcl@broadband-95-84-180-37.ip.moscow.rt.ru)
18:13:49 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
18:21:52 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
18:24:14 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
18:24:47 alexbiehl joins (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
18:25:13 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
18:29:06 × alexbiehl quits (~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
18:30:41 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
18:33:14 Tlsx joins (~rscastilh@187.40.124.54)
18:34:45 phma_ is now known as phma
18:37:38 × kimjetwav quits (~user@2607:fea8:235e:b600:e655:bdac:14d2:fa34) (Ping timeout: 246 seconds)
18:42:03 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
18:44:07 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 245 seconds)
18:46:11 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds)
18:56:59 zero joins (~z@user/zero)
18:59:55 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
19:00:20 × yin quits (~z@user/zero) (Ping timeout: 260 seconds)
19:01:34 zzz joins (~z@user/zero)
19:02:06 × hackyhacker quits (~hackyhack@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) (Quit: The Lounge - https://thelounge.chat)
19:03:22 ncf recently went on a hike through the Cairngorms and just learned that the range used to be called Am Monadh Ruadh :)
19:04:01 <jade[m]> epic category theory reference
19:04:42 × zero quits (~z@user/zero) (Ping timeout: 272 seconds)
19:04:42 zzz is now known as zero
19:05:22 <ncf> monic, rather
19:05:22 photoreception joins (~hilario@103.166.10.159)
19:07:11 <mauke> CCC? epic category theory reference
19:10:19 <jade[m]> whenever I hear CCC, I think of jan misalis video
19:11:35 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
19:11:42 hugo joins (znc@verdigris.lysator.liu.se)
19:14:54 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
19:18:38 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
19:20:46 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
19:25:20 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
19:25:42 thegeekinside joins (~thegeekin@189.217.90.138)
19:29:54 Maeda joins (~Maeda@91-161-10-149.subs.proxad.net)
19:50:09 × bollu quits (~bollu@159.65.151.13) (Quit: Ping timeout (120 seconds))
19:50:34 bollu joins (~bollu@159.65.151.13)
19:53:30 × ft quits (~ft@p3e9bc835.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
19:54:04 jonathan joins (~jonathan@c-5eea70ba-74736162.cust.telenor.se)
19:54:26 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
19:55:13 ft joins (~ft@p4fc2a494.dip0.t-ipconnect.de)
20:00:11 oac joins (~oac@72-50-214-210.fttp.usinternet.com)
20:00:47 × jonathan quits (~jonathan@c-5eea70ba-74736162.cust.telenor.se) (Ping timeout: 245 seconds)
20:02:58 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
20:12:02 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
20:17:46 × Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Quit: yup)
20:24:00 titibandit joins (~titibandi@user/titibandit)
20:27:11 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Remote host closed the connection)
20:27:13 × nonzen quits (~nonzen@user/nonzen) (Quit: Gone)
20:27:13 × sajith quits (~sajith@user/sajith) (Quit: Gone)
20:27:54 nonzen joins (~nonzen@user/nonzen)
20:28:26 sajith joins (~sajith@user/sajith)
20:29:43 hgolden joins (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
20:32:06 × ft quits (~ft@p4fc2a494.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
20:32:39 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:33:28 ft joins (~ft@p508db7ce.dip0.t-ipconnect.de)
20:33:38 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
20:36:55 × perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.1)
20:38:18 × califax quits (~califax@user/califx) (Remote host closed the connection)
20:40:04 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
20:40:53 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
20:50:48 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
20:51:23 califax joins (~califax@user/califx)
20:51:57 azimut joins (~azimut@gateway/tor-sasl/azimut)
20:53:29 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
20:56:28 × phma quits (~phma@host-67-44-208-224.hnremote.net) (Read error: Connection reset by peer)
20:56:54 phma joins (phma@2001:5b0:2144:7e18:347d:b9fd:6656:c5a6)
20:57:52 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
20:58:15 × Tlsx quits (~rscastilh@187.40.124.54) ()
21:01:23 × kimiamania6 quits (~681cf57f@user/kimiamania) (Quit: PegeLinux)
21:01:51 kimiamania6 joins (~681cf57f@user/kimiamania)
21:07:00 nick3 joins (~nick@2600:8807:9084:7800:8973:eff0:2771:c97b)
21:07:19 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
21:10:32 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.0.2)
21:11:08 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
21:15:17 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds)
21:15:48 × michalz quits (~michalz@185.246.207.200) (Ping timeout: 272 seconds)
21:18:45 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
21:20:51 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
21:21:07 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
21:21:33 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
21:23:05 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
21:23:28 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
21:26:29 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
21:27:27 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
21:30:17 mechap joins (~mechap@user/mechap)
21:34:00 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
21:35:21 pavonia joins (~user@user/siracusa)
21:38:11 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
21:39:36 <segfaultfizzbuzz> in haskell binaries (e.g. compiled by ghc) are the types set rigidly at compile time or can they change at runtime? (presumably this would be entangled with the question of whether the program can change at runtime..?)
21:40:09 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
21:40:44 <geekosaur> types don't even exist at runtime
21:40:55 <segfaultfizzbuzz> oh wow ok
21:41:19 × oac quits (~oac@72-50-214-210.fttp.usinternet.com) (Quit: WeeChat 3.8)
21:41:43 <segfaultfizzbuzz> ... so the runtime doesn't know what types it is working with (unless that becomes specifically included in the binary, like a printType function or something)
21:41:48 <segfaultfizzbuzz> ?
21:42:04 <Hecate> segfaultfizzbuzz: that's called "type erasure" if you want to look this up
21:42:21 <segfaultfizzbuzz> is the type erasure a property of the haskell language or of ghc?
21:42:44 <geekosaur> correct. there's limited RTTI via Data.Typeable, and the garbage collector knows the "shape" of values (specifically, which words in a value represent pointers it must follow)
21:42:50 <Hecate> you know what, I have no idea if it's in the report, but usually except for debugging purposes, types don't make it to binary code
21:43:31 <geekosaur> this is generally true of compiled code, you only get type information at runtime if there is an RTTI mechanism
21:43:32 × ardavast quits (~ardavast@62-73-72-214.ip.btc-net.bg) (Remote host closed the connection)
21:43:33 <segfaultfizzbuzz> so memory addresses are tagged in some way, basically?
21:43:39 <Hecate> yup
21:44:30 × myxokephale quits (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Quit: myxokephale)
21:44:44 myxos joins (~myxos@cpe-65-28-251-121.cinci.res.rr.com)
21:44:49 <segfaultfizzbuzz> interesting,... is there a simple reason for the type information to be discarded?
21:44:58 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
21:44:59 <segfaultfizzbuzz> seems like it would be incredibly important for testing, profiling, etc
21:45:22 <geekosaur> it's usually not needed. and no, profiling doesn't need it either, the tag is enough
21:45:50 <geekosaur> testing code has the types during typechecking when it needs it
21:46:01 <Hecate> usually you can get away with much more targeted information in terms of memory representation
21:46:09 <Hecate> no need for the whole user-defined type
21:46:39 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
21:46:49 <geekosaur> note that libraries *do* have type information, which for ghc is in .hi files; it just doesn't make it into the final binary
21:47:37 <darkling> For compiled languages, by the time the compiler's produced machine instructions to push the bits around, the type is largely irrelevant.
21:48:42 falafel joins (~falafel@2603-7000-a700-8710-e3d6-964f-e7e9-177a.res6.spectrum.com)
21:50:15 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
21:51:10 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
21:52:55 <ski> segfaultfizzbuzz : "is the type erasure a property of the haskell language or of ghc?" -- a property of the implementation, but the language is designed in such a way so as to mostly painlessly support such implementations that want to do type erasure (although, i think you'd say the GC still knows some low-level type aspects (most specifically whether something's an address or not))
21:54:37 <ski> (also note that this is related to why we don't consider whether a value is a `Just' or a `Nothing', or a `Left' or a `Right', &c. a "type" (while some dynamically typed languages definitely would consider those "types"))
21:55:58 <segfaultfizzbuzz> doesn't make sense, i can pattern match on Just a | Nothing,...
21:56:33 <ski> (e.g. if you were making a tree data srtucture in say Scheme, with a few different kind of nodes, you'd probably declare a record type for each kind of node, and "check runtime type" to determine which kind of node you're holding in your hand)
21:56:51 <ski> segfaultfizzbuzz : exactly. so those are not types (`Maybe' is a type)
21:57:28 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
21:59:05 <ski> types being erasable means that we get the property of parametricity, where if an operation is polymorphic in some type variable, then it can't know at run-time which actual type was used in place of that type variable, and so it can't inspect values having that type variable as its type, it can only pass (references/addresses/pointers to, generally speaking) such values around (dropping the value,
21:59:11 <ski> duplicating it, passing it to some particular destination, like result value, or as argument in a call, or inside a data structure)
22:00:19 <ski> so, if you see `mystery :: Int -> [a] -> [a]' in a library, you *know* that its behaviour can't depend on the actual type you use for `a', nor can it depend on the actual values of that type that you pass in the list. and the only way for it to get `a' values is from that list, so all elements in the result list must come from the argument list
22:01:31 <ski> if you see `someHOF :: (a -> Maybe a) -> (a -> a -> Bool) -> [a] -> [a]', you know that the only way the function can inspect the list elements, is *via* those two callback functions (which it can only call on elements of the input list)
22:01:43 × califax quits (~califax@user/califx) (Remote host closed the connection)
22:02:06 califax joins (~califax@user/califx)
22:03:39 × hpc quits (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 246 seconds)
22:04:32 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
22:04:54 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:05:00 <ski> if you want to be able to do something, depending on the type, you must explicitly opt-in to that, by adding a `Typeable' constraint, like `foo :: Typeable a => [a] -> [a]' can check what type `a' the caller picked, and if it knows that type, it can look inside the input elements, and can also construct unrelated output elements
22:05:21 <segfaultfizzbuzz> wow this seems very important,... but i am doing a double take, if the function is "generic" in my neanderthalic vocabulary, then it does not work with the values of that generic parameter? the function signature must specialize in order to introspect?
22:05:32 hpc joins (~juzz@ip98-169-35-163.dc.dc.cox.net)
22:06:04 <segfaultfizzbuzz> that fact makes haskell code a lot more readable, ha
22:06:33 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
22:07:26 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
22:08:00 <ski> it can "handle" the values, by passing them around. but it can't look inside them, nor conjure up new values of that type from scratch (barring a few special cases like `error :: String -> a',`(let x = x in x) :: a')
22:08:14 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
22:08:26 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
22:08:33 <segfaultfizzbuzz> right, introspect, that's like totally awesome
22:09:28 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
22:09:50 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
22:10:26 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
22:10:58 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
22:11:00 <ski> anyway, as you can imagine, this property, "parametricity", can be quite handy, at times, when trying to figure out what some random library function *can't* do, in order to better understand code, or in order to be able to refactor it without changing observable behaviour (e.g. changing `map f (mystery n (map g xs))' to `map f (map g (mystery n xs))' so that you can further refactor it to `map (f . g)
22:11:04 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
22:11:06 <ski> (mystery n xs)' merging two traversals into a single one)
22:11:21 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
22:11:31 <segfaultfizzbuzz> yeah i love it, totally changes the readability
22:11:44 <ski> not every language which has generics / parametric polymorphism has this "parametricity" property. e.g. Java doesn't, because there is `instanceof' and downcasts
22:14:30 <ski> parametricity tends to help better understanding the possible behaviour of (polymorphic) higher-order functions (like `someHOF' above), in that you know that the *only* `a' values it passes to the callbacks (apart from the special exceptions for "bottom" elements (aborting computation, infinite loop) that i mentioned) comes in some way from the inputs you pass to the HOF (the input list, here), and also that
22:14:36 <ski> that's the *only* way the HOF has of inspecting (and possibly producing more) of those `a' values
22:15:07 <ski> @free mystery :: Int -> [a] -> [a]
22:15:07 <lambdabot> $map f . mystery x = mystery x . $map f
22:15:19 bilegeek joins (~bilegeek@2600:1008:b05a:b7e5:c4f0:94df:26fd:4b15)
22:15:54 <ski> that law (which we can claim, solely by knowing the *type* of `mystery') is what i used above, to refactor `mystery n (map g xs)' to `map g (mystery n xs)'
22:15:58 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
22:16:30 <ski> (there's a paper, by wadler, about "free theorems", which is about this)
22:16:36 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds)
22:18:23 <ski> "Theorems for free!" by Philip Wadler in 1989-09 at <https://homepages.inf.ed.ac.uk/wadler/topics/parametricity.html#free>
22:18:27 <segfaultfizzbuzz> i don't know $map
22:18:36 <hpc> it's just @free's way of saying map
22:18:44 <hpc> @free map :: x -> y -> z
22:18:45 <lambdabot> h . map x = map (f x) . g
22:18:54 <hpc> so you don't get confused if you do ^ that
22:18:54 <int-e> the natural fmap
22:18:57 <ski> that's just the notation used by that `free' command, to distinguish from any random function that might be named `map'
22:19:10 <ski> @free map :: Int -> [a] -> [a]
22:19:10 <lambdabot> $map f . map x = map x . $map f
22:19:30 <ski> @free catMaybes :: [Maybe a] -> [a]
22:19:30 <lambdabot> $map f . catMaybes = catMaybes . $map ($map_Maybe f)
22:19:46 × acidjnk quits (~acidjnk@p200300d6e7072f846d698869e9f24b6e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
22:20:02 <ski> `$map' is for `[]' (lists), `$map_F' is for general type constructors (like `Maybe')
22:20:32 <ski> @free swap :: (a,b) -> (b,a)
22:20:32 <lambdabot> $map_Pair g f . swap = swap . $map_Pair f g
22:22:03 <ski> that's assuming a (bifunctor) `bimap :: (a0 -> a1) -> (b0 -> b1) -> ((a0,b0) -> (a1,b1))' (which it called `$map_Pair' above) (or `bimap :: Bifunctor t => (a0 -> a1) -> (b0 -> b1) -> (t a0 b0 -> t a1 b1)' in general)
22:22:23 <ski> @free mirror :: Either a b -> Either b a
22:22:23 <lambdabot> $map_Either g f . mirror = mirror . $map_Either f g
22:22:34 <ski> @free length :: [a] -> Int
22:22:35 <lambdabot> length = length . $map f
22:25:33 <segfaultfizzbuzz> @free 1 + 1
22:25:33 <lambdabot> Try `free <ident>` or `free <ident> :: <type>`
22:25:38 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
22:25:38 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
22:25:38 dibblego joins (~dibblego@haskell/developer/dibblego)
22:25:52 <segfaultfizzbuzz> ok so free is computing something on the command you are providing it?
22:26:48 <segfaultfizzbuzz> i don't think i have ever typed something like what you have provided into ghci and gotten a response like what @free is providing, looks like you are saying "show me the type of this" or some similar thing...?
22:27:16 <ski> it's computing the law, from the shape of the type signature of the polymorphim operation you're suggesting to it (it doesn't look up in any library whether there's actually an operation of that type)
22:27:26 ub joins (~Thunderbi@178.165.175.35.wireless.dyn.drei.com)
22:28:01 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
22:28:03 <ski> `free' is a lambdabot plugin. iirc, it may be possibly to use from the interactor, though. (istr you can use lambdabot from the interactor. never tried, though)
22:28:36 <geekosaur> I think goa's bitrotted
22:28:44 <geekosaur> @hackage goa
22:28:44 <lambdabot> https://hackage.haskell.org/package/goa
22:29:27 buckwheat joins (~buckwheat@209.122.211.192)
22:29:38 <segfaultfizzbuzz> "the law" is new to me
22:29:49 segfaultfizzbuzz makes a gangsta symbol and pulls pants down to ankles
22:30:52 fweht joins (uid404746@id-404746.lymington.irccloud.com)
22:30:58 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
22:31:04 <ski> "it's computing the law" -- the "free law" (in the sense that you get it "for free", from just knowing the type of the operation, thanks to the parametricity property of Haskell's generics / parametric polymorphism)
22:31:19 <ski> a few other papers which might be interesting to check out :
22:31:24 <ski> @where polymorphic-type-inference
22:31:25 <lambdabot> "Polymorphic Type Inference" by Michael I. Schwartzbach in 1995-03 at <https://cs.au.dk/~mis/typeinf.p(s|df)>,<http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.57.1493>
22:31:28 <ski> @where on-understanding
22:31:28 <lambdabot> "On Understanding Types, Data Abstraction, and Polymorphism" by Luca Cardelli,Peter Wegner in 1985-12 at <http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf>
22:31:31 <ski> @where on-understanding-revisited
22:31:31 <lambdabot> "On Understanding Data Abstraction, Revisited" by William R. Cook in 2009-10 at <http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf>
22:31:40 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
22:32:26 <segfaultfizzbuzz> tbh when i look at papers i am lucky to understand anything more than a couple of paragraphs
22:32:34 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
22:33:05 <segfaultfizzbuzz> quite often i hit something like those type inference diagrams and i get buffer overflow from the definitions
22:33:20 <ski> some authors are better at writing accessibly, than others
22:33:27 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
22:33:30 <ski> Wadler's usually pretty great
22:34:16 <ski> also, i'd suggest the Schwartzbach paper above as an intro to type systems and polymorphism. it explains quite a bit explicitly that most other papers on type systems takes for granted
22:35:30 × nyc quits (~nyc@user/nyc) (Ping timeout: 246 seconds)
22:35:41 <segfaultfizzbuzz> i have a simpler question which might be better and on point (??): i came across ben lynn's excellent macguyver talk, i think i understood and retained more than half of it, and it got me wondering whether there is such thing as a typed combinator?
22:36:07 <ski> hm, i'm not familiar with that talk (link ?)
22:36:16 <segfaultfizzbuzz> https://www.youtube.com/watch?v=3kMvXXGXaws&list=PLOvRW_utVPVmzDGGOJ2amgVBK168Vemke&index=7
22:36:20 <ski> what is meant by "combinator", in this context ?
22:37:01 <segfaultfizzbuzz> you can skip to ten minutes into the video to cut to the most important part i think,... basically he says S &K combinators taken together are turing complete
22:38:10 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
22:38:24 <ski> oh, combinatory logic
22:38:52 <ski> sure, you can type those combinators, like
22:39:13 <ski> S : (a -> b -> c) -> (a -> b) -> (a -> c)
22:39:21 <ski> K : a -> b -> a
22:39:27 <ski> I : a -> a
22:40:40 <ski> also other combinators, like
22:40:51 <segfaultfizzbuzz> ...are the results of reduction of SK evaluation order dependent? no right?
22:40:57 <ski> B : (b -> c) -> (a -> b) -> (a -> c)
22:40:59 dcoutts joins (~duncan@212.187.244.53)
22:41:22 <ski> C : (a -> b -> c) -> (b -> a -> c)
22:41:32 <ski> W : (a -> a -> b) -> (a -> b)
22:44:05 <ski> segfaultfizzbuzz : depends on whether you have types or not (simplifying slightly). with no types, you can easily make an infinite loop, and then whether you go into it or ignore it can depend on which evaluation order you use. with a simple type system (and no recursion, and no explicit combinator for encoding it either), everything terminates, and so you always get to an answer, and then what answer you
22:44:11 <ski> get doesn't depend on which path (evaluation order) you take to get there (this is "confluence")
22:44:47 wroathe joins (~wroathe@user/wroathe)
22:45:15 × nick3 quits (~nick@2600:8807:9084:7800:8973:eff0:2771:c97b) (Ping timeout: 246 seconds)
22:45:27 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:46:17 × dcoutts quits (~duncan@212.187.244.53) (Ping timeout: 246 seconds)
22:46:22 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 272 seconds)
22:46:45 <segfaultfizzbuzz> interesting
22:47:20 <ski> you might perhaps also enjoy reading
22:47:23 <ski> @where mockingbird
22:47:23 <lambdabot> "To mock a mockingbird : and other logic puzzles including an amazing adventure in combinatory logic" by R. M. Smullyan, "To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with
22:47:24 <lambdabot> Animated Reduction" at <http://dkeenan.com/Lambda/> by David C. Keenan. Also see `smullyan'
22:47:38 <segfaultfizzbuzz> fine so i could selectively exclude infinite recursion (e.g. the evaluator can suspend at will) then it is evaluation order independent?
22:47:43 <ski> it talks about the combinators, from a playful bird analogy
22:48:40 <ski> suspend, how ?
22:48:50 <zero> oooh do i hear chirping?
22:48:52 <probie> Is confluence tied to termination? I was taught that it's the "diamond property" of a rewrite system (i.e if B and C can be reached from A by some rewrites, then there is a D which is reachable from both B and C)
22:49:07 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
22:49:26 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 250 seconds)
22:49:37 <ski> if you use one evaluation order, then the computation might terminate quickly, but if you use another, it might take a long time, and so you might get a time-out .. doesn't sound like independent of evaluation order (depending on how you define that, i guess)
22:50:43 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
22:50:46 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
22:50:46 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
22:50:46 dibblego joins (~dibblego@haskell/developer/dibblego)
22:51:00 <ski> probie : not directly. i was remarking that if you have termination, then because you also have confluence, you get to the same result, regardless of which path you take. but if you only have confluence, but not termination, then some evaluations orders may terminate (necessarily with the same result), while others can diverge
22:51:28 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:51:31 <ski> (and if you only have termination, but not confluence, then you have a non-deterministic computation, you might end up with different end results, depending on which evaluation order you use)
22:53:24 <ski> (hm, seems "Programming with Visual Expressions" by Wayne Citrin,Richard Hall,Benjamin Zorn at <https://web.archive.org/web/20220607041104/http://users.encs.concordia.ca/~haarslev/vl95www/html-papers/citrin/citrin.html> expired, so that you need to access it via the Web Archive)
22:54:57 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
22:54:57 <segfaultfizzbuzz> oh interesting, it becomes nondeterministic if it is nonterminating?
22:55:05 <segfaultfizzbuzz> that's very interesting
22:55:22 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
22:55:30 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
22:55:33 <ski> (also, i don't believe i've seen "lambda-calculus-visualizations: Catalog of visual lambda calculi" <https://github.com/prathyvsh/lambda-calculus-visualizations> before, although i've seen some of the (other) entries, like "Lambda Diagrams","Alligator Eggs")
22:56:05 <ski> segfaultfizzbuzz : `const () (fix id)'
22:56:34 dsrt^ joins (~cd@24.125.210.85)
22:56:42 <hpc> segfaultfizzbuzz: it's a pretty intuitive result, even if you think in terms of a language like C
22:56:51 <hpc> consider short-circuiting and/or
22:56:55 <ski> (nondeterministic, up to choosing the evaluation order, that is. if you've picked an evaluation order, and it doesn't involve making arbitrary choices, then within that evaluation order, it'd still be deterministic)
22:57:09 <hpc> 0 || loop()
22:57:10 <segfaultfizzbuzz> short circuiting... a program? lol you folks are on another level ;-)
22:57:43 <hpc> a program and a function are basically the same thing - try writing a bash script without that idea in mind sometime :D
22:57:45 <ski> `y != 0 && foo(x / y)'
22:58:09 <hpc> but yeah, with short-circuiting logic, there's no reason why it has to be left-to-right
22:58:12 <sm> @where+ learnxinyminutes https://learnxinyminutes.com/docs/haskell
22:58:12 <lambdabot> Done.
22:58:47 <hpc> so you have confluence, of a sort
22:59:00 <hpc> but you don't have termination, because loop() is possible to write at all
22:59:17 <hpc> so depending on the evaluation order, you get either 0 or you don't terminate
22:59:52 <ski> hm .. very large letters on that page .. i can only see 51 width at a time, without scrolling sideways
23:01:20 <ski> "there's no reason why it has to be left-to-right" -- well, with dependent conjunction and implication, there could be, i guess
23:02:34 <segfaultfizzbuzz> this is a bit off topic but i have been curious about "smart" evaluation rather than always left to right or always right to left
23:02:50 × falafel quits (~falafel@2603-7000-a700-8710-e3d6-964f-e7e9-177a.res6.spectrum.com) (Ping timeout: 272 seconds)
23:02:51 <ski> `(x : sigma) /\ tau', is well-formed (type-correct), when `sigma' is, and when `tau' is (where `x' of type `sigma') is in scope in `tau'. and similarly for the dependent implication `(x : sigma) -> tau'
23:02:57 <segfaultfizzbuzz> but that concept really only makes sense if your computation is not order dependent,...
23:03:19 <segfaultfizzbuzz> or if you can accept nondeterminism (maybe nondeterminism is inevitable and you should plan to accomodate it...?)
23:03:20 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
23:03:48 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
23:03:48 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
23:03:48 dibblego joins (~dibblego@haskell/developer/dibblego)
23:04:18 × APic quits (~apic@apic.name) (Ping timeout: 260 seconds)
23:04:20 <ski> the special cases `(_ : sigma) /\ tau' and `(_ : sigma) -> tau' where `x' is not used in `tau', could still have the well-formedness (including well-typedness) of `tau' depending on `sigma' being *inhabited* (from a logical perspective : depending on `sigma' holding / being the case)
23:05:44 <ski> so, you can argue that `x =/= 0 /\ f(1/x) > 0' is well-formed, even though `1/x' is not defined when `x' is zero, because you're allowed to assume, when checking the well-formedness of the right conjunct, that the left conjunct is *true* !
23:06:53 <ski> (this is an example of a "presupposition". the formula `f(1/x)' being wellformed presupposes that `x' is non-zero. this presupposition is discharged by the left conjunct in this conjunction, so that it's no longer a presupposition (/ dependency) of the whole conjunction)
23:07:16 <segfaultfizzbuzz> interesting
23:07:54 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
23:08:28 zero thinks of https://esolangs.org/wiki/Whenever
23:09:01 segfaultfizzbuzz thinks of https://www.youtube.com/watch?v=weRHyjj34ZE
23:11:14 <ski> (a more mundane example would be "Have you stopped beating your wife yet ?" (it's a traditiona one, on this topic) -- a presupposition of this question is "You did beat your wife at some point.". if that presupposition is false, then you can (truthfully) answer neither "yes" nor "no". strictly speaking, the question is malformed, "type incorrect", "inadmissible", doesn't make sense. you could answer "mu"
23:11:20 <ski> (see <https://en.wikipedia.org/wiki/Mu_(negative)>,<http://www.catb.org/jargon/html/M/mu.html>), though, to "unask" the question)
23:11:35 <segfaultfizzbuzz> ay maybe we could use a different example
23:11:57 dcoutts joins (~duncan@79.137.104.194)
23:12:24 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
23:12:24 segfaultfizzbuzz thinks of https://chrono.fandom.com/wiki/Nu
23:12:26 <ski> (<https://en.wikipedia.org/wiki/Definite_description> is also related to this)
23:12:52 <ski> heh, i remember those, segfaultfizzbuzz :p
23:13:09 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
23:13:38 <segfaultfizzbuzz> haha a programming language with no sense of urgency lol
23:13:59 <segfaultfizzbuzz> wait wow what, no control flow or variables? wow
23:16:12 × dcoutts quits (~duncan@79.137.104.194) (Ping timeout: 245 seconds)
23:17:02 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
23:17:08 andydude joins (~andrewr@151.200.15.152)
23:18:42 × bilegeek quits (~bilegeek@2600:1008:b05a:b7e5:c4f0:94df:26fd:4b15) (Ping timeout: 245 seconds)
23:22:07 APic joins (apic@apic.name)
23:22:13 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
23:24:53 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
23:27:08 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
23:27:26 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
23:36:00 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:37:11 × mechap quits (~mechap@user/mechap) (Ping timeout: 264 seconds)
23:37:37 mechap joins (~mechap@user/mechap)
23:41:49 nick3 joins (~nick@2600:8807:9084:7800:8973:eff0:2771:c97b)
23:42:40 mauke_ joins (~mauke@user/mauke)
23:44:12 × mauke quits (~mauke@user/mauke) (Ping timeout: 252 seconds)
23:44:12 mauke_ is now known as mauke
23:49:35 alexbiehl joins (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
23:49:38 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
23:53:42 × alexbiehl quits (~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
23:55:06 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
23:55:21 falafel joins (~falafel@2603-7000-a700-8710-6966-48e1-9920-70bf.res6.spectrum.com)
23:56:45 × falafel quits (~falafel@2603-7000-a700-8710-6966-48e1-9920-70bf.res6.spectrum.com) (Remote host closed the connection)
23:57:18 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 272 seconds)
23:57:27 × APic quits (apic@apic.name) (Ping timeout: 245 seconds)

All times are in UTC on 2023-07-14.