Home liberachat/#haskell: Logs Calendar

Logs on 2022-02-07 (liberachat/#haskell)

00:04:24 chenqisu1 joins (~chenqisu1@183.217.200.249)
00:13:12 amk parts (~amk@109.255.169.126) (WeeChat 3.4)
00:14:40 × machinedgod quits (~machinedg@24.105.81.50) (Quit: Lost terminal)
00:24:12 × maxime_ quits (~maxime@2a01cb08833598006800cd803015c082.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
00:31:53 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
00:31:53 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
00:31:53 wroathe joins (~wroathe@user/wroathe)
00:38:50 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
00:39:30 machinedgod joins (~machinedg@24.105.81.50)
00:43:11 × n3rdy1 quits (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 252 seconds)
00:44:30 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Remote host closed the connection)
00:56:01 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
01:01:44 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:02:35 img joins (~img@user/img)
01:05:41 califax joins (~califax@user/califx)
01:07:53 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
01:18:55 lavaman joins (~lavaman@98.38.249.169)
01:19:02 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:19:03 ProfSimm joins (~ProfSimm@87.227.196.109)
01:22:21 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
01:22:58 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
01:23:23 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
01:27:49 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
01:30:21 × Inst quits (~delicacie@2601:6c4:4080:3f80:c32:f815:8539:fe9a) (Ping timeout: 245 seconds)
01:37:00 oscurochu joins (~oscurochu@097-096-050-227.res.spectrum.com)
01:44:54 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
01:49:24 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Ping timeout: 250 seconds)
01:50:14 benin joins (~benin@183.82.31.24)
01:51:49 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
01:52:17 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
01:54:55 × oscurochu quits (~oscurochu@097-096-050-227.res.spectrum.com) (Ping timeout: 256 seconds)
01:56:05 tommd joins (~tommd@67-42-147-226.ptld.qwest.net)
01:59:44 × cjb quits (~cjb@user/cjb) (Ping timeout: 260 seconds)
02:00:52 × x_kuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
02:01:34 × burnsidesLlama quits (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
02:02:01 burnsidesLlama joins (~burnsides@dhcp168-015.wadham.ox.ac.uk)
02:03:18 × xsperry quits (~xs@user/xsperry) (Remote host closed the connection)
02:06:18 × burnsidesLlama quits (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
02:16:16 califax- joins (~califax@user/califx)
02:17:07 × chenqisu1 quits (~chenqisu1@183.217.200.249) (Ping timeout: 256 seconds)
02:18:43 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
02:18:57 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
02:18:58 califax- is now known as califax
02:22:48 Null_A joins (~null_a@2601:645:8700:2290:dcf9:b60:3266:d217)
02:26:39 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
02:27:53 × foul_owl quits (~kerry@94.140.8.107) (Ping timeout: 256 seconds)
02:31:00 × tommd quits (~tommd@67-42-147-226.ptld.qwest.net) (Ping timeout: 250 seconds)
02:31:31 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
02:33:13 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
02:34:20 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
02:34:57 × xff0x quits (~xff0x@2001:1a81:52c7:8c00:e8ce:cafa:8529:c63a) (Ping timeout: 240 seconds)
02:37:04 xff0x joins (~xff0x@2001:1a81:530c:c100:a39b:fc3d:abc2:3254)
02:37:08 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:37:08 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:37:08 wroathe joins (~wroathe@user/wroathe)
02:39:10 <ephemient> > let x = '十' in (ord x, isNumber x)
02:39:11 <lambdabot> (21313,False)
02:39:34 <ephemient> CJK numeric characters aren't numbers apparently
02:43:25 foul_owl joins (~kerry@23.82.193.178)
02:44:23 × Null_A quits (~null_a@2601:645:8700:2290:dcf9:b60:3266:d217) (Remote host closed the connection)
02:48:24 Null_A joins (~null_a@2601:645:8700:2290:dcf9:b60:3266:d217)
02:49:35 ProfSimm joins (~ProfSimm@87.227.196.109)
02:54:24 × little_mac quits (~little_ma@2601:410:4300:3ce0:8900:f68f:743:8461) (Remote host closed the connection)
02:56:39 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
03:00:15 razetime joins (~quassel@49.207.209.26)
03:03:21 Inst joins (~delicacie@2601:6c4:4080:3f80:740e:1010:1471:f716)
03:03:59 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
03:04:36 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
03:12:19 × foul_owl quits (~kerry@23.82.193.178) (Ping timeout: 256 seconds)
03:12:25 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:12:39 × Null_A quits (~null_a@2601:645:8700:2290:dcf9:b60:3266:d217) (Remote host closed the connection)
03:14:08 Null_A joins (~null_a@2601:645:8700:2290:dcf9:b60:3266:d217)
03:16:16 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
03:18:27 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Remote host closed the connection)
03:20:35 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
03:24:05 × razetime quits (~quassel@49.207.209.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
03:24:22 razetime joins (~quassel@49.207.209.26)
03:26:55 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
03:28:12 foul_owl joins (~kerry@23.82.193.176)
03:29:43 × tatarqa quits (~kli@ip-89-177-122-45.net.upcbroadband.cz) (Remote host closed the connection)
03:30:27 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
03:31:13 × Null_A quits (~null_a@2601:645:8700:2290:dcf9:b60:3266:d217) (Remote host closed the connection)
03:32:57 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
03:33:05 cheater joins (~Username@user/cheater)
03:36:52 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
03:36:52 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
03:36:52 wroathe joins (~wroathe@user/wroathe)
03:37:01 img joins (~img@user/img)
03:38:23 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
03:38:48 × jao quits (~jao@static-68-235-44-10.cust.tzulo.com) (Remote host closed the connection)
03:39:31 × td_ quits (~td@muedsl-82-207-238-099.citykom.de) (Ping timeout: 256 seconds)
03:41:17 td_ joins (~td@muedsl-82-207-238-078.citykom.de)
03:41:33 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
03:45:52 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:45:52 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:45:52 finn_elija is now known as FinnElija
03:49:29 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 256 seconds)
03:51:08 × Pirate18 quits (~Pirate18@72-46-55-28.lnk.ne.static.allophone.net) (Quit: Client closed)
03:54:52 Erutuon joins (~Erutuon@user/erutuon)
03:55:57 × monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
03:57:41 monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
03:59:19 flinner joins (~flinner__@2001:16a2:7844:cc00:a653:a7c4:bee9:612)
03:59:19 × flinner quits (~flinner__@2001:16a2:7844:cc00:a653:a7c4:bee9:612) (Changing host)
03:59:19 flinner joins (~flinner__@user/flinner)
04:00:35 jao joins (~jao@static-68-235-44-10.cust.tzulo.com)
04:00:53 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
04:01:10 Null_A joins (~null_a@2601:645:8700:2290:dcf9:b60:3266:d217)
04:02:21 cyphase joins (~cyphase@user/cyphase)
04:02:57 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
04:04:09 × modnar quits (~modnar@shell.sonic.net) (Quit: No Ping reply in 180 seconds.)
04:04:14 dajoer joins (~david@user/gvx)
04:05:35 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
04:06:09 × foul_owl quits (~kerry@23.82.193.176) (Ping timeout: 256 seconds)
04:06:16 modnar joins (~modnar@shell.sonic.net)
04:09:13 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
04:11:02 × Null_A quits (~null_a@2601:645:8700:2290:dcf9:b60:3266:d217) (Remote host closed the connection)
04:13:55 × jao quits (~jao@static-68-235-44-10.cust.tzulo.com) (Remote host closed the connection)
04:15:05 rusrushal13 joins (~rusrushal@2401:4900:447d:3aba:8f0f:db79:1f48:d9d7)
04:17:24 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Remote host closed the connection)
04:18:28 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
04:22:00 foul_owl joins (~kerry@192.145.116.101)
04:23:44 Null_A joins (~null_a@2601:645:8700:2290:4c47:2f1b:c09c:dc10)
04:27:18 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
04:28:50 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
04:28:50 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
04:28:50 wroathe joins (~wroathe@user/wroathe)
04:30:46 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
04:30:50 mbuf joins (~Shakthi@171.61.147.232)
04:33:55 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
04:38:05 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection)
04:43:12 × razetime quits (~quassel@49.207.209.26) (Remote host closed the connection)
04:45:21 deadmarshal joins (~deadmarsh@95.38.113.203)
04:46:04 × juhp quits (~juhp@128.106.188.82) (Quit: juhp)
04:49:09 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
04:49:19 fef joins (~thedawn@user/thedawn)
04:50:44 chenqisu1 joins (~chenqisu1@183.217.200.249)
04:53:05 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
04:53:45 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
04:54:00 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:56:55 xsperry joins (~xs@user/xsperry)
04:57:32 × Null_A quits (~null_a@2601:645:8700:2290:4c47:2f1b:c09c:dc10) (Remote host closed the connection)
05:01:08 × rusrushal13 quits (~rusrushal@2401:4900:447d:3aba:8f0f:db79:1f48:d9d7) (Ping timeout: 256 seconds)
05:01:11 Null_A joins (~null_a@2601:645:8700:2290:4c47:2f1b:c09c:dc10)
05:02:45 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
05:03:07 califax joins (~califax@user/califx)
05:06:33 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 256 seconds)
05:06:40 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
05:09:16 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:11:17 cyphase joins (~cyphase@user/cyphase)
05:11:28 × Null_A quits (~null_a@2601:645:8700:2290:4c47:2f1b:c09c:dc10) (Remote host closed the connection)
05:12:29 Null_A joins (~null_a@2601:645:8700:2290:4c47:2f1b:c09c:dc10)
05:14:16 juhp joins (~juhp@128.106.188.82)
05:16:17 little_mac joins (~little_ma@2601:410:4300:3ce0:39b9:31d6:1ae3:9955)
05:17:48 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
05:19:21 lavaman joins (~lavaman@98.38.249.169)
05:21:57 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Ping timeout: 240 seconds)
05:22:15 × Null_A quits (~null_a@2601:645:8700:2290:4c47:2f1b:c09c:dc10) (Remote host closed the connection)
05:24:01 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
05:25:24 Null_A joins (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105)
05:26:01 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
05:26:17 × monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
05:27:36 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:28:57 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
05:30:17 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
05:31:38 alp joins (~alp@user/alp)
05:32:42 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
05:32:45 × taylorswift2018 quits (~taylorswi@115-188-158-33-fibre.sparkbb.co.nz) (Quit: Leaving)
05:32:46 × alp quits (~alp@user/alp) (Remote host closed the connection)
05:33:19 alp joins (~alp@user/alp)
05:34:11 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
05:34:26 × alp quits (~alp@user/alp) (Remote host closed the connection)
05:34:59 × Null_A quits (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105) (Remote host closed the connection)
05:35:19 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
05:35:20 zaquest joins (~notzaques@5.130.79.72)
05:39:39 jneira[m] parts (~jneiramat@2001:470:69fc:105::d729) ()
05:39:57 merijn joins (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl)
05:40:38 andreabedini joins (~andreabed@8s8kj6nggd7d356nhftb.ip6.superloop.com)
05:41:11 geekosaur joins (~geekosaur@xmonad/geekosaur)
05:41:21 × foul_owl quits (~kerry@192.145.116.101) (Ping timeout: 256 seconds)
05:47:35 × deadmarshal quits (~deadmarsh@95.38.113.203) (Ping timeout: 256 seconds)
05:48:32 haskell_ joins (~haskell@65-102-32-32.ptld.qwest.net)
05:51:11 haskell_ is now known as id-obs
05:51:15 × shriekingnoise_ quits (~shrieking@201.231.16.156) (Quit: Quit)
05:52:00 × id-obs quits (~haskell@65-102-32-32.ptld.qwest.net) (Remote host closed the connection)
05:52:02 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
05:56:17 deadmarshal joins (~deadmarsh@95.38.113.203)
05:56:49 foul_owl joins (~kerry@23.82.194.141)
05:58:13 k8yun joins (~k8yun@198-48-158-40.cpe.pppoe.ca)
06:07:54 × andreabedini quits (~andreabed@8s8kj6nggd7d356nhftb.ip6.superloop.com) (Quit: WeeChat 3.3)
06:08:47 × merijn quits (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
06:08:56 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection)
06:09:43 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
06:14:33 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
06:16:56 freemanX joins (~user@112.199.211.72)
06:20:48 Null_A joins (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105)
06:30:34 × Null_A quits (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105) (Remote host closed the connection)
06:36:57 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
06:40:48 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:46:16 × little_mac quits (~little_ma@2601:410:4300:3ce0:39b9:31d6:1ae3:9955) (Remote host closed the connection)
06:50:00 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
06:53:54 × nunggu quits (~q@user/nunggu) (Ping timeout: 276 seconds)
06:56:11 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
06:56:33 nunggu joins (~q@user/nunggu)
07:01:28 Jing joins (~hedgehog@240e:390:7c53:a7e1:c46f:8faf:ca93:337c)
07:05:47 × chenqisu1 quits (~chenqisu1@183.217.200.249) (Ping timeout: 256 seconds)
07:10:05 neurocyte0917090 joins (~neurocyte@IP-045128181160.dynamic.medianet-world.de)
07:10:05 × neurocyte0917090 quits (~neurocyte@IP-045128181160.dynamic.medianet-world.de) (Changing host)
07:10:05 neurocyte0917090 joins (~neurocyte@user/neurocyte)
07:13:34 razetime joins (~quassel@49.207.209.26)
07:14:05 × razetime quits (~quassel@49.207.209.26) (Client Quit)
07:14:20 razetime joins (~quassel@49.207.209.26)
07:15:25 Everything joins (~Everythin@37.115.210.35)
07:16:17 × mvk quits (~mvk@2607:fea8:5cdc:bf00::80f1) (Ping timeout: 240 seconds)
07:19:41 <Axman6> is there a common function which looks like" foo b xs = if b then xs else []? it's not guard because that needs m ()
07:20:35 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
07:20:35 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
07:20:35 wroathe joins (~wroathe@user/wroathe)
07:23:01 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
07:23:31 <jackdk> https://hoogle.haskell.org/?hoogle=Monoid%20m%20%3D%3E%20Bool%20-%3E%20m%20-%3E%20m I see nothing promising Axman6
07:25:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
07:25:39 <jackdk> @pl (\b x -> guard b *> x)
07:25:39 <lambdabot> (*>) . guard
07:25:43 <jackdk> Axman6: ^
07:25:51 <jackdk> the birdface stands guard
07:27:18 fef joins (~thedawn@user/thedawn)
07:28:21 Everything parts (~Everythin@37.115.210.35) ()
07:28:35 <jackdk> Everything is gone! *absolute despair*
07:28:43 <Axman6> D:
07:28:57 <Axman6> ther's also filter . const
07:29:18 <Axman6> or filter . const . not depending on which one I actually want...
07:29:31 lortabac joins (~lortabac@2a01:e0a:541:b8f0:580c:39ae:f851:5d4a)
07:29:33 <Axman6> though the O(n) vs O(1) makes me sad
07:29:57 <Axman6> have just used the if version
07:32:25 <jackdk> Axman6: the chozo sentinel is disappointed
07:33:31 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:37:11 tdammers joins (~tdammers@77.109.72.177.res.static.edpnet.net)
07:38:25 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
07:43:04 Null_A joins (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105)
07:47:13 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:47:35 <Inst> erm
07:47:48 <Inst> am in the only person here who read "Thinking Functionally in Haskell" by Richard Bird?
07:48:10 <Inst> *with Haskell
07:48:46 <Inst> just finished another skim of it, and honestly, it's incredibly informative both about Haskell as well as about teaching Haskell
07:49:05 <Inst> typeclasses chapter 2 is a small deal, but he goes over efficiency concerns in Chapter 7 and introduces O-notation
07:52:50 × Null_A quits (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105) (Remote host closed the connection)
07:56:13 <Hecate> oh that's nice :)
07:57:42 <Inst> https://www.amazon.com/Thinking-Functionally-Haskell-Richard-Bird/dp/1107452643
07:57:57 <Inst> The approach taken here is heavy on equational reasoning, and the author is not afraid to delve into topics often perceived as arcane -- such as performance optimization of Haskell programs. The book does shy away from discussing rigorous methods for establishing asymptotic complexity under lazy evaluation, but that's probably a good thing in an introductory textbook, and you'd want to refer to Okasaki's PFDS or somesuch for the
07:57:57 <Inst> gory details anyway. Overall, the book takes more of a computer science-y approach, which I find to be slightly preferrable to the alternative "let's start hacking and think about getting out of the mess later" route, though some clever combination of the two might be superior to either.
08:04:33 MajorBiscuit joins (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e)
08:05:44 merijn joins (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl)
08:08:46 × k8yun quits (~k8yun@198-48-158-40.cpe.pppoe.ca) (Quit: Leaving)
08:09:10 Tuplanolla joins (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi)
08:10:17 × sqrt2_ quits (~ben@80-108-18-7.cable.dynamic.surfer.at) (Ping timeout: 250 seconds)
08:11:10 alp joins (~alp@user/alp)
08:13:13 sqrt2 joins (~ben@80-108-18-7.cable.dynamic.surfer.at)
08:14:52 chele joins (~chele@user/chele)
08:15:43 cosimone joins (~user@93-47-231-87.ip115.fastwebnet.it)
08:17:01 Topsi joins (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de)
08:19:56 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
08:20:35 <Axman6> I don''t think anyone would call those arcane ideas, we think about them all the time
08:20:49 <Inst> for newbies?
08:20:54 <Inst> he's pitching it as an intro textbook
08:21:10 <Axman6> no, of course not, you got to learn how to write haskell before you can think about learning to write fast haskell
08:21:20 × xff0x quits (~xff0x@2001:1a81:530c:c100:a39b:fc3d:abc2:3254) (Ping timeout: 252 seconds)
08:21:24 <Axman6> which is IIRC exactly what the book does
08:21:50 fendor joins (~fendor@178.115.64.55.wireless.dyn.drei.com)
08:22:14 xff0x joins (~xff0x@2001:1a81:530c:c100:b873:bdb8:c5f:a8b5)
08:22:23 <Inst[m]> concepts of perfomrance start at chapter 4, iirc, or at least chapter 5
08:22:31 <Inst[m]> where he has a program design that's ridiculously not performant
08:22:46 <Inst[m]> yup, chapter 4
08:22:57 <Axman6> like, there's no point talking about performance problems until you've run into them, introducing someone to the languyage by using [(k,v)] as a map is perfectly acceptable, until that becomes a bottleneck, and then it's a good time to talk about Map and HashMap
08:23:25 <Inst[m]> chapter 4, he mentions "if you have a nose for inefficiency, this code is better written as"
08:23:33 <Inst[m]> while introducing list comprehensions
08:25:49 <Inst> bird explicitly describes his book as "assuming no previous knowledge of computers or programming"
08:26:09 <Inst> I knock his book as "appropriate as an intro to programming book, but only if you're an oxbridge undergraduate"
08:26:18 <Axman6> Are you intentionally changing back and forth between clients?
08:28:34 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection)
08:30:33 × benin quits (~benin@183.82.31.24) (Ping timeout: 256 seconds)
08:31:48 × freemanX quits (~user@112.199.211.72) (Remote host closed the connection)
08:32:01 freemanX joins (~user@112.199.211.72)
08:32:11 benin joins (~benin@183.82.31.24)
08:32:51 × MajorBiscuit quits (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 245 seconds)
08:33:53 michalz joins (~michalz@185.246.204.87)
08:34:47 MajorBiscuit joins (~MajorBisc@c-001-017-058.client.tudelft.eduvpn.nl)
08:35:05 AlexNoo_ is now known as AlexNoo
08:36:21 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
08:36:21 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
08:36:21 wroathe joins (~wroathe@user/wroathe)
08:36:31 × michalz quits (~michalz@185.246.204.87) (Remote host closed the connection)
08:38:47 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
08:39:17 × merijn quits (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
08:40:56 × foul_owl quits (~kerry@23.82.194.141) (Read error: Connection reset by peer)
08:41:33 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
08:41:36 simpleauthority_ joins (~simpleaut@user/simpleauthority)
08:42:07 × simpleauthority quits (~simpleaut@user/simpleauthority) (Ping timeout: 256 seconds)
08:42:07 simpleauthority_ is now known as simpleauthority
08:43:39 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
08:44:34 <Inst> nope, just, sometimes convenient
08:44:46 <Inst> i got into matrix because a friend is now in a dispute with discord and i want to help her migrate off discord into matrix
08:45:29 <Inst> the three places where i think haskell pedagogy comes short:
08:45:51 <Inst> not practical enough; by the end of the course, students should have a small library of haskell programs that they can modify for everyday, practical use
08:46:09 kuribas joins (~user@ptr-25vy0i6r6bvbga979rx.18120a2.ip6.access.telenet.be)
08:46:11 <Inst> not theoretical enough; by the end of the course, students should have a beginning grasp of computing concepts that are usually taught in later courses
08:47:14 <Inst> not professional enough; by the end of the course, students should be conversant with monad transformers, text, and be able to read modern haskell code and use standard non-prelude libraries, even if they haven't been taught it
08:48:13 max22- joins (~maxime@2a01cb0883359800907188a6988a6499.ipv6.abo.wanadoo.fr)
08:49:20 machinedgod joins (~machinedg@24.105.81.50)
08:50:48 <Inst> sorry, i'll stop bloviating
08:52:19 × Akiva quits (~Akiva@user/Akiva) (Ping timeout: 256 seconds)
08:55:14 × razetime quits (~quassel@49.207.209.26) (Remote host closed the connection)
08:55:56 <Inst> i'm just thinking about some of Bird's approaches, i.e, devoting entire chapters to example programs (which Hutton also does)
08:58:16 <Inst> or, whether, it might be possible to deal with two of the three, i.e, start by issuing a professional program, then teach haskell by deconstructing the program and reverse engineering it
08:58:33 <Inst> then, start again with another program, but with the objective first to read it, then to modify it for further capability or efficiency
08:59:55 foul_owl joins (~kerry@192.145.116.33)
09:00:02 merijn joins (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl)
09:00:04 Erutuon joins (~Erutuon@user/erutuon)
09:00:06 × nomeata quits (~nomeata@2001:470:69fc:105::1:5ed4) (Quit: You have been kicked for being idle)
09:01:42 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
09:02:28 <Inst> that's probably fairly close to will kurt's approach in GPWH (Get Programming with Haskell) https://www.reddit.com/r/haskell/comments/hipa18/mini_review_of_get_programming_with_haskell_by/
09:06:01 michalz joins (~michalz@185.246.204.75)
09:07:11 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
09:07:11 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
09:07:11 wroathe joins (~wroathe@user/wroathe)
09:12:29 × V quits (~v@anomalous.eu) (Ping timeout: 268 seconds)
09:12:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
09:13:22 Topsi1 joins (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de)
09:14:33 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
09:15:24 romesrf joins (~romes@2001:818:dcef:c700:44a3:1843:a5e9:2bf7)
09:15:37 × Topsi quits (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
09:17:11 × romesrf quits (~romes@2001:818:dcef:c700:44a3:1843:a5e9:2bf7) (Client Quit)
09:20:21 akegalj joins (~akegalj@93-139-151-35.adsl.net.t-com.hr)
09:20:30 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 250 seconds)
09:21:07 lavaman joins (~lavaman@98.38.249.169)
09:21:08 xkuru joins (~xkuru@user/xkuru)
09:25:45 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
09:27:21 RFV joins (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net)
09:29:48 `2jt joins (~jtomas@130.red-88-22-46.staticip.rima-tde.net)
09:37:56 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
09:37:56 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
09:37:56 wroathe joins (~wroathe@user/wroathe)
09:38:18 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
09:39:19 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
09:39:46 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Remote host closed the connection)
09:40:21 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection)
09:41:11 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
09:41:20 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
09:42:22 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:42:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
09:45:46 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
09:46:34 × RFV quits (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
09:53:09 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
09:58:37 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
10:14:09 × xsperry quits (~xs@user/xsperry) (Read error: Connection reset by peer)
10:14:31 jakalx parts (~jakalx@base.jakalx.net) ()
10:17:28 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection)
10:17:54 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:19:12 Topsi joins (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de)
10:22:18 chenqisu1 joins (~chenqisu1@183.217.200.249)
10:22:59 × Topsi1 quits (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
10:24:46 jakalx joins (~jakalx@base.jakalx.net)
10:25:57 mzan joins (~quassel@mail.asterisell.com)
10:30:52 thyriaen joins (~thyriaen@simnet-nat-pool-185-130-54-208.stargrpns.pp.ua)
10:31:25 Topsi1 joins (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de)
10:33:17 × Topsi quits (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
10:35:13 Topsi joins (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de)
10:37:11 × Topsi1 quits (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de) (Ping timeout: 250 seconds)
10:40:14 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
10:41:07 × merijn quits (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
10:41:07 comerijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
10:45:37 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Ping timeout: 240 seconds)
10:46:21 RFV joins (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net)
10:46:55 × RFV quits (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net) (Client Quit)
10:49:51 × comerijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
10:51:47 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
10:53:12 × tdammers quits (~tdammers@77.109.72.177.res.static.edpnet.net) (Quit: WeeChat 3.0)
10:53:46 RFV joins (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net)
10:56:59 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
10:58:20 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
10:59:30 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:01:31 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
11:02:05 × foul_owl quits (~kerry@192.145.116.33) (Ping timeout: 256 seconds)
11:02:27 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
11:08:37 × td_ quits (~td@muedsl-82-207-238-078.citykom.de) (Ping timeout: 240 seconds)
11:08:45 × benin quits (~benin@183.82.31.24) (Quit: The Lounge - https://thelounge.chat)
11:09:43 × AlexZenon quits (~alzenon@94.233.241.230) (Quit: ;-)
11:10:18 × Alex_test quits (~al_test@94.233.241.230) ()
11:11:46 × AlexNoo quits (~AlexNoo@94.233.241.230) (Quit: Leaving)
11:12:12 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
11:17:03 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
11:17:49 foul_owl joins (~kerry@23.82.194.143)
11:20:39 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
11:20:39 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
11:20:39 wroathe joins (~wroathe@user/wroathe)
11:24:06 thevishy joins (~Nishant@2405:201:f005:c007:f886:9bab:89ec:ff42)
11:25:08 Null_A joins (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105)
11:25:48 td_ joins (~td@muedsl-82-207-238-072.citykom.de)
11:25:53 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
11:27:03 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
11:34:55 × Null_A quits (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105) (Remote host closed the connection)
11:39:43 razetime joins (~quassel@49.207.209.26)
11:41:57 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
11:42:17 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
11:44:13 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
11:44:34 × thyriaen quits (~thyriaen@simnet-nat-pool-185-130-54-208.stargrpns.pp.ua) (Quit: Leaving)
11:47:13 × LiaoTao_ quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
11:47:27 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
11:48:47 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
11:49:17 Achylles joins (~Achylles_@2804:431:d724:1728:f3b4:d659:13ba:d509)
11:50:37 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
11:51:26 × RFV quits (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
11:51:56 RFV joins (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net)
11:55:49 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
11:56:15 × RFV quits (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
11:56:17 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
11:56:54 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
11:57:29 lavaman joins (~lavaman@98.38.249.169)
12:01:37 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
12:03:17 × deadmarshal quits (~deadmarsh@95.38.113.203) (Ping timeout: 256 seconds)
12:06:56 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
12:08:56 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:26:07 × infinity0 quits (~infinity0@occupy.ecodis.net) (Ping timeout: 268 seconds)
12:30:04 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
12:31:19 infinity0 joins (~infinity0@occupy.ecodis.net)
12:33:19 × freemanX quits (~user@112.199.211.72) (Ping timeout: 256 seconds)
12:43:03 RFV joins (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net)
12:45:13 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
12:45:13 × Topsi quits (~Tobias@dyndsl-095-033-024-009.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
12:45:39 freemanX joins (~user@112.199.211.72)
12:46:12 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
12:47:26 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:49:46 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:50:50 V joins (~v@anomalous.eu)
12:54:43 xsperry joins (~xs@user/xsperry)
12:55:23 × chenqisu1 quits (~chenqisu1@183.217.200.249) (Quit: Leaving)
12:56:05 shriekingnoise joins (~shrieking@201.231.16.156)
12:58:13 gaff joins (~gaff@49.207.227.188)
13:01:15 slack1256 joins (~slack1256@191.126.227.204)
13:05:43 cuz joins (~user@50.226.229.246)
13:10:36 × RFV quits (~Thunderbi@5.red-80-39-250.dynamicip.rima-tde.net) (Quit: RFV)
13:12:22 × lechner quits (~lechner@debian/lechner) (Ping timeout: 268 seconds)
13:14:39 <gaff> newtype X = X a, instance Num X where ..., and if you have f :: Num a => a -> String; f (X _) = ... this pattern match is disallowed in haskell. i am not sure why.
13:15:18 Guest|90 joins (~Guest|90@5.151.28.4)
13:15:35 <ski> because you can pass e.g. an `Integer' to `f'
13:15:40 <geekosaur> because Num a does not mean it's always X
13:15:48 × Guest|90 quits (~Guest|90@5.151.28.4) (Client Quit)
13:16:20 <ski> `f :: Num a => a -> String' means "I promise to work for *all* types `a' that are instances of `Num', and if you give me an `a', i'll give you back a `String'"
13:16:38 × cynomys quits (~cynomys@user/cynomys) (Ping timeout: 256 seconds)
13:16:38 <gaff> but there is also a catch-all pattern f _ = ... still it does not work.
13:16:59 <gaff> ski: correct
13:17:01 <geekosaur> the catch-all still has to be of the same type
13:17:01 <ski> `f' is in no position to expect to only be passed an `X'
13:17:12 <gaff> ski i see
13:17:14 slowButPresent joins (~slowButPr@user/slowbutpresent)
13:18:20 <ski> (oh, and btw, `newtype X = X a' seems pretty useless .. did you mean to bind that tyvar `a' ?)
13:18:25 <gaff> ski: so in this type signature, the code in `f` can not make any ssumption about a particular type. it has to work for all instances of Num.
13:18:34 <ski> correct
13:18:47 <gaff> ski: that is just an example
13:18:56 <gaff> a silly one for illustration
13:18:57 <ski> if you want `f' to be able to assume that its input is an `X', then do `f :: X -> String'
13:19:05 <gaff> ski
13:19:08 <gaff> i see
13:19:20 × nunggu quits (~q@user/nunggu) (Remote host closed the connection)
13:19:43 nunggu joins (~q@user/nunggu)
13:19:44 <gaff> so pattern matching works for a specific type
13:19:48 <ski> yes
13:20:08 <gaff> strange i dd not see this mentioned in any of the books
13:20:28 <ski> (unless you use `PatternSynonyms' (or `ViewPatterns'), then they could work over multiple ones. also numeric literal patterns, i guess)
13:20:40 <gaff> i see
13:20:49 <ski> `X _' has type `X'. therefore, that pattern will only match an input of type `X'
13:20:52 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
13:21:30 <gaff> ski: yeah, thank you very much. now i understand. just one other question: why is it designed this way?
13:21:39 <ski> which ?
13:21:50 <ski> that a pattern of type `X' only can match a value of type `X' ?
13:21:51 <gaff> the restriction on pattern match
13:21:56 <gaff> yeah
13:22:04 <ski> i don't see how it could really be any other way
13:22:17 <ski> how could possibly a pattern of type `X' match a value of type `Y' ?
13:22:36 <ski> % newtype X = MkX a
13:22:36 <yahb> ski: ; <interactive>:70:17: error: Not in scope: type variable `a'
13:22:58 <gaff> ah i got it
13:23:03 <gaff> thank you
13:23:18 <lortabac> I think some languages allow untagged union types, maybe that's what gaff had in mind
13:23:37 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
13:24:05 <geekosaur> you may be expecting OOP classes, where this might work. typeclasses don't really map to OOP though
13:24:32 <gaff> geekosaur: yeah, my OOP background is the culprit ... you are correct.
13:24:39 × raym quits (~raym@user/raym) (Ping timeout: 256 seconds)
13:24:47 × Achylles quits (~Achylles_@2804:431:d724:1728:f3b4:d659:13ba:d509) (Quit: Leaving)
13:24:47 <geekosaur> I generally think the naming of typeclasses and things related to them is unfortunate in much the same way that the naming of Monad and its `return`is unfortunate
13:24:49 lavaman joins (~lavaman@98.38.249.169)
13:25:00 deadmarshal joins (~deadmarsh@95.38.113.203)
13:25:01 <ski> there specifically isn't something like `instanceof'/`typecase' in Haskell .. by design. (it would break parametricity)
13:25:16 <gaff> ski: i see
13:25:27 raym joins (~raym@user/raym)
13:25:34 <gaff> and no "casting" as well
13:25:40 <lortabac> there is Type.Reflection, which requires a Typeable constraint
13:25:48 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
13:25:52 <ski> (well, if you add a `Typeable' constraint, you can do some such things. butt not without adding that constraint)
13:25:59 <ski> @type cast
13:26:00 <lambdabot> (Typeable a, Typeable b) => a -> Maybe b
13:26:10 <ski> > cast False :: Maybe Bool
13:26:11 <lambdabot> Just False
13:26:12 Null_A joins (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105)
13:26:15 <ski> > cast False :: Maybe Integer
13:26:16 <lambdabot> Nothing
13:26:55 <ski> (this doesn't break parametricity, since it only applies when you have that additional `Typeable' constraint. it's not something that applies to polymorphism in general)
13:27:05 <ski> so, it's opt-in
13:27:13 <gaff> ok, thanks ... i am not vey familiar with Typeable, to be honest
13:27:23 <ski> it's usually not something you need/want
13:27:27 <gaff> ok
13:27:28 <ski> occasionally, it's handy, though
13:27:34 <gaff> i see
13:27:40 messier102 joins (~messier10@user/messier102)
13:28:04 <ski> > fromDynamic (toDyn False) :: Maybe Bool
13:28:06 <lambdabot> Just False
13:28:07 <ski> > fromDynamic (toDyn False) :: Maybe Integer
13:28:08 <merijn> gaff: It helps to think of typeclass contexts in signatures as predicates
13:28:08 <lambdabot> Nothing
13:28:14 <ski> @type toDyn
13:28:15 <lambdabot> Typeable a => a -> Dynamic
13:28:21 <ski> @type fromDynamic
13:28:22 <lambdabot> Typeable a => Dynamic -> Maybe a
13:28:24 <ski> @type fromDyn
13:28:25 <lambdabot> Typeable a => Dynamic -> a -> a
13:28:27 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
13:28:50 <gaff> merijn: as predicates?
13:28:52 <merijn> gaff: So "foo :: Num a => a -> String" is similar to "IF 'a' has an instance of 'Num' THEN 'foo :: a -> String' ELSE type error"
13:29:11 <gaff> i see
13:29:25 <ski> if (the *type*) `a' satisfies the `Num' (has numeric operations) property, then ...
13:29:30 <merijn> gaff: So they're describing a subset of things the function can be applied to, but the logic inside cannot know/assume which one
13:29:47 <merijn> It has to work on any/all of them
13:29:53 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
13:29:56 <ski> or .. if `a' is in the class/set of types `Num' (containing the ones that support the basic numeric operations), then ..
13:29:58 <gaff> merijn: yeah, i finally understood after ski explained
13:30:06 <ski> (which is where the terminology "type class" comes from)
13:30:17 <gaff> i see
13:30:36 wmacmil joins (~wmacmil@83-233-165-97.cust.bredband2.com)
13:31:14 <wmacmil> is there a case split in haskell analogous to agda, like a <c-c c-c> type extension or plugin
13:31:36 <ski> (in math, "class" is often more or less synonymous with "set". e.g. "equivalence class", when one's talking about an equivalence relation, e.g. "has the same height" or "lists contain the same elements" or ..)
13:31:48 <gaff> merijn: thanks
13:32:26 ski would probably omit the "ELSE ..." part there, usually
13:32:38 <ski> (making it an implication, rather than a conditional)
13:33:26 <ski> (if you can't manage to show why the types would work out, then you have a type error, regardless)
13:33:37 <gaff> yeah
13:34:39 <gaff> you could also say it as "for all types `a` that are instances of Num, ..."
13:34:50 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
13:35:03 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:36:28 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
13:36:53 <ski> gaff : "parametricity" basically means that, if you have a polymorphic operation, polymorphic in some type variable, say `a', then that operation can *not* inspect input values of type `a', can only pass them around (iow, drop/ignore then, duplicate the reference to them, pass them on). so `foo :: [a] -> [a]' can not do different things, depending on what the elements are. it can only reorder elements, drop
13:36:59 <ski> elements, and duplicate elements
13:37:36 <gaff> ski: i see
13:37:38 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
13:38:10 <ski> if you add say `Ord a => ' to that, then it *can* "inspect" inputs of type `a', but only *via* passing them to operations polymorphic over `Ord' (which in the end amounts to the methods of the `Ord' type class, so `(<=)',`compare' and so on)
13:38:28 <gaff> ok
13:38:40 <ski> similarly, `bar :: (a -> Bool) -> [a] -> [a]' can *only* inspect inpute elements, by passing them to the callback predicate
13:38:44 <merijn> ski: I know, because you have made the complaint before :p
13:39:04 <merijn> ski: But the first few times I used that example I did, in fact, not use an ELSE but people got confused
13:39:15 <merijn> "but what happens if it doesn't match?"
13:39:21 <ski> this is a very powerful reasoning principle, which can allow you to tell quite a bit about polymorphic library operations, including higher-order ones
13:39:50 <ski> merijn : hm, sorry, i forget which complaint that was :p .. the "ELSE" bit ?
13:39:59 <ski> ah, okay
13:41:05 <gaff> but as far as i am concerend, the explanation is very helpful.
13:41:18 <ski> well, in such case i'd add that if they can't find a way to justify the types with the typing rules .. then they've not managed to show the types "are aligned", and can't proceed past type checking
13:41:53 × Null_A quits (~null_a@2601:645:8700:2290:7c2a:bca9:fa46:3105) (Remote host closed the connection)
13:42:01 <ski> "but what happens if it doesn't match?" -- it totally depends on whether there might be some *other* way to make the types work out. in this case, there happens to not be another such way
13:43:42 <ski> imo, it's somewhat misleading to construe it as a conditional, an `if'-`then'-`else'. it gives the wrong impression. (although, this isn't a major problem, at this point, won't make a huge difference for the current issue. but i don't like leaving such wrong impressions around, possibly getting entrenched, and compounded by other similar misapprehensions)
13:43:48 <ski> gaff : yw
13:45:25 <ski> wmacmil : not that i'm aware of :/
13:45:27 × max22- quits (~maxime@2a01cb0883359800907188a6988a6499.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds)
13:45:39 <ski> <gaff> you could also say it as "for all types `a` that are instances of Num, ..."
13:45:42 <ski> yes, that's fine
13:45:45 × wavemode quits (~wavemode@2601:241:0:fc90:5d33:217d:3934:b62c) (Quit: Client closed)
13:45:48 <gaff> ok
13:47:55 <wmacmil> or anyway to at least get the compiler to help?
13:48:29 <ski> it might be possible to do something with some GHC API, i guess
13:51:08 zeenk joins (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5)
13:53:18 <gaff> thanks everyone ... i really appreciate all your help.
13:53:30 × gaff quits (~gaff@49.207.227.188) ()
13:53:30 <ski> no problem :)
13:55:41 <geekosaur> simplifier pass maybe, not that I fully understand what's up with case splits
14:01:56 slac90987 joins (~slack1256@181.42.41.211)
14:03:12 × wmacmil quits (~wmacmil@83-233-165-97.cust.bredband2.com) (Quit: Leaving)
14:03:58 cuz` joins (~user@2607:fb90:e7b:bc92:1455:2c0:e8af:6e02)
14:04:06 × slack1256 quits (~slack1256@191.126.227.204) (Ping timeout: 245 seconds)
14:04:19 <messier102> As far as I understand the manual, case splitting automatically creates a complete set of pattern matches for a given variable
14:04:39 × cuz quits (~user@50.226.229.246) (Read error: Connection reset by peer)
14:04:49 <ski> yes
14:05:27 <ski> in case of indexed data type, it'll automatically exclude cases which can't happen, due to the particular indices of the scrutinee
14:05:56 <messier102> e.g. if you give it a `foo xs` where `xs :: [a]`, it will write `foo []` and `foo (x:xs)` for you (I think)
14:06:11 <messier102> seems like a neat feature
14:06:17 <ski> (now i'm wondering if it can be told to case split simultaneously on multiple scrutinees ..)
14:06:22 <ski> yep
14:06:38 eron joins (~eron@2804:431:c7c2:934:9877:36f8:e8ed:91e)
14:07:04 cuz`` joins (~user@50.226.229.246)
14:08:37 × cuz` quits (~user@2607:fb90:e7b:bc92:1455:2c0:e8af:6e02) (Ping timeout: 240 seconds)
14:09:20 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
14:09:20 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
14:09:20 wroathe joins (~wroathe@user/wroathe)
14:14:45 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 256 seconds)
14:15:31 vglfr joins (~vglfr@coupling.penchant.volia.net)
14:24:38 n3rdy1 joins (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293)
14:27:45 ubert joins (~Thunderbi@p200300ecdf0994592d10ea882e78994b.dip0.t-ipconnect.de)
14:30:19 segfaultfizzbuzz joins (~rustisafu@2602:306:cd3c:9350:588d:9794:eb2f:3fa5)
14:30:22 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
14:31:24 img joins (~img@user/img)
14:33:23 whatif joins (~user@123.123.222.32)
14:34:55 × img quits (~img@user/img) (Client Quit)
14:36:18 img joins (~img@user/img)
14:36:32 <dminuoso> Mmm, I wish GHC would forbid anyclass deriving with non-empty minimal method sets.
14:36:41 <dminuoso> Is that a reasonable thing to demand?
14:37:19 <dminuoso> Or can GHC produce a warning at least?
14:37:35 doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
14:37:38 <merijn> I thought that already existed?
14:38:30 <dminuoso> Mmm, oh. Let's figure out why its not being triggered then
14:38:42 max22- joins (~maxime@2a01cb08833598007cddd107fb6e9829.ipv6.abo.wanadoo.fr)
14:43:04 × segfaultfizzbuzz quits (~rustisafu@2602:306:cd3c:9350:588d:9794:eb2f:3fa5) (Quit: Leaving)
14:44:06 × ubert quits (~Thunderbi@p200300ecdf0994592d10ea882e78994b.dip0.t-ipconnect.de) (Remote host closed the connection)
14:44:24 ubert joins (~Thunderbi@p200300ecdf0994592d10ea882e78994b.dip0.t-ipconnect.de)
14:45:09 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
14:45:27 califax joins (~califax@user/califx)
14:46:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
14:48:58 <Hecate> merijn: are you thinking of the warning if you derive a typeclass without having implemented a minimal method set?
14:49:20 <Hecate> I never heard about a warning if the class declaration doesn't have a minimal method set
14:49:34 <merijn> Hecate: I recall a discussion on "warning for anyclass if not full minimal set", but that's hazy memory
14:50:07 <Hecate> maybe I'm mis-understanding dminuoso and you two are talking about the same thing though :p
14:50:07 <merijn> oh, I just realised I misread dminuoso's comment anyway
14:50:10 <Hecate> hahaah
14:50:16 <Hecate> dminuoso: which one of us is right??
14:50:41 × xff0x quits (~xff0x@2001:1a81:530c:c100:b873:bdb8:c5f:a8b5) (Ping timeout: 250 seconds)
14:51:24 <Hecate> merijn: though you're right, the warning you're describing does exist, I mostly see it when starting to implement a typeclass, when I've written "instance Typeclass Type where" and then GHC complains that the stand-alone class declaration doesn't have the minimal method set fulfilled
14:51:26 xff0x joins (~xff0x@2001:1a81:530c:c100:36c:8332:80ae:2bd7)
14:52:21 wroathe joins (~wroathe@user/wroathe)
14:53:40 × ellie quits (~ellie@user/ellie) (Read error: Connection reset by peer)
14:56:02 burnsidesLlama joins (~burnsides@dhcp168-036.wadham.ox.ac.uk)
14:56:56 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
14:59:31 × michalz quits (~michalz@185.246.204.75) (Ping timeout: 256 seconds)
14:59:48 Guest|42 joins (~Guest|42@37.172.219.228)
15:00:02 × Guest|42 quits (~Guest|42@37.172.219.228) (Client Quit)
15:05:01 michalz joins (~michalz@185.246.204.94)
15:12:23 × akegalj quits (~akegalj@93-139-151-35.adsl.net.t-com.hr) (Quit: leaving)
15:13:50 × kuribas quits (~user@ptr-25vy0i6r6bvbga979rx.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer)
15:15:29 × polyphem quits (~rod@2a02:810d:840:8754:3d7:e2e3:b5c3:df83) (Ping timeout: 252 seconds)
15:17:22 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
15:17:22 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
15:17:22 wroathe joins (~wroathe@user/wroathe)
15:22:11 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
15:25:30 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
15:29:45 × thevishy quits (~Nishant@2405:201:f005:c007:f886:9bab:89ec:ff42) (Quit: Leaving)
15:30:28 cuz``` joins (~user@2607:fb90:e7e:cbcd:4035:8992:d7c:96cf)
15:30:51 × Merfont quits (~Kaiepi@156.34.47.253) (Remote host closed the connection)
15:31:16 Merfont joins (~Kaiepi@156.34.47.253)
15:33:54 × cuz`` quits (~user@50.226.229.246) (Read error: Connection reset by peer)
15:33:57 cuz```` joins (~user@50.226.229.246)
15:34:39 × messier102 quits (~messier10@user/messier102) (Ping timeout: 256 seconds)
15:35:39 ardell joins (~ardell@user/ardell)
15:35:57 × cuz``` quits (~user@2607:fb90:e7e:cbcd:4035:8992:d7c:96cf) (Ping timeout: 240 seconds)
15:37:11 polyphem joins (~rod@2a02:810d:840:8754:e075:74dd:6e37:209d)
15:39:02 Sgeo joins (~Sgeo@user/sgeo)
15:42:19 × burnsidesLlama quits (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection)
15:47:04 ardell_ joins (~ardell@user/ardell)
15:47:09 fef joins (~thedawn@user/thedawn)
15:47:17 × ardell quits (~ardell@user/ardell) (Ping timeout: 240 seconds)
15:47:39 <fendor> can I print the stack trace of an exception I've caught if I have the executable compiled with `-prof`? Tried the function `whoCreated exc` but that reports just `GHC.Exception.Type.CAF (<entire-modle>)`
15:48:21 <merijn> fendor: run with +RTS -xc
15:49:24 <fendor> That's basically what I did, via RTSOPTS
15:49:37 <fendor> oh dammit, it should be GHCRTS
15:49:38 × cuz```` quits (~user@50.226.229.246) (Ping timeout: 256 seconds)
15:49:38 <fendor> dammit
15:49:53 <fendor> yeah that works
15:49:56 <fendor> damn me
15:49:59 <merijn> :D
15:50:38 <fendor> thanks!
15:50:46 × whatif quits (~user@123.123.222.32) (Ping timeout: 256 seconds)
15:54:54 haskell_ joins (~haskell@65-102-32-32.ptld.qwest.net)
15:55:13 × ubert quits (~Thunderbi@p200300ecdf0994592d10ea882e78994b.dip0.t-ipconnect.de) (Remote host closed the connection)
15:56:45 __monty__ joins (~toonn@user/toonn)
15:56:52 × haskell_ quits (~haskell@65-102-32-32.ptld.qwest.net) (Remote host closed the connection)
15:57:50 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
15:58:04 lavaman joins (~lavaman@98.38.249.169)
15:58:11 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
15:58:27 lavaman joins (~lavaman@98.38.249.169)
15:58:34 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
15:58:49 lavaman joins (~lavaman@98.38.249.169)
15:58:56 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
15:59:10 lavaman joins (~lavaman@98.38.249.169)
15:59:17 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
15:59:32 lavaman joins (~lavaman@98.38.249.169)
15:59:40 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
15:59:49 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
15:59:55 lavaman joins (~lavaman@98.38.249.169)
16:00:02 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:00:15 lavaman joins (~lavaman@98.38.249.169)
16:00:23 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:00:33 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
16:00:38 lavaman joins (~lavaman@98.38.249.169)
16:00:45 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:00:59 lavaman joins (~lavaman@98.38.249.169)
16:01:07 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:01:15 slac90987 is now known as slack1256
16:01:22 lavaman joins (~lavaman@98.38.249.169)
16:01:29 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:01:42 lavaman joins (~lavaman@98.38.249.169)
16:01:50 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:02:05 lavaman joins (~lavaman@98.38.249.169)
16:02:12 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:02:25 lavaman joins (~lavaman@98.38.249.169)
16:02:33 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:02:49 lavaman joins (~lavaman@98.38.249.169)
16:02:56 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:03:10 lavaman joins (~lavaman@98.38.249.169)
16:03:18 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:03:33 lavaman joins (~lavaman@98.38.249.169)
16:03:34 <geekosaur> lavaman, you're bouncing
16:03:40 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:03:55 lavaman joins (~lavaman@98.38.249.169)
16:04:02 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:04:06 ChanServ sets mode +o geekosaur
16:04:16 lavaman joins (~lavaman@98.38.249.169)
16:04:18 geekosaur sets mode +b *!*@98.38.249.169
16:04:20 × michalz quits (~michalz@185.246.204.94) (Remote host closed the connection)
16:04:24 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:04:25 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
16:04:42 michalz joins (~michalz@185.246.204.72)
16:04:46 geekosaur sets mode -o geekosaur
16:04:47 × michalz quits (~michalz@185.246.204.72) (Remote host closed the connection)
16:05:32 michalz joins (~michalz@185.246.204.72)
16:07:22 × mbuf quits (~Shakthi@171.61.147.232) (Quit: Leaving)
16:07:53 cuz```` joins (~user@38.140.58.234)
16:09:37 × ardell_ quits (~ardell@user/ardell) (Ping timeout: 240 seconds)
16:10:38 × doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 260 seconds)
16:12:32 wavemode joins (~wavemode@2601:241:0:fc90:7b48:d1cc:a5e5:a126)
16:15:17 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Read error: Connection reset by peer)
16:15:41 shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
16:16:39 slac97852 joins (~slack1256@191.126.227.204)
16:18:51 × slack1256 quits (~slack1256@181.42.41.211) (Ping timeout: 256 seconds)
16:19:31 ChanServ sets mode +o litharge
16:19:32 litharge sets mode -bo *!*@98.38.249.169 litharge
16:19:38 lavaman joins (~lavaman@98.38.249.169)
16:19:46 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:19:48 k8yun joins (~k8yun@24.244.29.102)
16:20:00 lavaman joins (~lavaman@98.38.249.169)
16:20:07 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:20:21 lavaman joins (~lavaman@98.38.249.169)
16:20:29 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:20:43 lavaman joins (~lavaman@98.38.249.169)
16:20:51 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:21:05 lavaman joins (~lavaman@98.38.249.169)
16:21:13 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:21:27 lavaman joins (~lavaman@98.38.249.169)
16:21:34 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:21:48 lavaman joins (~lavaman@98.38.249.169)
16:21:55 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:22:10 lavaman joins (~lavaman@98.38.249.169)
16:22:17 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:22:21 burnsidesLlama joins (~burnsides@dhcp168-036.wadham.ox.ac.uk)
16:22:33 lavaman joins (~lavaman@98.38.249.169)
16:22:41 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:22:57 lavaman joins (~lavaman@98.38.249.169)
16:23:05 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:23:21 lavaman joins (~lavaman@98.38.249.169)
16:23:28 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:23:42 lavaman joins (~lavaman@98.38.249.169)
16:23:50 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:24:04 lavaman joins (~lavaman@98.38.249.169)
16:24:12 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:24:28 lavaman joins (~lavaman@98.38.249.169)
16:24:35 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:24:49 lavaman joins (~lavaman@98.38.249.169)
16:24:57 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:25:10 lavaman joins (~lavaman@98.38.249.169)
16:25:18 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:25:32 lavaman joins (~lavaman@98.38.249.169)
16:25:40 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:25:53 lavaman joins (~lavaman@98.38.249.169)
16:26:01 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:26:16 lavaman joins (~lavaman@98.38.249.169)
16:26:24 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:26:24 slac97852 is now known as slack1256
16:26:38 lavaman joins (~lavaman@98.38.249.169)
16:26:45 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:27:01 lavaman joins (~lavaman@98.38.249.169)
16:27:09 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:27:22 lavaman joins (~lavaman@98.38.249.169)
16:27:30 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:27:46 lavaman joins (~lavaman@98.38.249.169)
16:27:53 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:28:10 lavaman joins (~lavaman@98.38.249.169)
16:28:17 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:28:30 lavaman joins (~lavaman@98.38.249.169)
16:28:38 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:28:45 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:580c:39ae:f851:5d4a) (Quit: WeeChat 2.8)
16:28:52 lavaman joins (~lavaman@98.38.249.169)
16:29:00 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:29:15 lavaman joins (~lavaman@98.38.249.169)
16:29:23 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:29:37 lavaman joins (~lavaman@98.38.249.169)
16:29:44 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:29:58 lavaman joins (~lavaman@98.38.249.169)
16:30:06 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:30:17 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:30:20 lavaman joins (~lavaman@98.38.249.169)
16:30:28 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:30:42 lavaman joins (~lavaman@98.38.249.169)
16:30:50 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:31:04 lavaman joins (~lavaman@98.38.249.169)
16:31:11 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:31:25 lavaman joins (~lavaman@98.38.249.169)
16:31:32 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:31:47 lavaman joins (~lavaman@98.38.249.169)
16:31:53 × burnsidesLlama quits (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
16:31:54 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:32:00 × flinner quits (~flinner__@user/flinner) (Quit: Leaving)
16:32:08 lavaman joins (~lavaman@98.38.249.169)
16:32:16 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
16:34:33 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
16:37:46 × freemanX quits (~user@112.199.211.72) (Remote host closed the connection)
16:38:38 freemanX joins (~user@112.199.211.72)
16:38:43 dyeplexer joins (~dyeplexer@user/dyeplexer)
16:39:48 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
16:41:31 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
16:41:41 messier102 joins (~messier10@user/messier102)
16:44:10 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit)
16:45:31 × messier102 quits (~messier10@user/messier102) (Client Quit)
16:51:42 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
16:51:42 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
16:51:42 wroathe joins (~wroathe@user/wroathe)
16:55:16 × dajoer quits (~david@user/gvx) (Quit: leaving)
16:55:43 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:56:41 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
16:57:41 × freemanX quits (~user@112.199.211.72) (Remote host closed the connection)
17:00:02 jneira[m] joins (~jneiramat@2001:470:69fc:105::d729)
17:00:11 burnsidesLlama joins (~burnsides@dhcp168-036.wadham.ox.ac.uk)
17:02:43 lavaman joins (~lavaman@98.38.249.169)
17:04:39 zer0bitz joins (~zer0bitz@2001:2003:f74d:b800:bc81:ba25:7a70:67f2)
17:04:42 econo joins (uid147250@user/econo)
17:06:20 kayvank joins (~user@52-119-115-185.PUBLIC.monkeybrains.net)
17:06:57 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
17:07:42 Guest|52 joins (~Guest|52@p54a4f18f.dip0.t-ipconnect.de)
17:08:54 × Guest|52 quits (~Guest|52@p54a4f18f.dip0.t-ipconnect.de) (Client Quit)
17:09:39 <gentauro> anybody knows how the following expression (let biding) is translated to LambdaCalc `let x = 2 + 2 in x`?
17:10:10 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
17:10:14 lbseale joins (~ep1ctetus@user/ep1ctetus)
17:10:14 <gentauro> I recall there is a "trivial" map between lambda calculus and let-bindings :) (I just don't remember how to do it)
17:11:00 lbseale_ joins (~ep1ctetus@user/ep1ctetus)
17:11:33 × burnsidesLlama quits (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
17:11:45 gehmehgeh joins (~user@user/gehmehgeh)
17:11:52 × fendor quits (~fendor@178.115.64.55.wireless.dyn.drei.com) (Remote host closed the connection)
17:12:24 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
17:12:24 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
17:12:49 <slack1256> Is r/haskell still the forum with the best headspace on the haskell comunity for job postings? The company I work for will put a new advert. I am convincing the higher ups that reddit > linkedin for job posting. Is this still true?
17:13:22 <sshine> slack1256, that or Haskell Weekly newsletter.
17:14:37 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Ping timeout: 240 seconds)
17:14:55 <sshine> slack1256, I don't know if it's me who lost interest reading the Haskell Weekly newsletter, or if the quality has gone down a bit (probably the former), but the job section is doing better and better. there were 8 job postings in #300 (most recent is #301 with a closer to average 3 job posts)
17:15:21 <gentauro> sshine: HWN think it has a cost, but /r/haskell is free :)
17:15:40 lechner joins (~lechner@debian/lechner)
17:16:19 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
17:16:25 <sshine> a sponsored link in Haskell Weekly costs $60. but the average open rate is pretty damn high; https://haskellweekly.news/advertising.html
17:16:42 <ski> gentauro : `(\x -> x) (2 + 2)' ?
17:17:08 whound joins (~dust@2409:4071:d85:6d06:82d4:5fb8:a938:35fc)
17:17:13 <sshine> compared to a job site or a recruiter, $60 is close to nothing. :)
17:17:34 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Remote host closed the connection)
17:17:41 <ski> (beware of polymorphic `let'-bindings, though. lambda-bound variables are monomorphic, unless they've explicit signatures to the opposite effect)
17:17:57 <ski> (oh .. and, obviously, also recursion)
17:18:15 ski idly ponders "named `let's"
17:19:31 <sshine> I don't know the exact overlap between /r/haskell and Haskell Weekly; I'm guessing it's up there, but the cost of cross-posting is equivalent to the cost of posting on Haskell Weekly. ;-)
17:26:10 lavaman joins (~lavaman@98.38.249.169)
17:26:11 × cosimone quits (~user@93-47-231-87.ip115.fastwebnet.it) (Remote host closed the connection)
17:26:28 mvk joins (~mvk@2607:fea8:5cdc:bf00::80f1)
17:26:30 lbseale_ is now known as lbseale
17:28:06 <gentauro> ski: yeah something like that. I don't recall if it was Stephen Diehl or Benjamin Pierce (TAPL) that had some info on it
17:28:13 <gentauro> I guess I will keep looking, but thx
17:28:46 alx741 joins (~alx741@157.100.197.240)
17:28:58 <ski> hm, afaik, this is all folklore
17:29:34 <ski> (perhaps mentioned in one of the original papers by Church or something ..)
17:32:05 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
17:33:06 cosimone joins (~user@93-47-231-87.ip115.fastwebnet.it)
17:33:32 emf joins (~emf@136.60.235.103)
17:34:15 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
17:34:57 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
17:35:30 × cuz```` quits (~user@38.140.58.234) (Remote host closed the connection)
17:35:37 cuz```` joins (~user@38.140.58.234)
17:35:57 × whound quits (~dust@2409:4071:d85:6d06:82d4:5fb8:a938:35fc) (Quit: Konversation terminated!)
17:36:41 emf_ joins (~emf@2620:10d:c090:400::5:9645)
17:37:35 × razetime quits (~quassel@49.207.209.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:37:45 Orbstheorem parts (~orbstheor@2001:470:69fc:105::a56) ()
17:37:51 × emf quits (~emf@136.60.235.103) (Ping timeout: 256 seconds)
17:38:44 × zeenk quits (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!)
17:39:08 × MajorBiscuit quits (~MajorBisc@c-001-017-058.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.4)
17:40:13 burnsidesLlama joins (~burnsides@dhcp168-036.wadham.ox.ac.uk)
17:42:50 MatthiasG2 joins (~matthias@i6DFA026C.versanet.de)
17:42:57 × wombat875 quits (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
17:44:40 × burnsidesLlama quits (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
17:44:45 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
17:44:56 wombat875 joins (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net)
17:47:00 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
17:47:44 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
17:48:02 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
17:49:07 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
17:51:45 alx741 joins (~alx741@157.100.197.240)
17:51:50 × alp quits (~alp@user/alp) (Ping timeout: 250 seconds)
17:52:01 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
17:53:49 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
17:54:31 mmhat joins (~mmh@55d4d31f.access.ecotel.net)
17:54:42 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
17:54:42 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
17:54:42 wroathe joins (~wroathe@user/wroathe)
17:54:44 × neurocyte0917090 quits (~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
17:55:19 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
17:55:39 geekosaur joins (~geekosaur@xmonad/geekosaur)
17:55:48 neurocyte0917090 joins (~neurocyte@ip-045128181160.dynamic.medianet-world.de)
17:55:48 × neurocyte0917090 quits (~neurocyte@ip-045128181160.dynamic.medianet-world.de) (Changing host)
17:55:48 neurocyte0917090 joins (~neurocyte@user/neurocyte)
17:57:21 slac11724 joins (~slack1256@181.42.41.211)
17:58:57 × n3rdy1 quits (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds)
17:59:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
17:59:43 × slack1256 quits (~slack1256@191.126.227.204) (Ping timeout: 256 seconds)
18:03:03 Akiva joins (~Akiva@user/Akiva)
18:05:57 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection)
18:08:27 alx741 joins (~alx741@157.100.197.240)
18:08:41 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
18:08:44 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds)
18:08:51 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
18:09:01 chexum joins (~quassel@gateway/tor-sasl/chexum)
18:10:57 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
18:11:49 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
18:12:19 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
18:13:35 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
18:14:15 × michalz quits (~michalz@185.246.204.72) (Remote host closed the connection)
18:14:29 michalz joins (~michalz@185.246.204.94)
18:14:46 ec joins (~ec@gateway/tor-sasl/ec)
18:16:19 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
18:16:19 zincy joins (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4)
18:17:02 burnsidesLlama joins (~burnsides@dhcp168-036.wadham.ox.ac.uk)
18:18:10 geekosaur joins (~geekosaur@xmonad/geekosaur)
18:20:28 doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
18:21:28 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
18:23:42 Vajb joins (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e)
18:23:45 × burnsidesLlama quits (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
18:27:01 × jgeerds quits (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds)
18:27:27 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
18:28:03 × slac11724 quits (~slack1256@181.42.41.211) (Ping timeout: 256 seconds)
18:29:00 × k8yun quits (~k8yun@24.244.29.102) (Quit: Leaving)
18:29:31 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
18:30:07 × Jing quits (~hedgehog@240e:390:7c53:a7e1:c46f:8faf:ca93:337c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:30:35 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
18:32:27 k8yun joins (~k8yun@24.244.29.102)
18:33:55 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit)
18:34:31 × cuz```` quits (~user@38.140.58.234) (Ping timeout: 256 seconds)
18:36:27 × xff0x quits (~xff0x@2001:1a81:530c:c100:36c:8332:80ae:2bd7) (Ping timeout: 250 seconds)
18:37:22 <dminuoso> Mmm, I wish I could define a let-binding over top level declarations :(
18:37:22 xff0x joins (~xff0x@2001:1a81:530c:c100:3392:9410:3e85:84e1)
18:37:38 <dminuoso> i.e. let foo = 1 in { instance ...; instance ... }
18:37:47 <monochrom> Yeah.
18:38:12 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds)
18:38:21 <EvanR> once again javascript wins
18:38:28 <wavemode> isn't what what 'where' is for
18:38:42 <EvanR> where can be attached to 1 declaration
18:38:44 <dminuoso> No, where scopes to a single declaration but not declaration groups
18:38:46 <geekosaur> where doesn't work any better for that
18:39:16 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4)
18:39:32 <monochrom> SML has "local foo = 1 in instance ...; instance ...; end"
18:39:32 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 252 seconds)
18:40:04 <monochrom> If you say that at the top level, then the instances will be at the top level. (Generally everything from "in" to "end".)
18:40:06 <EvanR> I guess you have to use more modules
18:40:18 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
18:41:11 × Vajb quits (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) (Ping timeout: 252 seconds)
18:41:37 <dminuoso> My use case is defining generic aeson options, it would be easy to say `let opts = defaultOptions { ... } in { instance ToJSON Foo where toJSON = genericToJSON opts; instance FromJSON Foo where parseJSON = genericParseJSON opts }`
18:41:44 × cosimone quits (~user@93-47-231-87.ip115.fastwebnet.it) (Read error: Connection reset by peer)
18:41:51 <dminuoso> Using more modules scales poorly, as that would move each such data type into a separate module
18:42:14 <EvanR> funny I recall long ago advice to put every data type in its own module for some reason
18:42:22 <EvanR> an operations elsewhere
18:42:27 <monochrom> Actually if not for "one module per file" modules would scale.
18:42:59 <monochrom> Note that Haskell 2010 does not disallow multiple modules per file. >:)
18:43:35 <dminuoso> Dont some ML language allow multiple modules per file?
18:45:17 simendsjo joins (~user@84.211.91.241)
18:45:58 <dminuoso> Im just worried if that would translate into one-object-file-per-module, that could perhaps degrade linker times a bit too much
18:46:06 ProfSimm joins (~ProfSimm@87.227.196.109)
18:46:57 <EvanR> linker time is worse for more objects same size or larger objects same number
18:47:01 <EvanR> ?
18:48:07 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
18:51:37 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
18:51:48 <sshine> dminuoso, sure, both SML and OCaml :)
18:53:23 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:53:56 <monochrom> I think OCaml does not even use the system obj file format or the system linker.
18:54:45 <monochrom> It uses its own *.cmo object file format, and it is one source file -> one cmo file. It also uses its own library archive format *.cma
18:54:56 <sshine> dminuoso, but for SML(/NJ + others) there's also the .mlb files that can be used to establish some convention of one module per file... sort of like compilation units, I guess.
18:55:05 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
18:56:53 boxscape_ joins (~boxscape_@p4ff0b9d5.dip0.t-ipconnect.de)
19:00:00 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
19:01:37 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
19:02:15 Chai-T-Rex joins (~ChaiTRex@user/chaitrex)
19:05:09 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds)
19:05:48 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 276 seconds)
19:06:10 gehmehgeh joins (~user@user/gehmehgeh)
19:09:36 zebrag joins (~chris@user/zebrag)
19:10:04 <ski> i've often wanted `local'-`in'-`end', in Haskell
19:11:07 <ski> (also, occasionally, declaration-level `if'-`then'-`else', and `case'-`of')
19:11:45 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer)
19:11:56 <ski> (sshine : well, NJ has CM ..)
19:12:18 burnsidesLlama joins (~burnsides@dhcp168-036.wadham.ox.ac.uk)
19:12:22 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
19:13:12 <monochrom> "local instance Ord Bool where ... in ... end" would raise questions about instance coherence.
19:13:18 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 250 seconds)
19:14:11 <monochrom> There are solutions. There may be too many rivalling solutions. Probably the Haskell committee decided to not divide themselves on it, and just adopt the common denominator: don't bother.
19:15:09 <ski> yes, but those questions also arise for instances in `where' and `let'-`in'. i'm not sure of `local'-`in'-`end' bring any new complications there
19:16:06 <monochrom> Ah right.
19:16:32 × zincy quits (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) (Remote host closed the connection)
19:16:42 <ski> (iow, the most obvious path is to simply allow value (including function) signatures and definitions, between `local' and `in', at least to begin with)
19:16:57 <ski> (s/allow/allow only/)
19:18:14 × burnsidesLlama quits (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection)
19:18:20 burnsidesLlama joins (~burnsides@dhcp168-036.wadham.ox.ac.uk)
19:18:25 <ski> dminuoso : perhaps Backpack could help .. ?
19:22:48 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
19:22:59 cuz```` joins (~user@38.140.58.234)
19:26:54 notzmv joins (~zmv@user/notzmv)
19:30:20 WzC joins (~Frank@77-162-168-71.fixed.kpn.net)
19:30:47 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Remote host closed the connection)
19:31:00 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
19:32:28 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
19:33:17 pooryori1k joins (~pooryoric@87-119-174-173.tll.elisa.ee)
19:33:51 Vq_ joins (~vq@90-227-195-41-no77.tbcn.telia.com)
19:34:13 EvanR joins (~EvanR@user/evanr)
19:36:57 × deadmarshal quits (~deadmarsh@95.38.113.203) (Ping timeout: 256 seconds)
19:37:20 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
19:37:52 × xff0x quits (~xff0x@2001:1a81:530c:c100:3392:9410:3e85:84e1) (*.net *.split)
19:37:52 × img quits (~img@user/img) (*.net *.split)
19:37:52 × `2jt quits (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (*.net *.split)
19:37:52 × mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split)
19:37:52 × phma quits (phma@2001:5b0:211c:1a98:48d4:386a:82f8:d37) (*.net *.split)
19:37:52 × soft quits (~soft@2001:470:69fc:105::c75) (*.net *.split)
19:37:52 × jmcantrell quits (~jmcantrel@user/jmcantrell) (*.net *.split)
19:37:52 × hsiktas[m] quits (~hsiktasm]@2001:470:69fc:105::30d4) (*.net *.split)
19:37:52 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (*.net *.split)
19:37:52 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (*.net *.split)
19:37:52 × ericson2314 quits (~ericson23@2001:470:69fc:105::70c) (*.net *.split)
19:37:52 × jkaye[m] quits (~jkayematr@2001:470:69fc:105::1:86f7) (*.net *.split)
19:37:52 × jinsun_ quits (~jinsun@user/jinsun) (*.net *.split)
19:37:52 × amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (*.net *.split)
19:37:52 × jackhill quits (~jackhill@kalessin.dragonsnail.net) (*.net *.split)
19:37:52 × sajith quits (~sajith@user/sajith) (*.net *.split)
19:37:52 × davetapley quits (sid666@id-666.uxbridge.irccloud.com) (*.net *.split)
19:37:52 × jonrh quits (sid5185@id-5185.ilkley.irccloud.com) (*.net *.split)
19:37:52 × tom__ quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (*.net *.split)
19:37:52 × lieven quits (~mal@ns2.wyrd.be) (*.net *.split)
19:37:52 × kaskal quits (~kaskal@2001:4bb8:2cc:5073:e1cf:a3ef:264a:1e80) (*.net *.split)
19:37:52 × pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (*.net *.split)
19:37:52 × bollu quits (~bollu@159.65.151.13) (*.net *.split)
19:37:52 × Noinia quits (~Frank@77-162-168-71.fixed.kpn.net) (*.net *.split)
19:37:52 × Putonlalla quits (~sapekiis@it-cyan.it.jyu.fi) (*.net *.split)
19:37:52 × urdh quits (~urdh@user/urdh) (*.net *.split)
19:37:52 × Vq quits (~vq@90-227-195-41-no77.tbcn.telia.com) (*.net *.split)
19:37:52 × acro quits (~acro@user/acro) (*.net *.split)
19:37:52 × LambdaDuck quits (~anka@ksit.fixme.fi) (*.net *.split)
19:37:52 × xacktm quits (xacktm@user/xacktm) (*.net *.split)
19:37:52 × davl quits (~davl@207.154.228.18) (*.net *.split)
19:37:52 × lyxia quits (~lyxia@poisson.chat) (*.net *.split)
19:37:53 × SIben quits (~SIben@ns3106586.ip-5-135-191.eu) (*.net *.split)
19:37:53 × ggVGc quits (~ggVGc@a.lowtech.earth) (*.net *.split)
19:37:53 × Xe quits (~cadey@tailscale/xe) (*.net *.split)
19:37:53 × dpratt__ quits (sid193493@id-193493.helmsley.irccloud.com) (*.net *.split)
19:37:53 × grfn quits (sid449115@id-449115.helmsley.irccloud.com) (*.net *.split)
19:37:53 × bonz060 quits (~quassel@2001:bc8:47a4:a23::1) (*.net *.split)
19:39:53 × simendsjo quits (~user@84.211.91.241) (Remote host closed the connection)
19:40:01 × doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 256 seconds)
19:40:48 jao joins (~jao@211.68.17.95.dynamic.jazztel.es)
19:41:31 Erutuon joins (~Erutuon@user/erutuon)
19:42:26 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
19:42:26 xff0x joins (~xff0x@2001:1a81:530c:c100:3392:9410:3e85:84e1)
19:42:26 `2jt joins (~jtomas@130.red-88-22-46.staticip.rima-tde.net)
19:42:26 mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
19:42:26 phma joins (phma@2001:5b0:211c:1a98:48d4:386a:82f8:d37)
19:42:26 soft joins (~soft@2001:470:69fc:105::c75)
19:42:26 jmcantrell joins (~jmcantrel@user/jmcantrell)
19:42:26 hsiktas[m] joins (~hsiktasm]@2001:470:69fc:105::30d4)
19:42:26 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
19:42:26 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
19:42:26 ericson2314 joins (~ericson23@2001:470:69fc:105::70c)
19:42:26 jinsun_ joins (~jinsun@user/jinsun)
19:42:26 jkaye[m] joins (~jkayematr@2001:470:69fc:105::1:86f7)
19:42:26 amesgen[m] joins (~amesgenm]@2001:470:69fc:105::82b)
19:42:26 jackhill joins (~jackhill@kalessin.dragonsnail.net)
19:42:26 sajith joins (~sajith@user/sajith)
19:42:26 davetapley joins (sid666@id-666.uxbridge.irccloud.com)
19:42:26 jonrh joins (sid5185@id-5185.ilkley.irccloud.com)
19:42:26 tom__ joins (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
19:42:26 lieven joins (~mal@ns2.wyrd.be)
19:42:26 kaskal joins (~kaskal@2001:4bb8:2cc:5073:e1cf:a3ef:264a:1e80)
19:42:26 bollu joins (~bollu@159.65.151.13)
19:42:26 Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi)
19:42:26 urdh joins (~urdh@user/urdh)
19:42:26 acro joins (~acro@user/acro)
19:42:26 xacktm joins (xacktm@user/xacktm)
19:42:26 LambdaDuck joins (~anka@ksit.fixme.fi)
19:42:26 davl joins (~davl@207.154.228.18)
19:42:26 SIben joins (~SIben@ns3106586.ip-5-135-191.eu)
19:42:26 ggVGc joins (~ggVGc@a.lowtech.earth)
19:42:26 bonz060 joins (~quassel@2001:bc8:47a4:a23::1)
19:42:26 Xe joins (~cadey@tailscale/xe)
19:42:26 dpratt__ joins (sid193493@id-193493.helmsley.irccloud.com)
19:42:26 grfn joins (sid449115@id-449115.helmsley.irccloud.com)
19:42:31 × d34df00d quits (~d34df00d@2600:1700:8c60:3a10::48) (Excess Flood)
19:43:41 img joins (~img@user/img)
19:44:38 lyxia joins (~lyxia@poisson.chat)
19:46:02 × RosarioPulella[m quits (~rosariopu@2001:470:69fc:105::a57) (Ping timeout: 240 seconds)
19:46:02 × finalti[m] quits (~finaltima@2001:470:69fc:105::d909) (Ping timeout: 240 seconds)
19:46:02 × fcortesi quits (~fcortesi@2001:470:69fc:105::f3a9) (Ping timeout: 240 seconds)
19:46:12 × litharn[m] quits (~litharnma@2001:470:69fc:105::1:8336) (Ping timeout: 245 seconds)
19:46:12 × Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Ping timeout: 245 seconds)
19:46:12 × Heffalump[m] quits (~hsenagmat@2001:470:69fc:105::e11) (Ping timeout: 245 seconds)
19:46:12 × Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Ping timeout: 245 seconds)
19:46:12 × euphrates[m] quits (~euphrates@2001:470:69fc:105::fbb5) (Ping timeout: 245 seconds)
19:46:12 × Arathorn quits (~arathorn@2001:470:69fc:105::1f) (Ping timeout: 245 seconds)
19:46:12 × reza[m] quits (~rezaphone@2001:470:69fc:105::3eda) (Ping timeout: 245 seconds)
19:46:12 × EkaiZend[m] quits (~ekai-zend@2001:470:69fc:105::1:7756) (Ping timeout: 245 seconds)
19:46:12 × sjanssen quits (~sjanssenm@2001:470:69fc:105::1:61d8) (Ping timeout: 245 seconds)
19:46:12 × jesser[m] quits (~jessermat@2001:470:69fc:105::d5ae) (Ping timeout: 245 seconds)
19:46:12 × jchia[m] quits (~jchiamatr@2001:470:69fc:105::c50b) (Ping timeout: 245 seconds)
19:46:13 × juhp[m] quits (~juhpmatri@2001:470:69fc:105::6e9) (Ping timeout: 250 seconds)
19:46:13 × james[m]12 quits (~jamesnina@2001:470:69fc:105::1:4203) (Ping timeout: 250 seconds)
19:46:14 × marijan quits (~marijanma@2001:470:69fc:105::1:6cce) (Ping timeout: 240 seconds)
19:46:14 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 240 seconds)
19:46:14 × maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Ping timeout: 240 seconds)
19:46:14 × cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Ping timeout: 240 seconds)
19:46:14 × SawyerBergeron[m quits (~sawyerber@2001:470:69fc:105::3036) (Ping timeout: 240 seconds)
19:46:14 × unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Ping timeout: 240 seconds)
19:46:14 × Tisoxin quits (~ikosit@user/ikosit) (Ping timeout: 240 seconds)
19:46:14 × Guillaum[m] quits (~guiboumat@2001:470:69fc:105::1:72ac) (Ping timeout: 240 seconds)
19:46:14 × sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds)
19:46:14 × zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Ping timeout: 240 seconds)
19:46:14 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Ping timeout: 240 seconds)
19:46:14 × mahene[m] quits (~mahenemat@2001:470:69fc:105::1:6a93) (Ping timeout: 240 seconds)
19:46:14 × joaquinmg[m] quits (~joaquinmg@2001:470:69fc:105::1:67d2) (Ping timeout: 240 seconds)
19:46:14 × kadoban quits (~kadoban@user/kadoban) (Ping timeout: 240 seconds)
19:46:26 × octeep[m] quits (~octeepoct@2001:470:69fc:105::1:3dbf) (Ping timeout: 250 seconds)
19:46:26 × denbrahe quits (~denbrahe@2001:470:69fc:105::19c0) (Ping timeout: 250 seconds)
19:46:26 × thomasjm[m] quits (~thomasjmm@2001:470:69fc:105::c6d9) (Ping timeout: 250 seconds)
19:46:26 × craige[m] quits (~craigemcw@2001:470:69fc:105::35f1) (Ping timeout: 250 seconds)
19:46:26 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Ping timeout: 250 seconds)
19:46:26 × bitonic quits (~bitonic@2001:470:69fc:105::1812) (Ping timeout: 250 seconds)
19:46:26 × simmsb quits (~simmsb@2001:470:69fc:105::1:55c3) (Ping timeout: 250 seconds)
19:46:26 × fendor[m] quits (~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 250 seconds)
19:46:26 × alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (Ping timeout: 250 seconds)
19:46:26 × Michal[m] quits (~oomiguelm@2001:470:69fc:105::1:5ab0) (Ping timeout: 250 seconds)
19:46:32 × Christoph[m] quits (~hpotsirhc@2001:470:69fc:105::2ff8) (Ping timeout: 240 seconds)
19:46:32 × justosophy[m] quits (~justosoph@2001:470:69fc:105::572f) (Ping timeout: 240 seconds)
19:46:32 × ongy[m] quits (~ongymatri@2001:470:69fc:105::5018) (Ping timeout: 240 seconds)
19:46:32 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Ping timeout: 240 seconds)
19:46:32 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Ping timeout: 240 seconds)
19:46:32 × ac quits (~aloiscoch@2001:470:69fc:105::65) (Ping timeout: 240 seconds)
19:46:32 × schuelermine[m] quits (~schuelerm@user/schuelermine) (Ping timeout: 240 seconds)
19:46:35 × Inst[m] quits (~instrmatr@2001:470:69fc:105::1:903e) (Ping timeout: 256 seconds)
19:46:35 × phuegrvs[m] quits (~phuegrvsm@2001:470:69fc:105::1:65e4) (Ping timeout: 256 seconds)
19:46:36 × afotgkmnzj7asv3r quits (~afotgkmnz@2001:470:69fc:105::c24b) (Ping timeout: 256 seconds)
19:46:36 × cstml[m] quits (~cstmlmatr@2001:470:69fc:105::1:5c07) (Ping timeout: 256 seconds)
19:46:36 × ormaaj quits (~ormaaj@user/ormaaj) (Ping timeout: 256 seconds)
19:46:36 × DemiMarieObenour quits (~alwayscur@2001:470:69fc:105::4886) (Ping timeout: 256 seconds)
19:46:36 × yehoshuapw quits (~yehoshuap@2001:470:69fc:105::a5f) (Ping timeout: 256 seconds)
19:46:36 × JoseC[m] quits (~jmcardonm@2001:470:69fc:105::1:7539) (Ping timeout: 256 seconds)
19:46:36 × siraben quits (~siraben@user/siraben) (Ping timeout: 256 seconds)
19:46:36 × benjamin[m]123 quits (~benjaminm@2001:470:69fc:105::1:3f2f) (Ping timeout: 256 seconds)
19:46:36 × alex[m]12 quits (~alexchete@2001:470:69fc:105::1:1001) (Ping timeout: 256 seconds)
19:46:36 × maralorn quits (~maralorn@2001:470:69fc:105::251) (Ping timeout: 256 seconds)
19:46:36 × mmos[m] quits (~mmosmatri@2001:470:69fc:105::1:8340) (Ping timeout: 256 seconds)
19:46:36 × pfurla-matrix quits (~pedrofurl@2001:470:69fc:105::1:51d7) (Ping timeout: 256 seconds)
19:46:39 × sekun[m] quits (~hsekmatri@2001:470:69fc:105::d18f) (Ping timeout: 252 seconds)
19:46:39 × wysteriary[m] quits (~wysteriar@2001:470:69fc:105::a42e) (Ping timeout: 252 seconds)
19:46:39 × sofviic[m] quits (~sofviicma@2001:470:69fc:105::1:51fd) (Ping timeout: 252 seconds)
19:46:39 × wildsebastian quits (~wildsebas@2001:470:69fc:105::1:14b1) (Ping timeout: 252 seconds)
19:46:39 × SridharRatnakuma quits (~sridmatri@2001:470:69fc:105::1c2) (Ping timeout: 252 seconds)
19:46:39 × cherryblossom[m] quits (~cherryblo@2001:470:69fc:105::b789) (Ping timeout: 252 seconds)
19:46:39 × tripa[m] quits (~tripamatr@2001:470:69fc:105::1:4f7e) (Ping timeout: 252 seconds)
19:46:39 × thejuan24f[m] quits (~thejuan2m@2001:470:69fc:105::1:6569) (Ping timeout: 252 seconds)
19:46:39 × Sixto[m] quits (~provornyc@2001:470:69fc:105::1:74df) (Ping timeout: 252 seconds)
19:46:39 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 250 seconds)
19:46:39 × Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Ping timeout: 250 seconds)
19:46:39 × psydroid quits (~psydroid@user/psydroid) (Ping timeout: 250 seconds)
19:46:39 × Yehoshua quits (~yehoshua@2001:470:69fc:105::1:593f) (Ping timeout: 250 seconds)
19:46:42 × soft quits (~soft@2001:470:69fc:105::c75) (Ping timeout: 260 seconds)
19:46:43 × jmcantrell quits (~jmcantrel@user/jmcantrell) (Ping timeout: 260 seconds)
19:46:43 × hsiktas[m] quits (~hsiktasm]@2001:470:69fc:105::30d4) (Ping timeout: 260 seconds)
19:46:43 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (Ping timeout: 260 seconds)
19:46:43 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (Ping timeout: 260 seconds)
19:46:43 × jkaye[m] quits (~jkayematr@2001:470:69fc:105::1:86f7) (Ping timeout: 260 seconds)
19:46:43 × amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (Ping timeout: 260 seconds)
19:47:04 × throwaaaa[m] quits (~throwaaaa@2001:470:69fc:105::1:6fe6) (Ping timeout: 268 seconds)
19:47:04 × quantum quits (~quantum@user/quantum/x-8556232) (Ping timeout: 268 seconds)
19:47:04 × peddie quits (~peddie@2001:470:69fc:105::25d) (Ping timeout: 268 seconds)
19:47:04 × moats quits (~oats@user/oats) (Ping timeout: 268 seconds)
19:47:04 × Deide quits (~deide@user/deide) (Ping timeout: 268 seconds)
19:47:04 × bb010g quits (~bb010g@2001:470:69fc:105::9a5) (Ping timeout: 268 seconds)
19:47:04 × aidy quits (~aidy@2001:470:69fc:105::c7b4) (Ping timeout: 268 seconds)
19:47:04 × kalxd[m] quits (~kalxdmatr@2001:470:69fc:105::1:576e) (Ping timeout: 268 seconds)
19:47:04 × jaror[m] quits (~jaror@2001:470:69fc:105::265) (Ping timeout: 268 seconds)
19:47:04 × jneira[m] quits (~jneiramat@2001:470:69fc:105::d729) (Ping timeout: 268 seconds)
19:47:04 × Nate[m] quits (~m52957mat@2001:470:69fc:105::1:591a) (Ping timeout: 268 seconds)
19:47:04 × ParsaAlizadeh[m] quits (~lizadehma@2001:470:69fc:105::1:65a4) (Ping timeout: 268 seconds)
19:47:59 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
19:48:18 zincy joins (~zincy@host86-151-99-97.range86-151.btcentralplus.com)
19:49:40 cawfee_ is now known as cawfee
19:50:26 × ericson2314 quits (~ericson23@2001:470:69fc:105::70c) (Ping timeout: 260 seconds)
19:50:26 × jinsun_ quits (~jinsun@user/jinsun) (Ping timeout: 260 seconds)
19:50:45 × carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Ping timeout: 250 seconds)
19:51:21 × noiobeforebed quits (~noiobefor@2001:470:69fc:105::1:3c2d) (Ping timeout: 268 seconds)
19:53:18 Vq_ is now known as Vq
19:54:18 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection)
19:54:53 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
19:55:12 simendsjo joins (~user@84.211.91.241)
19:58:10 Arathorn joins (~arathorn@2001:470:69fc:105::1f)
19:59:37 × yauhsien_ quits (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
20:01:36 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:01:51 lavaman joins (~lavaman@98.38.249.169)
20:01:58 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:02:13 lavaman joins (~lavaman@98.38.249.169)
20:02:20 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:02:35 lavaman joins (~lavaman@98.38.249.169)
20:02:42 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:02:57 lavaman joins (~lavaman@98.38.249.169)
20:03:04 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:03:19 lavaman joins (~lavaman@98.38.249.169)
20:03:26 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:05:17 × juhp quits (~juhp@128.106.188.82) (Ping timeout: 256 seconds)
20:07:29 juhp joins (~juhp@128.106.188.82)
20:10:37 × simendsjo quits (~user@84.211.91.241) (Ping timeout: 240 seconds)
20:10:57 × jao quits (~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 256 seconds)
20:12:18 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:17:15 Null_A joins (~null_a@2601:645:8700:2290:6473:b18:2fbd:1123)
20:18:09 zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32)
20:20:07 EkaiZend[m] joins (~ekai-zend@2001:470:69fc:105::1:7756)
20:21:44 Yehoshua joins (~yehoshua@2001:470:69fc:105::1:593f)
20:21:57 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
20:23:17 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
20:23:19 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
20:23:54 mahene[m] joins (~mahenemat@2001:470:69fc:105::1:6a93)
20:23:56 jneira[m] joins (~jneiramat@2001:470:69fc:105::d729)
20:24:01 thomasjm[m] joins (~thomasjmm@2001:470:69fc:105::c6d9)
20:24:15 cdsmith joins (~cdsmithma@2001:470:69fc:105::284)
20:24:42 fcortesi joins (~fcortesi@2001:470:69fc:105::f3a9)
20:24:43 ParsaAlizadeh[m] joins (~lizadehma@2001:470:69fc:105::1:65a4)
20:24:48 Artem[m] joins (~artemtype@2001:470:69fc:105::75b)
20:25:00 Heffalump[m] joins (~hsenagmat@2001:470:69fc:105::e11)
20:25:18 reza[m] joins (~rezaphone@2001:470:69fc:105::3eda)
20:25:36 × burnsidesLlama quits (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection)
20:26:39 wildsebastian joins (~wildsebas@2001:470:69fc:105::1:14b1)
20:27:49 jchia[m] joins (~jchiamatr@2001:470:69fc:105::c50b)
20:27:53 RosarioPulella[m joins (~rosariopu@2001:470:69fc:105::a57)
20:28:30 Feuermagier joins (~Feuermagi@user/feuermagier)
20:28:39 benjamin[m]123 joins (~benjaminm@2001:470:69fc:105::1:3f2f)
20:29:37 joaquinmg[m] joins (~joaquinmg@2001:470:69fc:105::1:67d2)
20:29:56 mmos[m] joins (~mmosmatri@2001:470:69fc:105::1:8340)
20:31:15 simendsjo joins (~user@84.211.91.241)
20:32:11 Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0)
20:32:11 sjanssen joins (~sjanssenm@2001:470:69fc:105::1:61d8)
20:32:12 litharn[m] joins (~litharnma@2001:470:69fc:105::1:8336)
20:32:14 jesser[m] joins (~jessermat@2001:470:69fc:105::d5ae)
20:32:16 sekun[m] joins (~hsekmatri@2001:470:69fc:105::d18f)
20:32:16 sofviic[m] joins (~sofviicma@2001:470:69fc:105::1:51fd)
20:32:17 marijan joins (~marijanma@2001:470:69fc:105::1:6cce)
20:32:30 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
20:32:36 Nate[m] joins (~m52957mat@2001:470:69fc:105::1:591a)
20:32:37 kalxd[m] joins (~kalxdmatr@2001:470:69fc:105::1:576e)
20:32:38 aidy joins (~aidy@2001:470:69fc:105::c7b4)
20:32:40 phuegrvs[m] joins (~phuegrvsm@2001:470:69fc:105::1:65e4)
20:32:40 Inst[m] joins (~instrmatr@2001:470:69fc:105::1:903e)
20:33:13 james[m]12 joins (~jamesnina@2001:470:69fc:105::1:4203)
20:33:30 jaror[m] joins (~jaror@2001:470:69fc:105::265)
20:33:30 peddie joins (~peddie@2001:470:69fc:105::25d)
20:33:58 lavaman joins (~lavaman@98.38.249.169)
20:34:37 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds)
20:38:25 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
20:39:03 finalti[m] joins (~finaltima@2001:470:69fc:105::d909)
20:39:05 schuelermine[m] joins (~schuelerm@user/schuelermine)
20:39:06 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 245 seconds)
20:39:17 unclechu joins (~unclechu@2001:470:69fc:105::354)
20:39:23 alex[m]12 joins (~alexchete@2001:470:69fc:105::1:1001)
20:41:58 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
20:42:52 cosimone joins (~user@93-47-231-87.ip115.fastwebnet.it)
20:43:29 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
20:43:29 ericson2314 joins (~ericson23@2001:470:69fc:105::70c)
20:43:29 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
20:43:49 jinsun_ joins (~jinsun@user/jinsun)
20:44:22 carmysilna joins (~brightly-@2001:470:69fc:105::2190)
20:44:36 burnsidesLlama joins (~burnsides@dhcp168-036.wadham.ox.ac.uk)
20:45:08 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
20:45:49 noiobeforebed joins (~noiobefor@2001:470:69fc:105::1:3c2d)
20:46:06 briandaed joins (~root@109.95.143.81.r.toneticgroup.pl)
20:46:14 Las[m] joins (~lasmatrix@2001:470:69fc:105::74e)
20:47:29 jao joins (~jao@211.68.17.95.dynamic.jazztel.es)
20:48:05 jkaye[m] joins (~jkayematr@2001:470:69fc:105::1:86f7)
20:48:07 amesgen[m] joins (~amesgenm]@2001:470:69fc:105::82b)
20:48:10 bontaq` joins (~user@ool-45779fe5.dyn.optonline.net)
20:48:38 AlexisTP joins (~AlexisTP3@92.57.44.63)
20:48:41 pooryori1k is now known as pooryorick
20:50:10 alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba)
20:50:14 × cosimone quits (~user@93-47-231-87.ip115.fastwebnet.it) (Remote host closed the connection)
20:51:07 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
20:51:45 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
20:51:59 × zincy quits (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 256 seconds)
20:54:14 taylorswift2018 joins (~taylorswi@115-188-158-33-fibre.sparkbb.co.nz)
20:56:14 × xff0x quits (~xff0x@2001:1a81:530c:c100:3392:9410:3e85:84e1) (Ping timeout: 260 seconds)
20:58:05 xff0x joins (~xff0x@2001:1a81:532d:cf00:6935:8bd3:eb0:937d)
20:58:16 × simendsjo quits (~user@84.211.91.241) (Ping timeout: 245 seconds)
21:00:07 × Null_A quits (~null_a@2601:645:8700:2290:6473:b18:2fbd:1123) (Remote host closed the connection)
21:01:32 <maerwald> how do people run benchmarks locally these days with all the cpu throttling
21:02:01 lavaman joins (~lavaman@98.38.249.169)
21:02:35 SawyerBergeron[m joins (~sawyerber@2001:470:69fc:105::3036)
21:02:38 dffo^ joins (~dffo@128-092-182-020.biz.spectrum.com)
21:03:11 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
21:03:33 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 250 seconds)
21:03:59 eron parts (~eron@2804:431:c7c2:934:9877:36f8:e8ed:91e) ()
21:04:09 cstml[m] joins (~cstmlmatr@2001:470:69fc:105::1:5c07)
21:04:10 <[exa]> maerwald: throttling is a valid effect for benchmarking
21:04:11 JoseC[m] joins (~jmcardonm@2001:470:69fc:105::1:7539)
21:04:38 <[exa]> not trying to defend the sad state of the home CPUs tho. :D
21:04:59 zincy joins (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4)
21:06:29 unrooted joins (~unrooted@2001:470:69fc:105::a4a)
21:07:25 <maerwald> I'm basically testing my throttling then, not the code
21:07:58 juhp[m] joins (~juhpmatri@2001:470:69fc:105::6e9)
21:08:22 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
21:08:44 thejuan24f[m] joins (~thejuan2m@2001:470:69fc:105::1:6569)
21:09:07 <EvanR> the abstract performance of code
21:09:09 <EvanR> hmm
21:09:25 × zincy quits (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) (Ping timeout: 250 seconds)
21:09:50 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
21:10:09 <EvanR> I wonder if you even need a real CPU for that
21:10:34 <EvanR> also benchmarks were made to be gamed right
21:10:39 fgaz joins (~fgaz@2001:470:69fc:105::842)
21:12:12 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
21:12:58 cherryblossom[m] joins (~cherryblo@2001:470:69fc:105::b789)
21:13:16 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
21:15:09 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
21:15:48 maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee)
21:16:26 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
21:17:05 SridharRatnakuma joins (~sridmatri@2001:470:69fc:105::1c2)
21:17:27 yehoshuapw joins (~yehoshuap@2001:470:69fc:105::a5f)
21:17:49 × immae1 quits (~immae@2a01:4f8:141:53e7::) (Quit: WeeChat 2.9)
21:18:12 tripa[m] joins (~tripamatr@2001:470:69fc:105::1:4f7e)
21:18:18 immae joins (~immae@2a01:4f8:141:53e7::)
21:18:41 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
21:18:59 ongy[m] joins (~ongymatri@2001:470:69fc:105::5018)
21:19:15 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
21:19:18 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
21:19:22 cjb joins (~cjb@user/cjb)
21:19:25 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
21:20:26 bb010g joins (~bb010g@2001:470:69fc:105::9a5)
21:20:32 <dminuoso> ski: Im not convinced of backpack. It lacks maintenance/ownership and documentation.
21:20:44 gaff joins (~gaff@49.207.227.188)
21:20:55 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
21:21:34 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Remote host closed the connection)
21:21:34 × gaff quits (~gaff@49.207.227.188) (Client Quit)
21:21:54 × cuz```` quits (~user@38.140.58.234) (Read error: Connection reset by peer)
21:22:38 ac joins (~aloiscoch@2001:470:69fc:105::65)
21:22:40 safinaskar joins (~safinaska@109.252.91.116)
21:23:47 ubert joins (~Thunderbi@p200300ecdf099459bd0f645b3a8c5166.dip0.t-ipconnect.de)
21:24:09 pfurla-matrix joins (~pedrofurl@2001:470:69fc:105::1:51d7)
21:24:18 throwaaaa[m] joins (~throwaaaa@2001:470:69fc:105::1:6fe6)
21:24:19 justosophy[m] joins (~justosoph@2001:470:69fc:105::572f)
21:24:25 <safinaskar> is it possible to do pattern matching on type-level value? here is what i am trying to do: https://godbolt.org/z/4xacfPM5n . unfortunately both variants of "read" don't compile. what to do?
21:24:30 Sixto[m] joins (~provornyc@2001:470:69fc:105::1:74df)
21:25:15 zincy joins (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4)
21:25:24 <dminuoso> safinaskar: To answer the question in itself, yes. TyFams and typeclasses implement pattern matching on type constructors.
21:25:34 <dminuoso> Or well, typeclass instances rather.
21:26:17 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds)
21:26:34 <dminuoso> Alternatively you can do this with singletons at the value level
21:26:38 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
21:27:06 bitonic joins (~bitonic@2001:470:69fc:105::1812)
21:27:18 <dminuoso> All three with varying quality of life.
21:27:23 siraben joins (~siraben@user/siraben)
21:27:46 <geekosaur> you really want idris imo
21:27:48 wysteriary[m] joins (~wysteriar@2001:470:69fc:105::a42e)
21:27:53 ormaaj joins (~ormaaj@user/ormaaj)
21:28:39 <dminuoso> The closest and simplest way is to have some surrogate typeclass Foo, write `instance Foo T` for each T that you care about, and add some method that essentially acts as a case-of branch
21:28:46 DemiMarieObenour joins (~alwayscur@2001:470:69fc:105::4886)
21:28:53 <boxscape_> this particular case seems a pretty good fit for type classes if I'm understanding correctly, I don't think Idris is really necessary here
21:29:18 <dminuoso> If you add a Proxy to that method, it becomes very simple to use
21:29:22 <safinaskar> i want pattern matching on data constructors, not on type constructors!
21:29:24 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1))
21:29:27 × briandaed quits (~root@109.95.143.81.r.toneticgroup.pl) (Remote host closed the connection)
21:29:38 <safinaskar> i want to pattern match on type-level values of type "Typ"
21:29:40 <dminuoso> Sorry, Im not sure I understand given your godbolt code.
21:29:43 <dminuoso> Yes.
21:29:56 <safinaskar> this type (Typ) has two *data* constructors: CString and Record
21:30:01 <dminuoso> safinaskar: The three techniques I described allow you to do that. A helper typeclass is the best fitting way.
21:30:04 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81)
21:30:18 <safinaskar> and i want to pattern match on them, i. e. "case x of CString -> .....; Record ... -> ......"
21:30:19 <dminuoso> Ah hold on
21:30:20 psydroid joins (~psydroid@user/psydroid)
21:30:35 <geekosaur> but once you promote it it's not a data constructor any more
21:30:42 <dminuoso> safinaskar: They are not data constructors, they are promoted type constructors.
21:30:49 <dminuoso> Let's do this in yahb quickly
21:31:01 <dminuoso> % class Descr a where descr :: Proxy a -> String
21:31:01 <yahb> dminuoso:
21:31:05 <dminuoso> % :set -XDataKinds
21:31:06 <yahb> dminuoso:
21:31:10 <dminuoso> % data Color = Red | Blue
21:31:10 <yahb> dminuoso:
21:31:19 <dminuoso> % instance Descr Red where descr _ = "its red"
21:31:19 <yahb> dminuoso:
21:31:24 <dminuoso> % instance Descr Blue where descr _ = "its blue"
21:31:24 <yahb> dminuoso:
21:31:29 <geekosaur> once promoted your data constructor becomes a kind constructor and your data constructors become type constructors
21:31:45 <dminuoso> % :set -XScopedTypeVariables
21:31:45 <yahb> dminuoso:
21:32:26 <safinaskar> okey, but how to check exhaustiveness? is there something similar but with exhaustiveness checking?
21:32:32 <dminuoso> % foo :: forall a. Descr a -> String; foo = "The description: " <> descr (Proxy :: Proxy a)
21:32:32 <yahb> dminuoso: ; <interactive>:77:18: error:; * Expected a type, but `Descr a' has kind `Constraint'; * In the type signature: foo :: forall a. Descr a -> String
21:32:39 <dminuoso> safinaskar: Not possible with typeclasses due to open world assumption
21:32:42 <EvanR> injective type family?
21:32:49 <EvanR> closed type family
21:33:01 <tomsmeding> ghc doesn't check exhaustiveness of a closed type family
21:33:04 <dminuoso> Bringing us back to technique 1 I mentioned earlier
21:33:06 <EvanR> blast
21:33:21 <EvanR> nice one ghc
21:33:23 <dminuoso> tyfams have the problem that you likely need to start with singletons very quickly for what I conceive your problem domain is
21:33:27 × AlexisTP quits (~AlexisTP3@92.57.44.63) (Ping timeout: 250 seconds)
21:34:03 <tomsmeding> % foo :: forall a. Descr a => Proxy a -> String ; foo _ = "The description: " <> descr (Proxy :: Proxy a)
21:34:04 <yahb> tomsmeding:
21:34:08 <tomsmeding> % foo (Proxy @Red)
21:34:09 <yahb> tomsmeding: "The description: its red"
21:34:44 <dminuoso> At that point, you might as well go all-in with singletons, and then rely on GHCs pattern match exhaustiveness checker again
21:34:48 <dminuoso> And skip tyfams
21:34:53 <tomsmeding> and if you think that you could have a typeclass method that retrieves back the Red/Blue value-level data constructor: congrats, that's one half of 'singletons'
21:35:08 tomsmeding high-fives dminuoso
21:35:22 × DemiMarieObenour quits (~alwayscur@2001:470:69fc:105::4886) (Write error: Connection reset by peer)
21:35:22 × psydroid quits (~psydroid@user/psydroid) (Write error: Connection reset by peer)
21:35:22 × Sixto[m] quits (~provornyc@2001:470:69fc:105::1:74df) (Read error: Connection reset by peer)
21:35:22 × pfurla-matrix quits (~pedrofurl@2001:470:69fc:105::1:51d7) (Read error: Connection reset by peer)
21:35:22 × ac quits (~aloiscoch@2001:470:69fc:105::65) (Read error: Connection reset by peer)
21:35:23 × bitonic quits (~bitonic@2001:470:69fc:105::1812) (Read error: Connection reset by peer)
21:35:23 × throwaaaa[m] quits (~throwaaaa@2001:470:69fc:105::1:6fe6) (Write error: Connection reset by peer)
21:35:23 × tripa[m] quits (~tripamatr@2001:470:69fc:105::1:4f7e) (Read error: Connection reset by peer)
21:35:23 × yehoshuapw quits (~yehoshuap@2001:470:69fc:105::a5f) (Write error: Connection reset by peer)
21:35:23 × wysteriary[m] quits (~wysteriar@2001:470:69fc:105::a42e) (Write error: Connection reset by peer)
21:35:23 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer)
21:35:23 × SridharRatnakuma quits (~sridmatri@2001:470:69fc:105::1c2) (Read error: Connection reset by peer)
21:35:23 × siraben quits (~siraben@user/siraben) (Write error: Connection reset by peer)
21:35:23 × cherryblossom[m] quits (~cherryblo@2001:470:69fc:105::b789) (Read error: Connection reset by peer)
21:35:23 × ongy[m] quits (~ongymatri@2001:470:69fc:105::5018) (Read error: Connection reset by peer)
21:35:23 × zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Write error: Connection reset by peer)
21:35:23 × finalti[m] quits (~finaltima@2001:470:69fc:105::d909) (Read error: Connection reset by peer)
21:35:23 × kalxd[m] quits (~kalxdmatr@2001:470:69fc:105::1:576e) (Read error: Connection reset by peer)
21:35:25 × Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Write error: Connection reset by peer)
21:35:25 × jkaye[m] quits (~jkayematr@2001:470:69fc:105::1:86f7) (Write error: Connection reset by peer)
21:35:25 × schuelermine[m] quits (~schuelerm@user/schuelermine) (Read error: Connection reset by peer)
21:35:25 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Write error: Connection reset by peer)
21:35:25 × jchia[m] quits (~jchiamatr@2001:470:69fc:105::c50b) (Write error: Connection reset by peer)
21:35:25 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer)
21:35:25 × sofviic[m] quits (~sofviicma@2001:470:69fc:105::1:51fd) (Read error: Connection reset by peer)
21:35:25 × ormaaj quits (~ormaaj@user/ormaaj) (Write error: Connection reset by peer)
21:35:25 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (Write error: Connection reset by peer)
21:35:25 × wildsebastian quits (~wildsebas@2001:470:69fc:105::1:14b1) (Write error: Connection reset by peer)
21:35:26 × thomasjm[m] quits (~thomasjmm@2001:470:69fc:105::c6d9) (Read error: Connection reset by peer)
21:35:26 × cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Read error: Connection reset by peer)
21:35:26 × jneira[m] quits (~jneiramat@2001:470:69fc:105::d729) (Read error: Connection reset by peer)
21:35:26 × litharn[m] quits (~litharnma@2001:470:69fc:105::1:8336) (Read error: Connection reset by peer)
21:35:26 × bb010g quits (~bb010g@2001:470:69fc:105::9a5) (Read error: Connection reset by peer)
21:35:26 × maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer)
21:35:26 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Read error: Connection reset by peer)
21:35:26 × fcortesi quits (~fcortesi@2001:470:69fc:105::f3a9) (Read error: Connection reset by peer)
21:35:26 × Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Read error: Connection reset by peer)
21:35:26 × SawyerBergeron[m quits (~sawyerber@2001:470:69fc:105::3036) (Write error: Connection reset by peer)
21:35:26 × Nate[m] quits (~m52957mat@2001:470:69fc:105::1:591a) (Write error: Connection reset by peer)
21:35:26 × sjanssen quits (~sjanssenm@2001:470:69fc:105::1:61d8) (Write error: Connection reset by peer)
21:35:26 × mahene[m] quits (~mahenemat@2001:470:69fc:105::1:6a93) (Write error: Connection reset by peer)
21:35:26 × ericson2314 quits (~ericson23@2001:470:69fc:105::70c) (Read error: Connection reset by peer)
21:35:26 × Inst[m] quits (~instrmatr@2001:470:69fc:105::1:903e) (Read error: Connection reset by peer)
21:35:26 × justosophy[m] quits (~justosoph@2001:470:69fc:105::572f) (Read error: Connection reset by peer)
21:35:26 × peddie quits (~peddie@2001:470:69fc:105::25d) (Write error: Connection reset by peer)
21:35:26 × jaror[m] quits (~jaror@2001:470:69fc:105::265) (Write error: Connection reset by peer)
21:35:26 × noiobeforebed quits (~noiobefor@2001:470:69fc:105::1:3c2d) (Write error: Connection reset by peer)
21:35:26 × alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (Write error: Connection reset by peer)
21:35:26 × jesser[m] quits (~jessermat@2001:470:69fc:105::d5ae) (Write error: Connection reset by peer)
21:35:26 × mmos[m] quits (~mmosmatri@2001:470:69fc:105::1:8340) (Write error: Connection reset by peer)
21:35:26 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (Read error: Connection reset by peer)
21:35:26 × joaquinmg[m] quits (~joaquinmg@2001:470:69fc:105::1:67d2) (Read error: Connection reset by peer)
21:35:26 × ParsaAlizadeh[m] quits (~lizadehma@2001:470:69fc:105::1:65a4) (Read error: Connection reset by peer)
21:35:26 × phuegrvs[m] quits (~phuegrvsm@2001:470:69fc:105::1:65e4) (Read error: Connection reset by peer)
21:35:26 × Yehoshua quits (~yehoshua@2001:470:69fc:105::1:593f) (Read error: Connection reset by peer)
21:35:26 × Heffalump[m] quits (~hsenagmat@2001:470:69fc:105::e11) (Read error: Connection reset by peer)
21:35:26 × carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Read error: Connection reset by peer)
21:35:26 × juhp[m] quits (~juhpmatri@2001:470:69fc:105::6e9) (Read error: Connection reset by peer)
21:35:26 × james[m]12 quits (~jamesnina@2001:470:69fc:105::1:4203) (Read error: Connection reset by peer)
21:35:26 × jinsun_ quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
21:35:26 × benjamin[m]123 quits (~benjaminm@2001:470:69fc:105::1:3f2f) (Read error: Connection reset by peer)
21:35:26 × reza[m] quits (~rezaphone@2001:470:69fc:105::3eda) (Read error: Connection reset by peer)
21:35:26 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Write error: Connection reset by peer)
21:35:27 × cstml[m] quits (~cstmlmatr@2001:470:69fc:105::1:5c07) (Write error: Connection reset by peer)
21:35:27 × sekun[m] quits (~hsekmatri@2001:470:69fc:105::d18f) (Write error: Connection reset by peer)
21:35:27 × marijan quits (~marijanma@2001:470:69fc:105::1:6cce) (Read error: Connection reset by peer)
21:35:27 × EkaiZend[m] quits (~ekai-zend@2001:470:69fc:105::1:7756) (Write error: Connection reset by peer)
21:35:27 × Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer)
21:35:27 × thejuan24f[m] quits (~thejuan2m@2001:470:69fc:105::1:6569) (Read error: Connection reset by peer)
21:35:27 × amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (Read error: Connection reset by peer)
21:35:27 × JoseC[m] quits (~jmcardonm@2001:470:69fc:105::1:7539) (Read error: Connection reset by peer)
21:35:27 × RosarioPulella[m quits (~rosariopu@2001:470:69fc:105::a57) (Write error: Connection reset by peer)
21:35:27 × alex[m]12 quits (~alexchete@2001:470:69fc:105::1:1001) (Write error: Connection reset by peer)
21:35:27 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Write error: Connection reset by peer)
21:35:27 × unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Write error: Connection reset by peer)
21:35:27 × aidy quits (~aidy@2001:470:69fc:105::c7b4) (Write error: Connection reset by peer)
21:35:27 × Arathorn quits (~arathorn@2001:470:69fc:105::1f) (Write error: Connection reset by peer)
21:35:36 <dminuoso> safinaskar: Should you chose to go with singletons, please leave your sanity in the jar by the door on your way out.
21:35:53 <dminuoso> The road to hell is paved with singletons.
21:36:05 <Rembane> dminuoso: Are singletons the incredibly painful way to do dependently typed programming in Haskell?
21:36:11 <dminuoso> Rembane: Yes.
21:36:27 <dminuoso> Some limited form of it at any way
21:36:56 juhp[m] joins (~juhpmatri@2001:470:69fc:105::6e9)
21:39:12 × emf_ quits (~emf@2620:10d:c090:400::5:9645) (Quit: emf_)
21:40:03 cynomys joins (~cynomys@user/cynomys)
21:40:17 × ubert quits (~Thunderbi@p200300ecdf099459bd0f645b3a8c5166.dip0.t-ipconnect.de) (Remote host closed the connection)
21:40:21 ub joins (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de)
21:41:24 × zer0bitz quits (~zer0bitz@2001:2003:f74d:b800:bc81:ba25:7a70:67f2) (Read error: Connection reset by peer)
21:41:56 <Rembane> dminuoso: Got it! Thanks!
21:42:26 jchia[m] joins (~jchiamatr@2001:470:69fc:105::c50b)
21:42:35 fgaz joins (~fgaz@2001:470:69fc:105::842)
21:42:38 peddie joins (~peddie@2001:470:69fc:105::25d)
21:42:39 ub is now known as ubert
21:42:45 cdsmith joins (~cdsmithma@2001:470:69fc:105::284)
21:43:03 thomasjm[m] joins (~thomasjmm@2001:470:69fc:105::c6d9)
21:43:41 bb010g joins (~bb010g@2001:470:69fc:105::9a5)
21:43:42 amesgen[m] joins (~amesgenm]@2001:470:69fc:105::82b)
21:43:42 JoseC[m] joins (~jmcardonm@2001:470:69fc:105::1:7539)
21:44:03 <EvanR> I'm still waiting to identify what exactly out of all the type level shit I know is "singletons"
21:44:04 soft joins (~soft@2001:470:69fc:105::c75)
21:44:09 zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32)
21:44:34 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
21:44:39 <EvanR> and why they stole C++'s awesome design pattern's name
21:44:51 kadoban joins (~kadoban@user/kadoban)
21:44:51 ericson2314 joins (~ericson23@2001:470:69fc:105::70c)
21:44:51 moats joins (~oats@user/oats)
21:44:51 Arathorn joins (~arathorn@2001:470:69fc:105::1f)
21:44:52 unclechu joins (~unclechu@2001:470:69fc:105::354)
21:45:06 <tomsmeding> safinaskar: with some hand-rolled singletons: https://paste.tomsmeding.com/BgzgyArQ
21:45:20 sekun[m] joins (~hsekmatri@2001:470:69fc:105::d18f)
21:45:27 maralorn joins (~maralorn@2001:470:69fc:105::251)
21:45:28 reza[m] joins (~rezaphone@2001:470:69fc:105::3eda)
21:45:28 quantum joins (~quantum@user/quantum/x-8556232)
21:45:42 Michal[m] joins (~oomiguelm@2001:470:69fc:105::1:5ab0)
21:45:42 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
21:45:42 denbrahe joins (~denbrahe@2001:470:69fc:105::19c0)
21:45:42 finalti[m] joins (~finaltima@2001:470:69fc:105::d909)
21:45:50 <tomsmeding> EvanR: I'm not completely sure (never actually used the singletons package lol), but I believe singletons is basically what I just posted, plus the corresponding Known* type classes
21:45:54 sjanssen joins (~sjanssenm@2001:470:69fc:105::1:61d8)
21:45:55 Las[m] joins (~lasmatrix@2001:470:69fc:105::74e)
21:45:55 <tomsmeding> but then auto-generated
21:45:55 Yehoshua joins (~yehoshua@2001:470:69fc:105::1:593f)
21:46:08 craige[m] joins (~craigemcw@2001:470:69fc:105::35f1)
21:46:08 schuelermine[m] joins (~schuelerm@user/schuelermine)
21:46:08 sm joins (~sm@plaintextaccounting/sm)
21:46:09 mahene[m] joins (~mahenemat@2001:470:69fc:105::1:6a93)
21:46:20 sshine is now known as sshine`
21:46:21 justosophy[m] joins (~justosoph@2001:470:69fc:105::572f)
21:46:22 hsiktas[m] joins (~hsiktasm]@2001:470:69fc:105::30d4)
21:46:22 Deide joins (~deide@user/deide)
21:46:35 Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0)
21:46:35 Artem[m] joins (~artemtype@2001:470:69fc:105::75b)
21:46:35 psydroid joins (~psydroid@user/psydroid)
21:46:36 Christoph[m] joins (~hpotsirhc@2001:470:69fc:105::2ff8)
21:46:40 <tomsmeding> modulo minor differences in encoding the arguments precisely; I made different choices for Symbol and Typ there in the record cons case, not sure how 'singletons' would handle that thing
21:46:48 wysteriary[m] joins (~wysteriar@2001:470:69fc:105::a42e)
21:46:48 alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba)
21:46:48 ongy[m] joins (~ongymatri@2001:470:69fc:105::5018)
21:46:48 siraben joins (~siraben@user/siraben)
21:46:48 SawyerBergeron[m joins (~sawyerber@2001:470:69fc:105::3036)
21:46:48 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
21:46:48 alex[m]123 joins (~alexchete@2001:470:69fc:105::1:1001)
21:46:48 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
21:46:48 Tisoxin joins (~ikosit@user/ikosit)
21:47:02 noiobeforebed joins (~noiobefor@2001:470:69fc:105::1:3c2d)
21:47:02 carmysilna joins (~brightly-@2001:470:69fc:105::2190)
21:47:02 fendor[m] joins (~fendormat@2001:470:69fc:105::fcbd)
21:47:03 aidy joins (~aidy@2001:470:69fc:105::c7b4)
21:47:03 DemiMarieObenour joins (~alwayscur@2001:470:69fc:105::4886)
21:47:03 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
21:47:03 jmcantrell joins (~jmcantrel@user/jmcantrell)
21:47:03 maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee)
21:47:15 RosarioPulella[m joins (~rosariopu@2001:470:69fc:105::a57)
21:47:15 wildsebastian joins (~wildsebas@2001:470:69fc:105::1:14b1)
21:47:15 jinsun_ joins (~jinsun@user/jinsun)
21:47:30 benjamin[m]123 joins (~benjaminm@2001:470:69fc:105::1:3f2f)
21:47:30 joaquinmg[m] joins (~joaquinmg@2001:470:69fc:105::1:67d2)
21:47:30 Heffalump[m] joins (~hsenagmat@2001:470:69fc:105::e11)
21:47:30 fcortesi joins (~fcortesi@2001:470:69fc:105::f3a9)
21:47:43 tripa[m] joins (~tripamatr@2001:470:69fc:105::1:4f7e)
21:47:43 yehoshuapw joins (~yehoshuap@2001:470:69fc:105::a5f)
21:47:55 ormaaj joins (~ormaaj@user/ormaaj)
21:47:55 ac joins (~aloiscoch@2001:470:69fc:105::65)
21:47:55 bitonic joins (~bitonic@2001:470:69fc:105::1812)
21:47:55 SridharRatnakuma joins (~sridmatri@2001:470:69fc:105::1c2)
21:47:55 unrooted joins (~unrooted@2001:470:69fc:105::a4a)
21:47:55 Guillaum[m] joins (~guiboumat@2001:470:69fc:105::1:72ac)
21:47:55 EkaiZend[m] joins (~ekai-zend@2001:470:69fc:105::1:7756)
21:47:55 pfurla-matrix joins (~pedrofurl@2001:470:69fc:105::1:51d7)
21:47:55 kalxd[m] joins (~kalxdmatr@2001:470:69fc:105::1:576e)
21:47:55 thejuan24f[m] joins (~thejuan2m@2001:470:69fc:105::1:6569)
21:47:56 cstml[m] joins (~cstmlmatr@2001:470:69fc:105::1:5c07)
21:47:56 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
21:47:56 ParsaAlizadeh[m] joins (~lizadehma@2001:470:69fc:105::1:65a4)
21:47:56 euphrates[m] joins (~euphrates@2001:470:69fc:105::fbb5)
21:47:56 mmos[m] joins (~mmosmatri@2001:470:69fc:105::1:8340)
21:47:56 jneira[m] joins (~jneiramat@2001:470:69fc:105::d729)
21:48:07 cherryblossom[m] joins (~cherryblo@2001:470:69fc:105::b789)
21:48:07 Nate[m] joins (~m52957mat@2001:470:69fc:105::1:591a)
21:48:07 Inst[m] joins (~instrmatr@2001:470:69fc:105::1:903e)
21:48:07 afotgkmnzj7asv3r joins (~afotgkmnz@2001:470:69fc:105::c24b)
21:48:07 octeep[m] joins (~octeepoct@2001:470:69fc:105::1:3dbf)
21:48:07 marijan joins (~marijanma@2001:470:69fc:105::1:6cce)
21:48:07 phuegrvs[m] joins (~phuegrvsm@2001:470:69fc:105::1:65e4)
21:48:07 sofviic[m] joins (~sofviicma@2001:470:69fc:105::1:51fd)
21:48:07 jesser[m] joins (~jessermat@2001:470:69fc:105::d5ae)
21:48:08 throwaaaa[m] joins (~throwaaaa@2001:470:69fc:105::1:6fe6)
21:48:08 Sixto[m] joins (~provornyc@2001:470:69fc:105::1:74df)
21:48:08 jkaye[m] joins (~jkayematr@2001:470:69fc:105::1:86f7)
21:48:08 litharn[m] joins (~litharnma@2001:470:69fc:105::1:8336)
21:48:09 james[m]123 joins (~jamesnina@2001:470:69fc:105::1:4203)
21:48:10 simmsb joins (~simmsb@2001:470:69fc:105::1:55c3)
21:48:10 jaror[m] joins (~jaror@2001:470:69fc:105::265)
21:49:02 <EvanR> you have Typ and TypSing, so now there's the Typ type, Type datakind, and both type / kind for TypSing
21:49:16 emf joins (~emf@2620:10d:c090:400::5:9645)
21:49:18 <tomsmeding> confused yet?
21:49:22 <EvanR> yes
21:49:40 <EvanR> what is singletonic about TypSing
21:50:06 <EvanR> other than the name
21:50:10 doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
21:50:17 <dminuoso> Mmm, is there some primitive in base that would yield both minimum and maximum at the same time?
21:50:21 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
21:50:29 × emf quits (~emf@2620:10d:c090:400::5:9645) (Client Quit)
21:50:31 <dminuoso> Or do I have to roll my own if I want this in a single pass?
21:50:31 <EvanR> sort?
21:50:33 <tomsmeding> EvanR: the point is that the type "TypSing typ" for any type "typ" of kind "Typ" has exactly one value, namely the one mirroring the original Typ value
21:50:46 <dminuoso> EvanR: That wont give me O(n)
21:50:52 <Rembane> dminuoso: Semigroups and foldMap and Arrow! \o/
21:51:04 <EvanR> I thought you mean min max my bad
21:51:05 tomsmeding is quite sure you don't need Arrow
21:51:24 <Rembane> tomsmeding: You always need Arrow, you just don't know it yet.
21:51:29 <dminuoso> EvanR: Mmm?
21:51:34 tomsmeding gently steps back a little
21:51:51 <EvanR> the Arrow paradox
21:51:53 <safinaskar> tomsmeding: thanks a lot
21:52:10 <safinaskar> these singleteons are ugly. i am searching for better way
21:52:12 <geekosaur> arrowdox
21:52:24 <geekosaur> safinaskar, there is no better way in haskell
21:53:19 <safinaskar> in fact, my task (probably you guessed) is to write implementation of binary format "Apache Avro" in haskell using cool haskell techniques such as GADTs
21:53:41 <dminuoso> geekosaur: Mmm, I disagree.
21:53:45 <tomsmeding> dminuoso: https://paste.tomsmeding.com/9SqnrGBH
21:53:59 <dminuoso> Rethinking a type-level problem back into value level often does wonders.
21:54:22 <safinaskar> "read" is supposed to be low-level parsing function. the binary format itself doesn't contain type info, so "read" must accept type as its argument. and now i am trying to pattern match on this type argument
21:54:42 <Rembane> dminuoso: Does this solve your problem? https://paste.tomsmeding.com/IkJoiZlh
21:54:43 <tomsmeding> (that <> definition can probably use some Applicative to compress that into a single case)
21:54:56 <dminuoso> Rembane: Wow. That is truly cunning.
21:55:01 <Rembane> dminuoso: Cool, eh? :D
21:55:02 <tomsmeding> Rembane++
21:55:04 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
21:55:20 <Rembane> dminuoso: If you don't like &&& you can use functions and stuff instead.
21:55:34 <safinaskar> there is similar lib for dealing with protobuf in haskell. now i will try to read its code for inspiration
21:55:35 <tomsmeding> % :m +Control.Arrow Data.Monoid
21:55:36 <yahb> tomsmeding:
21:55:44 <tomsmeding> % foldMap (Min &&& Max) [1..5 :: Int]
21:55:44 <yahb> tomsmeding: ; <interactive>:81:10: error:; * Data constructor not in scope: Min :: Int -> c; * Perhaps you meant one of these: variable `min' (imported from Prelude), variable `sin' (imported from Prelude); <interactive>:81:18: error:; * Data constructor not in scope: Max :: Int -> c'; * Perhaps you meant variable `max' (imported from Prelude)
21:55:50 <tomsmeding> % import Data.Semigroup
21:55:50 <yahb> tomsmeding:
21:55:51 <tomsmeding> % foldMap (Min &&& Max) [1..5 :: Int]
21:55:52 <yahb> tomsmeding: (Min {getMin = 1},Max {getMax = 5})
21:56:15 <monochrom> w00t that's a nice use of the "if X is a monoid then Y->X is a monoid too" instance.
21:56:24 safinaskar_ joins (~quassel@109-252-91-116.nat.spd-mgts.ru)
21:56:37 safinaskar is now known as safinaskarw
21:56:43 safinaskar_ is now known as safinaskar
21:56:57 <dminuoso> % minMax :: (Ord a, Bounded a, Foldable f) => f a -> (a, a); minMax = coerce . foldMap (Min &&& Max)
21:56:57 <yahb> dminuoso:
21:57:11 <dminuoso> % minMax [1,3,3,5,10,2]
21:57:12 <yahb> dminuoso: ; <interactive>:88:1: error:; * Ambiguous type variable `a0' arising from a use of `print'; prevents the constraint `(Show a0)' from being solved.; Probable fix: use a type annotation to specify what `a0' should be.; These potential instances exist:; instance Show a => Show (ZipList a) -- Defined in `Control.Applicative'; instance Show NestedAtomically -- Defined in
21:57:36 <dminuoso> % minMax [1,3,3,5,10,2] @Int
21:57:36 <yahb> dminuoso: ; <interactive>:89:1: error:; * Cannot apply expression of type `(a0, a0)'; to a visible type argument `Int'; * In the expression: minMax [1, 3, 3, 5, ....] @Int; In an equation for `it': it = minMax [1, 3, 3, ....] @Int
21:57:41 <dminuoso> Err what
21:57:47 <dminuoso> Ohh
21:57:51 <EvanR> are you trying to `read' a value of "unknown type"
21:57:52 <tomsmeding> % minMax @Int [1,3,3,5,10,2]
21:57:52 <yahb> tomsmeding: (1,10)
21:57:53 <monochrom> Should it be minMax @Int ?
21:57:58 <monochrom> Yeah, that :)
21:58:07 <EvanR> because I like the way juicy pixels does it, returning a sum type
21:58:10 safinaskarw parts (~safinaska@109.252.91.116) ()
21:58:12 <EvanR> of well typed results
21:58:16 <tomsmeding> o/
21:58:28 <dminuoso> So that's curious, somehow I had always expected GHC not to be picky about where you put TypeApplications
21:59:04 <tomsmeding> before ghc 9, the location of a forall could float, so 'Int -> forall a. a -> [a]' was the same as 'forall a. Int -> a -> [a]'
21:59:09 <monochrom> All lambda calculi are very picky about orders :)
21:59:11 <tomsmeding> @a should be in the location of the forall
21:59:12 <lambdabot> Maybe you meant: activity activity-full admin all-dicts arr ask auto-reply auto-reply? v @ ? .
21:59:29 <monochrom> It's why other people invented "keyword arguments".
21:59:32 × michalz quits (~michalz@185.246.204.94) (Remote host closed the connection)
21:59:38 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
21:59:42 <dminuoso> monochrom: Well Im just thinking that grammatically it seems not a big deal
21:59:43 <EvanR> it's why they invented set theory *hide*
21:59:45 <tomsmeding> here you have minMax :: forall a. f a -> (a, a), ignoring type classes, and you can't move the forall to after the first argumen
21:59:54 <tomsmeding> hence must be minMax @Int :)
22:00:09 tomsmeding makes the disclaimer that this sounds very sensible to me but I don't actually know for sure this is why
22:00:21 × phma quits (phma@2001:5b0:211c:1a98:48d4:386a:82f8:d37) (Read error: Connection reset by peer)
22:00:44 <monochrom> I think it's why, and there is nothing deeper about it.
22:00:47 <tomsmeding> hm, doesn't seem to work for me with a function of type 'Int -> a -> [a]'
22:01:07 <monochrom> Ah but have you tried Int -> forall a. a -> [a] ?
22:01:32 <tomsmeding> % foo :: forall a. Int -> a -> [a] ; foo _ _ = []
22:01:32 <yahb> tomsmeding:
22:01:33 <geekosaur> er, doesnm't that forall floay out?
22:01:39 <tomsmeding> % bar :: Int -> forall a. a -> [a] ; bar _ _ = []
22:01:39 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection)
22:01:39 <yahb> tomsmeding:
22:01:40 phma joins (phma@2001:5b0:215a:adf8:f4aa:f392:c0b4:ceef)
22:01:44 <geekosaur> *float
22:01:46 <tomsmeding> % foo 3 @Int 3
22:01:47 <yahb> tomsmeding: ; <interactive>:93:1: error:; * Cannot apply expression of type `a0 -> [a0]'; to a visible type argument `Int'; * In the expression: foo 3 @Int 3; In an equation for `it': it = foo 3 @Int 3
22:01:49 <tomsmeding> % bar 3 @Int 3
22:01:49 <yahb> tomsmeding: []
22:01:53 shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
22:01:56 <tomsmeding>
22:02:03 <geekosaur> actually I butchered that one badly enough I should just toss it :/
22:02:31 <tomsmeding> apparently I was right except that the forall doesn't actually float?
22:02:38 <geekosaur> odd
22:02:56 <monochrom> Quicklook needs to make a difference between "forall a. X -> ..." and "X -> forall a. ..." to get the rest of impredicativity to work.
22:03:09 <tomsmeding> I get the same result in my local ghc 8.10.7
22:03:17 <tomsmeding> which is the interesting part
22:03:30 <geekosaur> my head hurts
22:04:07 <tomsmeding> % (foo 3 :: forall a. a -> [a]) @Int 3
22:04:07 <yahb> tomsmeding: []
22:04:13 <tomsmeding> this _does_ work
22:04:13 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
22:05:09 <monochrom> yahb is at 9.0 which, although doesn't have Quicklook, does have that distinction to pave way.
22:05:31 <tomsmeding> my local 8.10.7 doesn't have quick look and behaves the same for these tests
22:05:36 <monochrom> Ah.
22:05:50 <monochrom> Well, all lamba calcali are picky about orders. :)
22:06:33 califax- joins (~califax@user/califx)
22:07:01 <monochrom> Personally I work at the level of "by default, order matters pedantically, unless the language is so nice as to relax it a little bit".
22:07:05 × califax quits (~califax@user/califx) (Remote host closed the connection)
22:07:38 califax- is now known as califax
22:07:47 <tomsmeding> I just put the type applications at the beginning always, hasn't failed yet :)
22:08:25 <tomsmeding> which I guess means that I've never met a 'bar' yet in the wild
22:08:51 <tomsmeding> up to the reader to decide which meaning of 'bar' I intend her
22:08:53 <tomsmeding> e
22:09:02 <Rembane> Good exercise.
22:09:03 <Rembane> I've always thought that the type application applies to everything to the right of it.
22:10:07 <tomsmeding> in a certain way I found the proposal for the 'forall a ->' syntax enlightening here
22:10:16 <monochrom> Dependent typing will be where it makes sense to have a "forall" or generally "product over ..." in the middle and so the use site will also have @ in the middle.
22:10:32 <tomsmeding> that makes a type argument _explicit_: 'forall a ->' is to 'forall a.' as 'a' is to '{a}' in Agda
22:10:47 <monochrom> Yeah, that.
22:10:52 <tomsmeding> so then the type becomes just another argument, in that place in the list of arguments
22:11:15 <tomsmeding> bar :: Int -> forall a -> a -> [a]
22:11:22 × `2jt quits (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Ping timeout: 260 seconds)
22:11:23 <tomsmeding> bar 3 Int 4
22:12:37 <tomsmeding> thanks for the mind exercises all, I'm going to bed :)
22:13:16 <EvanR> haskell: a ~~soviet~~ scottish mind game
22:13:36 alo joins (~alo@user/alo)
22:18:45 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
22:19:43 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
22:21:30 <EvanR> Update: As of version 3.37.0 (2021-11-27), SQLite provides STRICT tables that do rigid type enforcement, for developers who prefer that kind of thing.
22:21:34 <EvanR> It's about time
22:21:42 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
22:22:50 × Flonk quits (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: Ping timeout (120 seconds))
22:23:36 Franciman joins (~Franciman@mx1.fracta.dev)
22:24:22 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Quit: ZNC 1.8.2 - https://znc.in)
22:24:37 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
22:26:57 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds)
22:27:42 <hpc> "for developers who prefer that kind of thing" you say, as if you're not in #haskell :D
22:27:57 <maerwald> lol
22:28:01 <Clint> we're very contrarian
22:28:32 <maerwald> "for weirdos who prefer that jazz"
22:28:53 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
22:29:01 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
22:29:05 <EvanR> their words not mine
22:29:14 <hpc> ah
22:30:28 Erutuon joins (~Erutuon@user/erutuon)
22:33:18 sheb_ joins (~sheb@31.223.228.71)
22:35:27 × sheb quits (~sheb@31.223.228.71) (Ping timeout: 256 seconds)
22:37:28 <Franciman> hi all, i'll try to be less edgy and more conforming, sorry
22:37:29 <safinaskar> EvanR: thanks a lot for this info on STRICT tables!
22:37:37 <Franciman> i've thought about my behaviour, and i apologise, again
22:37:54 <safinaskar> EvanR: can i forbid NULLs in sqlite?
22:37:58 <Franciman> i have a question. I thought i could find haskell's formal syntax in the language report, but i can't seem to find it
22:38:01 <Franciman> where can i locate it?
22:38:06 <Franciman> ehm
22:38:09 <Franciman> formal semantics*
22:38:17 <EvanR> sqlite-simple supports opening a database file, opening a (blank) in-memory database, but not copying a database from disk and opening that for purposes
22:38:18 <Franciman> formal specification of haskell program semantics
22:39:05 <EvanR> e.g. if you make a copy of a database to memory and use it read only, it can be trivially wrapped as pure (?)
22:39:58 <EvanR> you could copy all the data to your own data structure, but then you don't get SQL for what its worth
22:39:58 <safinaskar> Franciman: haskell report doesn't define formal semantics. but you can see something like formal semantics for haskell as implemented in GHC. the semantics defined in particular .pdf file located in GHC source tree
22:40:25 <Franciman> ah
22:40:33 <Franciman> so the standard doesn't define a formal semantics of the language
22:40:43 <safinaskar> Franciman: yes :)
22:40:57 <safinaskar> Franciman: this is usual situation for programming languages
22:41:15 <safinaskar> Franciman: you can look at SML. it is language with formal semantics defined in the standard :)
22:41:19 <Franciman> safinaskar: do you remember the name?
22:41:21 <dminuoso> We have these denotational semantics instead that just.. somehow.. nobody has ever specified..
22:41:22 <Franciman> of the pdf file
22:41:40 <Franciman> yes, sml is gold
22:41:42 <Franciman> xd
22:41:49 <Franciman> i thought haskell had a formal semantics too in the standard
22:41:59 <EvanR> haskell semantics is like jazz. If you gotta ask, you'll never know
22:42:06 × _xor quits (~xor@dsl-50-5-233-169.fuse.net) (Quit: WeeChat 3.4)
22:42:12 <Franciman> lol
22:42:12 <EvanR> wait that's lisp
22:42:25 <Franciman> dminuoso: sorry i couldn't parse. Is there a written document about it?
22:42:40 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
22:42:46 <dminuoso> Franciman: By the amount of denotational semantics stuff on our wiki you'd think there was.
22:42:47 <[exa]> Franciman: the semantics of whole haskell is probably too big to be practical, but it's nice to have a look of the sub-layers though, especially at STG and Cmm
22:43:53 <Franciman> [exa]: do i find their semantics somewhere?
22:44:15 × zincy quits (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) (Remote host closed the connection)
22:44:17 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds)
22:45:03 <EvanR> semantics for f x = (semantics for f) (semantics for x) where thing on the right is function application xD
22:45:14 <[exa]> STG has a paper that gives a pretty clean picture of it, scholar.google should help
22:45:30 <Franciman> does Core have a formal semantics at least?
22:45:38 <Franciman> thanks [exa]
22:45:45 <Franciman> well i still need to look in ghc's docs
22:46:15 <Franciman> https://gitlab.haskell.org/ghc/ghc/-/tree/master/docs/core-spec here it is!
22:46:16 <Franciman> i think
22:46:43 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
22:46:46 Flonk joins (~Flonk@vps-zap441517-1.zap-srv.com)
22:46:48 vicfred joins (~vicfred@user/vicfred)
22:46:56 <EvanR> semantics for \x -> body = \x -> semantics for body where thing on the right is a lambda
22:48:12 <safinaskar> Franciman: https://github.com/ghc/ghc/blob/master/docs/core-spec/core-spec.pdf
22:48:32 <Franciman> ty
22:49:26 <[exa]> "Implementing lazy functional languages on stock hardware" by SPJ has a whole section on operational semantics of STG
22:49:32 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:51:01 <Franciman> thanks
22:51:29 × MatthiasG2 quits (~matthias@i6DFA026C.versanet.de) (Quit: Lost terminal)
22:55:28 oberblastmeister joins (~oberblast@2001:470:69fc:105::3a60)
22:55:38 × max22- quits (~maxime@2a01cb08833598007cddd107fb6e9829.ipv6.abo.wanadoo.fr) (Quit: Leaving)
22:57:07 azimut joins (~azimut@gateway/tor-sasl/azimut)
23:00:23 brian___ joins (~brian@c-73-68-74-41.hsd1.ma.comcast.net)
23:00:27 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
23:01:27 brian___ parts (~brian@c-73-68-74-41.hsd1.ma.comcast.net) ()
23:01:30 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
23:01:31 brian___ joins (~brian@c-73-68-74-41.hsd1.ma.comcast.net)
23:01:59 vglfr joins (~vglfr@coupling.penchant.volia.net)
23:02:21 × brian___ quits (~brian@c-73-68-74-41.hsd1.ma.comcast.net) (Client Quit)
23:04:03 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
23:05:32 <lbseale> is it best practice to use `catches` to handle exceptions thrown from pure code?
23:06:37 × Tuplanolla quits (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.)
23:06:46 _xor joins (~xor@dsl-50-5-233-169.fuse.net)
23:07:33 <monochrom> Depends on what "handle" means. See my http://www.vex.net/~trebla/haskell/exception-tutorial.xhtml#catch
23:07:39 <wavemode> at the top level of an application to provide some graceful cleanup, sure
23:08:03 <lbseale> wavemode, that is what I have in mind
23:08:18 <lbseale> monochrom, ty I'll read this
23:08:23 <monochrom> In other languages they don't distinguish "clean up" and "plan B", both are called "handle". In Haskell, we do better.
23:08:24 <wavemode> but exceptions in pure code usually indicate a bug that really needs to be fixed
23:09:01 <monochrom> Oh, pure code. Laziness will confound you anyway.
23:09:06 <ski> @wiki Error vs. Exception
23:09:06 <lambdabot> https://wiki.haskell.org/Error_vs._Exception
23:10:04 <monochrom> And yeah we also do better than lumping together "there is an error because I try to open a file, which is not my fault" and "there is an error because I try to divide by zero, which is my fault".
23:11:12 <monochrom> This is why imperative programming is easier to learn. Or "easier" to learn. There are "fewer" concepts to learn.
23:11:34 ober joins (~oberblast@c-73-68-74-41.hsd1.ma.comcast.net)
23:11:35 <dminuoso> Rembane: Gah, its a shame this doesnt work for non-Bounded like Integer
23:11:58 <dminuoso> But I guess we can just do
23:12:12 <dminuoso> % foldMap1_ = foldr1 ((<>) . f)
23:12:12 <yahb> dminuoso:
23:12:26 <dminuoso> % minMax :: (Ord a, Foldable f) => f a -> (a, a); minMax = coerce . foldMap1_ (Min &&& Max)
23:12:27 <yahb> dminuoso: ; <interactive>:97:67: error:; * Couldn't match expected type: f a -> b1; with actual type: (Min b0, Max b0); * Possible cause: `foldMap1_' is applied to too many arguments; In the second argument of `(.)', namely `foldMap1_ (Min &&& Max)'; In the expression: coerce . foldMap1_ (Min &&& Max); In an equation for `minMax': minMax = coerce . foldMap1_ (Min &&& Max
23:12:30 <dminuoso> Or some such
23:13:14 ober is now known as Ober
23:13:16 <dminuoso> Oh
23:13:19 Ober is now known as ober
23:13:29 ober is now known as Oberblast
23:13:31 Oberblast is now known as ober
23:13:43 ski . o O ( `catchBind :: Exception e => IO a -> (e -> IO b) -> (a -> IO b) -> IO b' )
23:15:00 <lbseale> ski, "In this article we use the term exception for expected but irregular situations at runtime" -- this is exactly what I mean by exception
23:15:51 k8yun_ joins (~k8yun@24.244.29.102)
23:16:15 <monochrom> I don't trust word mincing like those.
23:16:37 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
23:16:46 <monochrom> I think "is this under my control or not?" is a better question.
23:17:05 <ski> it can also be useful to distinguish faults, which are inadequacies of the implementation, such as out of memory, out of some other resource, integer overflow (depending)
23:17:29 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
23:17:38 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
23:17:52 × boxscape_ quits (~boxscape_@p4ff0b9d5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
23:19:17 <dminuoso> Mmm, actually we cant trivially do this with foldr1 shame
23:19:25 × k8yun quits (~k8yun@24.244.29.102) (Ping timeout: 240 seconds)
23:19:38 <ski> (btw, i don't really have any in principle qualms about using exceptions (not necessarily in the `Exception' sense) for "ordinary but uncommon" situations, like end of file, end of list, parse failure, &c.)
23:20:30 <lbseale> I think this is a nice example from the wiki page: "First, consider a compiler like GHC. If you feed it a program that contains invalid syntax or inconsistent types, it emits a description of the problem. Such occurrences are considered to be exceptions."
23:20:40 <wavemode> the usual qualm is performance
23:20:57 <ski> (i know some people, in some other places, say "exceptions are for exceptional situations", but i don't really understand what that means (it sounds like a tautology). it appears they don't like using it for "end of sequence", e.g., but in my mind that doesn't follow)
23:21:35 <dibblego> that saying came from java and it is hocus-pocus
23:21:42 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:22:16 <ski> anyway, i agree that correctly indicating the source of the problem, (which tend to determine to a large degree how you handle it, what you can do about it, if anything) is a good idea
23:22:21 × ober quits (~oberblast@c-73-68-74-41.hsd1.ma.comcast.net) (Quit: Leaving)
23:23:46 ober joins (~oberblast@c-73-68-74-41.hsd1.ma.comcast.net)
23:23:52 <ski> lbseale : the "expected .. at runtime" vs. "mistakes in the running program" distinction there seem to me to be the most relevant part of that paragraph
23:23:53 <Rembane> dminuoso: Yeah. I have too bad imagination to realize how it could work for Integer.
23:24:04 <jackdk> dibblego: I am familiar with its origin but not its hocus-pocusness, and to date have found it a reasonable rule to follow. Can you elaborate?
23:24:22 × Flonk quits (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: Ping timeout (120 seconds))
23:24:31 <dibblego> jackdk: it starts with: what is an "exceptional situation"?
23:24:35 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
23:24:49 × ober quits (~oberblast@c-73-68-74-41.hsd1.ma.comcast.net) (Client Quit)
23:25:14 <EvanR> exceptions are so old that's probably entirely relative
23:25:22 <dibblego> here are some candidate answers 1. the user needs to type A, B, or C; but they typed D 2. The file was not there 3. The network disappeared.
23:25:39 <ski> "An exceptional situation is any situation in which you decide to signal the situation by using an exception." -- how about this definition ?
23:25:45 ober joins (~ober@c-73-68-74-41.hsd1.ma.comcast.net)
23:25:49 <dibblego> ski: that's the standard conclusion
23:25:58 <ski> yea. which makes it tautological
23:26:13 <dminuoso> ski: Its a conflation of etymology, personal interpretation of a word and the word as a particular feature/set of semantics
23:27:05 <int-e> . o O ( so loss of power (crashing the computer) is not an exceptional situation )
23:27:10 <dibblego> "The file was not there" is a good answer, yes use exceptions, but the reason why is not: exceptional situation — rather, how I/O works on the machine. A hypothetical machine that didn't use IO for readFile (i.e. where readFile is inside the closed world), we wouldn't use exceptions
23:27:26 <EvanR> it's funny that we use Either String as a sort of exception, which isn't using any special mechanism... it's totally ordinary code
23:27:26 <monochrom> An exceptional situation is a situation that shouldn't have survived but it does because it shouldn't have been fit but it's fit. How about that? >:)
23:27:41 × ober quits (~ober@c-73-68-74-41.hsd1.ma.comcast.net) (Client Quit)
23:28:21 ober joins (~ober@c-73-68-74-41.hsd1.ma.comcast.net)
23:28:53 <monochrom> This is why I ask the question "is it under my control or not?"
23:29:07 <EvanR> parse error, not under your control
23:29:12 <EvanR> throw an exception?
23:29:15 ski . o O ( stoically-oriented-programming )
23:29:23 <wavemode> java developers should have lobbied for sum types before espousing this "exceptional situations" dogma...
23:29:36 <dibblego> I did, in 2005
23:29:42 <dminuoso> Maybe we should avoid "exceptional" on the basis that its suggestive. Phrases like "irrecoverable situation" or "unexpected condition" seem more precise
23:29:43 <dibblego> are we there yet?
23:30:04 <dminuoso> Once you avoid that silly word "exception" in there, you stop making any associative or anti-associative combination with "exception-the-language-feature"
23:30:23 <dibblego> not precise enough — there is a reason we use exceptions for "the file is not there" versus, "call head on empty list [ignoring actual head["
23:30:23 ski . o O ( "The modern Stoic's decision making algorithm" <https://i.imgur.com/67pMoOk.jpg">67pMoOk.jpg> )
23:30:33 <dminuoso> And you begin thinking of "exception-the-language-feature" more as non-local goto/control transfer
23:30:36 <lbseale> lol ski
23:30:53 <dolio> It means there are tradeoffs when implementing continuations, and some ways are unsuitable for being used as typical control flow for your program if you care about your program working well.
23:30:59 <dibblego> anyway, didn't mean to start a rant — I have code to write
23:32:01 <dolio> So you should only use them in uncommon cases where your program is blowing up, and you don't really care about being really efficient.
23:32:16 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:32:30 <monochrom> Parse errors are why Alternative is an exception system.
23:32:32 ober is now known as bri
23:32:41 <ski> there's this "try vs. check" aspect of I/O operations. (race conditions)
23:33:27 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
23:33:34 <int-e> https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use ?
23:34:18 <ski> yes
23:34:42 ski . o O ( "Parse, don't validate" in 2019-11-05 at <https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/> )
23:34:52 × bri quits (~ober@c-73-68-74-41.hsd1.ma.comcast.net) (Quit: Leaving)
23:35:45 mvr_ joins (uid36976@id-36976.tinside.irccloud.com)
23:35:49 Erutuon joins (~Erutuon@user/erutuon)
23:35:54 ober joins (~ober@c-73-68-74-41.hsd1.ma.comcast.net)
23:36:39 ober parts (~ober@c-73-68-74-41.hsd1.ma.comcast.net) ()
23:36:49 ober joins (~ober@c-73-68-74-41.hsd1.ma.comcast.net)
23:36:53 × foul_owl quits (~kerry@23.82.194.143) (Ping timeout: 256 seconds)
23:38:10 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
23:38:18 <Axman6> we should have that in @where
23:39:02 <int-e> @help where+
23:39:03 <lambdabot> where+ <key> <elem>. Define an association
23:40:39 yauhsien_ joins (~yauhsien@61-231-29-69.dynamic-ip.hinet.net)
23:40:47 <Axman6> @where+ pdv "Parse, don't validate" - https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
23:40:47 <lambdabot> It is forever etched in my memory.
23:40:52 <Axman6> @where pdv
23:40:52 <lambdabot> "Parse, don't validate" - https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
23:43:01 × bontaq` quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 250 seconds)
23:44:33 × rtsn quits (~nstr@user/rtsn) (Ping timeout: 250 seconds)
23:44:54 <monochrom> dibblego: I wonder if we are in agreement and there is at most an apparent disagreement. head has two sides, the implementer side vs the user side. The implementer of head cannot force the user to never say "head []", this is not under the implementer's control, so throwing is in order, what else could one do? The user of head, though, simply shouldn't let themselves use "head []", even if the behaviour is well-understood.
23:45:33 <monochrom> (Now enter dependent typing. It can rule out "head []" statically. Nothing to worry about!)
23:45:37 <dibblego> monochrom: I agree
23:46:29 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
23:46:31 rtsn joins (~nstr@h-155-4-221-229.NA.cust.bahnhof.se)
23:47:17 <dibblego> \case [] -> throw "no!"; (h:_) -> h -- we tend to agree not to do this because it is "not exceptional", where "not exceptional" has an actual meaning that diverges considerably from "not exceptional"
23:47:29 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
23:47:41 <dibblego> the hocus-pocus from java never gets to an actual meaning
23:49:21 ec joins (~ec@gateway/tor-sasl/ec)
23:52:42 foul_owl joins (~kerry@192.145.116.254)
23:54:26 <ski> (s/\(h:_\)/h:_/)
23:54:51 <safinaskar> does somebody want to win $20 000 for proving particular hypotesis on SKI calculus from Stephen Wolfram? https://writings.stephenwolfram.com/2021/06/1920-2020-and-a-20000-prize-announcing-the-s-combinator-challenge/
23:55:07 <safinaskar> ski: i think you will be especially interested (looking at your nick)
23:55:52 <ski> hm, announcing a reward tends to make me disinterested
23:59:11 <Axman6> it'd be enough to show you can define K and I in terms of S right?
23:59:14 <EvanR> this looks like son of "a new kind of science"
23:59:19 <Axman6> or to show that you can't
23:59:32 <dolio> It's pretty obvious that you can't define K.

All times are in UTC on 2022-02-07.