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.