Logs on 2021-11-10 (liberachat/#haskell)
| 00:00:17 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 00:02:30 | → | debclair joins (~debclair@157.100.93.61) |
| 00:02:51 | → | wennefer0 joins (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) |
| 00:04:31 | × | zava quits (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3) |
| 00:05:11 | <dsal> | sum should be lazy. If I only want to know a partial sum, I should be able to read part of the result. |
| 00:05:19 | <monochrom> | haha |
| 00:06:03 | → | lambdandy[m] joins (~lambdandy@2001:470:69fc:105::1:3045) |
| 00:07:18 | <dolio> | That's the sort of methodology that made containers have a major performance issue at one point. :þ |
| 00:07:22 | <Axman6> | that's just scanl (+) 0 |
| 00:08:10 | <shapr> | random question, is there already a utility that calculates a "rebuild score" from a set of cabal files? |
| 00:08:30 | <sclv> | what is a rebuild stor |
| 00:08:32 | <shapr> | I think I want a package graph |
| 00:08:44 | <sclv> | theres utils for that |
| 00:08:46 | <monochrom> | byorgey is now promoting Data.Map.Lazy again because it helps with many programming contest problems :) |
| 00:08:53 | <shapr> | sclv: any names / links? |
| 00:09:26 | × | debclair quits (~debclair@157.100.93.61) (Quit: Leaving) |
| 00:10:24 | <shapr> | I want a score that gives a higher cost to long chains of dependencies, but less to packages that can be built in parallel. |
| 00:10:36 | → | psydurr joins (~psydurr@pool-141-152-27-2.rcmdva.fios.verizon.net) |
| 00:10:45 | shapr | thinks |
| 00:10:56 | <yin> | monochrom: have you checked his game out? |
| 00:11:02 | <monochrom> | No. |
| 00:11:05 | <sclv> | you can get dotfiles directly out of ghc-pkg |
| 00:11:09 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 250 seconds) |
| 00:11:12 | <shapr> | oh I didn't know that |
| 00:11:30 | <yin> | monochrom: https://github.com/byorgey/swarm |
| 00:12:11 | <yin> | #swarm here on libera |
| 00:12:13 | <shapr> | sclv: thanks! |
| 00:12:33 | <yin> | pretty cool |
| 00:15:58 | × | wennefer0 quits (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 00:18:02 | → | wennefer0 joins (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) |
| 00:18:41 | × | wennefer0 quits (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 00:20:23 | → | hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 00:20:24 | <dsal> | Is it crazy to just be like, "I don't understand all the exceptions things so I'm going to run some code in an async and observe it" ? |
| 00:22:54 | → | zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 00:23:10 | → | wennefer0 joins (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) |
| 00:23:54 | × | wennefer0 quits (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 00:25:02 | × | acidjnk_new quits (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 00:25:24 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:25:24 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 00:25:24 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:26:19 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
| 00:26:51 | × | emf_ quits (~emf@2620:10d:c090:400::5:4199) (Read error: Connection reset by peer) |
| 00:27:02 | × | zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds) |
| 00:28:24 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:32:05 | → | emf joins (~emf@2620:10d:c090:400::5:f986) |
| 00:32:44 | × | servytor quits (uid525486@id-525486.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 00:33:19 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 00:34:21 | <monochrom> | It is not crazy to use observations to improve understanding. (Most people are crazy to do the opposite direction.) |
| 00:35:26 | <monochrom> | But it may be less helpful to do that with async. (Threads are more basic and fewer moving parts.) |
| 00:35:34 | ← | hippoid parts (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) () |
| 00:38:33 | × | psydurr quits (~psydurr@pool-141-152-27-2.rcmdva.fios.verizon.net) (Quit: Leaving) |
| 00:39:56 | <dsal> | Knowing what might be thrown and how to manage the case positively and negatively got super hard. But it's trivial with an async. |
| 00:39:59 | → | renzhi joins (~xp@2607:fa49:6500:b100::6e7f) |
| 00:46:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:46:28 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 00:48:25 | × | jkaye quits (~jkaye@2601:281:8300:7530:49b1:9f67:bcbc:61f) (Ping timeout: 250 seconds) |
| 00:50:06 | → | sprout joins (~quassel@2a02:a467:ccd6:1:5d00:eb1a:26:b28a) |
| 00:51:01 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds) |
| 00:53:26 | × | sprout_ quits (~quassel@2a02:a467:ccd6:1:e1e5:75f2:6059:4431) (Ping timeout: 245 seconds) |
| 00:56:47 | → | zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 00:59:47 | × | mmhat quits (~mmh@55d4bf19.access.ecotel.net) (Quit: WeeChat 3.3) |
| 01:01:13 | × | zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds) |
| 01:06:02 | → | lavaman joins (~lavaman@98.38.249.169) |
| 01:08:27 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:09:38 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:13:02 | × | mark__ quits (~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 01:18:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 01:22:44 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 01:26:09 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 256 seconds) |
| 01:28:02 | → | jmorris joins (uid433911@id-433911.hampstead.irccloud.com) |
| 01:30:32 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 01:39:39 | → | sugar joins (~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca) |
| 01:40:29 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 01:41:52 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 01:47:16 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:47:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 01:47:16 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:48:09 | → | zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 01:50:28 | → | ees joins (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
| 01:52:17 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds) |
| 01:52:32 | × | zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds) |
| 01:54:02 | × | lbseale quits (~lbseale@user/ep1ctetus) (Quit: Leaving) |
| 01:54:50 | → | sprout_ joins (~quassel@2a02:a467:ccd6:1:ec9d:c0:f2e1:89a6) |
| 01:57:32 | × | sprout quits (~quassel@2a02:a467:ccd6:1:5d00:eb1a:26:b28a) (Ping timeout: 240 seconds) |
| 02:01:46 | × | sugar quits (~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca) (Quit: Client closed) |
| 02:05:48 | ezzieygu1wuf | is now known as ezzieyguywuf |
| 02:08:11 | × | Inst quits (~Inst@2601:6c4:4080:3f80:c951:41b3:1b4a:c1f9) (Ping timeout: 264 seconds) |
| 02:15:14 | × | xlei quits (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Read error: Connection reset by peer) |
| 02:20:52 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 02:25:14 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 246 seconds) |
| 02:25:31 | × | ees quits (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Remote host closed the connection) |
| 02:26:49 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 02:31:21 | × | alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds) |
| 02:35:44 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection) |
| 02:35:53 | × | johnjay quits (~pi@192.142.100.50) (Ping timeout: 250 seconds) |
| 02:37:51 | → | alzgh joins (alzgh@user/alzgh) |
| 02:38:45 | → | johnjay joins (~pi@192.142.100.50) |
| 02:39:54 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 02:43:33 | × | cjb quits (~cjbayliss@user/cjb) () |
| 02:55:02 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
| 02:56:03 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 02:56:28 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:56:46 | × | xff0x quits (~xff0x@2001:1a81:536d:7000:f003:c1eb:d2a3:5377) (Ping timeout: 245 seconds) |
| 02:58:47 | → | xff0x joins (~xff0x@2001:1a81:53aa:5400:49da:2933:d5c1:bd65) |
| 03:00:32 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds) |
| 03:00:47 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 03:04:24 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:06:37 | → | sprout joins (~quassel@2a02:a467:ccd6:1:cc66:8cdf:6920:eedd) |
| 03:10:02 | × | sprout_ quits (~quassel@2a02:a467:ccd6:1:ec9d:c0:f2e1:89a6) (Ping timeout: 240 seconds) |
| 03:12:27 | → | sprout_ joins (~quassel@2a02:a467:ccd6:1:646d:b422:185d:c10e) |
| 03:14:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:16:17 | × | sprout quits (~quassel@2a02:a467:ccd6:1:cc66:8cdf:6920:eedd) (Ping timeout: 264 seconds) |
| 03:18:00 | → | jkaye joins (~jkaye@2601:281:8300:7530:c139:e489:8815:b330) |
| 03:23:02 | × | betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 240 seconds) |
| 03:29:06 | → | SeungheonOh joins (~Thunderbi@2600:1700:5168:1400:d0db:f0d9:c386:c3c1) |
| 03:29:32 | × | SeungheonOh quits (~Thunderbi@2600:1700:5168:1400:d0db:f0d9:c386:c3c1) (Client Quit) |
| 03:35:49 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:35:49 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:35:49 | finn_elija | is now known as FinnElija |
| 03:37:50 | × | alx741 quits (~alx741@181.196.68.101) (Quit: alx741) |
| 03:43:59 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
| 03:45:15 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 03:45:22 | × | AlexNoo quits (~AlexNoo@178.34.163.82) (Read error: Connection reset by peer) |
| 03:46:07 | → | AlexNoo joins (~AlexNoo@178.34.163.82) |
| 03:48:06 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 03:48:07 | × | jkaye quits (~jkaye@2601:281:8300:7530:c139:e489:8815:b330) (Ping timeout: 268 seconds) |
| 03:49:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 03:51:26 | × | jlamothe_ quits (~jlamothe@198.251.61.229) (Quit: leaving) |
| 03:51:59 | → | flukiluke joins (~m-7humut@plum.alephc.xyz) |
| 03:52:35 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds) |
| 03:59:11 | × | alzgh quits (alzgh@user/alzgh) (Ping timeout: 256 seconds) |
| 04:00:54 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 04:04:17 | × | renzhi quits (~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 246 seconds) |
| 04:04:37 | → | alzgh joins (~alzgh@user/alzgh) |
| 04:05:35 | × | jinsun quits (~quassel@user/jinsun) (Read error: Connection reset by peer) |
| 04:08:26 | → | jlamothe joins (~jlamothe@198.251.61.229) |
| 04:11:57 | → | jinsun joins (~quassel@user/jinsun) |
| 04:13:20 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 04:15:29 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 04:19:48 | → | mbuf joins (~Shakthi@122.174.254.232) |
| 04:23:24 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 04:23:32 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 240 seconds) |
| 04:26:21 | × | retroid_ quits (~retro@2e41e9c8.skybroadband.com) (Ping timeout: 268 seconds) |
| 04:27:32 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds) |
| 04:28:26 | × | waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
| 04:29:34 | → | retroid_ joins (~retro@2e41e9c8.skybroadband.com) |
| 04:30:02 | × | cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1)) |
| 04:32:24 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 04:42:16 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 04:55:07 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 04:58:38 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 05:00:11 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 05:03:03 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 05:03:29 | → | zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 05:07:32 | × | zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds) |
| 05:09:44 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 05:09:45 | → | sprout joins (~quassel@2a02:a467:ccd6:1:315a:c7df:cdab:4da8) |
| 05:12:45 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 05:13:11 | × | sprout_ quits (~quassel@2a02:a467:ccd6:1:646d:b422:185d:c10e) (Ping timeout: 250 seconds) |
| 05:15:39 | × | falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 256 seconds) |
| 05:21:02 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 05:27:08 | × | x_kuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 05:27:38 | × | monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER) |
| 05:30:05 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds) |
| 05:36:11 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 05:37:31 | → | zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 05:42:17 | × | zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds) |
| 05:43:49 | → | monochrom joins (trebla@216.138.220.146) |
| 05:44:06 | → | rkrishnan joins (~user@122.167.19.65) |
| 05:45:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:45:23 | → | boxscape_ joins (~boxscape_@mue-88-130-59-079.dsl.tropolys.de) |
| 05:53:35 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 06:01:17 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 264 seconds) |
| 06:05:06 | × | emf quits (~emf@2620:10d:c090:400::5:f986) (Ping timeout: 245 seconds) |
| 06:06:41 | → | aliosablack joins (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) |
| 06:06:53 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 06:08:49 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 06:13:55 | × | CannabisIndica quits (~herb@user/mesaboogie) (Quit: ZNC - https://znc.in) |
| 06:14:02 | × | hiruji quits (~hiruji@user/hiruji) (Ping timeout: 240 seconds) |
| 06:15:53 | × | ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Quit: Client limit exceeded: 20000) |
| 06:17:17 | → | CannabisIndica joins (~herb@user/mesaboogie) |
| 06:19:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 06:20:51 | → | mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 06:24:04 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:28:32 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 06:33:02 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds) |
| 06:34:32 | → | hiruji joins (~hiruji@user/hiruji) |
| 06:38:07 | × | mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds) |
| 06:39:03 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:44:05 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 06:44:39 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 06:47:46 | → | img joins (~img@user/img) |
| 06:52:34 | × | Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:52:43 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 06:59:26 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 07:05:06 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 07:07:31 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 07:09:06 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:09:46 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds) |
| 07:10:05 | → | sprout_ joins (~quassel@2a02:a467:ccd6:1:3471:ef4b:ebc8:3b49) |
| 07:13:39 | × | sprout quits (~quassel@2a02:a467:ccd6:1:315a:c7df:cdab:4da8) (Ping timeout: 250 seconds) |
| 07:17:33 | → | mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 07:24:49 | → | noddy joins (~user@user/noddy) |
| 07:27:01 | → | mmhat joins (~mmh@55d4b224.access.ecotel.net) |
| 07:38:34 | × | mmhat quits (~mmh@55d4b224.access.ecotel.net) (Quit: WeeChat 3.3) |
| 07:40:28 | → | zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 07:43:23 | → | vysn joins (~vysn@user/vysn) |
| 07:44:37 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 07:44:47 | × | zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 246 seconds) |
| 07:45:19 | → | Inst joins (~Inst@2601:6c4:4080:3f80:75c6:91f1:4f95:975b) |
| 07:47:31 | × | drdo quits (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds)) |
| 07:47:36 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection) |
| 07:47:50 | → | drdo joins (~drdo@roach0.drdo.eu) |
| 07:50:17 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 07:51:04 | → | bairyn joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 07:51:32 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds) |
| 07:53:06 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:54fc:9972:155c:27b0) |
| 07:56:44 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection) |
| 07:56:46 | × | Inst quits (~Inst@2601:6c4:4080:3f80:75c6:91f1:4f95:975b) (Ping timeout: 245 seconds) |
| 07:57:06 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 07:57:38 | → | markusde joins (~makrus@2604:3d08:6f80:6b00::9610) |
| 07:57:51 | → | lavaman joins (~lavaman@98.38.249.169) |
| 08:00:54 | → | vshabanov joins (~vshabanov@85.203.46.25) |
| 08:02:22 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
| 08:10:29 | <markusde> | Yo- looking to start contributing to some oss projects. Anyone know of any that are newbie friendly and need help? |
| 08:10:30 | → | ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a) |
| 08:14:09 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds) |
| 08:14:39 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
| 08:15:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:15:54 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 260 seconds) |
| 08:20:51 | → | robosexual joins (~spaceoyst@88.85.216.62) |
| 08:22:22 | <[exa]> | markusde: hard to tell. do you have any specific project you want to improve? |
| 08:22:30 | → | ubert joins (~Thunderbi@p200300ecdf4fca6ff42c1e431d1c483e.dip0.t-ipconnect.de) |
| 08:23:22 | <[exa]> | generally, most OSS is friendly and will happily accept PRs that make sense, the usual advice is to do something _you_ are interested in/need to have working |
| 08:24:43 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 08:24:56 | <markusde> | exa: ic ic. I'l just troll around github then |
| 08:25:13 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:25:42 | <[exa]> | like, if all OSS works just right for you, there's no reason to code more, right? :] |
| 08:27:28 | × | ubert quits (~Thunderbi@p200300ecdf4fca6ff42c1e431d1c483e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 08:27:32 | <markusde> | exa: lmao |
| 08:27:47 | <[exa]> | anyway if you just need practice, there's afaik no library for regexes that has a good machine-buildable&representable immediate representation of the regexes... :] |
| 08:27:49 | → | ubert joins (~Thunderbi@p548c9652.dip0.t-ipconnect.de) |
| 08:28:01 | <[exa]> | s/representable/analyzable/ |
| 08:31:43 | × | boxscape_ quits (~boxscape_@mue-88-130-59-079.dsl.tropolys.de) (Quit: Connection closed) |
| 08:34:07 | <tomsmeding> | that sounds like something you might personally like [exa] :p |
| 08:35:19 | <[exa]> | yes. |
| 08:35:54 | <tomsmeding> | does it need to be fast? how expressive the regexen? |
| 08:36:09 | <[exa]> | I basically want to build a lexer online |
| 08:36:40 | <[exa]> | so basically taking tiny pieces of regexes, connecting them into a larger DFA, triggering actions when some state gets reached |
| 08:37:09 | <tomsmeding> | online as in online algorithm, not as in web-based? |
| 08:37:17 | × | xff0x quits (~xff0x@2001:1a81:53aa:5400:49da:2933:d5c1:bd65) (Ping timeout: 264 seconds) |
| 08:37:25 | <[exa]> | online as "the lexing specification is the input of the user" |
| 08:37:32 | <tomsmeding> | right |
| 08:37:51 | <tomsmeding> | sounds hard to get fast due to the dynamic nature |
| 08:37:52 | → | michalz joins (~michalz@185.246.204.33) |
| 08:37:58 | → | xff0x joins (~xff0x@2001:1a81:53aa:5400:2665:d30f:dc60:ace5) |
| 08:38:37 | <[exa]> | I might have talked about that here already |
| 08:38:44 | → | chele joins (~chele@user/chele) |
| 08:38:55 | → | kuribas joins (~user@188.189.234.163) |
| 08:38:59 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 08:39:50 | <[exa]> | basically I want something that can cut programs into labeled whitespace and non-whitespace tokens; the meaning of whitespace depends on context (e.g. in C, ' ' in a string is not a whitespace, and comments tokenize differently than the text around) |
| 08:40:34 | <[exa]> | and well you know, languages are infinite so having the user supply the language spec themselves saves me a lot of stress :D |
| 08:40:39 | <tomsmeding> | for C specifically, the better solution would be to statically write a state machine |
| 08:40:47 | <tomsmeding> | right |
| 08:41:12 | <tomsmeding> | you have indeed talked about this before |
| 08:41:33 | <[exa]> | yap, still no time to actually push it :D |
| 08:41:44 | <tomsmeding> | https://ircbrowse.tomsmeding.com/day/haskell/2020/12/30?id=226295#trid226295 |
| 08:41:51 | tomsmeding | used search superpowers |
| 08:42:00 | <tomsmeding> | aka SELECT |
| 08:43:03 | <[exa]> | oh what a nice tool, people can just grab random good ideas from #haskell now and start businesses around them. :D |
| 08:43:10 | <[exa]> | ^ wishful thinking |
| 08:43:12 | <tomsmeding> | ircbrowse really needs search |
| 08:43:32 | <[exa]> | throw it into elasticsearch |
| 08:43:39 | <tomsmeding> | no |
| 08:43:45 | <[exa]> | y no |
| 08:43:48 | <tomsmeding> | I already have one annoying to install dep, postgres |
| 08:43:55 | <tomsmeding> | original ircbrowse used sphinx |
| 08:44:01 | <tomsmeding> | haven't bothered to install that yet |
| 08:44:26 | <tomsmeding> | I've done some work to try to eliminate the postgres dep but ended up in the weeds |
| 08:44:26 | <[exa]> | in postgres there are pretty good text search things |
| 08:44:59 | <tomsmeding> | better than LIKE '%regex%' ? |
| 08:45:16 | <[exa]> | yeah, literal fulltext search with inverted indexes |
| 08:45:23 | <tomsmeding> | ö |
| 08:45:23 | <[exa]> | don't even start with LIKE :D |
| 08:45:55 | <tomsmeding> | yeah because LIKE is nice for one-off searching like I just did but is a performance nightmare |
| 08:46:05 | <[exa]> | basically add a table like (postID int, author text, message tsvector, msgcontext tsvector ) |
| 08:46:25 | <[exa]> | to context you add a bit of messages from the environs, you can even weight them |
| 08:47:04 | <[exa]> | and then there's some operator (iirc @@) that allows you to efficiently match the table rows using a googlish text query in tsvector |
| 08:47:09 | × | markusde quits (~makrus@2604:3d08:6f80:6b00::9610) (Quit: Leaving) |
| 08:47:27 | <[exa]> | unfortunately markusde just left, this would be a nice OSS project.. :D |
| 08:47:33 | <tomsmeding> | :p |
| 08:47:50 | <tomsmeding> | fancy, noting down; currently swamped in work but that may change at some point ever maybe |
| 08:48:10 | → | gaff joins (~gaff@49.207.214.48) |
| 08:48:19 | <[exa]> | https://www.postgresql.org/docs/9.5/textsearch-tables.html |
| 08:48:26 | × | gaff quits (~gaff@49.207.214.48) (Client Quit) |
| 08:48:39 | → | zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 08:48:43 | → | zava joins (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
| 08:48:45 | → | acidjnk_new joins (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) |
| 08:48:45 | <[exa]> | if you're not into details such as correct stemming, it's literally just about adding a few columns |
| 08:49:03 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 268 seconds) |
| 08:50:04 | × | kuribas quits (~user@188.189.234.163) (Read error: Connection reset by peer) |
| 08:50:06 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 08:50:13 | <[exa]> | postgres = underrated |
| 08:50:36 | <tomsmeding> | that particular point I was already aware of |
| 08:51:37 | → | kuribas joins (~user@188.189.234.163) |
| 08:53:10 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:53:14 | × | zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 260 seconds) |
| 08:55:10 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:55:18 | → | kuribas` joins (~user@188.188.45.223) |
| 08:55:54 | → | mei3 joins (~mei@user/mei) |
| 08:56:53 | × | kuribas quits (~user@188.189.234.163) (Ping timeout: 246 seconds) |
| 09:00:00 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 09:02:38 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 09:04:49 | × | vshabanov quits (~vshabanov@85.203.46.25) (Quit: Client closed) |
| 09:06:20 | × | x6C697370 quits (~michael@2600:1700:7c02:3180::49) (Ping timeout: 246 seconds) |
| 09:09:26 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:10:35 | × | c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 264 seconds) |
| 09:11:25 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 09:12:21 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:12:35 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Remote host closed the connection) |
| 09:12:53 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 09:15:51 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds) |
| 09:17:33 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 09:17:33 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 09:17:36 | allbery_b | is now known as geekosaur |
| 09:17:46 | × | kuribas` quits (~user@188.188.45.223) (Quit: ERC (IRC client for Emacs 26.3)) |
| 09:24:05 | → | zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 09:27:31 | → | Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
| 09:28:48 | <Profpatsch> | I’m trying to fullfill the requirements for https://hackage.haskell.org/package/servant-conduit-0.15.1/docs/Servant-Conduit.html#t:ConduitToSourceIO in my Monad m |
| 09:28:53 | × | zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds) |
| 09:28:57 | → | CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 09:29:03 | <Profpatsch> | Namely m ~ IO => ConduitToSourceIO (ResourceT m) |
| 09:29:10 | <tomsmeding> | [exa]: would something like this work for your purpose, or am I misunderstanding? https://paste.tomsmeding.com/Hx3MUFXv (not saying I'm going to build this any time soon, was just procrastinating) |
| 09:29:13 | <Profpatsch> | My m is in (MonadIO m) |
| 09:29:21 | <Profpatsch> | Can I somehow make the m ~ IO work for it? |
| 09:29:31 | <Profpatsch> | Maybe with some fancy lifting? |
| 09:29:48 | <tomsmeding> | Profpatsch: no, you'll never get m ~ IO from just MonadIO m |
| 09:29:56 | <Profpatsch> | I would say I’m a pretty good Haskeller, but monad-transformer shenanigans always make me cry very hard |
| 09:30:26 | <tomsmeding> | usually when people require hard IO instead of just MonadIO, they do some fancy exception handling where they can't tolerate other, unknown monads getting in the way |
| 09:30:29 | <Profpatsch> | tomsmeding: I don’t know how this is supposed to work then; Do I have to just propagate (MonadResource m) out of my function? |
| 09:30:41 | <dminuoso> | Profpatsch: this is why I generally follow the RIO pattern (without actually using RIO) |
| 09:30:49 | <dminuoso> | So I can always unlift back to IO |
| 09:30:53 | <Profpatsch> | I had an error where it hard-required (MonadResource IO) |
| 09:31:06 | <Profpatsch> | But that might have been a type sig that was too specific |
| 09:31:13 | <tomsmeding> | where did that constraint come from? |
| 09:31:16 | <tomsmeding> | not from this class |
| 09:31:37 | <dminuoso> | 10:29:48 tomsmeding | Profpatsch: no, you'll never get m ~ IO from just MonadIO m |
| 09:31:48 | <dminuoso> | I think I must misunderstand what you're saying here, tomsmeding. |
| 09:32:02 | <dminuoso> | If something is polymorphic over m with a MonadIO m constraint, surely I can simply pick m ~ IO? |
| 09:32:11 | × | andjjj23 quits (~irc@107.170.228.47) (Ping timeout: 264 seconds) |
| 09:32:14 | <tomsmeding> | if you have control over the choice of m, yes |
| 09:32:16 | <Profpatsch> | tomsmeding: That’s usually my question, where do contraints come from :) GHC is really bad at telling you without a lot of poking |
| 09:32:24 | <tomsmeding> | if you don't and only know that MonadIO m holds, then tough luck |
| 09:32:35 | <dminuoso> | Profpatsch: Type error slices would be really wonderful to have. |
| 09:32:36 | × | mmaruseacph2 quits (~mihai@198.199.100.72) (Ping timeout: 245 seconds) |
| 09:32:46 | <tomsmeding> | classic caller/consumer duality :) |
| 09:33:07 | <dminuoso> | Imagine if GHC could generate type error slices, transport these via LSP and have a specialized visualization in haskell-lsp in emacs. |
| 09:33:19 | <dminuoso> | Perhaps with some ergonomics to chase/follow inference |
| 09:33:42 | <Profpatsch> | tomsmeding: So basically I want to return a (MonadIO m, MonadError ServantError m) => m (SourceIO returnType) from my servant handler, so that it can stream the result |
| 09:33:45 | <tomsmeding> | gut feeling says Helium should have some of the required machinery for such a thing (not necessarily all) |
| 09:33:59 | <Profpatsch> | But unfortunately Servant documentation is horrible, so I’m dumbfounded at how to do that when it requires a hard IO |
| 09:34:04 | → | mmhat joins (~mmh@55d4b224.access.ecotel.net) |
| 09:34:28 | <Profpatsch> | My intuition is that in order to do correct resource handling, I have to pass the ResourceT in somehow |
| 09:34:32 | <tomsmeding> | SourceIO itself is already a monad |
| 09:35:05 | <tomsmeding> | are you sure (I don't know either, just guessing) that you don't want something like 'SourceT m returnType' instead? |
| 09:35:18 | <Profpatsch> | tomsmeding: Ohhh, hmmm |
| 09:35:20 | <Profpatsch> | let me try |
| 09:36:45 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection) |
| 09:36:51 | <Profpatsch> | I’m very close to throwing out all of servant and starting over with a good web framework tbh |
| 09:37:24 | <Profpatsch> | tomsmeding: I don’t think it’s so easily possible, the documentation in https://hackage.haskell.org/package/servant-0.18/docs/Servant-API.html#t:SourceIO says |
| 09:37:30 | <Profpatsch> | > Stream endpoints may be implemented as producing a SourceIO chunk. |
| 09:37:32 | <lambdabot> | <hint>:1:67: error: |
| 09:37:32 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
| 09:37:37 | → | zincy joins (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
| 09:37:41 | <tomsmeding> | poor lambdabot |
| 09:37:56 | <tomsmeding> | but yeah I don't know either :p |
| 09:38:04 | <Profpatsch> | who uses a blockquote character for eval anyway :) |
| 09:38:12 | <tomsmeding> | just saying that 'm (SourceIO r)' looks weird to me if SourceIO is already a monad |
| 09:38:22 | <Profpatsch> | yeah, same |
| 09:38:29 | <tomsmeding> | not impossible, just weird |
| 09:38:31 | <Profpatsch> | But the type is kinda forced by the Servant typelevel bullshit |
| 09:38:52 | <zincy> | How best would you "go back in time" for a hashmap. I was thinking [(UtcTime Map]) is there something better? |
| 09:38:54 | <Profpatsch> | Plus the bad decision to try and abstract over pipe libraries instead of just requiring one pipe lib |
| 09:38:57 | <zincy> | tuple that is |
| 09:39:03 | <dminuoso> | zincy: What does "go back in time" mean? |
| 09:39:17 | <dminuoso> | And what is `UtcTime Map` supposed to denote? |
| 09:39:21 | <zincy> | Have a record of changes associated to timestamps |
| 09:39:32 | <zincy> | So going back in time would mean iteration |
| 09:39:50 | <dminuoso> | Without knowing way more context, this is going to be difficult to answer. |
| 09:40:37 | → | jzsinatra joins (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) |
| 09:40:50 | <zincy> | Say you have a todo list represented by newtype TodoList = TodoList (Map TodoId Todo) |
| 09:41:17 | <zincy> | I can do CRUD on my todo list which is simple. |
| 09:41:27 | <dminuoso> | zincy: First question is, do you just want to maintain a linear history, or some tree history? |
| 09:41:36 | <zincy> | Ooh good question |
| 09:41:54 | <zincy> | Tree history sounds fun |
| 09:42:50 | <tomsmeding> | tree history is only relevant if you want to undo, then apply changes again, then undo once more and go back into your original branch |
| 09:43:12 | <dminuoso> | Side note, tree-mode in emacs is absolutely amazing. |
| 09:43:22 | <tomsmeding> | tree undo in text editors is amazing |
| 09:43:23 | <dminuoso> | Linear history for a code editor is frustratingly limiting |
| 09:43:31 | <tomsmeding> | in a todo app it feels quite overpowered :p |
| 09:43:38 | × | fluxit quits (~fluxit@techsmix.net) (Quit: Bye!) |
| 09:43:39 | <dminuoso> | Yes, no, perhaps. |
| 09:44:06 | <dminuoso> | tomsmeding: What can I say, tree-mode + org-mode gives me *both* |
| 09:44:16 | <dminuoso> | sorry *tree undo + org-mode |
| 09:44:27 | <tomsmeding> | tree-org |
| 09:45:06 | <dminuoso> | Btw, I recently did the mistake of looking at the.. original "specification" of markdown |
| 09:45:11 | <dminuoso> | Wow, what a huge mistake. |
| 09:45:34 | <dminuoso> | I assumed to find some document with a formal bnf grammar and some clean semantics. |
| 09:45:45 | <tomsmeding> | you assumed wrong |
| 09:45:53 | <dminuoso> | Heh yeah. |
| 09:45:57 | <tomsmeding> | wasn't it a perl script |
| 09:46:09 | <yushyin> | markdown is just a bad format through and through |
| 09:46:14 | <tomsmeding> | like, originally |
| 09:46:29 | <dminuoso> | It doesnt even have semantics, it just presents a bunch of *examples* and then shows how it renders. I managed to trigger a dozen undesirable side effects in the reference implementation |
| 09:46:31 | <tomsmeding> | markdown is an amazing format because it works for a lot of people in a lot of contexts |
| 09:46:33 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 09:46:35 | <dminuoso> | yushyin: Its not even a format. |
| 09:46:36 | <tomsmeding> | the lack of standardisation is annoying though |
| 09:46:38 | <dminuoso> | It's just.. something. |
| 09:47:03 | <dminuoso> | The reference implementation is just some quickly written adhoc nonsense that misbehaves in so many bizarre ways |
| 09:47:13 | <dminuoso> | It's not even wrong. |
| 09:47:16 | <tomsmeding> | I format my personal notes in markdown even if I'm not actually pulling it through a renderer |
| 09:47:38 | × | yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 268 seconds) |
| 09:47:42 | <tomsmeding> | and the non-definedness of the format makes that possible :D |
| 09:48:03 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 09:48:05 | <zincy> | Oh thanks I will try tree mode in emacs! |
| 09:48:08 | <Profpatsch> | Oh god there is an example https://github.com/haskell-servant/servant/blob/master/servant-conduit/example/Main.hs |
| 09:48:14 | <Profpatsch> | Why isn’t this mentioned anywhere in the docs |
| 09:48:16 | <dminuoso> | zincy: https://www.emacswiki.org/emacs/UndoTree |
| 09:48:22 | <Profpatsch> | why isn’t it *in* the docs |
| 09:48:34 | <zincy> | Yeah lets go for linear history |
| 09:48:34 | <dminuoso> | It's really amazing. :) |
| 09:48:37 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:48:37 | <tomsmeding> | but yeah </trolling>, the ill-definedness is annoying and I'm consistently annoyed by the indentation requirements for lists as well |
| 09:48:40 | <zincy> | Its a todo app :D |
| 09:49:17 | <dminuoso> | zincy: As a starter you can simply maintain some [TodoList] |
| 09:49:29 | <dminuoso> | And each modification just prepends a new TodoList to that. |
| 09:49:42 | <zincy> | Thanks! |
| 09:49:54 | <dminuoso> | The main difficulty will consist in keeping enough state around to bring your editor into a sensible state when you go back |
| 09:50:01 | <dminuoso> | that is if you undo or redo |
| 09:50:15 | <zincy> | yeah |
| 09:53:49 | → | yahb joins (xsbot@user/mniip/bot/yahb) |
| 09:56:45 | <Profpatsch> | tomsmeding: even the example just has all handlers in IO |
| 09:57:14 | <Profpatsch> | So idk how to do any of that. I can’t add it to my servant routes that way |
| 09:57:34 | <Profpatsch> | Maybe I can implement an orphan instance that is in MonadIO somehow |
| 09:57:43 | <Profpatsch> | Or I have to do MonadUnliftIO stuff |
| 09:59:14 | <int-e> | does this count as a todo app? https://paste.debian.net/1218951/ |
| 10:00:55 | <zincy> | int-e: haha |
| 10:01:08 | <zincy> | Todo lists all the way down |
| 10:01:51 | × | zava quits (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3) |
| 10:04:00 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:06:53 | → | hololeap joins (~hololeap@user/hololeap) |
| 10:07:11 | × | eruditass quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 10:09:12 | × | pop3 quits (~pop3@user/pop3) (Remote host closed the connection) |
| 10:10:43 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:11:02 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 10:11:12 | <Profpatsch> | tomsmeding: Uh, when I try to create an orphan instacnce instance MonadIO m => Servant.Conduit.ConduitToSourceIO (ResourceT m) where |
| 10:11:23 | <Profpatsch> | GHC complains that it already exists, and points to the m ~ IO => instance |
| 10:11:33 | → | c_wraith joins (~c_wraith@adjoint.us) |
| 10:11:44 | <tomsmeding> | yeah, that instance is basically saying that you can't do what you want |
| 10:12:26 | <tomsmeding> | writing 'instance m ~ X => Class m where' means that whenever GHC sees "Class m", it's going to use this instance, and then discover that m ~ X |
| 10:12:47 | <tomsmeding> | as opposed to 'instance Class X where', where the instance only gets chosen if it is already known that m ~ X |
| 10:13:09 | <Profpatsch> | hrm |
| 10:13:13 | → | fluxit joins (~fluxit@techsmix.net) |
| 10:13:20 | tomsmeding | knows nothing about servant |
| 10:13:26 | → | mmaruseacph2 joins (~mihai@198.199.100.72) |
| 10:13:36 | <Profpatsch> | I assume it has something to do with how ResourceT wants to free resources? |
| 10:13:56 | <Profpatsch> | But I don’t understand why I can’t put a ResourceT in my m and then have it handle it for me |
| 10:13:59 | <tomsmeding> | yeah finalizers are fundamentally incompatible with arbitrary monad transformers |
| 10:14:13 | <tomsmeding> | like, what if the user layers an except monad on top? then finalizers might never get run |
| 10:14:41 | <tomsmeding> | or hm, this depends on in which order you compose the transformers exactly |
| 10:15:34 | <tomsmeding> | I don't know :D |
| 10:15:38 | <Profpatsch> | tomsmeding: But ResourceT in particular is in MonadUnliftIO http://localhost:9090/file/nix/store/1an4ayakan989gr05h0qf65w3zzs4q61-conduit-1.3.4.1-doc/share/doc/conduit-1.3.4.1/html/Conduit.html#t:MonadUnliftIO |
| 10:15:47 | <Profpatsch> | So that points to it maybe being possible just not done yet? |
| 10:15:58 | <Profpatsch> | Now if there were only comments somewhere that described the restriction |
| 10:16:18 | <Profpatsch> | I feel like this is all accidental complexity |
| 10:18:07 | <[exa]> | tomsmeding: I got caught in the meeting but yes, that's it |
| 10:18:17 | <merijn> | tomsmeding: ResourceT works by forcing everything into, effectively, a giant "with" bracket |
| 10:19:09 | <[exa]> | tomsmeding: on top of that something like `Map LexState [(regexlike, LexState)]` for making actual DFA out of that |
| 10:20:08 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 10:20:20 | → | nschoe joins (~quassel@2a01:e0a:8e:a190:5cf1:3cc3:9b0b:354b) |
| 10:21:51 | → | hololeap joins (~hololeap@user/hololeap) |
| 10:24:47 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 10:25:56 | → | __monty__ joins (~toonn@user/toonn) |
| 10:29:07 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 10:31:11 | → | andjjj23 joins (~irc@107.170.228.47) |
| 10:32:31 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 10:33:02 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 240 seconds) |
| 10:34:25 | <[exa]> | tomsmeding: anyway, if this is slow then at very worst I can literally compile it to flex using this representation. :D |
| 10:34:49 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 10:37:16 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) |
| 10:39:47 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 10:41:32 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 246 seconds) |
| 10:42:37 | × | bairyn quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds) |
| 10:44:58 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 10:58:13 | → | DNH joins (~DNH@2a09:bac0:48::82b:7a35) |
| 10:59:26 | × | mei3 quits (~mei@user/mei) (Read error: Connection reset by peer) |
| 11:00:21 | → | kadir joins (~kadir@78.178.105.36) |
| 11:00:52 | → | alx741 joins (~alx741@181.196.68.101) |
| 11:07:13 | × | mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: No Ping reply in 180 seconds.) |
| 11:08:34 | → | mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
| 11:16:17 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 11:20:39 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 11:24:07 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 11:27:23 | → | Neuromancer joins (~Neuromanc@user/neuromancer) |
| 11:28:53 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds) |
| 11:34:24 | ← | mbuf parts (~Shakthi@122.174.254.232) (Leaving) |
| 11:36:02 | × | CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 11:40:45 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 11:41:46 | <mcgroin> | can we use coerce on a function and turn it into another function accepting the coerced parameters? |
| 11:44:58 | <amesgen[m]> | mcgroin: Yes, thats e.g. how deriving via is implemented. |
| 11:45:00 | <merijn> | mcgroin: Yes |
| 11:45:29 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 11:45:54 | <mcgroin> | great |
| 11:46:13 | <tomsmeding> | [exa]: ah so you actually want Automaton to be non-opaque |
| 11:46:33 | <tomsmeding> | (sorry meetings) |
| 11:51:47 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 11:56:36 | × | jmorris quits (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:57:46 | × | DNH quits (~DNH@2a09:bac0:48::82b:7a35) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 11:58:24 | × | bliminse quits (~bliminse@host86-185-253-43.range86-185.btcentralplus.com) (Quit: leaving) |
| 11:59:39 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:59:54 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 260 seconds) |
| 12:01:11 | × | hololeap quits (~hololeap@user/hololeap) (Read error: Connection reset by peer) |
| 12:02:41 | → | hololeap joins (~hololeap@user/hololeap) |
| 12:03:45 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 12:04:02 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 12:08:33 | → | bliminse joins (~bliminse@host86-185-253-43.range86-185.btcentralplus.com) |
| 12:22:12 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 12:25:01 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 12:25:46 | <maerwald> | is there a solution to use `cabal build`, but then install binaries and libraries in a way that makes it work (if `-dynamic` is used)? |
| 12:30:25 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 12:31:40 | × | Cajun quits (~Cajun@user/cajun) (Quit: Client closed) |
| 12:31:46 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 12:31:56 | → | neurocyte0132889 joins (~neurocyte@94.46.71.199) |
| 12:31:56 | × | neurocyte0132889 quits (~neurocyte@94.46.71.199) (Changing host) |
| 12:31:56 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 12:32:19 | → | jmorris joins (uid433911@id-433911.hampstead.irccloud.com) |
| 12:35:48 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 12:36:18 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 12:39:51 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) |
| 12:40:44 | × | awpr quits (uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 12:43:10 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:44:02 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 240 seconds) |
| 12:45:01 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 12:47:53 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 246 seconds) |
| 12:50:04 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 12:50:53 | → | gehmehgeh_ joins (~user@user/gehmehgeh) |
| 12:53:47 | → | mark__ joins (~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de) |
| 12:54:22 | → | neurocyte0132889 joins (~neurocyte@94.46.71.199) |
| 12:54:22 | × | neurocyte0132889 quits (~neurocyte@94.46.71.199) (Changing host) |
| 12:54:22 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 12:54:48 | × | gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
| 12:59:08 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
| 12:59:11 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 12:59:25 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 268 seconds) |
| 12:59:33 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 13:00:01 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:02:14 | × | max22- quits (~maxime@2a01cb0883359800c49e7f6f9540e9e4.ipv6.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
| 13:02:34 | → | ubert1 joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
| 13:03:38 | → | DNH joins (~DNH@8.43.122.53) |
| 13:08:02 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 13:08:58 | → | boxscape_ joins (~boxscape_@134.171.69.87) |
| 13:11:29 | <boxscape_> | gratuitous syntax extension idea #27: Use !<class> to introduce a new variable whose type must be an instance of that class. e.g. `5 :: !Num` or `pure :: a -> !Applicative a` |
| 13:13:53 | → | CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 13:15:17 | <robosexual> | so it's basically `anonymous` constrained type variables. since `pure :: a -> !Applicative a` <=> `pure :: Applicative _f => a -> _f a` where `_f` can be reffered only once |
| 13:15:38 | <boxscape_> | right |
| 13:16:15 | <robosexual> | might make some stuff a bit more readable for sure |
| 13:18:42 | <robosexual> | there is a lot of functiouns with signature as such `some :: (Monad m) => A -> B -> m C` which could be just `some :: A -> B -> !Monad C` |
| 13:19:03 | <boxscape_> | yeah |
| 13:19:24 | <robosexual> | nice:) |
| 13:19:44 | <boxscape_> | alas, probably not actually worth an extension |
| 13:21:44 | <robosexual> | ideas shall be spoken:) |
| 13:22:20 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
| 13:22:25 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds) |
| 13:23:13 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 13:23:26 | × | MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Ping timeout: 260 seconds) |
| 13:24:21 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 13:24:55 | → | MidAutumnMoon joins (~MidAutumn@user/midautumnmoon) |
| 13:27:36 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 245 seconds) |
| 13:31:51 | → | enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
| 13:31:52 | → | chele_ joins (~chele@user/chele) |
| 13:33:45 | × | chele quits (~chele@user/chele) (Ping timeout: 256 seconds) |
| 13:44:35 | × | aliosablack quits (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) (Ping timeout: 246 seconds) |
| 13:44:39 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 13:45:37 | → | chomwitt joins (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) |
| 13:47:03 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 13:47:42 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 260 seconds) |
| 13:47:59 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 13:52:55 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 13:55:11 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 13:55:25 | → | servytor joins (uid525486@id-525486.hampstead.irccloud.com) |
| 13:55:31 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 245 seconds) |
| 13:56:10 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 13:57:32 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 240 seconds) |
| 13:59:49 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 14:01:02 | × | rkrishnan quits (~user@122.167.19.65) (Ping timeout: 240 seconds) |
| 14:01:25 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 14:04:41 | <adamCS> | My hls setup (emacs, mac os) often tries to make such a long and not-useful completion list that it gets in the way much more than it helps. Anyone know how to configure anything about that or where to look to figure it out? I haven't found a lot of documentation of the options I can configure. |
| 14:08:32 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds) |
| 14:12:57 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 14:13:25 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 14:13:29 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 14:14:26 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 14:18:07 | justCity | is now known as justache |
| 14:18:21 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds) |
| 14:19:14 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 14:22:18 | tomku|two | is now known as tomku |
| 14:29:31 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 14:33:32 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 240 seconds) |
| 14:35:24 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 14:39:13 | <cigsender> | adamCS: you might get a faster reply on #haskell-language-server :) |
| 14:39:41 | <adamCS> | cigsender: yep. I'll try that...Thanks! |
| 14:39:45 | <tomsmeding> | adamCS: what editor? |
| 14:40:19 | <tomsmeding> | there have been result ordering issues with HLS, that have been fixed with a PR _today_, so not in any released version yet -- but whether you're hit by this depends on your editor |
| 14:40:47 | <geekosaur> | "My hls setup (emacs, mac os)" |
| 14:40:54 | <adamCS> | tomsmeding: emacs. I think my issue might be company rather than hls? |
| 14:41:20 | <tomsmeding> | adamCS: see https://github.com/haskell/haskell-language-server/issues/2291#issuecomment-949477646 and https://github.com/haskell/haskell-language-server/issues/2291 |
| 14:41:31 | <tomsmeding> | is it possible that the problem is simply result _ordering_? If so, probably this |
| 14:41:48 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) |
| 14:42:37 | <adamCS> | I'm trying to simplify the company setup. Half the problem was having number completions on and a bunch of my variables have numbers in the names and so things often went...haywire. But also, emacs would hang when gathering the list (I think) and then the list wouldn't make sense. That last bit might be ordering. |
| 14:45:56 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 245 seconds) |
| 14:46:12 | × | nschoe quits (~quassel@2a01:e0a:8e:a190:5cf1:3cc3:9b0b:354b) (Remote host closed the connection) |
| 14:47:24 | → | nschoe joins (~quassel@2a01:e0a:8e:a190:b8f5:7f5:bf66:e7c) |
| 14:47:35 | × | gentauro_ quits (~gentauro@185.107.12.141) (Changing host) |
| 14:47:35 | → | gentauro_ joins (~gentauro@user/gentauro) |
| 14:47:53 | → | max22- joins (~maxime@2a01cb0883359800a8cb049c70e9b71a.ipv6.abo.wanadoo.fr) |
| 14:48:31 | × | gentauro_ quits (~gentauro@user/gentauro) (Quit: leaving) |
| 14:48:45 | → | gentauro joins (~gentauro@user/gentauro) |
| 14:48:47 | → | jkaye joins (~jkaye@2601:281:8300:7530:212b:79de:3c7b:f9e0) |
| 14:49:17 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 14:50:02 | × | mark__ quits (~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 14:50:23 | → | xkuru joins (~xkuru@user/xkuru) |
| 14:52:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 14:53:43 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 14:54:49 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:54:49 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 14:54:49 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:56:04 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 14:59:27 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 15:00:47 | × | adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (Ping timeout: 250 seconds) |
| 15:01:10 | → | alzgh joins (~alzgh@user/alzgh) |
| 15:02:41 | × | gehmehgeh_ quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 15:02:47 | → | zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 15:03:25 | → | gehmehgeh_ joins (~user@user/gehmehgeh) |
| 15:04:41 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds) |
| 15:05:24 | → | k` joins (~user@152.1.137.158) |
| 15:05:33 | → | adamCS joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) |
| 15:06:09 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 15:06:23 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds) |
| 15:06:54 | → | mark__ joins (~a@p200300ef973db1dc4086f0a6a24fc4dd.dip0.t-ipconnect.de) |
| 15:07:22 | → | timCF joins (~timCF@200-149-20-81.sta.estpak.ee) |
| 15:07:35 | × | zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds) |
| 15:07:52 | <k`> | Is there a way to use associated type families with functional dependencies? Like `class Foo a b | (Bar a) -> b where type Bar a` ? |
| 15:08:32 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds) |
| 15:08:49 | <geekosaur> | have you tried it? |
| 15:10:35 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 264 seconds) |
| 15:12:47 | <timCF> | Hello! Is there the way to declare somehow system library dependencies in package.yaml file? |
| 15:14:11 | <boxscape_> | k` hmmm I'm not sure if that has the inference advantages you're likely looking for but maybe something like `class (c ~ Bar a) => Foo a b c | c -> b where type Bar a` could work |
| 15:15:39 | <geekosaur> | timCF, why are you still using package.yaml? even the stack folks have gone back to cabal files, because package.yaml is so limited |
| 15:16:31 | <timCF> | geekosaur: I didn't know this :) But is it possible to do the same thing in cabal file? |
| 15:16:49 | <geekosaur> | at least two ways to do it in the cabal file |
| 15:17:46 | <timCF> | geekosaur: and how? |
| 15:18:26 | → | [Kalisto]_ joins (~nico@user/kalisto/x-8968079) |
| 15:18:33 | × | [Kalisto] quits (~nico@user/kalisto/x-8968079) (Ping timeout: 250 seconds) |
| 15:18:38 | <geekosaur> | pkgconfig-depends and extra-libraries |
| 15:18:46 | <geekosaur> | had to doublecheck the names, sorry |
| 15:19:18 | <geekosaur> | pkgconfig-depends is used when the library has a pkg-config specification (*.pc file), otherwise extra-libraries is used |
| 15:19:22 | → | Andrew_ joins (~andrew@user/andrewyu) |
| 15:19:29 | <timCF> | geekosaur: thanks a lot, I'll check corresponding docs! |
| 15:19:32 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 240 seconds) |
| 15:20:15 | × | AndrewYu quits (~andrew@user/andrewyu) (Read error: Connection reset by peer) |
| 15:21:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:21:16 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 15:21:42 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 15:22:34 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:22:34 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:22:34 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:23:07 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 15:23:14 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer) |
| 15:23:24 | <maerwald> | you can also use a custom Setup.hs |
| 15:23:47 | → | p_____ joins (~dyeplexer@user/dyeplexer) |
| 15:23:54 | <maerwald> | e.g. https://github.com/llvm-hs/llvm-hs/blob/llvm-12/llvm-hs/Setup.hs |
| 15:24:21 | <geekosaur> | but the cabal folks don't like custom Setup.hs |
| 15:24:23 | × | p_____ quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
| 15:24:47 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 15:25:10 | <maerwald> | so? |
| 15:25:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 15:25:35 | <maerwald> | cabal has insufficient means to discover libraries |
| 15:25:56 | <maerwald> | in fact, pkg-config shouldn't even be a cabal feature imo. The main reason it's used is because it's fed into the solver |
| 15:26:04 | → | v01d4lph4 joins (~v01d4lph4@223.190.93.72) |
| 15:26:04 | × | v01d4lph4 quits (~v01d4lph4@223.190.93.72) (Changing host) |
| 15:26:04 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 15:26:20 | <maerwald> | but in reality... pkg-config files are not a standard, just one of many ways for libraries to expose such info |
| 15:26:43 | → | mimmy joins (~mimmyjau@72.142.88.18) |
| 15:26:46 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 245 seconds) |
| 15:27:02 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 15:27:07 | <geekosaur> | pkg-config is really useful when you need custom build flags (-I, defines etc.) as well as libraries |
| 15:27:20 | <sclv> | its mainly used not for the solver but as geekosaur said, for the linker flags |
| 15:27:43 | × | asthasr_ quits (~asthasr@162.210.28.151) (Quit: asthasr_) |
| 15:28:11 | → | zer0bitz joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) |
| 15:28:28 | <maerwald> | geekosaur: for that it's also not a standard |
| 15:28:56 | × | enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
| 15:29:02 | <maerwald> | instead, cabal should provide better/easier API to write custom Setup.hs without understanding all the internals |
| 15:29:20 | <sclv> | no we should eliminate all custom setup |
| 15:29:49 | <maerwald> | how do you support llvm then as linked above? |
| 15:29:57 | <geekosaur> | but with custom Setup, just one thing that occurs to me is now you need to run package configure while running the solver, and possibly restart the solver afterward |
| 15:30:23 | <geekosaur> | because your list of dependencies may have changed |
| 15:30:38 | <sclv> | maerwald: we extend the grammar of cabal files to express what people currently need custom setup for |
| 15:30:45 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:30:52 | <maerwald> | I don't think that's a good idea |
| 15:32:04 | <maerwald> | you can never satisfy all and it's a constantly evolving story |
| 15:32:24 | <kritzefitz> | sclv so you say Cabal shouldn't be extendable? |
| 15:32:29 | <maerwald> | cargo also has build.rs |
| 15:35:02 | <sclv> | well i mean i think we'll be stuck with custom setups foreverish |
| 15:35:11 | <sclv> | but ideally we can minimize how many we need continously |
| 15:35:33 | <k`> | |
| 15:35:33 | <k`> | boxscape_: I'm trying to avoid having `Bar a` as a type parameter of the class instance that defines it. That would pretty much defeat the purpose. |
| 15:35:49 | → | xddq[m] joins (~xddqmatri@2001:470:69fc:105::bfd8) |
| 15:36:04 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 15:36:14 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 15:36:30 | <tomsmeding> | adamCS: I tested 'master' of haskell-language-server and that fixes ordering problems for me; note that it now also makes the first character of the completion case-sensitive, where previously the whole match was case-insensitive. |
| 15:36:51 | → | Sgeo_ joins (~Sgeo@user/sgeo) |
| 15:36:55 | <kritzefitz> | sclv: so ideally Cabal should support compiling gettext PO files and installing the results? |
| 15:37:31 | <sclv> | kritzefitz: why would that be necessary? |
| 15:37:39 | <maerwald> | Anything that isn't pkg-config, such as llvm-config, is likely gonna be ad-hoc and can't be used to design an interface. Unless you require the user to write wrapper scripts that convert to known format (which Ben has been doing with fake pkg-config scripts) |
| 15:37:42 | <boxscape_> | k` if you also add `a -> c` as functional dependency you might be able to always write _ (with -XPartialTypeSignatures) instead of actually passing the c argument, I think |
| 15:37:57 | <adamCS> | tomsmeding: That's great! Thanks! Can I just cabal build it and then put in the ghcup/bin directory and point all the links to it? Or should I just wait for a release? |
| 15:38:11 | <boxscape_> | ideally you'd want a way to have an invisible argument for the class, but as far as I can tell that's not supported |
| 15:38:22 | <kritzefitz> | sclv, because some packages might want to use gettext localization files and thus need to compile them on build and install them accordingly? |
| 15:38:25 | <sclv> | i imagine custom preprocessors can cover a lot of the ground currently used by Setup.hs |
| 15:38:30 | <maerwald> | https://github.com/bgamari/nix-pkgconfig |
| 15:38:32 | <maerwald> | I think that |
| 15:38:47 | <tomsmeding> | adamCS: if you're using cabal, then yes, just cabal build and put the binary somewhere in your path, doesn't even need to be .ghcup/bin -- though it needs to be _before_ .ghcup/bin in your path if you put it anywhere else |
| 15:38:54 | <k`> | boxscape_: Thanks, that's what I was wondering. Not the answer I wanted, but it's good to know I can stop trying. |
| 15:38:57 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 15:39:10 | × | mimmy quits (~mimmyjau@72.142.88.18) (Quit: WeeChat 3.3) |
| 15:39:12 | <tomsmeding> | adamCS: if you're using ghc >= 9.0, mind the custom cabal.project files |
| 15:39:14 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 260 seconds) |
| 15:39:17 | <tomsmeding> | (otherwise hls won't build) |
| 15:39:22 | <maerwald> | adamCS: you can compile hls via ghcup |
| 15:39:39 | <adamCS> | maerwald: un unreleased version? |
| 15:39:42 | <maerwald> | yes |
| 15:39:46 | <adamCS> | HOW? |
| 15:39:51 | <maerwald> | ghcup compile hls --help |
| 15:40:36 | <tomsmeding> | maerwald++ |
| 15:40:42 | <adamCS> | wow. |
| 15:40:50 | <adamCS> | That's cool. |
| 15:40:53 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds) |
| 15:40:55 | <k`> | Was hoping I could do something like `class Mapping a b | b (Object a) -> a, a (Object b) -> b where type Object a; type Object a = Param a; map :: (Object a -> Object b) -> a -> b` |
| 15:40:57 | <kritzefitz> | sclv: preprocessors process haskell(ish) source files to output haskell, right? How does that help in compiling non-haskell to other non-haskell or installing files in special locations? |
| 15:41:36 | <sclv> | i mean clearly a cabal package should not just be installing and compiling nonhaskell to nonhaskell, i would argue that is not the job of a haskell package |
| 15:41:48 | <sclv> | people should not do that |
| 15:41:54 | <tomsmeding> | maerwald: I assume for ghc >= 9.0 you'll need to explicitly give the --cabal-project file? |
| 15:41:55 | <k`> | Rather than forcing folks to write, e.g., `instance Mapping (T a) (T b) a b where ...` |
| 15:42:08 | <kritzefitz> | sclv so how do you propose people use gettext? |
| 15:42:21 | <sclv> | i don't want to have a build depends on some haskell library and then have nonhaskell compiled and installed randomly on my system |
| 15:42:27 | <maerwald> | tomsmeding: I guess |
| 15:42:34 | <adamCS> | maerwald, tomsmeding: I'm still not on 9 since too many packages have...issues. I try every couple weeks! |
| 15:42:37 | <tomsmeding> | maerwald: makes sense |
| 15:43:00 | <kritzefitz> | sclv so you think data files are evil as well? |
| 15:43:10 | <sclv> | no we control where data files go |
| 15:43:17 | <sclv> | in the standard format |
| 15:43:31 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 256 seconds) |
| 15:43:37 | <kritzefitz> | There are also standard locations for gettext files. Cabal just doesn't know about them. |
| 15:44:02 | <sclv> | gettext is low level enough i can imagine cabal support tbqh |
| 15:44:20 | <adamCS> | maerwald: Does the version number need to match in that command need to match the cabal file in the repo or can I set to, e.g., 1.4.1 so I keep the old 1.4 around? |
| 15:44:22 | <sclv> | but i imagine with some concerted effort then preprocessors and other tools would suffice |
| 15:44:39 | <maerwald> | adamCS: see --overwrite-version option |
| 15:45:07 | <adamCS> | maerwald: nice |
| 15:45:54 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
| 15:46:35 | × | jmorris quits (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:46:43 | <maerwald> | I don't see what's wrong with Setup.hs being a low-level interface like build.rs, providing useful library helpers for common things like pkg-config, gettext etc |
| 15:47:07 | <sclv> | well we'd maybe just want to cut out some features of setup.hs in that case |
| 15:47:22 | <sclv> | like have a subset that doesn't dynamically create a haskell module manifest |
| 15:47:31 | <kritzefitz> | sclv: maybe. Excuse my nagging. I'm just a bit frustrated sometimes, because it feels like Cabal seems to loose basic features from time to time, because people think they're not used. |
| 15:47:33 | <sclv> | the problem is that its entirely unrestricted |
| 15:47:45 | <sclv> | nobody is getting rid of setup.hs anytime soon |
| 15:47:49 | <maerwald> | sclv: yes, but that's can be solved with seccomp :) |
| 15:47:55 | <sclv> | the GOAL is that we try to make as many things as possible not need it |
| 15:48:24 | <sclv> | so that we can analyze statically as much about a package ecosystem as possible without running haskell code |
| 15:48:30 | <sclv> | or rather without running arbitrary haskell code |
| 15:48:43 | <maerwald> | package managers also use sandboxes |
| 15:48:53 | <maerwald> | that's the right solution... it's just hard cross-platform |
| 15:50:02 | <sclv> | no also you just don't want to have to run everyone's code just to understand their packages |
| 15:50:04 | <sclv> | even without security |
| 15:50:28 | <kritzefitz> | Mostly I'm a bit sore, because installing packages to prefixes isn't a thing since new-style cabal. And I'm pretty stuck on a project where I would need that. |
| 15:50:46 | <sclv> | that's something we need a good story for |
| 15:51:00 | <sclv> | the datafiles stuff is really hacky and we don't have a good full answer |
| 15:51:05 | → | coady joins (~coady@31.132.2.93) |
| 15:51:32 | <maerwald> | sclv: uhm... you're constantly running a lot of code from your package manager that you didn't write. I don't think that's a criteria. |
| 15:51:37 | <adamCS> | maerwald: Can't make it work. When I specify the repo via "-r https://github.com/haskell/haskell-language-server" I get "Invalid option `-r'" though then it lists that as an option in the subsequent help. |
| 15:51:55 | <maerwald> | like, do you read all the source rpms, ebuilds, etc? |
| 15:52:03 | <kritzefitz> | sclv: If that's what is missing, I would gladly help by writing down my intended use case. (Just not right now) |
| 15:52:21 | <sclv> | kritzefitz: please do browse the tickets, and either comment on one or open a new one! |
| 15:52:37 | <maerwald> | adamCS: sure the entire line |
| 15:52:41 | <maerwald> | *show |
| 15:52:56 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:53:06 | <adamCS> | maerwald: ghcup compile hls -v 1.4.0 -r "https://github.com/haskell/haskell-language-server" -g 9415e55672a0c60a353f0bff3ae8546bdf0e7903 -o 1.4-ro 8.10.7 |
| 15:53:29 | <maerwald> | adamCS: you can't combine -v and -r |
| 15:53:29 | → | burnsidesLlama joins (~burnsides@dhcp168-030.wadham.ox.ac.uk) |
| 15:53:55 | <maerwald> | you want -g instead of -r |
| 15:54:09 | <adamCS> | Oh! |
| 15:54:14 | <adamCS> | That makes sense. |
| 15:54:31 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 15:54:40 | <maerwald> | I'd also avoid 1.4-ro and use 1.4.1.1 or so (there's a bug in 0.1.17.3 with version suffixes) |
| 15:54:57 | <maerwald> | which is fixed on master but not released |
| 15:55:35 | <adamCS> | maerwald: Thank you! |
| 15:55:59 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 15:56:12 | <maerwald> | sclv: my point is... I don't even trust cabal, not just Setup.hs. Ultimately, even ghcup would run within a syscall sandbox (e.g. because it invokes GHC makefiles, unrestricted) |
| 15:56:14 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 15:57:24 | <maerwald> | reducing custom API surface is a never ending effort |
| 15:57:47 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection) |
| 15:59:03 | <maerwald> | paludis uses sydbox (seccomp based), portage uses something else afair |
| 15:59:13 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 15:59:26 | × | alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds) |
| 16:00:07 | <maerwald> | https://gitweb.gentoo.org/proj/sandbox.git |
| 16:00:46 | <maerwald> | ah, it uses ptrace |
| 16:01:02 | → | lavaman joins (~lavaman@98.38.249.169) |
| 16:03:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:05:37 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 16:06:11 | × | boxscape_ quits (~boxscape_@134.171.69.87) (Ping timeout: 256 seconds) |
| 16:08:12 | [Kalisto]_ | is now known as [Kalisto] |
| 16:09:36 | → | roconnor joins (~roconnor@host-45-58-217-8.dyn.295.ca) |
| 16:11:19 | <roconnor> | When the Haskell report says "A Word is an unsigned integral type, with the same size as Int." What does the same "size" mean? Does it guarentee that it can hold at least up to 2^30-1 (twice maxBound of Int) or does it only guarentee up to 2^29-1 like Int? |
| 16:11:29 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 264 seconds) |
| 16:11:47 | <k`> | `WORD_SIZE` |
| 16:11:48 | <c_wraith> | it means the same bit size |
| 16:12:11 | <c_wraith> | also, it means "as the implementation's Int type" |
| 16:12:35 | <roconnor> | okay, and Int's bitsize is at least 30, right? |
| 16:12:36 | <c_wraith> | so it's less about the minimum range required for Int, and more about how the same compiler defined Int |
| 16:13:06 | → | alzgh joins (alzgh@user/alzgh) |
| 16:13:07 | <c_wraith> | yes, it does mean it must be at least 30 bits |
| 16:13:14 | <roconnor> | thanks. |
| 16:13:19 | <c_wraith> | But more to the point, it must be the same size as Int |
| 16:15:55 | <roconnor> | bitSize. |
| 16:21:25 | → | johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl) |
| 16:22:46 | → | rkrishnan joins (~user@122.167.19.65) |
| 16:25:02 | → | mimmyjau joins (~mimmyjau@72.142.88.18) |
| 16:27:16 | × | mimmyjau quits (~mimmyjau@72.142.88.18) (Client Quit) |
| 16:27:36 | → | mimmyjau joins (~mimmy@72.142.88.18) |
| 16:27:50 | → | zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 16:28:01 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 16:28:48 | × | mimmyjau quits (~mimmy@72.142.88.18) (Client Quit) |
| 16:32:15 | × | zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds) |
| 16:33:42 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 16:35:27 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 16:35:31 | × | Kaipi quits (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
| 16:35:42 | → | Kaipi joins (~Kaiepi@156.34.44.192) |
| 16:36:44 | × | acidjnk_new quits (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 16:37:08 | → | acidjnk_new joins (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) |
| 16:38:20 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 16:38:34 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:54fc:9972:155c:27b0) (Quit: WeeChat 2.8) |
| 16:42:38 | × | acidjnk_new quits (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 16:42:59 | → | acidjnk_new joins (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) |
| 16:45:57 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) |
| 16:46:18 | × | DNH quits (~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:47:27 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer) |
| 16:51:45 | × | bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 16:52:07 | <nf> | hi, i'm trying to refactor this code https://github.com/ncfavier/ni/blob/master/src/Nirc.hs#L110 to float the execStateT [] initialContext to the top of the program, so that the main loop happens in the state monad |
| 16:53:11 | <nf> | so now i need "lifted" versions of timeout and tryIOError that work with StateT (with the obvious semantics "restore the old state on timeout"). i was only able to find such a timeout in lifted-base, and tryIO in unliftio and others, but this feels a bit scattered |
| 16:53:52 | <nf> | alternatively i could just store the context in an IORef |
| 16:54:01 | <nf> | what would you do? |
| 16:54:07 | <monochrom> | I recommend not. |
| 16:54:41 | <monochrom> | But if you insist, perhaps the "layers" package offers yet another solution, complete or incomplete, I haven't deeply looked. |
| 16:55:23 | <monochrom> | "lifting" is a very naïve idea once control flow is involved. |
| 16:55:43 | <monochrom> | and a pandora's box |
| 16:55:50 | <monochrom> | can of worms |
| 16:56:52 | <monochrom> | The difficulty of timeout is that you now have two threads, too. |
| 16:57:04 | <nf> | i'll look into layers |
| 16:57:20 | <nf> | when you say you recommend not, did you mean the IORef part or the refactoring part? |
| 16:57:23 | <monochrom> | What does it even mean to "lift" forkIO to StateT. |
| 16:57:34 | <nf> | well, nothing |
| 16:57:34 | <monochrom> | refactoring. |
| 16:57:39 | <monochrom> | "refactoring" |
| 16:57:45 | <nf> | i'm only interested in the special case of lifting timeout, with the semantics i mentioned |
| 16:58:02 | → | v01d4lph4 joins (~v01d4lph4@223.190.93.72) |
| 16:58:02 | × | v01d4lph4 quits (~v01d4lph4@223.190.93.72) (Changing host) |
| 16:58:02 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 16:58:08 | <nf> | yeah i guess it's more than refactoring |
| 16:58:18 | <monochrom> | timeout is done by forkIO and a lot of other moving parts |
| 16:58:32 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer) |
| 16:59:49 | → | notzmv joins (~zmv@user/notzmv) |
| 17:00:10 | <nf> | so to be clear, what would you rather do? the goal being to reuse the context across invocations, instead of using initialContext every time |
| 17:01:21 | → | DNH joins (~DNH@8.43.122.53) |
| 17:02:11 | × | ubert1 quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
| 17:02:50 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 17:05:10 | × | alzgh quits (alzgh@user/alzgh) (Ping timeout: 256 seconds) |
| 17:07:18 | dsal | lifts pandora's box of worms |
| 17:08:40 | → | alzgh joins (~alzgh@user/alzgh) |
| 17:09:22 | <tomsmeding> | dsal: pray don't open it |
| 17:09:53 | dsal | unlifts |
| 17:09:59 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection) |
| 17:13:29 | × | nschoe quits (~quassel@2a01:e0a:8e:a190:b8f5:7f5:bf66:e7c) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 17:17:03 | × | hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!) |
| 17:18:57 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 17:21:28 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 17:22:43 | → | hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
| 17:23:22 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 17:23:58 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds) |
| 17:30:08 | × | urdh quits (~urdh@user/urdh) (Remote host closed the connection) |
| 17:30:11 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 17:31:35 | × | rkrishnan quits (~user@122.167.19.65) (Ping timeout: 250 seconds) |
| 17:34:03 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 17:34:28 | → | awpr joins (uid446117@id-446117.lymington.irccloud.com) |
| 17:34:40 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:39:07 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds) |
| 17:41:54 | × | royo quits (~royo@user/royo) (Ping timeout: 260 seconds) |
| 17:42:10 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 17:44:35 | × | johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 250 seconds) |
| 17:45:08 | × | nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.) |
| 17:45:30 | → | coady1 joins (~coady@94.196.131.116.threembb.co.uk) |
| 17:46:50 | → | coady2 joins (~coady@159.48.55.98) |
| 17:48:11 | × | cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds) |
| 17:48:39 | × | coady2 quits (~coady@159.48.55.98) (Client Quit) |
| 17:49:19 | × | coady quits (~coady@31.132.2.93) (Ping timeout: 256 seconds) |
| 17:50:11 | × | coady1 quits (~coady@94.196.131.116.threembb.co.uk) (Ping timeout: 264 seconds) |
| 17:50:41 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 17:51:13 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:51:31 | ski_ | is now known as ski |
| 17:51:48 | × | chele_ quits (~chele@user/chele) (Remote host closed the connection) |
| 17:56:29 | → | zebrag joins (~chris@user/zebrag) |
| 17:56:49 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 17:57:33 | × | robosexual quits (~spaceoyst@88.85.216.62) (Quit: Konversation terminated!) |
| 18:00:45 | → | cheater joins (~Username@user/cheater) |
| 18:01:35 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
| 18:03:03 | → | td_ joins (~td@94.134.91.32) |
| 18:04:26 | → | econo joins (uid147250@user/econo) |
| 18:10:22 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) |
| 18:10:44 | → | zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 18:14:53 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 18:15:09 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 268 seconds) |
| 18:15:23 | × | zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds) |
| 18:15:31 | → | v01d4lph4 joins (~v01d4lph4@223.190.93.72) |
| 18:15:31 | × | v01d4lph4 quits (~v01d4lph4@223.190.93.72) (Changing host) |
| 18:15:31 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 18:18:42 | × | DNH quits (~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:19:01 | → | cosimone joins (~user@93-44-184-123.ip98.fastwebnet.it) |
| 18:20:06 | × | jkaye quits (~jkaye@2601:281:8300:7530:212b:79de:3c7b:f9e0) (Ping timeout: 245 seconds) |
| 18:22:33 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) |
| 18:22:43 | → | yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) |
| 18:25:38 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 18:28:05 | → | neurocyte0132889 joins (~neurocyte@94.46.71.199) |
| 18:28:05 | × | neurocyte0132889 quits (~neurocyte@94.46.71.199) (Changing host) |
| 18:28:05 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 18:28:23 | → | pgib joins (~textual@173.38.117.83) |
| 18:29:02 | × | yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 18:33:07 | × | mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds) |
| 18:33:08 | <joel135> | can i get ghc/ghci to spit out the types of all subterms of a code block, like a typing derivation? |
| 18:34:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:39:11 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
| 18:41:20 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 18:43:55 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer) |
| 18:43:58 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 18:44:23 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 18:44:32 | → | emf joins (~emf@2620:10d:c090:400::5:69be) |
| 18:50:49 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 18:54:52 | → | jeslie0 joins (~user@135-23-172-182.cpe.pppoe.ca) |
| 18:58:21 | → | zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
| 18:58:32 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection) |
| 18:58:51 | <shapr> | joel135: You can use haskell-language-server to do some of that. |
| 18:59:45 | × | justache quits (~justache@user/justache) (Read error: Connection reset by peer) |
| 19:00:08 | → | jkaye joins (~jkaye@2601:281:8300:7530:65b4:1325:4217:bff5) |
| 19:00:40 | → | justache joins (~justache@user/justache) |
| 19:03:05 | × | zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds) |
| 19:03:21 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 19:03:37 | → | urdh joins (~urdh@user/urdh) |
| 19:05:20 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 19:07:24 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 19:07:27 | <mark__> | Sorry, still trying to understand MMR and WHNF. If I do ":set -XNoMonomorphismRestriction; x = Just 1" and then force evaluation to WHNF "seq x ()" I get x = _. Why does it not eval until the first value constructor Just. The polymorphic thing is inside the Just. |
| 19:08:31 | <monochrom> | If you don't mind one subterm at a time, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#ghci-cmd-:type-at |
| 19:08:39 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 19:08:46 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 19:09:08 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 19:09:09 | <monochrom> | Or, if you don't mind all subterms of the whole file, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#ghci-cmd-:all-types |
| 19:09:38 | <monochrom> | :type-at is what emacs haskell-mode and dante use. |
| 19:09:42 | → | DNH joins (~DNH@8.43.122.53) |
| 19:09:57 | <monochrom> | It is also why I still don't need IDEs. |
| 19:11:10 | <monochrom> | mark__, unfortunately you have "Num a => Maybe a" not "Maybe (Num a => a)". |
| 19:11:33 | <mark__> | Thanks for the links. My theory is that (Just (1 :: Num a => a)) is in core something like (\$dNum -> Just ..) so the dict must be supplied at the start. |
| 19:11:51 | <monochrom> | Equivalently, the polymorphic thing is precisely outside the Just. |
| 19:12:22 | <mark__> | That makes sense. |
| 19:12:23 | <monochrom> | Why? Because Hindley-Milner does neither rank-n nor impredicativity. |
| 19:17:45 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds) |
| 19:21:07 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 19:21:21 | → | jgeerds joins (~jgeerds@55d41b94.access.ecotel.net) |
| 19:22:07 | <joel135> | shapr: good idea. i ended up settling with holes for now though |
| 19:22:32 | × | chomwitt quits (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds) |
| 19:22:53 | <joel135> | and simple redundant let bindings |
| 19:33:13 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 19:35:34 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 19:37:32 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds) |
| 19:40:32 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds) |
| 19:41:10 | × | DNH quits (~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:41:15 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) |
| 19:51:14 | → | player205 joins (~player205@net-93-71-138-138.cust.vodafonedsl.it) |
| 19:51:37 | × | player205 quits (~player205@net-93-71-138-138.cust.vodafonedsl.it) (Client Quit) |
| 19:51:55 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:52:20 | → | player205 joins (~player205@net-93-71-138-138.cust.vodafonedsl.it) |
| 19:54:03 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 19:56:30 | × | michalz quits (~michalz@185.246.204.33) (Remote host closed the connection) |
| 19:56:55 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 20:02:38 | → | lavaman joins (~lavaman@98.38.249.169) |
| 20:03:26 | → | DNH joins (~DNH@8.43.122.53) |
| 20:05:02 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 240 seconds) |
| 20:05:05 | → | kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
| 20:06:41 | × | pgib quits (~textual@173.38.117.83) (Quit: 00 PC LOAD LETTER) |
| 20:06:42 | → | juhp joins (~juhp@128.106.188.220) |
| 20:06:47 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 246 seconds) |
| 20:08:58 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 20:13:36 | → | mei3 joins (~mei@user/mei) |
| 20:15:31 | → | coady joins (~coady@159.48.55.98) |
| 20:16:48 | × | coady quits (~coady@159.48.55.98) (Client Quit) |
| 20:18:06 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 20:18:48 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 20:19:29 | × | alx741 quits (~alx741@181.196.68.101) (Ping timeout: 256 seconds) |
| 20:20:03 | × | gehmehgeh_ quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
| 20:20:16 | → | hololeap joins (~hololeap@user/hololeap) |
| 20:21:05 | → | gehmehgeh_ joins (~user@user/gehmehgeh) |
| 20:21:38 | → | nineonine joins (~nineonine@2604:3d08:7780:cd00:187c:a4eb:abb4:3c17) |
| 20:22:46 | → | deadmarshal joins (~deadmarsh@95.38.114.152) |
| 20:24:02 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 20:24:49 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 20:25:25 | → | jushur joins (~human@user/jushur) |
| 20:27:02 | × | deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 240 seconds) |
| 20:27:03 | × | burnsidesLlama quits (~burnsides@dhcp168-030.wadham.ox.ac.uk) (Remote host closed the connection) |
| 20:27:17 | → | Guest4249 joins (~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 20:27:52 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 20:27:53 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 20:28:22 | × | hololeap quits (~hololeap@user/hololeap) (Read error: Connection reset by peer) |
| 20:29:15 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds) |
| 20:30:08 | ← | kadir parts (~kadir@78.178.105.36) (WeeChat 3.3) |
| 20:30:42 | → | hololeap joins (~hololeap@user/hololeap) |
| 20:30:55 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection) |
| 20:31:02 | → | kayprish joins (~kayprish@46.240.130.158) |
| 20:33:47 | → | alx741 joins (~alx741@186.178.109.114) |
| 20:34:49 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 20:35:04 | → | themc47 joins (~mc47@xmonad/TheMC47) |
| 20:35:11 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 20:36:42 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 20:37:34 | → | falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
| 20:38:17 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 20:40:30 | × | kayprish quits (~kayprish@46.240.130.158) (Quit: leaving) |
| 20:40:40 | → | kayprish joins (~kayprish@46.240.130.158) |
| 20:47:02 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds) |
| 20:50:00 | → | beka joins (~beka@104.193.170.240) |
| 20:51:20 | → | jespada joins (~jespada@190.7.36.46) |
| 20:51:55 | × | player205 quits (~player205@net-93-71-138-138.cust.vodafonedsl.it) (Quit: WeeChat 3.0.1) |
| 20:55:09 | <fendor[m]> | Can I not pass -package-env to ghci using `:seti` or `:set`? ☹️ |
| 20:55:15 | → | mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 20:56:28 | × | jespada quits (~jespada@190.7.36.46) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:56:44 | <monochrom> | Probably too late after ghci has started. |
| 20:56:49 | <geekosaur> | I think it's too late for that by that point? although 9.2.1 at least seems to think it's a dynamic option |
| 20:58:18 | <fendor[m]> | well clearing the package db, and setting a couple of new ones should be easily possible at run-time |
| 20:58:27 | <fendor[m]> | or am I missing a feature of package-envs? |
| 20:59:17 | <monochrom> | No. Long in the past, I already discovered that ghci doesn't want to even know any change in the package db after startup. |
| 21:00:02 | <monochrom> | And generally I wouldn't think in terms of "it should be easy for someone else to add a feature I want". |
| 21:01:19 | <fendor[m]> | I am not, I rather mean "it should be possible, is there a reason why it isn't right now?" And if the answer is no, I am inclined to add that feature |
| 21:02:06 | <fendor[m]> | and I bet the answer is "no particular reason, but it is complicated" |
| 21:02:10 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:02:28 | <geekosaur> | one thoing thatoccurs to me is you'd potenntially have to throw out everything ghci currently knows and start over (like :load) |
| 21:03:01 | <geekosaur> | perhaps not complicated, but possibly invasive and annoying to the user |
| 21:03:21 | <geekosaur> | this said, many things ghci doesn't do just because nobody asked for it before |
| 21:04:01 | <fendor[m]> | that is indeed true, if that is the only option that causes such reloads then it is rather annoying and unexpected |
| 21:04:05 | <geekosaur> | ghci wasn't designed, it just kinda grew |
| 21:04:58 | → | burnsidesLlama joins (~burnsides@dhcp168-030.wadham.ox.ac.uk) |
| 21:05:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:07:19 | <fendor[m]> | it is still amazingly good, imo |
| 21:11:03 | × | themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:11:37 | × | burnsidesLlama quits (~burnsides@dhcp168-030.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
| 21:14:11 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 21:17:42 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 21:19:13 | <dsal> | Heh, I just saw this via rss: http://logicaltypes.blogspot.com/2021/11/november-2021-1haskelladay-1liners.html |
| 21:21:23 | × | mei3 quits (~mei@user/mei) (Ping timeout: 268 seconds) |
| 21:22:17 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds) |
| 21:23:12 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 21:23:21 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 21:24:34 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:24:51 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 21:25:05 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:25:09 | × | mikoto-c1 quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 250 seconds) |
| 21:25:33 | <yin> | fun! |
| 21:25:45 | → | mikoto-c1 joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
| 21:26:02 | <yin> | @pl \f -> (\x -> f (x x)) (\x -> f (x x)) |
| 21:26:02 | <lambdabot> | ap (. join id) (. join id) |
| 21:26:12 | → | burnsidesLlama joins (~burnsides@dhcp168-030.wadham.ox.ac.uk) |
| 21:26:15 | <yin> | @pl \f -> (\x -> x x) (\x -> f (x x)) |
| 21:26:15 | <lambdabot> | join id . (. join id) |
| 21:26:19 | <yin> | :) |
| 21:27:53 | <kronicmage> | @t \f -> (\x -> x x) (\x -> f (x x)) |
| 21:27:53 | <lambdabot> | Maybe you meant: tell thank you thanks thesaurus thx tic-tac-toe ticker time todo todo-add todo-delete type v @ ? . |
| 21:27:59 | → | vysn joins (~vysn@user/vysn) |
| 21:29:02 | <kronicmage> | huh pl works on maltyped things |
| 21:29:04 | <kronicmage> | til |
| 21:29:23 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 21:29:24 | <geekosaur> | yeh, @pl just does substitutions, it doesn't really know haskell |
| 21:30:00 | <yin> | fun! |
| 21:31:00 | <yin> | what can we learn from this? i feel that `ap (. join id) (. join id)` should be a big insight |
| 21:34:17 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds) |
| 21:34:35 | <dsal> | I can learn that if I see that in code somewhere, someone didn't come up with it and probably doesn't understand it, but sent it through @pl and copied it because they thought it looked cool. |
| 21:34:46 | → | acidjnk_new3 joins (~acidjnk@p200300d0c721b7398586a2e711bd371d.dip0.t-ipconnect.de) |
| 21:35:50 | <Taneb> | I did once write a horrifying program to calculate factorials that was mostly "pure", "(<*>)", and "unsafeCoerce" |
| 21:36:04 | <Taneb> | It ran out of memory for numbers bigger than 11 |
| 21:36:20 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 21:38:29 | × | acidjnk_new quits (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 21:39:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 21:39:48 | <Taneb> | If anyone has IRC logs for June 2012, it's probably linked to from there |
| 21:42:48 | <tomsmeding> | for bonus points, replace (.) with fmap |
| 21:43:06 | <tomsmeding> | fmap (join id) `ap` fmap (join id) |
| 21:43:13 | → | pavonia joins (~user@user/siracusa) |
| 21:46:11 | → | yauhsien joins (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) |
| 21:46:18 | <dsal> | :t fmap (join id) `ap` fmap (join id) |
| 21:46:19 | <lambdabot> | error: |
| 21:46:19 | <lambdabot> | • Occurs check: cannot construct the infinite type: a ~ a -> b1 |
| 21:46:19 | <lambdabot> | Expected type: a -> a -> b1 |
| 21:46:40 | <dsal> | So annoyed by haskell's finite types. |
| 21:47:33 | <yin> | what would be the undesirable consequences of allowing infinite types? |
| 21:47:46 | <yin> | besides non termination |
| 21:48:28 | <dsal> | It's kind of hard to think about. |
| 21:49:53 | → | jmorris joins (uid433911@id-433911.hampstead.irccloud.com) |
| 21:50:33 | → | sander joins (~sander@user/sander) |
| 21:50:43 | × | yauhsien quits (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 21:51:45 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) |
| 21:52:23 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 21:52:43 | → | alzgh joins (~alzgh@user/alzgh) |
| 21:53:12 | → | f-a joins (f2a@f2a.jujube.ircnow.org) |
| 21:53:45 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 250 seconds) |
| 21:55:55 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds) |
| 21:57:02 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds) |
| 21:57:27 | <maerwald> | tomsmeding: I love fmap so much, I think I actually did that once in production code |
| 21:57:54 | → | royo joins (~royo@user/royo) |
| 21:58:14 | <k`> | :q |
| 21:58:22 | × | k` quits (~user@152.1.137.158) (Remote host closed the connection) |
| 21:59:39 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 21:59:57 | <yin> | dsal: too hard even for this channel? |
| 21:59:59 | <dolio> | yin: Almost every time you under/over apply a function by accident, you could give it an infinite type. |
| 22:00:48 | <dolio> | So, the only thing that gives you an error message instead of something much more confusing to figure out is rejecting infinite types. |
| 22:01:19 | ← | f-a parts (f2a@f2a.jujube.ircnow.org) () |
| 22:01:39 | <dolio> | At least, deciding not to infer infinite types. |
| 22:02:37 | → | Noobish joins (~Noobish@64.150.15.15) |
| 22:03:43 | <monochrom> | "f (x:xs) = ... f x ..." is also a common beginner mistake that, if accepted, would cause an infinite type. |
| 22:03:56 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 22:04:04 | <dolio> | Yeah, lots of typos. |
| 22:04:20 | <dolio> | (xs:x) instead of (x:xs). |
| 22:04:29 | <monochrom> | Practical experience says that 99.99% of infinite types are typos, not intentional. |
| 22:04:35 | <dsal> | infinite typos |
| 22:04:53 | <yin> | :) |
| 22:05:13 | <dsal> | I've not run into a situation where I wish I had an infinite type. |
| 22:05:28 | <monochrom> | And among the intentional legit ones, 99% lead to hard-to-follow code. |
| 22:05:34 | <dsal> | Why can't an element of a list be the same type as the list of the elements of that list? |
| 22:06:05 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 264 seconds) |
| 22:06:45 | <yin> | let a = [a] in [a] |
| 22:06:46 | <dolio> | That's set theory. |
| 22:07:33 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 22:07:48 | <monochrom> | It turns out that when you intend to have an infinite type, going isorecursive is nicer for your readers, e.g., with "newtype D = MkD{unD :: D->D}", your explicit "MkD foo" and "unD bar" help your reader recognize "ah you're now converting D to D->D" "ah you're now convering D->D to D". |
| 22:08:26 | <monochrom> | In fact the same can be said of all recursive ADTs. |
| 22:08:56 | <monochrom> | Infinite type is just a special case of the stance of equirecursive types. |
| 22:09:24 | × | Noobish quits (~Noobish@64.150.15.15) (Remote host closed the connection) |
| 22:11:14 | <monochrom> | And equi-vs-iso is in turn just a special case of structural-vs-nomial. |
| 22:11:18 | <monochrom> | err, nominal |
| 22:12:16 | <monochrom> | "type IntStream = (Int, IntStream)" vs "newtype IntStream = Ctor (Int, IntStream)" |
| 22:13:21 | × | sagax quits (~sagax_nb@user/sagax) (Quit: Konversation terminated!) |
| 22:18:34 | <monochrom> | Set theory has an "axiom of foundation" that disallows x = {x}, among related infinite-descent things. |
| 22:19:03 | <dolio> | Yeah, but the cool set theories have the axiom of anti-foundation. |
| 22:19:11 | <monochrom> | However! There are CS areas that find it useful to omit that axiom and allow infinite-descent sets. |
| 22:20:12 | <dolio> | Actually, there are multiple variants of anti-foundation axioms, I think. |
| 22:20:21 | → | lbseale_ joins (~lbseale@user/ep1ctetus) |
| 22:20:48 | <dolio> | Depending to the different kinds of cyclic graphs you allow sets to correspond to. |
| 22:21:22 | <yin> | @def data Fix f = Fix (f (Fix f)) |
| 22:21:23 | <lambdabot> | Defined. |
| 22:21:30 | <monochrom> | My favourite anti-foundation axiom is "it's lasagna all the way down" :P |
| 22:21:32 | <yin> | @kind Fix |
| 22:21:32 | <lambdabot> | (* -> *) -> * |
| 22:21:54 | <dolio> | Also, like, if `x = {x}` and `y = {y}` does x = y? |
| 22:23:15 | <dolio> | x is a set that contains itself, and y is a set that contains itself, but do they contain all the same sets? |
| 22:23:33 | <dsal> | yin: do you have a good understanding of fix/Fix? |
| 22:23:35 | <dolio> | Extensionality can't answer the question. :) |
| 22:23:56 | <yin> | dsal: fix yes, Fix i think i'm struggling with |
| 22:24:09 | × | lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 256 seconds) |
| 22:24:44 | <dsal> | Fix is just fix at the type level. This is a good read: https://chrispenner.ca/posts/asts-with-fix-and-free |
| 22:25:15 | <yin> | thanks! |
| 22:25:17 | × | max22- quits (~maxime@2a01cb0883359800a8cb049c70e9b71a.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
| 22:28:14 | <monochrom> | We almost had the same issue with streams for example (generally coinductive types). If x=():x and y=():y, does x=y? |
| 22:28:43 | <monochrom> | The narrow version of extensionality (two records are equal iff respect fields are equal) can't answer it either. |
| 22:29:17 | <monochrom> | Eventually someone figured out "x and y are bisimilar, let's define 'equal' to just mean that". |
| 22:29:26 | <dolio> | Exactly. |
| 22:33:13 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds) |
| 22:33:36 | <yin> | what if y = ():x ? |
| 22:34:10 | <monochrom> | Then x and this y are bisimilar, too. |
| 22:34:37 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 22:34:52 | × | Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 22:34:55 | <yin> | so infinity+1 == infinity |
| 22:35:25 | <monochrom> | I wouldn't jump to that conclusion. : is not +, x is not infinity. |
| 22:35:32 | × | zebrag quits (~chris@user/zebrag) (Ping timeout: 246 seconds) |
| 22:35:53 | → | zebrag joins (~chris@user/zebrag) |
| 22:36:07 | <yin> | can't you make the argument that at the type level that wuld be peano infinity? |
| 22:36:36 | <yin> | (i don't know what i'm saying) |
| 22:36:37 | <monochrom> | I don't know peano infinity and I don't know that argument. |
| 22:36:44 | × | cosimone quits (~user@93-44-184-123.ip98.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1)) |
| 22:37:43 | <awpr> | sounds to me like: if you define a peano naturals type in Haskell, you get an extra inhabitant `infinity = S infinity`, and that is in the same sense bisimilar to `S infinity` |
| 22:37:59 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 22:38:11 | <dolio> | Depends how you define it. |
| 22:38:13 | <awpr> | IIUC it's not supposed to be a member of the Peano naturals, but it sneaks in due to laziness |
| 22:38:15 | × | gehmehgeh_ quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:38:32 | <awpr> | "how you define it" = by not using a strict field? |
| 22:38:39 | <dolio> | Right. |
| 22:39:53 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 22:41:33 | × | opqdonut quits (opqdonut@pseudo.fixme.fi) (Ping timeout: 268 seconds) |
| 22:41:48 | → | opqdonut joins (opqdonut@pseudo.fixme.fi) |
| 22:41:52 | <monochrom> | Yes, I was waiting for you to set up an explicit homomorphism from [()] to "data N = Z | S N", and then the conclusion is OK. |
| 22:42:40 | <yin> | ^ |
| 22:42:58 | → | finsternis joins (~X@23.226.237.192) |
| 22:43:54 | <Axman6> | type FatPeano = [()] |
| 22:44:49 | <yin> | @type [( )] |
| 22:44:50 | <lambdabot> | [()] |
| 22:47:40 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:51:20 | <yin> | can a compiler optimize something like `data L a = L a (Maybe (L a))` to `data L a = E a | N a (L a)` ? |
| 22:51:39 | <sclv> | kritzefitz: btw is this ticket germane to the discussion we were having this morning? https://github.com/haskell/cabal/issues/3586 |
| 22:53:32 | <Axman6> | yin: no |
| 22:53:46 | <yin> | Axman6: could it, theretically? |
| 22:53:51 | <Axman6> | unboxed sum types might helkp though |
| 22:54:24 | <Axman6> | you''d end up with data L a = L a (#a|Void#) or something |
| 22:54:38 | <Axman6> | uh, |
| 22:54:55 | <Axman6> | data L a = L a (#L a|Void#) |
| 22:55:06 | <Axman6> | which... doesn't make sense I think |
| 22:55:21 | <Axman6> | that would lead to an infinitely sized L so no |
| 22:55:33 | <hpc> | rust does something like this, but it helps that rust is strict |
| 22:55:43 | <Axman6> | anyway, no - maybe it could but it doesn't. what would be the reason for doing that? Saving an indirection? |
| 22:56:09 | <yin> | yes, that's what i has in mind |
| 22:56:24 | <yin> | s/has/had |
| 22:56:42 | <monochrom> | Saves a little memory, "E 3" stores less than "L 3 Nothing". |
| 22:57:23 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 22:57:26 | <yin> | and all the Justs, i'm thinking |
| 22:57:29 | <yin> | n? |
| 22:57:45 | <janus> | another cabal-docspec success story: https://github.com/sol/doctest/issues/301#issuecomment-965818593 oh happy day |
| 22:57:56 | → | sagax joins (~sagax_nb@user/sagax) |
| 23:00:05 | <Axman6> | it's an interesting idea, but possibly only works in a small number of cases. what do you want the compiler to do with data L a = L a (Maybe (L a)) (Maybe (L a))? should we get four constructors? |
| 23:01:35 | × | CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 23:01:43 | <geekosaur> | a sufficiently clever compiler might convert that into a tree. question becomes, what kind of tree? |
| 23:03:36 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:06:09 | <yin> | that would be `data K a = E | K a; data L a = L a (K a) (K a)` |
| 23:07:15 | <yin> | i mean: `data K a = E | K (L a); data L a = L a (K a) (K a)` ? |
| 23:07:35 | <yin> | K is Maybe |
| 23:07:43 | <yin> | ok i get your point |
| 23:08:12 | → | brandonh joins (brandonh@gateway/vpn/protonvpn/brandonh) |
| 23:08:20 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:09:42 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 23:10:35 | × | jkaye quits (~jkaye@2601:281:8300:7530:65b4:1325:4217:bff5) (Ping timeout: 264 seconds) |
| 23:13:26 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds) |
| 23:16:31 | × | xff0x quits (~xff0x@2001:1a81:53aa:5400:2665:d30f:dc60:ace5) (Ping timeout: 250 seconds) |
| 23:17:13 | → | xff0x joins (~xff0x@2001:1a81:53aa:5400:8327:d2de:b0b3:bf1) |
| 23:19:40 | → | lbseale__ joins (~lbseale@user/ep1ctetus) |
| 23:19:55 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) |
| 23:23:02 | × | lbseale_ quits (~lbseale@user/ep1ctetus) (Ping timeout: 240 seconds) |
| 23:28:32 | × | beka quits (~beka@104.193.170.240) (Ping timeout: 240 seconds) |
| 23:35:38 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:41:59 | → | brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d) |
| 23:42:13 | × | hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
| 23:45:13 | × | servytor quits (uid525486@id-525486.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:51:38 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 23:57:32 | × | jiribenes quits (~jiribenes@rosa.jiribenes.com) (Remote host closed the connection) |
| 23:57:37 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 23:57:41 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds) |
| 23:58:16 | → | jiribenes joins (~jiribenes@rosa.jiribenes.com) |
| 23:58:54 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
All times are in UTC on 2021-11-10.