Logs on 2021-01-06 (freenode/#haskell)
| 00:00:24 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 00:04:25 | × | fradet quits (~pi@216.252.75.247) (Ping timeout: 264 seconds) |
| 00:11:03 | × | revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal) |
| 00:11:18 | → | revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 00:14:24 | → | timbit joins (~trob@135-23-206-58.cpe.pppoe.ca) |
| 00:18:48 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 00:24:13 | × | madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 264 seconds) |
| 00:26:35 | × | timbit quits (~trob@135-23-206-58.cpe.pppoe.ca) (Quit: Leaving) |
| 00:30:23 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:32:37 | × | ulidtko|k quits (~ulidtko@194.54.80.38) (Ping timeout: 246 seconds) |
| 00:32:38 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 00:33:06 | × | thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202) |
| 00:35:38 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 00:39:37 | × | bitmagie quits (~Thunderbi@200116b80605280008c19424c544e900.dip.versatel-1u1.de) (Quit: bitmagie) |
| 00:41:16 | × | alx741 quits (~alx741@181.196.69.158) (Ping timeout: 240 seconds) |
| 00:46:43 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 265 seconds) |
| 00:49:35 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:5cc6:836f:afa7:e837) |
| 00:51:56 | × | dh quits (dh@bsd.ee) (Disconnected by services) |
| 00:52:02 | → | dh_ joins (dh@bsd.ee) |
| 00:53:25 | → | usr256 joins (~usr25@unaffiliated/usr25) |
| 00:54:29 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:5cc6:836f:afa7:e837) (Ping timeout: 272 seconds) |
| 00:54:45 | → | alx741 joins (~alx741@186.178.110.141) |
| 00:56:36 | × | usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 256 seconds) |
| 00:58:25 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 01:00:05 | → | jedws joins (~jedws@121.209.189.201) |
| 01:02:17 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:03:38 | → | dabr joins (~daniel@p5082597a.dip0.t-ipconnect.de) |
| 01:05:38 | → | dandels joins (~dandels@unaffiliated/dandels) |
| 01:09:15 | → | ryanbooker joins (uid4340@gateway/web/irccloud.com/x-hbbtuufbzmpoieub) |
| 01:10:29 | shapr | hops quietly |
| 01:13:44 | <ezzieyguywuf> | is reactive-banana still alive? |
| 01:13:59 | <ezzieyguywuf> | seems the last commit was may 2019, and it has some stale upper bounds |
| 01:15:16 | × | haritz quits (~hrtz@unaffiliated/haritz) (Ping timeout: 240 seconds) |
| 01:18:05 | → | haritz joins (~hrtz@62.3.70.206) |
| 01:18:05 | × | haritz quits (~hrtz@62.3.70.206) (Changing host) |
| 01:18:05 | → | haritz joins (~hrtz@unaffiliated/haritz) |
| 01:23:00 | → | inkbottle joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
| 01:24:05 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-6-52.w83-200.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 01:27:52 | × | eacameron quits (uid256985@gateway/web/irccloud.com/x-sggmrofinlhiriab) (Quit: Connection closed for inactivity) |
| 01:27:54 | → | threestrikes joins (~threestri@cpe-24-243-229-2.hot.res.rr.com) |
| 01:28:25 | × | dandels quits (~dandels@unaffiliated/dandels) (Ping timeout: 264 seconds) |
| 01:30:08 | inkbottle | is now known as zebrag |
| 01:30:33 | × | troydm quits (~troydm@unaffiliated/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 01:32:36 | × | columbarius1 quits (~columbari@mue-88-130-54-222.dsl.tropolys.de) (Ping timeout: 272 seconds) |
| 01:32:54 | <int-e> | ezzieyguywuf: https://github.com/HeinrichApfelmus/reactive-banana/issues/197 seems relevant (so not dead, but kind of hibernating... possibly it's waking up again now) |
| 01:32:59 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 01:34:14 | → | columbarius1 joins (~columbari@87.123.198.204) |
| 01:34:54 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 01:36:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 01:38:01 | × | dabr quits (~daniel@p5082597a.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 01:38:30 | <ezzieyguywuf> | int-e: def. relevant, thanks (I should have checked issues...) |
| 01:39:32 | <ezzieyguywuf> | I've never personally used reactive-banana, but have heard good things, and I'm unsure if there are any real alternatives available - this is why I asked, as I'm getting ready to take it out of the gentoo portage tree due to stale dependencies that cause conflicts, but it's good to see that there is still activity around getting it updated |
| 01:39:46 | × | usr256 quits (~usr25@unaffiliated/usr25) (Quit: Leaving) |
| 01:39:48 | <ezzieyguywuf> | the dependency stuff shouldn't really be an issue, I can probably submit a PR myself to get that up-to-speed |
| 01:41:51 | <maerwald> | take all haskell libs out of the portage tree :p |
| 01:42:11 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 01:42:57 | → | troydm joins (~troydm@unaffiliated/troydm) |
| 01:44:55 | <ezzieyguywuf> | maerwald: nooooo it's so nice! |
| 01:44:56 | × | shailangsa quits (~shailangs@host86-185-58-185.range86-185.btcentralplus.com) (Ping timeout: 240 seconds) |
| 01:45:04 | <maerwald> | it really isn't |
| 01:45:22 | <ezzieyguywuf> | I like it, that way I don't have to worry about ~/.cabal getting cluttered |
| 01:45:23 | <maerwald> | subslot abuse wrt GHC versions and it still doesn't work |
| 01:45:43 | <ezzieyguywuf> | it definitely has its rough edges, but for the most part seems to work |
| 01:45:44 | <maerwald> | it's worse than perl upgrades, with more resolver errors |
| 01:45:53 | <maerwald> | it's severely broken |
| 01:46:03 | <ezzieyguywuf> | we can't install two version of the same haskell package (we can with non-haskell stuff) |
| 01:46:12 | <ezzieyguywuf> | but that doesn't really seem to be a problem |
| 01:46:20 | <maerwald> | yes, because EAPI wasn't designed for this |
| 01:46:26 | <ezzieyguywuf> | indeed |
| 01:46:36 | → | iqubic joins (~user@2601:602:9500:4870:226b:d1ce:19b9:af92) |
| 01:46:46 | <maerwald> | so ppl trying to abuse EAPI to shove things into it that wasn't meant for it make user experience worse |
| 01:46:53 | <maerwald> | subslots were meant to be used sparingly |
| 01:47:16 | <ezzieyguywuf> | I'd rather contribute to EAPI 8 and fix it than throw my hands up and abandon ship |
| 01:47:36 | <maerwald> | since paludis doesn't work on gentoo anymore, I completely gave up on it :) |
| 01:47:45 | <ezzieyguywuf> | lol nooooo gentoo is so beast |
| 01:48:02 | <ezzieyguywuf> | i never tried paludis, what was so great about it? |
| 01:48:28 | <maerwald> | then spent a few years on exherbo, until I gave up about it too and switched to fedora, so I don't get bothered by packagers anymore who break my installattion :p |
| 01:48:41 | <maerwald> | ezzieyguywuf: it wasn't broken like portage |
| 01:49:10 | <maerwald> | portage doesn't even comply to the spec |
| 01:49:19 | <maerwald> | it's file merging is non-atomic and broken |
| 01:49:39 | <maerwald> | files go missing sometimes, it cannot recover from interrupts properly |
| 01:49:59 | <ezzieyguywuf> | maerwald: nah a lot (if not all) of that has been fixed |
| 01:50:05 | <ezzieyguywuf> | well, depends on what you mean by "interrupts" |
| 01:50:20 | <ezzieyguywuf> | I've never had portage make a file go missing, that'd be a huge bug |
| 01:50:21 | <hololeap> | portage has gotten better. the problem i saw were packages that didn't use the new EAPIs |
| 01:50:40 | <maerwald> | ezzieyguywuf: I don't think any of that has been fixed |
| 01:50:40 | <ezzieyguywuf> | ah, it seems there's been a big push to update EAPI lately though |
| 01:50:52 | <hololeap> | i think their QA has gotten better as well |
| 01:51:27 | <maerwald> | is still does portable file copy/move in the VDB, doesn't it? |
| 01:51:34 | <maerwald> | because it uses python sdlib |
| 01:51:54 | <ezzieyguywuf> | i dunno what most of those words in that order mean... |
| 01:52:04 | <hololeap> | me neither :( |
| 01:52:08 | <maerwald> | well, as I said: I doubt any of that has been fixed |
| 01:52:50 | <ezzieyguywuf> | *shrug* |
| 01:52:54 | <maerwald> | EAPI uses a file based database |
| 01:52:56 | <ezzieyguywuf> | I'm sure fedora is treating you very kindly :) |
| 01:53:26 | <maerwald> | but then portage fails to ensure atomicity of file operations in order to support ppl spreading VBD across devices |
| 01:53:28 | <hololeap> | maerwald: true |
| 01:53:41 | <maerwald> | or broken things like aufs |
| 01:53:51 | <maerwald> | *VDB |
| 01:53:57 | <hololeap> | i would think that would be up to the kernel to handle |
| 01:54:00 | <maerwald> | no |
| 01:54:15 | <maerwald> | atomic file operations across devices doesn't exist |
| 01:54:26 | <hololeap> | spreading a directory tree across devices? |
| 01:54:36 | <maerwald> | yeah, you can do that on portage |
| 01:54:41 | <maerwald> | and aufs does that internally |
| 01:55:20 | <maerwald> | it's a side-effect of not thinking about how to design operations in a file-based custom database |
| 01:55:24 | <maerwald> | so it's all ad-hoc |
| 01:55:29 | <hololeap> | aufs is a kernel-level feature and it's not even in the standard kernel |
| 01:55:34 | <maerwald> | correct |
| 01:55:55 | <hololeap> | i don't really blame them for not testing portage against that |
| 01:56:07 | <maerwald> | no: it works on portage :) |
| 01:56:09 | <maerwald> | but it shouldn't |
| 01:57:00 | ← | iqubic parts (~user@2601:602:9500:4870:226b:d1ce:19b9:af92) ("ERC (IRC client for Emacs 28.0.50)") |
| 01:57:58 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:12e2:f4f0:d2c0:3ecf:a408) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:58:12 | <hololeap> | i used to have problems with interrupts when running concurrent portage jobs, but not anymore. it still acts funky if you CTRL+C during a pre-merge check though |
| 01:58:14 | × | Igloo quits (~igloo@matrix.chaos.earth.li) (Ping timeout: 260 seconds) |
| 01:58:53 | <maerwald> | concurrent portage jobs is something that shouldn't even exist |
| 01:59:06 | <maerwald> | there's no way to implement this correctly |
| 01:59:27 | <hololeap> | i don't see why there wouldn't be |
| 01:59:31 | → | Igloo joins (~igloo@matrix.chaos.earth.li) |
| 01:59:56 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:00:00 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:12e2:f4f0:d2c0:3ecf:a408) |
| 02:01:12 | <hololeap> | i have --jobs=3 as a default and i haven't run into any problems with it |
| 02:01:14 | blissful | is now known as azuline |
| 02:01:15 | azuline | is now known as blissful |
| 02:01:54 | <hololeap> | it works like you would expect. if you have a bunch of packages that depend on package X, package X will be run first, without any parralel jobs |
| 02:02:02 | <hololeap> | parallel |
| 02:02:16 | <maerwald> | because you get all sorts of race conditions |
| 02:02:31 | <maerwald> | in the VDB, during merge, in pkg_postinst |
| 02:02:33 | <maerwald> | whatnot |
| 02:03:04 | <maerwald> | then suddenly a file is missing somewhere, because of a partial merge.. the user will think "hmm" and just rebuild the package and move on |
| 02:03:13 | <maerwald> | not understanding that their PM is broken :p |
| 02:03:13 | <hololeap> | you don't, though because they are run in a sandbox. the only race condition would be in the qmerge phase, and there it uses locks to make sure only one thing is merged to the filesystem at a time |
| 02:03:44 | <hololeap> | that has never happened to me |
| 02:03:56 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 02:04:36 | × | jmchael quits (~jmchael@81.174.205.210) (Ping timeout: 256 seconds) |
| 02:05:48 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:06:31 | <maerwald> | ok, so you have package A, which deletes a directory and replaces it with a file during merge, then you have package B, which depends on A, which still assumes it's a directory and places a file into it... will it fail or not? |
| 02:07:41 | <maerwald> | it really depends... portage in the end might just delete the file and replace it with a directory without failing :p |
| 02:07:44 | <hololeap> | i think that trying to replace a directory with a file would be detected as a file collision |
| 02:07:50 | <maerwald> | no |
| 02:07:55 | <maerwald> | in paludis yes |
| 02:08:17 | <hololeap> | maerwald: you may have a skewed/outdated image of portage |
| 02:08:49 | <maerwald> | unless the whole development team changed, I doubt it :p |
| 02:09:05 | <maerwald> | there's only one person who really understands portage anyway |
| 02:10:01 | <hololeap> | there can't be an empty directory that is handled by portage. that's why you see .keep files around |
| 02:10:40 | <maerwald> | I know |
| 02:10:47 | <maerwald> | I'm not talking about empty directories |
| 02:11:10 | <maerwald> | I'm talking about a package that used to install /usr/foo as a directory and now switches to it being a file |
| 02:11:11 | <hololeap> | and if some package tried to install a file, where that name was already taken by a directory handled by portage, that would definitely be a file collision, since it would destroy the file structure underneath |
| 02:11:13 | <maerwald> | that is possible |
| 02:11:14 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 02:11:37 | × | Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 264 seconds) |
| 02:11:54 | <hololeap> | if it was a directory that _wasn't_ handled by portage, that would be reported as a warning |
| 02:11:55 | → | christo joins (~chris@81.96.113.213) |
| 02:13:01 | <maerwald> | portage doesn't handle directories at all, only files |
| 02:13:04 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 02:13:25 | <maerwald> | because you can't assign an ebuild owner to a directory |
| 02:13:36 | <maerwald> | so directories are always shared resources |
| 02:13:38 | × | sgibber2018 quits (~arch-gibb@208.85.237.144) (Quit: WeeChat 3.0) |
| 02:13:42 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 02:14:22 | <hololeap> | correct, but if you had /usr/lib/foo/bar and /usr/lib/foo/baz owned by package X, and package Y tried to create a file called /usr/lib/foo, that would destroy the files owned by package X, which would not be allowed |
| 02:15:04 | <maerwald> | well, Y is not installed yet |
| 02:15:08 | <maerwald> | :) |
| 02:16:46 | <hololeap> | right, my statement assumes package X is installed before package Y |
| 02:16:56 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 02:18:59 | <ezzieyguywuf> | i think maerwald is philosophically opposed to portage |
| 02:19:10 | <ezzieyguywuf> | and it seems you've had some runins with the (sole?) developer as well |
| 02:19:14 | <maerwald> | hololeap: https://bugs.gentoo.org/483494 |
| 02:19:16 | <ezzieyguywuf> | so I can understand your position |
| 02:19:37 | <ezzieyguywuf> | as purely a user of portage, and not a contributor (yet?), I can say that I am mostly satisfied and have not run into the issues you've described |
| 02:20:15 | <maerwald> | but that's another one |
| 02:21:03 | <hololeap> | an unconfirmed bug from 7 years ago? |
| 02:21:10 | <maerwald> | it is confirmed |
| 02:21:17 | <maerwald> | and still unfixed |
| 02:21:25 | <hololeap> | it literally says status: UNCONFIRMED |
| 02:21:33 | <maerwald> | did you read the report? :o |
| 02:21:37 | <maerwald> | and the reply? |
| 02:21:59 | <hololeap> | yes |
| 02:22:02 | <maerwald> | there's literally proof that this is not PMS compliant |
| 02:22:24 | <hololeap> | you would have to point to something current, or ask the gentoo devs if this is still a problem |
| 02:23:43 | <hololeap> | i could try to test it |
| 02:24:07 | <hololeap> | it might take me a bit |
| 02:24:59 | → | shailangsa joins (~shailangs@host86-186-191-114.range86-186.btcentralplus.com) |
| 02:26:26 | × | threestrikes quits (~threestri@cpe-24-243-229-2.hot.res.rr.com) (Ping timeout: 272 seconds) |
| 02:30:12 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:12e2:f4f0:d2c0:3ecf:a408) (Ping timeout: 268 seconds) |
| 02:32:42 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:507b) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 02:33:28 | × | carlomagno1 quits (~cararell@148.87.23.12) (Quit: Leaving.) |
| 02:38:28 | × | Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 272 seconds) |
| 02:39:48 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:41:23 | × | L29Ah quits (~L29Ah@unaffiliated/l29ah) (Ping timeout: 256 seconds) |
| 02:42:32 | × | xff0x quits (~fox@2001:1a81:52a7:8200:f535:aeb9:901:74c1) (Ping timeout: 268 seconds) |
| 02:42:49 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
| 02:44:16 | → | xff0x joins (~fox@2001:1a81:52e0:100:232f:c24f:d201:6316) |
| 02:50:34 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:5cc6:836f:afa7:e837) |
| 02:52:12 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Remote host closed the connection) |
| 02:52:47 | × | quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 02:53:10 | → | phadej joins (phadej@62.204.15.134) |
| 02:53:25 | × | Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Read error: Connection reset by peer) |
| 02:53:44 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:ec23:2fba:6a47:f771) |
| 02:53:51 | × | phadej quits (phadej@62.204.15.134) (Read error: Connection reset by peer) |
| 02:53:57 | → | Tario joins (~Tario@201.192.165.173) |
| 02:54:26 | → | phadej joins (phadej@62.204.15.134) |
| 02:54:32 | × | phadej quits (phadej@62.204.15.134) (Read error: Connection reset by peer) |
| 02:55:07 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:5cc6:836f:afa7:e837) (Ping timeout: 260 seconds) |
| 02:55:53 | → | ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net) |
| 02:56:31 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 02:58:44 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 272 seconds) |
| 02:59:13 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:00:04 | → | plutoniix joins (~q@184.82.196.105) |
| 03:00:10 | × | plutoniix quits (~q@184.82.196.105) (Max SendQ exceeded) |
| 03:00:39 | → | plutoniix joins (~q@184.82.196.105) |
| 03:01:15 | → | jespada joins (~jespada@90.254.245.49) |
| 03:01:26 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 03:06:22 | lagothrix | is now known as Guest98014 |
| 03:06:22 | → | xirhtogal joins (~lagothrix@unaffiliated/lagothrix) |
| 03:06:22 | × | Guest98014 quits (~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services))) |
| 03:06:22 | xirhtogal | is now known as lagothrix |
| 03:07:26 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds) |
| 03:08:53 | → | quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
| 03:09:26 | → | phadej joins (phadej@huma.la) |
| 03:09:57 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 03:10:03 | × | phadej quits (phadej@huma.la) (Read error: Connection reset by peer) |
| 03:10:26 | → | adamwespiser joins (~adamwespi@209.6.43.158) |
| 03:12:45 | → | phadej joins (phadej@huma.la) |
| 03:13:08 | × | phadej quits (phadej@huma.la) (Read error: Connection reset by peer) |
| 03:13:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 03:13:48 | → | phadej joins (phadej@62.204.15.134) |
| 03:13:53 | × | ryanbooker quits (uid4340@gateway/web/irccloud.com/x-hbbtuufbzmpoieub) (Quit: Connection closed for inactivity) |
| 03:14:00 | × | phadej quits (phadej@62.204.15.134) (Read error: Connection reset by peer) |
| 03:14:15 | → | jfe joins (~user@pool-71-184-149-134.bstnma.fios.verizon.net) |
| 03:14:37 | × | adamwesp_ quits (~adamwespi@107.181.19.30) (Ping timeout: 264 seconds) |
| 03:17:07 | × | adamwespiser quits (~adamwespi@209.6.43.158) (Ping timeout: 246 seconds) |
| 03:22:48 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 03:23:10 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
| 03:25:34 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 03:25:54 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 03:26:20 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 03:28:11 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:12e2:ad75:1255:fdff:5733) |
| 03:28:50 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 03:29:01 | <siraben> | Can someone help me understand why this build is failing? https://github.com/siraben/compiler/runs/1651026614?check_suite_focus=true |
| 03:29:18 | <siraben> | Confused about the CPP error |
| 03:32:39 | <ephemient> | looks exactly like https://stackoverflow.com/q/7412548 |
| 03:35:25 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:e95c:b04f:cb75:a96) (Read error: Connection reset by peer) |
| 03:35:59 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 03:40:39 | → | ransom joins (~c4264035@2a09:bac0:72::82f:c34) |
| 03:44:37 | × | mirrorbird quits (~psutcliff@m83-187-174-153.cust.tele2.se) (Ping timeout: 264 seconds) |
| 03:47:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:49:36 | <siraben> | ephemient: Thank you, I'll try that |
| 03:50:30 | → | jedws joins (~jedws@121.209.189.201) |
| 03:51:08 | <jared-w> | Is there a most-principled and least-likey-to-blow-up way to have a cabal test suite that tests the actual built executable of a program? |
| 03:52:04 | <jared-w> | (To be clear, I am really hoping the answer is not `cabal exec -- cabal test --enable-tests`) |
| 03:52:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 03:53:21 | <ezzieyguywuf> | jared-w: I've made a small `MyExeTest` target before, where `main` just poked some of the outermost pieces of my exe |
| 03:53:31 | <ezzieyguywuf> | or even just call :main of the exe |
| 03:53:37 | × | theDon quits (~td@94.134.91.206) (Ping timeout: 264 seconds) |
| 03:53:41 | → | adamwespiser joins (~adamwespi@209.6.43.158) |
| 03:53:56 | <ezzieyguywuf> | but my use-case was very simple, and "Just Worked ™" for me, dunno about the least-likely-to-blow-up-itiveness of it |
| 03:55:21 | → | theDon joins (~td@94.134.91.66) |
| 03:56:30 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 03:56:39 | <jared-w> | I'm wanting real integration tests, basically. Cabal's test stanzas work fine for unit tests but seem to be really lacking in integration testing (where it's important that what you're testing is the same exact bit-for-bit binary that you'll ship, not "the main function"). Otherwise there's nothing wrong with calling the exe like a library (ie the main function strategy you desribed) |
| 03:58:15 | → | nineonine joins (~nineonine@50.216.62.2) |
| 04:00:02 | × | alexelcu_ quits (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:00:12 | → | Tops21 joins (~Tobias@dyndsl-095-033-094-030.ewe-ip-backbone.de) |
| 04:01:03 | → | alexelcu joins (~alexelcu@142.93.180.198) |
| 04:01:46 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 04:01:55 | × | adamwespiser quits (~adamwespi@209.6.43.158) (Ping timeout: 246 seconds) |
| 04:02:58 | × | Tops2 quits (~Tobias@dyndsl-095-033-094-030.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
| 04:03:18 | → | zaquest joins (~notzaques@5.128.210.178) |
| 04:04:32 | × | djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds) |
| 04:05:10 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 268 seconds) |
| 04:05:27 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 04:05:45 | × | Jd007 quits (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
| 04:06:03 | × | thunderrd quits (~thunderrd@183.182.111.131) (*.net *.split) |
| 04:12:27 | → | thunderrd joins (~thunderrd@183.182.111.131) |
| 04:19:05 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:19:23 | × | notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection) |
| 04:20:15 | → | notzmv joins (~user@unaffiliated/zmv) |
| 04:21:25 | <jared-w> | Found it: https://cabal.readthedocs.io/en/3.4/cabal-package.html#pkg-field-build-tool-depends |
| 04:24:01 | → | Jd007 joins (~Jd007@d154-5-83-24.bchsia.telus.net) |
| 04:24:04 | <jared-w> | Had to *exhaustively* read the docs for cabal to find this functionality. I thought it was exclusively for a hard-coded set of magical tools (https://cabal.readthedocs.io/en/3.4/cabal-package.html#buildtoolsmap) but there's a single sentence in the documentation that actually lays out that you can use it for the use-case of testing your own binary |
| 04:24:41 | <jared-w> | Writing good docs are hard y'all, don't let anyone tell you otherwise :) |
| 04:25:10 | × | Jd007 quits (~Jd007@d154-5-83-24.bchsia.telus.net) (Client Quit) |
| 04:25:14 | <ezzieyguywuf> | jared-w: do you live in the south? |
| 04:25:30 | <ezzieyguywuf> | I don't usually find other folks on irc saying "y'all" |
| 04:25:34 | <ezzieyguywuf> | (other than me) |
| 04:27:12 | <jared-w> | Funnily enough I'm from Portland, OR, which is about as far as you can get from the south lol |
| 04:28:30 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 04:29:09 | <ezzieyguywuf> | lol! |
| 04:29:12 | <ezzieyguywuf> | *shrug* |
| 04:29:39 | × | spopejoy quits (~stuart@ool-44c5f8c9.dyn.optonline.net) (Quit: spopejoy) |
| 04:32:07 | → | Jd007 joins (~Jd007@d154-5-83-24.bchsia.telus.net) |
| 04:35:39 | × | troydm quits (~troydm@unaffiliated/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 04:36:46 | → | troydm joins (~troydm@unaffiliated/troydm) |
| 04:46:45 | → | adamwespiser joins (~adamwespi@209.6.43.158) |
| 04:47:15 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 256 seconds) |
| 04:47:25 | → | MrMobius joins (~MrMobius@208.58.206.154) |
| 04:48:21 | <MrMobius> | hi, im trying to install haskell for windows. I installed chocolatey but get the error "String cannot be of zero length." when I try to install haskell-dev. any idea what I can do? |
| 04:49:37 | <ezzieyguywuf> | MrMobius: have you tried ghcup? |
| 04:50:12 | <MrMobius> | ezzieyguywuf, no, this is all ive tried |
| 04:50:56 | × | adamwespiser quits (~adamwespi@209.6.43.158) (Ping timeout: 240 seconds) |
| 04:51:01 | <ezzieyguywuf> | MrMobius: I think ghcup is typically the recommended method of installation |
| 04:51:32 | <MrMobius> | ezzieyguywuf, looks like its for the linux subsystem not windows |
| 04:52:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 04:53:54 | → | spopejoy joins (~stuart@ool-44c5f8c9.dyn.optonline.net) |
| 04:53:56 | <ezzieyguywuf> | MrMobius: hrm, i guess you're right |
| 04:54:17 | <ezzieyguywuf> | MrMobius: ah, I think I had issues installing, or didn't want to use chocolatey or something, and ended up using stack instead |
| 04:54:43 | <ezzieyguywuf> | MrMobius: https://docs.haskellstack.org/en/stable/install_and_upgrade/ |
| 04:54:48 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Read error: Connection reset by peer) |
| 04:54:55 | → | ransom_ joins (~c4264035@8.47.12.52) |
| 04:55:23 | × | spopejoy quits (~stuart@ool-44c5f8c9.dyn.optonline.net) (Client Quit) |
| 04:57:02 | × | jduhamel quits (~textual@bras-base-toroon4664w-grc-16-184-145-103-248.dsl.bell.ca) (Ping timeout: 256 seconds) |
| 05:00:10 | → | sgibber2018 joins (~arch-gibb@208.85.237.144) |
| 05:00:11 | <MrMobius> | ezzieyguywuf, and I should be able to compile with just stack? |
| 05:00:52 | <ezzieyguywuf> | MrMobius: absolutely, stack will provide you with ghc and cabal-install, which are really the only two building blocks you should need to do anything with haskell |
| 05:01:00 | → | Tario joins (~Tario@201.192.165.173) |
| 05:01:09 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-mfwhrfcnbyerpdae) () |
| 05:01:20 | <ezzieyguywuf> | MrMobius: however, to make life easier, since you'll be using stack, you should do things 'the stack way', i.e. 'stack build' instead of 'cabal build', etc... |
| 05:02:34 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 05:02:56 | × | dfeuer quits (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 05:05:37 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 05:05:47 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds) |
| 05:06:49 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 05:07:00 | × | Tops21 quits (~Tobias@dyndsl-095-033-094-030.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 05:09:28 | × | ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
| 05:11:34 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 05:17:23 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 265 seconds) |
| 05:18:40 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 05:20:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:23:01 | × | DTZUZU quits (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
| 05:23:49 | → | ransom joins (~c4264035@70-59-22-250.hlrn.qwest.net) |
| 05:24:19 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 05:24:59 | → | DTZUZU joins (~DTZUZU@205.ip-149-56-132.net) |
| 05:25:07 | × | ransom_ quits (~c4264035@8.47.12.52) (Ping timeout: 265 seconds) |
| 05:26:18 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 05:26:55 | <MrMobius> | hmm, I dont think I understand how this works |
| 05:27:38 | <MrMobius> | "stack ghci" gets me to a Prelude prompt but "2+2" shows nothing then changes the Prelude prompt to the test project I tried to build |
| 05:27:39 | × | guest15 quits (~user@49.5.6.87) (Read error: Connection reset by peer) |
| 05:27:48 | → | guest15 joins (~user@49.5.6.87) |
| 05:28:03 | <MrMobius> | pressing enter changes the prompt between Prelude and the project name seemingly at random. is this right? |
| 05:28:46 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 05:29:28 | → | christo joins (~chris@81.96.113.213) |
| 05:29:32 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 05:30:53 | <sm[m]> | no |
| 05:33:45 | → | arahael joins (~arahael@61.68.75.69) |
| 05:33:49 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
| 05:34:21 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 05:35:10 | <MrMobius> | https://pastebin.com/iBLLaYJK |
| 05:35:13 | sm2n_ | is now known as sm2n |
| 05:39:53 | <sm[m]> | MrMobius: that seems very messed up |
| 05:39:53 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 05:40:14 | <sm[m]> | stack --version ? What kind of window are you running in ? |
| 05:40:39 | <MrMobius> | Version 2.5.1, Git revision d6ab861544918185236cf826cb2028abb266d6d5 x86_64 hpack-0.33.0 |
| 05:41:00 | <MrMobius> | windows 10, running at command line as administrator |
| 05:41:17 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:ce60) |
| 05:41:31 | <sm[m]> | does stack exec -- ghci work any better ? |
| 05:42:18 | <MrMobius> | sm[m], same behavior |
| 05:42:28 | → | christo joins (~chris@81.96.113.213) |
| 05:42:51 | <sm[m]> | perhaps there's something related in the stack issue tracker |
| 05:43:59 | <MrMobius> | heh maybe |
| 05:44:09 | <MrMobius> | not off to a good start learning haskell lol |
| 05:44:39 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 05:44:53 | <ezzieyguywuf> | MrMobius: :( |
| 05:45:18 | <sm[m]> | Not one we've heard before in here |
| 05:45:26 | <sm[m]> | this issue |
| 05:45:49 | <ezzieyguywuf> | I've succesfully installed stack on windows and used the repl, but I can't say I've used it extensively as I mostly do my dev on linux |
| 05:46:03 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 05:46:22 | <sm[m]> | any chance you have another ghci running ? "Have you trying rebooting windows" ? |
| 05:47:56 | × | ADG1089__ quits (~aditya@223.236.177.109) (Remote host closed the connection) |
| 05:49:10 | × | monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER) |
| 05:49:24 | <MrMobius> | no other ghci running |
| 05:49:29 | <MrMobius> | ill try a restart |
| 05:49:42 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 05:50:37 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds) |
| 05:50:37 | → | rajivr joins (uid269651@gateway/web/irccloud.com/x-faovxbrouyrpmypw) |
| 05:51:39 | <rajivr> | Would it be okay to ask category theory related question here? |
| 05:52:54 | <koz_> | rajivr: You can try, but there may not be folks who can field it. |
| 05:56:15 | <rajivr> | Thanks koz_ In this https://i.imgur.com/3Gr9Nu5.png diagram, Is the Hom-set(X,Y) just {f} , or is it {f, f o id_x}? |
| 05:57:07 | <dolio> | f . id = f |
| 05:57:30 | <dolio> | So those are the same set. |
| 05:57:58 | → | monochrom joins (trebla@216.138.220.146) |
| 05:58:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:59:13 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 05:59:33 | <rajivr> | dan64: That's correct. :-) Thanks. for some reason, I missed thinking along that line. |
| 06:00:37 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 06:02:38 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: Lost terminal) |
| 06:06:02 | × | notzmv quits (~user@unaffiliated/zmv) (Ping timeout: 264 seconds) |
| 06:11:27 | <sm[m]> | well MrMobius ? |
| 06:16:22 | <koz_> | sm[m]: Still rebooting Windows probbo. |
| 06:18:23 | → | rmk236 joins (~lcampos@ip-37-201-210-153.hsi13.unitymediagroup.de) |
| 06:20:06 | <sm[m]> | thought it was a bit quicker these days |
| 06:21:14 | <koz_> | Depends on how much money you wanna throw at hardware to fix it, and what else you're running. |
| 06:23:04 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds) |
| 06:24:34 | × | rmk236 quits (~lcampos@ip-37-201-210-153.hsi13.unitymediagroup.de) (Ping timeout: 272 seconds) |
| 06:25:13 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:25:17 | → | rmk236 joins (~lcampos@2a02:908:3616:b100:ad41:f5e6:8b3a:bfc3) |
| 06:27:49 | → | nyd joins (~nyd@unaffiliated/elysian) |
| 06:28:49 | × | rmk236 quits (~lcampos@2a02:908:3616:b100:ad41:f5e6:8b3a:bfc3) (Remote host closed the connection) |
| 06:30:54 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 06:31:43 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:32:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 06:46:05 | × | ransom quits (~c4264035@70-59-22-250.hlrn.qwest.net) (Ping timeout: 240 seconds) |
| 06:47:08 | → | nineonin_ joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 06:47:53 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 06:48:06 | → | adamwespiser joins (~adamwespi@209.6.43.158) |
| 06:50:25 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds) |
| 06:52:13 | → | ransom joins (~c4264035@2a09:bac0:72::82f:c34) |
| 06:52:21 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Client Quit) |
| 06:52:22 | × | adamwespiser quits (~adamwespi@209.6.43.158) (Ping timeout: 246 seconds) |
| 06:53:37 | × | phasespace quits (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 264 seconds) |
| 06:56:35 | × | Jd007 quits (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
| 07:01:01 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 07:03:49 | × | thunderrd quits (~thunderrd@183.182.111.131) (Ping timeout: 264 seconds) |
| 07:04:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:05:19 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 07:05:38 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:ce60) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 07:10:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 07:12:34 | × | dirediresalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 07:12:43 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 07:14:15 | → | ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net) |
| 07:14:30 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 07:17:45 | → | thunderrd joins (~thunderrd@183.182.115.136) |
| 07:17:59 | <jared-w> | GHC 8.8.4 is p'screwed on windows. Ideally you should be using GHC 8.10.3 https://www.stackage.org/nightly-2021-01-05 |
| 07:18:33 | × | ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 256 seconds) |
| 07:18:34 | → | phasespace joins (~sar@80-89-47-117.inet.signal.no) |
| 07:18:58 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 07:19:28 | <jared-w> | Try running `stack --resolver nightly-2021-01-05 ghci` |
| 07:19:49 | → | graf_blutwurst joins (~user@2001:171b:226e:adc0:fc0a:8b21:4a12:4e1f) |
| 07:22:38 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:ce60) |
| 07:23:31 | <gentauro> | jared-w: ideally? how about no |
| 07:23:44 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:ce60) (Client Quit) |
| 07:23:46 | <gentauro> | people should be using the latest LTS |
| 07:23:57 | <jared-w> | You're right, "ideally" is a bad choice of words |
| 07:24:14 | <gentauro> | nightly should just be used by people that want to help find issues |
| 07:24:49 | × | emptyflask quits (~jon@136.49.71.178) (Ping timeout: 264 seconds) |
| 07:25:10 | → | emptyflask joins (~jon@136.49.71.178) |
| 07:25:18 | <jared-w> | That said, the entire GHC 8.8 series has a fairly persistent set of issues for windows support. So normally I'd say use the latest LTS, but given that MrMobius is on Windows, that's not going to pan out well for them |
| 07:25:54 | <jared-w> | (and nightly is pretty harmless if you're just trying to get '2+2' working) |
| 07:27:11 | <jared-w> | although it's not as broken as GHC 8.10.2 was for windows :) https://www.stackage.org/blog/2020/08/ghc-8-10-2-windows-workaround |
| 07:27:16 | <gentauro> | jared-w: I have no exp with Haskell on Windows |
| 07:27:31 | <gentauro> | but I would still think that using nightly could only make things worse? |
| 07:27:49 | <gentauro> | as mentioned before all issues that could appear would make the UX less pleasant |
| 07:27:55 | <gentauro> | (thant it already is?) |
| 07:28:11 | <gentauro> | maybe people on Windows should just use Haskell with the WSL |
| 07:28:52 | <jared-w> | The sole purpose of the nightly here is to get access to the ghc 8.10.3 compiler. A beginner isn't going to try and use a nightly stackage with 47 libraries + GHC plugins and weird esoteric config setups, they usually just want to try a few hello world examples and use the prelude. Nightly is fine for that (and honestly fine for a lot of other things too) |
| 07:30:02 | × | emptyflask quits (~jon@136.49.71.178) (Ping timeout: 256 seconds) |
| 07:32:01 | <gentauro> | a beginner should have a pleasent experience when trying a new language. The `bad-old-days` with the `cabal-hell` are over. We should never revert to that again (cabal-hell was the reason I didn't spend that much time with Haskell during my uni years) |
| 07:32:25 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 07:32:48 | → | Boomerang joins (~Boomerang@2a05:f6c7:2179:0:8da5:2e46:f1e1:ab48) |
| 07:32:54 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 07:33:35 | <jared-w> | people on windows should use chocolatey if possible. It makes a lot of things easier and Tamar puts a *lot* of work into smoothing over UI/UX issues with it. https://hub.zhox.com/posts/introducing-haskell-dev/ (although a bit ironically, `haskell-dev` isn't really maintained much and you should just use `choco install ghc` and call it a day; it'll work much more reliably) |
| 07:36:24 | <jared-w> | gentauro: right, which is why I'm a bit puzzled at the suggestion to use the LTS of stack instead of GHC 8.10.3 which is more stable and usable for windows users. Larger and more consistent package-set compatibility doesn't make much sense if you can't get 2+2 to work in a repl |
| 07:37:40 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:ce60) |
| 07:38:42 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:ce60) (Client Quit) |
| 07:41:29 | <gentauro> | like I say, I can't provide any specific input with regard of Windows 10 since I have never done any Haskell dev there. My comments were just on a high-level |
| 07:43:04 | × | StoneToad quits (~StoneToad@104-192-232-50.ppp.storm.ca) (Ping timeout: 256 seconds) |
| 07:43:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:45:13 | × | ADG1089__ quits (~aditya@223.236.177.109) (Ping timeout: 264 seconds) |
| 07:46:53 | → | dandels joins (~dandels@unaffiliated/dandels) |
| 07:48:35 | → | StoneToad joins (~StoneToad@104-192-232-4.ppp.storm.ca) |
| 07:55:15 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 07:59:23 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
| 08:00:03 | → | adamwespiser joins (~adamwespi@209.6.43.158) |
| 08:01:44 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:12e2:ad75:1255:fdff:5733) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:04:05 | × | adamwespiser quits (~adamwespi@209.6.43.158) (Ping timeout: 240 seconds) |
| 08:06:47 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:15:43 | × | ps-auxw quits (~arneb@p548d571d.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 08:17:07 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:ec23:2fba:6a47:f771) (Remote host closed the connection) |
| 08:17:38 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:ec23:2fba:6a47:f771) |
| 08:17:46 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 08:18:53 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:ce60) |
| 08:19:56 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:ce60) (Client Quit) |
| 08:20:36 | × | eager_lambda quits (~gdrvnl@cpe-76-94-36-134.socal.res.rr.com) (Ping timeout: 240 seconds) |
| 08:21:22 | → | ps-auxw joins (~arneb@p548c6e54.dip0.t-ipconnect.de) |
| 08:22:14 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:ec23:2fba:6a47:f771) (Ping timeout: 264 seconds) |
| 08:24:43 | → | eager_lambda joins (~gdrvnl@cpe-76-94-36-134.socal.res.rr.com) |
| 08:27:59 | × | plutoniix quits (~q@184.82.196.105) (Quit: Leaving) |
| 08:30:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:33:11 | → | plutoniix joins (~q@184.82.196.105) |
| 08:34:00 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:ce60) |
| 08:34:14 | × | argento quits (~argent0@168.227.96.26) (Remote host closed the connection) |
| 08:34:55 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 08:37:01 | × | StoneToad quits (~StoneToad@104-192-232-4.ppp.storm.ca) (Ping timeout: 246 seconds) |
| 08:38:11 | → | adamwespiser joins (~adamwespi@209.6.43.158) |
| 08:42:37 | × | adamwespiser quits (~adamwespi@209.6.43.158) (Ping timeout: 246 seconds) |
| 08:42:48 | × | nineonin_ quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 08:45:12 | → | chele joins (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
| 08:46:31 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 08:48:59 | <DigitalKiwi> | who is this person that's taking over all of the haskell repos D: |
| 08:50:30 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:ce60) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 08:50:45 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds) |
| 08:50:49 | <DigitalKiwi> | https://mostlyabsurd.com/files/2021-01-06-085019_1088x206_scrot.png |
| 08:51:55 | <dminuoso> | DigitalKiwi: "recipe" what is this from? |
| 08:52:55 | <DigitalKiwi> | is this haskells Event-Stream incident D: |
| 08:53:07 | <DigitalKiwi> | doom-emacs |
| 08:53:28 | <dminuoso> | That seems like a doom-emacs problem? |
| 08:54:11 | <DigitalKiwi> | i mean it'd be more of a problem if it just changed it without asking me :P |
| 08:54:40 | → | lordyod joins (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net) |
| 08:55:00 | → | olban joins (~olban@213.152.162.154) |
| 08:55:28 | DigitalKiwi | wonders who even has lpaste.com domain anymore |
| 08:57:04 | × | hwabyong quits (~hwabyong@ec2-3-221-194-167.compute-1.amazonaws.com) (Ping timeout: 260 seconds) |
| 08:57:35 | <DigitalKiwi> | How to proceed? (1, 2, 3, 4, 5) 4 |
| 08:57:36 | <DigitalKiwi> | Really delete remote "origin"? (y or n) y |
| 08:57:37 | <DigitalKiwi> | rip |
| 09:05:43 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 246 seconds) |
| 09:11:51 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:ce60) |
| 09:12:13 | × | dandels quits (~dandels@unaffiliated/dandels) (Ping timeout: 264 seconds) |
| 09:12:45 | <tomsmeding> | lpaste.com seems to be for sale DigitalKiwi |
| 09:12:58 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:ce60) (Client Quit) |
| 09:13:10 | <tomsmeding> | if you're ready to plunk down $5.5k it's yours :p |
| 09:13:15 | <DigitalKiwi> | oh |
| 09:13:49 | → | hwabyong joins (~hwabyong@ec2-3-221-194-167.compute-1.amazonaws.com) |
| 09:14:03 | → | ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net) |
| 09:14:51 | → | LKoen joins (~LKoen@174.175.9.109.rev.sfr.net) |
| 09:15:06 | → | Deide joins (~Deide@217.155.19.23) |
| 09:15:24 | → | kuribas joins (~user@ptr-25vy0i7d7aymgmplx2i.18120a2.ip6.access.telenet.be) |
| 09:16:31 | <DigitalKiwi> | does chris done still have it i tried getting ahold of him when he said he wanted to get rid of it and wanted someone to take it over... |
| 09:17:12 | <DigitalKiwi> | pastebins are kind of my thing i've made 4 of them :| |
| 09:17:22 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 09:17:24 | <tomsmeding> | probably if godaddy offers the domain for sale, it's not in Chris' posession anymore |
| 09:17:35 | <tomsmeding> | *possession |
| 09:18:27 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 09:18:49 | × | ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 264 seconds) |
| 09:19:13 | × | mapperr quits (~mapperr@vmi389916.contaboserver.net) (Remote host closed the connection) |
| 09:19:51 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 09:20:17 | → | mapperr joins (~mapperr@vmi389916.contaboserver.net) |
| 09:20:28 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 09:20:38 | <tomsmeding> | DigitalKiwi: what did the 'l' stand for in lpaste |
| 09:21:11 | <DigitalKiwi> | it stood for i love paste |
| 09:23:54 | <DigitalKiwi> | lambda i think |
| 09:24:27 | <DigitalKiwi> | also known as the haskell logo |
| 09:24:37 | <merijn> | We used to have hpaste, but that domain got lost |
| 09:24:48 | <merijn> | So lpaste was registered as new domain for it |
| 09:25:20 | <DigitalKiwi> | and there are still clients on hackage that point to them heh |
| 09:25:25 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 264 seconds) |
| 09:26:14 | <idnar> | @type \f -> fmap (fmap f) |
| 09:26:16 | <lambdabot> | (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) |
| 09:27:00 | <idnar> | @hoogle (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) |
| 09:27:01 | <lambdabot> | Protolude (<<$>>) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) |
| 09:27:01 | <lambdabot> | Protolude.Functor (<<$>>) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) |
| 09:27:01 | <lambdabot> | Relude.Functor.Fmap (<<$>>) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) |
| 09:27:48 | <DigitalKiwi> | my first paste client was luapaste and lpaste was haskell and now my latest paste client is haskell... |
| 09:28:30 | <kuribas> | merijn: I just figured that you don't need to use typeclasses for GADT parsing. You can just make a different parser for each (polymorphic) type. |
| 09:28:50 | <kuribas> | merijn: then you don't need to make an instance for every type. |
| 09:28:56 | <kuribas> | just for the types in the GADT :) |
| 09:29:35 | <idnar> | @type \f g x -> (f x, g x) |
| 09:29:37 | <lambdabot> | (t -> a) -> (t -> b) -> t -> (a, b) |
| 09:30:01 | <idnar> | @hoogle (t -> a) -> (t -> b) -> t -> (a, b) |
| 09:30:04 | <lambdabot> | Data.Tuple.Extra (&&&) :: (a -> b) -> (a -> c) -> a -> (b, c) |
| 09:30:04 | <lambdabot> | Extra (&&&) :: (a -> b) -> (a -> c) -> a -> (b, c) |
| 09:30:04 | <lambdabot> | Control.Wire.Core (&&&!) :: (a -> b) -> (a -> c) -> (a -> (b, c)) |
| 09:30:21 | <idnar> | ah |
| 09:33:20 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 09:34:31 | × | pjb quits (~t@2a01cb04063ec500d400c5fa56f501d7.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 09:35:33 | × | xff0x quits (~fox@2001:1a81:52e0:100:232f:c24f:d201:6316) (Ping timeout: 260 seconds) |
| 09:36:24 | → | xff0x joins (~fox@2001:1a81:52e0:100:91d9:e205:a56c:7d48) |
| 09:37:00 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-flblofqkdcnkmtsc) (Quit: Connection closed for inactivity) |
| 09:39:09 | <kuribas> | hmm, but then I need to specialize each polymorphic parser... |
| 09:43:05 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 09:47:28 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Remote host closed the connection) |
| 09:52:16 | → | L29Ah joins (~L29Ah@unaffiliated/l29ah) |
| 09:52:21 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection) |
| 09:55:45 | × | dh_ quits (dh@bsd.ee) (Quit: "Fhtagn-Nagh Yog Sothoth") |
| 09:55:58 | → | dh joins (dh@bsd.ee) |
| 09:58:46 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 09:59:26 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 09:59:51 | <kuribas> | merijn: I think if I use this solution, I would make some TH to automate most of it. |
| 10:00:17 | → | nucranium joins (~nucranium@2a02:8010:6173:0:24ec:3ce1:39cf:bba2) |
| 10:00:53 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
| 10:01:10 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 10:02:17 | tomsmeding | shudders |
| 10:03:44 | × | MidAutumnHotaru quits (~MidAutumn@154.91.197.93) (Quit: Quit 啾) |
| 10:04:03 | → | MidAutumnHotaru joins (~MidAutumn@154.91.197.93) |
| 10:04:06 | → | jmchael joins (~jmchael@81.174.205.210) |
| 10:05:52 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
| 10:08:03 | → | mirrorbird joins (~psutcliff@2a00:801:42b:8314:3772:eb7f:91f1:698c) |
| 10:08:14 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:12e2:ad75:1255:fdff:5733) |
| 10:17:11 | × | mirrorbird quits (~psutcliff@2a00:801:42b:8314:3772:eb7f:91f1:698c) (Quit: Leaving) |
| 10:18:05 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 10:19:45 | → | ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net) |
| 10:19:58 | × | LKoen quits (~LKoen@174.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 10:23:38 | × | MidAutumnHotaru quits (~MidAutumn@154.91.197.93) (Changing host) |
| 10:23:38 | → | MidAutumnHotaru joins (~MidAutumn@unaffiliated/midautumnhotaru) |
| 10:24:07 | × | ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 246 seconds) |
| 10:25:07 | × | nyd quits (~nyd@unaffiliated/elysian) (Ping timeout: 272 seconds) |
| 10:26:38 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 10:26:47 | → | nyd joins (~nyd@unaffiliated/elysian) |
| 10:33:34 | → | knupfer joins (~Thunderbi@200116b824b6e0005ccc25fffe64feee.dip.versatel-1u1.de) |
| 10:35:58 | × | knupfer quits (~Thunderbi@200116b824b6e0005ccc25fffe64feee.dip.versatel-1u1.de) (Remote host closed the connection) |
| 10:36:00 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 10:36:07 | → | knupfer joins (~Thunderbi@200116b824b6e0000cca6c8e98481b40.dip.versatel-1u1.de) |
| 10:36:31 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 10:38:44 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 10:39:28 | → | Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi) |
| 10:40:13 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds) |
| 10:47:53 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 10:49:07 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 10:49:25 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
| 10:51:29 | × | sgibber2018 quits (~arch-gibb@208.85.237.144) (Quit: WeeChat 3.0) |
| 10:51:38 | <kuribas> | tomsmeding: hmm, I was just thinking how it makes more sense to store the type together with the expression. |
| 10:51:58 | <kuribas> | tomsmeding: so to serialize (TypeOf a, Expr a) |
| 10:52:52 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Ping timeout: 260 seconds) |
| 10:52:53 | <kuribas> | tomsmeding: that solves the problem of backtracking. |
| 10:53:30 | <kuribas> | and actually makes more sense. Because storing an polymorphic expression is not that useful, at least not for what I need it. |
| 10:53:39 | → | dandart joins (~Thunderbi@home.dandart.co.uk) |
| 10:55:15 | × | ADG1089__ quits (~aditya@223.236.177.109) (Remote host closed the connection) |
| 10:55:37 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 10:55:39 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 10:56:00 | → | fendor joins (~fendor@91.141.3.164.wireless.dyn.drei.com) |
| 10:56:23 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 10:56:25 | <kuribas> | So basically data SomeExpr where SomeExpr :: TypeOf a -> Expr a -> SomeExpr |
| 11:00:13 | → | adamwespiser joins (~adamwespi@209.6.43.158) |
| 11:00:22 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 11:00:42 | → | adamwesp_ joins (~adamwespi@107.181.19.30) |
| 11:00:43 | × | ADG1089__ quits (~aditya@223.236.177.109) (Remote host closed the connection) |
| 11:01:46 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 11:02:15 | → | Kenshi joins (2eee1718@46.238.23.24) |
| 11:03:30 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 11:03:57 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds) |
| 11:04:23 | × | daGrevis quits (~daGrevis@unaffiliated/dagrevis) (Read error: Connection reset by peer) |
| 11:04:43 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
| 11:04:49 | × | adamwespiser quits (~adamwespi@209.6.43.158) (Ping timeout: 260 seconds) |
| 11:07:07 | × | knupfer quits (~Thunderbi@200116b824b6e0000cca6c8e98481b40.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 11:07:10 | → | daGrevis joins (~daGrevis@unaffiliated/dagrevis) |
| 11:08:18 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 11:09:38 | → | ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net) |
| 11:13:46 | <tomsmeding> | kuribas: if you use a generic Some datatype, e.g. the one in https://hackage.haskell.org/package/some, you can do Some (Product TypeOf Expr), where Product is from Data.Functor.Product |
| 11:14:08 | <tomsmeding> | not saying that's better though :p |
| 11:14:37 | × | ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 264 seconds) |
| 11:14:45 | <kuribas> | tomsmeding: but that doesn't store the output type. |
| 11:14:46 | <tomsmeding> | but yes, if it makes sense it's probably easier to store the type with it |
| 11:14:59 | <tomsmeding> | hm? |
| 11:15:05 | <tomsmeding> | it's equivalent to your SomeExpr |
| 11:15:37 | <kuribas> | tomsmeding: no, because my SomeExpr stores the type |
| 11:15:58 | <tomsmeding> | data Product f g a = Product (f a) (g a) |
| 11:16:13 | <tomsmeding> | hence Product TypeOf Expr a = Product (TypeOf a) (Expr a) |
| 11:16:26 | <kuribas> | ah I see |
| 11:16:26 | <tomsmeding> | it's equivalent to your SomeExpr, I don't see the difference? |
| 11:16:52 | <kuribas> | yes, with Product it is isomorphic |
| 11:17:04 | <tomsmeding> | oh sorry the data constructor is Pair, not Product |
| 11:17:09 | <kuribas> | but what does that give me over defining my own? |
| 11:17:14 | <tomsmeding> | nothing :) |
| 11:17:34 | <tomsmeding> | well, one custom datatype less |
| 11:17:39 | <tomsmeding> | but a custom datatype might be useful too |
| 11:17:47 | <tomsmeding> | so 🤷 |
| 11:18:21 | <kuribas> | one less custom datatype, one more package dependency :-P |
| 11:18:26 | <tomsmeding> | very very true |
| 11:18:53 | <tomsmeding> | also, storing the output type solves the backtracking for your AST, since every argument type is fully determined by the output type for your constructors |
| 11:19:10 | <tomsmeding> | as soon as you'd add a constructor for which that doesn't hold, the backtracking is back |
| 11:19:42 | <kuribas> | indeed :) |
| 11:20:30 | × | maralorn quits (maralornma@gateway/shell/matrix.org/x-wfwnvstmnifltoqx) (Quit: Bridge terminating on SIGTERM) |
| 11:20:30 | × | jesser[m] quits (jessermatr@gateway/shell/matrix.org/x-fzvpwsyxxfsxfljc) (Quit: Bridge terminating on SIGTERM) |
| 11:20:30 | × | alexfmpe quits (alexfmpema@gateway/shell/matrix.org/x-gowqrzcegnrjuszh) (Quit: Bridge terminating on SIGTERM) |
| 11:20:30 | × | Ericson2314 quits (ericson231@gateway/shell/matrix.org/x-gsevokzxekchjacg) (Quit: Bridge terminating on SIGTERM) |
| 11:20:30 | × | domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Quit: Bridge terminating on SIGTERM) |
| 11:20:31 | × | jtojnar quits (jtojnarmat@gateway/shell/matrix.org/x-fmmuispbmxgnkzny) (Quit: Bridge terminating on SIGTERM) |
| 11:20:31 | × | rednaZ[m] quits (r3dnazmatr@gateway/shell/matrix.org/x-hfgocjsopdawrtek) (Quit: Bridge terminating on SIGTERM) |
| 11:20:31 | × | fgaz quits (fgazmatrix@gateway/shell/matrix.org/x-yxipcpeduqjuvcow) (Quit: Bridge terminating on SIGTERM) |
| 11:20:32 | × | dyniec[m] quits (dyniecmatr@gateway/shell/matrix.org/x-qfhwjklxapmkgusb) (Quit: Bridge terminating on SIGTERM) |
| 11:20:32 | × | hsiktas[m] quits (hsiktasmat@gateway/shell/matrix.org/x-glefifefdwscjcqe) (Quit: Bridge terminating on SIGTERM) |
| 11:20:32 | × | doct0rhu[m] quits (doct0rhumo@gateway/shell/matrix.org/x-sarufxwodykorttc) (Quit: Bridge terminating on SIGTERM) |
| 11:20:32 | × | ThaEwat quits (thaewraptm@gateway/shell/matrix.org/x-ufbnzjraelhohfix) (Quit: Bridge terminating on SIGTERM) |
| 11:20:32 | × | jkaye[m] quits (jkayematri@gateway/shell/matrix.org/x-mmksapnwkzwrlfaf) (Quit: Bridge terminating on SIGTERM) |
| 11:20:33 | × | pqwy[m] quits (pqwymatrix@gateway/shell/matrix.org/x-eixrfqgyidlvnkll) (Quit: Bridge terminating on SIGTERM) |
| 11:20:33 | × | noIOBeforeBedtim quits (dissatisfi@gateway/shell/matrix.org/x-cbrqqmkjyuflpaya) (Quit: Bridge terminating on SIGTERM) |
| 11:20:33 | × | PotatoHatsue quits (berbermanp@gateway/shell/matrix.org/x-zegdpocllywoosgz) (Quit: Bridge terminating on SIGTERM) |
| 11:20:34 | × | cnmne[m] quits (cnmnematri@gateway/shell/matrix.org/x-hcmqjrvmyelkqweq) (Quit: Bridge terminating on SIGTERM) |
| 11:20:34 | × | theduke quits (thedukem1@gateway/shell/matrix.org/x-phrgqvuukcgbupcm) (Quit: Bridge terminating on SIGTERM) |
| 11:20:34 | × | berberman[T] quits (berberma4@gateway/shell/matrix.org/x-hsuypygvacyqzwmq) (Quit: Bridge terminating on SIGTERM) |
| 11:20:35 | × | jeffcasavant[m] quits (jeffcasava@gateway/shell/matrix.org/x-nikrypbvxnsoxboc) (Quit: Bridge terminating on SIGTERM) |
| 11:20:35 | × | michaelpj quits (michaelpjm@gateway/shell/matrix.org/x-mfdqiskmtojjlmpd) (Quit: Bridge terminating on SIGTERM) |
| 11:20:35 | × | kadoban quits (kadobanmat@gateway/shell/matrix.org/x-rcjrqnbtkevnhgtr) (Quit: Bridge terminating on SIGTERM) |
| 11:20:35 | × | Poscat[m] quits (poscatmatr@gateway/shell/matrix.org/x-bvzvvoefeynvfsar) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | sm[m] quits (simonmicma@gateway/shell/matrix.org/x-wqdqihhkkwalfrui) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | agentofuser quits (agentofuse@gateway/shell/matrix.org/x-dufldhasjoocycnn) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | bsima[m] quits (bensimatim@gateway/shell/matrix.org/x-gdhisogubvluiqlm) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | majjoha quits (majjohamat@gateway/shell/matrix.org/x-nfknmskoomgvvhht) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | drozdziak1 quits (drozdziak1@gateway/shell/matrix.org/x-kopfdlgfyhfmispl) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | VarikValefor[m] quits (varikvalef@gateway/shell/matrix.org/x-fktkvdfjumtghkwz) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | stalactite[m] quits (stalactite@gateway/shell/matrix.org/x-cboftgeftibsawca) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | Hatsue[m] quits (berbermanm@gateway/shell/matrix.org/x-rvoesmgeaopbcbkh) (Quit: Bridge terminating on SIGTERM) |
| 11:20:36 | × | psydruid quits (psydruidma@gateway/shell/matrix.org/x-strapbsmwdglzvet) (Quit: Bridge terminating on SIGTERM) |
| 11:20:37 | × | plumenator[m] quits (plumenator@gateway/shell/matrix.org/x-wqtlrogjrykbhyan) (Quit: Bridge terminating on SIGTERM) |
| 11:20:37 | × | MrMuffles[m] quits (mrmufflesm@gateway/shell/matrix.org/x-xyejpsqzvzaqmmkc) (Quit: Bridge terminating on SIGTERM) |
| 11:20:37 | × | metamod[m] quits (metamodmat@gateway/shell/matrix.org/x-lzmujfsacobwjbwo) (Quit: Bridge terminating on SIGTERM) |
| 11:20:40 | × | johnnyboy[m] quits (gifumatrix@gateway/shell/matrix.org/x-mpuodigaaerwmayk) (Quit: Bridge terminating on SIGTERM) |
| 11:20:40 | × | Lurkki[m] quits (lurkkipriv@gateway/shell/matrix.org/x-djvldaecobwrcdeg) (Quit: Bridge terminating on SIGTERM) |
| 11:20:41 | × | falling-edge[m] quits (falling-ed@gateway/shell/matrix.org/x-rfbansvrujteeerw) (Quit: Bridge terminating on SIGTERM) |
| 11:20:41 | × | siraben quits (sirabenmat@gateway/shell/matrix.org/x-dkjvchpaxbrsnvrk) (Quit: Bridge terminating on SIGTERM) |
| 11:20:41 | × | Noughtmare[m] quits (naughtmare@gateway/shell/matrix.org/x-ctsspavkhlmrbjtt) (Quit: Bridge terminating on SIGTERM) |
| 11:20:41 | × | floatingpoint[m] quits (floating5@gateway/shell/matrix.org/x-zlmdmugtshzmdqro) (Quit: Bridge terminating on SIGTERM) |
| 11:20:41 | × | Vanilla[m] quits (danielm_14@gateway/shell/matrix.org/x-dgeqldxyrkfpeufk) (Quit: Bridge terminating on SIGTERM) |
| 11:20:41 | × | Lurkki[m]1 quits (lurkkifene@gateway/shell/matrix.org/x-jbjjhqmxlbixvnly) (Quit: Bridge terminating on SIGTERM) |
| 11:20:41 | × | itai33[m] quits (itai33matr@gateway/shell/matrix.org/x-klwkmdlkmfqsikle) (Quit: Bridge terminating on SIGTERM) |
| 11:20:41 | × | lnxw37d4 quits (lnxw37d4ma@gateway/shell/matrix.org/x-cfpajotnlvpvilyo) (Quit: Bridge terminating on SIGTERM) |
| 11:20:43 | × | lambdaclan quits (lambdaclan@gateway/shell/matrix.org/x-uzlhyhsfgqzaukhe) (Quit: Bridge terminating on SIGTERM) |
| 11:20:44 | × | rab24ack[m] quits (rab24ackma@gateway/shell/matrix.org/x-unlxosvvhmxtsapj) (Quit: Bridge terminating on SIGTERM) |
| 11:20:45 | × | Wraul[m] quits (wraulmatri@gateway/shell/matrix.org/x-bchiszgwyekwoten) (Quit: Bridge terminating on SIGTERM) |
| 11:21:07 | × | unclechu quits (unclechuma@gateway/shell/matrix.org/x-twjgulyebrjbbbcd) (Quit: Bridge terminating on SIGTERM) |
| 11:21:07 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Quit: andreas303) |
| 11:21:09 | × | Hanma[m] quits (hanmamatri@gateway/shell/matrix.org/x-huiiddwybeabvfvf) (Quit: Bridge terminating on SIGTERM) |
| 11:21:09 | × | psamim quits (samimpmatr@gateway/shell/matrix.org/x-gsdaohmlsisctzxu) (Quit: Bridge terminating on SIGTERM) |
| 11:21:09 | × | materialfuture[m quits (materialfu@gateway/shell/matrix.org/x-cwhzlrxokybvzeoj) (Quit: Bridge terminating on SIGTERM) |
| 11:21:09 | × | rawles quits (~r@unaffiliated/rawles) (Excess Flood) |
| 11:21:09 | × | srid quits (sridmatrix@gateway/shell/matrix.org/x-bgcumtwxpughvykl) (Quit: Bridge terminating on SIGTERM) |
| 11:21:17 | → | rawles joins (~r@unaffiliated/rawles) |
| 11:22:03 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 11:22:25 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:ce60) |
| 11:23:16 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds) |
| 11:23:31 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:ce60) (Client Quit) |
| 11:29:43 | <kuribas> | I also see why using an ADT for an AST is not very useful. |
| 11:30:07 | → | Ericson2314 joins (ericson231@gateway/shell/matrix.org/x-eycjxzyzybmehehh) |
| 11:30:11 | <kuribas> | I mean for storing polymorphic expressions. |
| 11:30:25 | → | dabr joins (~daniel@p50825a42.dip0.t-ipconnect.de) |
| 11:31:35 | <gentauro> | kuribas: how would store an AST if it's not in an ADT? |
| 11:32:00 | <kuribas> | gentauro: sorry, I mean GADT |
| 11:32:03 | <kuribas> | ADT is fine |
| 11:32:35 | <gentauro> | kuribas: fair enough :) |
| 11:33:00 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 11:34:06 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds) |
| 11:34:41 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 11:37:40 | → | Alleria joins (~textual@mskresolve-a.mskcc.org) |
| 11:37:44 | × | Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
| 11:38:04 | Alleria | is now known as Guest20273 |
| 11:38:47 | × | Kenshi quits (2eee1718@46.238.23.24) (Remote host closed the connection) |
| 11:38:53 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 11:38:57 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 246 seconds) |
| 11:39:51 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:dc2c:66b9:92e6:b921) |
| 11:41:28 | × | nyd quits (~nyd@unaffiliated/elysian) (Ping timeout: 246 seconds) |
| 11:42:32 | <lortabac> | kuribas: SomeExpr is almost identical to Data.Dynamic.Dynamic |
| 11:44:07 | <kuribas> | lortabac: but a TypeRef cannot be stored, no? |
| 11:44:29 | <kuribas> | TypeRep |
| 11:45:00 | → | jedws joins (~jedws@121.209.189.201) |
| 11:45:20 | <lortabac> | good question |
| 11:47:42 | → | noop_noob joins (31e4c3d3@49.228.195.211) |
| 11:48:41 | → | ulidtko|k joins (~ulidtko@193.111.48.79) |
| 11:49:13 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 11:50:17 | → | Noughtmare[m] joins (naughtmare@gateway/shell/matrix.org/x-elhpevndlmaavbwt) |
| 11:50:17 | → | alexfmpe joins (alexfmpema@gateway/shell/matrix.org/x-byegcjtdnwjrjstz) |
| 11:50:17 | → | dyniec[m] joins (dyniecmatr@gateway/shell/matrix.org/x-dntagevwjtsssopc) |
| 11:50:17 | → | domenkozar[m] joins (domenkozar@NixOS/user/domenkozar) |
| 11:50:17 | → | fgaz joins (fgazmatrix@gateway/shell/matrix.org/x-ilhbhnqcmreoygeu) |
| 11:50:17 | → | hsiktas[m] joins (hsiktasmat@gateway/shell/matrix.org/x-whwokcjaloumigax) |
| 11:50:17 | → | johnnyboy[m] joins (gifumatrix@gateway/shell/matrix.org/x-ddtyjxliegbymllk) |
| 11:50:18 | → | jesser[m] joins (jessermatr@gateway/shell/matrix.org/x-ztgnpizlmfjqozxc) |
| 11:50:18 | → | jkaye[m] joins (jkayematri@gateway/shell/matrix.org/x-ygixxwauoonufenh) |
| 11:50:18 | → | jtojnar joins (jtojnarmat@gateway/shell/matrix.org/x-bqcuakapvvkhqvyh) |
| 11:50:18 | → | kadoban joins (kadobanmat@gateway/shell/matrix.org/x-tvbkdchltyihqohm) |
| 11:50:18 | → | lambdaclan joins (lambdaclan@gateway/shell/matrix.org/x-qnuenoqqycybdvsq) |
| 11:50:18 | → | lnxw37d4 joins (lnxw37d4ma@gateway/shell/matrix.org/x-zcpsgkhlxjrtufan) |
| 11:50:18 | → | psydruid joins (psydruidma@gateway/shell/matrix.org/x-sjzobmayhhdrnyrp) |
| 11:50:18 | → | rednaZ[m] joins (r3dnazmatr@gateway/shell/matrix.org/x-psbwjgmwhnbfxpvd) |
| 11:50:18 | → | sm[m] joins (simonmicma@gateway/shell/matrix.org/x-erpehckoekyivhyz) |
| 11:50:18 | → | siraben joins (sirabenmat@gateway/shell/matrix.org/x-ompxpchgmuwlofwe) |
| 11:50:18 | → | psamim joins (samimpmatr@gateway/shell/matrix.org/x-zcokmttvseaiorus) |
| 11:50:18 | → | srid joins (sridmatrix@gateway/shell/matrix.org/x-kurgtyubfeavcpuk) |
| 11:50:18 | → | SlackIntegration joins (slackbotma@gateway/shell/matrix.org/x-fhaqgxbsmcjmdpgv) |
| 11:50:18 | → | ThaEwat joins (thaewraptm@gateway/shell/matrix.org/x-zzghdaahzrfpgpjd) |
| 11:50:18 | → | theduke joins (thedukem1@gateway/shell/matrix.org/x-hegbybueqtkglolp) |
| 11:50:18 | → | unclechu joins (unclechuma@gateway/shell/matrix.org/x-hiknotexkoisqxxl) |
| 11:50:18 | → | rab24ack[m] joins (rab24ackma@gateway/shell/matrix.org/x-iypkxumuyyhmektk) |
| 11:50:19 | → | pqwy[m] joins (pqwymatrix@gateway/shell/matrix.org/x-yrqbzcfvvgvhihqp) |
| 11:50:19 | → | plumenator[m] joins (plumenator@gateway/shell/matrix.org/x-lvykfzzrvmqptvzq) |
| 11:50:19 | → | metamod[m] joins (metamodmat@gateway/shell/matrix.org/x-qkyweymrjkgyfpfo) |
| 11:50:19 | → | Hanma[m] joins (hanmamatri@gateway/shell/matrix.org/x-hqagbkflkardbeyb) |
| 11:50:19 | → | stalactite[m] joins (stalactite@gateway/shell/matrix.org/x-hmsdktjbvicqrdgd) |
| 11:50:19 | → | jeffcasavant[m] joins (jeffcasava@gateway/shell/matrix.org/x-jkwgveuwpobvzxsf) |
| 11:50:19 | → | Poscat[m] joins (poscatmatr@gateway/shell/matrix.org/x-vcoicgxvllexrrii) |
| 11:50:19 | → | michaelpj joins (michaelpjm@gateway/shell/matrix.org/x-ppnwgolzqhsbjxqk) |
| 11:50:19 | → | maralorn joins (maralornma@gateway/shell/matrix.org/x-ulgtlcoftthaeisp) |
| 11:50:19 | → | doct0rhu[m] joins (doct0rhumo@gateway/shell/matrix.org/x-xqcgpfxdrrdasugy) |
| 11:50:19 | → | berberman[T] joins (berberma4@gateway/shell/matrix.org/x-ydntbnxvrquqngkp) |
| 11:50:20 | → | Hatsue[m] joins (berbermanm@gateway/shell/matrix.org/x-uluzliuxxqhqsyle) |
| 11:50:20 | → | majjoha joins (majjohamat@gateway/shell/matrix.org/x-jifgtzsbvkjppkpw) |
| 11:50:20 | → | drozdziak1 joins (drozdziak1@gateway/shell/matrix.org/x-nhtpbwaweoyyfwgx) |
| 11:50:20 | → | PotatoHatsue joins (berbermanp@gateway/shell/matrix.org/x-qvbwsusysmmnlxwa) |
| 11:50:20 | → | falling-edge[m] joins (falling-ed@gateway/shell/matrix.org/x-pckulybifhkfiaod) |
| 11:50:20 | → | noIOBeforeBedtim joins (dissatisfi@gateway/shell/matrix.org/x-pljvxnigkfwhdutt) |
| 11:50:20 | → | cnmne[m] joins (cnmnematri@gateway/shell/matrix.org/x-sjfvuxbdraxbtjzp) |
| 11:50:20 | → | VarikValefor[m] joins (varikvalef@gateway/shell/matrix.org/x-vnnpwgfssdqwbqfu) |
| 11:50:21 | → | bsima[m] joins (bensimatim@gateway/shell/matrix.org/x-ktajiadhtjvptkuy) |
| 11:50:26 | → | MrMuffles[m] joins (mrmufflesm@gateway/shell/matrix.org/x-ocqxcgfxuorbepel) |
| 11:50:26 | → | Vanilla[m] joins (danielm14@gateway/shell/matrix.org/x-hwrkmoboegngyxlc) |
| 11:50:26 | → | itai33[m] joins (itai33matr@gateway/shell/matrix.org/x-erpojaoftljshoya) |
| 11:50:26 | → | Lurkki[m] joins (lurkkifene@gateway/shell/matrix.org/x-tqwpdpxocqfxaqic) |
| 11:50:26 | → | materialfuture[m joins (materialfu@gateway/shell/matrix.org/x-himioyqaldoiauxa) |
| 11:50:26 | → | Lurkki[m]1 joins (lurkkipriv@gateway/shell/matrix.org/x-mvwakzqqfdzfbmjr) |
| 11:50:26 | → | agentofuser joins (agentofuse@gateway/shell/matrix.org/x-haotbgmijlnmxwen) |
| 11:50:27 | → | Wraul[m] joins (wraulmatri@gateway/shell/matrix.org/x-ocrsiypemiiqameo) |
| 11:50:28 | → | floatingpoint[m] joins (floating5@gateway/shell/matrix.org/x-cjdgttiluqrdsali) |
| 11:50:55 | × | xff0x quits (~fox@2001:1a81:52e0:100:91d9:e205:a56c:7d48) (Ping timeout: 258 seconds) |
| 11:51:34 | → | xff0x joins (~fox@2001:1a81:52e0:100:99c7:97dc:c017:406) |
| 11:53:24 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Ping timeout: 240 seconds) |
| 11:54:43 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
| 11:54:55 | <noop_noob> | I have a type alias. Is there an easy way I can see all typeclass instances involving that type alias? |
| 11:55:14 | <noop_noob> | or is that a bad idea |
| 11:57:26 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 11:58:43 | <kuribas> | you cannot |
| 11:58:53 | <kuribas> | well only if the type is monomorphic |
| 11:59:25 | <kuribas> | But you cannot "see" instances, because instances are open. |
| 11:59:41 | <kuribas> | They can be defined at any time, like after your code is written. |
| 12:00:12 | → | madjestic joins (~Android@86-88-72-244.fixed.kpn.net) |
| 12:00:20 | <noop_noob> | Say, what if I want to see all instances that are in scope? |
| 12:00:29 | <noop_noob> | Or all instances that are defined in a certain package? |
| 12:01:12 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:01:12 | <lortabac> | noop_noob: you can use :instances in GHCI |
| 12:01:21 | <noop_noob> | Thx :D |
| 12:01:34 | <__monty__> | @instances Monoid |
| 12:01:36 | <lambdabot> | (), (a -> b), (a, b), All, Any, Dual a, IO a, Maybe a, Ordering, Product a, ST s a, Sum a |
| 12:02:13 | <lortabac> | noop_noob: however there is no way to distinguish a type synonym from the type it refers to |
| 12:02:21 | <noop_noob> | I'm aware, yup |
| 12:02:41 | <kuribas> | @instances [a] |
| 12:02:43 | <lambdabot> | Couldn't find class `[a]'. Try @instances-importing |
| 12:02:44 | <noop_noob> | I just wanted to have a better way of figuring out a certain library lol |
| 12:03:02 | <noop_noob> | Wait, instances goes the wrong way, doesn't it? |
| 12:03:14 | <__monty__> | Yep, that's what I tried showing. |
| 12:03:21 | <kuribas> | noop_noob: ghci :i is very useful |
| 12:04:00 | <__monty__> | Sadly @info seems to just be `id` >.< |
| 12:04:32 | <lortabac> | noop_noob: what do you mean by wrong way? |
| 12:04:55 | × | olban quits (~olban@213.152.162.154) (Ping timeout: 246 seconds) |
| 12:05:05 | <noop_noob> | @instances seems to go from the typeclass to the type. |
| 12:05:06 | <lortabac> | you can type for ex. ':instances Int' and it will show all the instances involving Int |
| 12:05:07 | <lambdabot> | Couldn't find class `seems to go from the typeclass to the type.'. Try @instances-importing |
| 12:05:21 | <noop_noob> | "unknown command ':instances'" |
| 12:05:25 | <noop_noob> | am i doing something wrong |
| 12:05:34 | <noop_noob> | I have a type, I want to know its typeclasses |
| 12:05:36 | <lortabac> | noop_noob: lambdabot is not GHCI |
| 12:05:53 | <noop_noob> | ghci told me it doesn't know what :instances is lol |
| 12:06:06 | <noop_noob> | Oh |
| 12:06:07 | <lortabac> | oh you probably have an old GHCI |
| 12:06:10 | <__monty__> | % :instances Monoid |
| 12:06:11 | <yahb> | __monty__: |
| 12:06:35 | <lortabac> | % :instances Int |
| 12:06:35 | <yahb> | lortabac: instance Eq Int -- Defined in `GHC.Classes'; instance Ord Int -- Defined in `GHC.Classes'; instance Enum Int -- Defined in `GHC.Enum'; instance Num Int -- Defined in `GHC.Num'; instance Real Int -- Defined in `GHC.Real'; instance Show Int -- Defined in `GHC.Show'; instance [safe] PrintfArg Int -- Defined in `Text.Printf'; instance Data Int -- Defined in `Data.Data'; instance Bits Int -- Defined in `Data.B |
| 12:06:53 | <lortabac> | % :instances String |
| 12:06:53 | <yahb> | lortabac: instance Eq [Char] -- Defined in `GHC.Classes'; instance Monoid [Char] -- Defined in `GHC.Base'; instance Ord [Char] -- Defined in `GHC.Classes'; instance Semigroup [Char] -- Defined in `GHC.Base'; instance Show [Char] -- Defined in `GHC.Show'; instance [safe] PrintfArg [Char] -- Defined in `Text.Printf'; instance [safe] PrintfType [Char] -- Defined in `Text.Printf'; instance Data [Char] -- Defined in `D |
| 12:07:10 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 12:07:14 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) () |
| 12:07:24 | <lortabac> | noop_noob: there is also :i |
| 12:07:28 | <noop_noob> | "GHCi, version 8.8.4" |
| 12:07:39 | <tomsmeding> | % :i Int |
| 12:07:40 | <yahb> | tomsmeding: type Int :: *; data Int = I# Int#; -- Defined in `GHC.Types'; instance Eq Int -- Defined in `GHC.Classes'; instance Ord Int -- Defined in `GHC.Classes'; instance Enum Int -- Defined in `GHC.Enum'; instance Num Int -- Defined in `GHC.Num'; instance Real Int -- Defined in `GHC.Real'; instance Show Int -- Defined in `GHC.Show'; instance [safe] PrintfArg Int -- Defined in `Text.Printf'; instance Data Int -- |
| 12:07:42 | <noop_noob> | how old is that |
| 12:07:42 | <__monty__> | Huh, why does :instances go the opposite way to @instances? |
| 12:07:52 | <__monty__> | Or does it work for both directions? |
| 12:08:20 | <tomsmeding> | noop_noob: 8.8.4 is not old, it's the currently recommended version |
| 12:08:31 | <tomsmeding> | though that will probably soon change to 8.10.something |
| 12:08:37 | <tomsmeding> | use :i :) |
| 12:08:47 | <lortabac> | sorry, by "old" I meant relative to :instances |
| 12:08:59 | <noop_noob> | lol |
| 12:09:09 | <tomsmeding> | what does :instances give over :i ? |
| 12:09:25 | <tomsmeding> | for me :i already works both ways |
| 12:09:33 | <noop_noob> | % :instances (Int -> Int) |
| 12:09:34 | <yahb> | noop_noob: instance [safe] Control.DeepSeq.NFData (Int -> Int) -- Defined in `Control.DeepSeq'; instance Ixed (Int -> Int) -- Defined in `Control.Lens.At' |
| 12:09:41 | <noop_noob> | % :i (Int -> Int) |
| 12:09:41 | <yahb> | noop_noob: ; <interactive>:1:2: error: parse error on input `Int' |
| 12:09:44 | <noop_noob> | There |
| 12:10:16 | <tomsmeding> | ah that makes sense |
| 12:11:30 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 246 seconds) |
| 12:14:27 | <noop_noob> | "Module ‘Pipes.Core’ does not export ‘pipe’" |
| 12:14:31 | <noop_noob> | Am I doing something dumb? |
| 12:14:56 | <noop_noob> | I'm just trying to "import Pipes.Core (pipe)" |
| 12:15:25 | <tomsmeding> | who tells you to use 'pipe'? |
| 12:15:37 | <noop_noob> | https://hackage.haskell.org/package/pipes-4.3.14/docs/Pipes-Core.html |
| 12:15:39 | <noop_noob> | it's here |
| 12:15:55 | <tomsmeding> | where? |
| 12:15:56 | <noop_noob> | "type Pipe a b = Proxy () a () b" |
| 12:16:02 | <noop_noob> | oh |
| 12:16:03 | <tomsmeding> | I do see Pipe |
| 12:16:04 | <noop_noob> | *facepalm* |
| 12:16:06 | <noop_noob> | uppercase |
| 12:16:06 | <tomsmeding> | :) |
| 12:16:10 | × | noop_noob quits (31e4c3d3@49.228.195.211) (Remote host closed the connection) |
| 12:16:13 | <tomsmeding> | lol bye |
| 12:17:59 | × | madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out) |
| 12:18:16 | → | madjestic joins (~Android@86-88-72-244.fixed.kpn.net) |
| 12:20:35 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 12:22:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:24:10 | → | nyd joins (~nyd@unaffiliated/elysian) |
| 12:25:31 | × | solirc quits (~solirc@185.163.110.125) (Remote host closed the connection) |
| 12:29:45 | → | mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 12:29:59 | × | brisbin quits (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) (Ping timeout: 260 seconds) |
| 12:31:27 | → | Franciman joins (~francesco@host-82-48-174-127.retail.telecomitalia.it) |
| 12:34:35 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
| 12:36:38 | → | Entertainment joins (~entertain@104.246.132.210) |
| 12:37:17 | × | matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Ping timeout: 260 seconds) |
| 12:37:34 | → | matryoshka joins (~matryoshk@pool-74-109-186-119.albyny.fios.verizon.net) |
| 12:39:37 | → | geekosaur joins (ac3a54fa@172.58.84.250) |
| 12:40:20 | → | pjb joins (~t@2a01cb04063ec500b94fa4fe14e91c99.ipv6.abo.wanadoo.fr) |
| 12:40:45 | → | Ishutin_ joins (~Ishutin@92-249-185-150.pool.digikabel.hu) |
| 12:42:17 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 12:44:17 | × | Ishutin quits (~Ishutin@80-95-69-205.pool.digikabel.hu) (Ping timeout: 260 seconds) |
| 12:45:16 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 12:45:32 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 12:48:58 | → | kyali joins (~kyali@APN-123-250-188-gprs.simobil.net) |
| 12:49:56 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 12:50:09 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds) |
| 12:53:30 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 12:54:38 | × | plutoniix quits (~q@184.82.196.105) (Quit: Leaving) |
| 12:54:38 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Ping timeout: 264 seconds) |
| 12:54:47 | × | chrpape quits (~user@2a01:4f9:c010:632d::1) (Remote host closed the connection) |
| 12:55:30 | <wz1000> | how do I decode a Bytestring to Text using the system encoding? |
| 12:55:47 | <ski> | @instances [] |
| 12:55:49 | <lambdabot> | Plugin `instances' failed with: Explict error in module Text.Regex.TDFA.String : Text.Regex.TDFA.String died: parseRegex for Text.Regex.TDFA.String failed:"class.*[].*where" (line 1, column 17): |
| 12:55:49 | <lambdabot> | unexpected end of input |
| 12:55:49 | <lambdabot> | expecting Failed to parse bracketed string or "]" |
| 12:55:49 | <lambdabot> | CallStack (from HasCallStack): |
| 12:55:49 | <lambdabot> | error, called at lib/Text/Regex/TDFA/Common.hs:29:3 in regex-tdfa-1.3.1.0-FpSHp7JyERvEeY2R0ZyRbt:Text.Regex.TDFA.Common |
| 12:55:58 | <ski> | hmm .. |
| 12:59:21 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 13:00:15 | × | kyali quits (~kyali@APN-123-250-188-gprs.simobil.net) (Ping timeout: 256 seconds) |
| 13:00:28 | <merijn> | wz1000: Use the GHC API to request the locale/encoding, then decode using that? |
| 13:00:38 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 13:00:46 | <merijn> | wz1000: Also, that is the default behaviour for Text's IO functions |
| 13:01:21 | <wz1000> | merijn: yes, but I want to decode from a bytestring, not from a file |
| 13:01:41 | <wz1000> | I guess Data.ByteString.Encoding is what I want |
| 13:02:04 | <merijn> | wz1000: https://hackage.haskell.org/package/base-4.14.1.0/docs/GHC-IO-Encoding.html#v:getLocaleEncoding |
| 13:02:22 | <merijn> | Oh, wait that's not the right thing to base to text's encode stuff, I guess |
| 13:02:53 | <wz1000> | merijn: yeah, I know about that, I just couldn't figure out how to get that to work with Data.Text.Encoding |
| 13:03:04 | <wz1000> | but https://hackage.haskell.org/package/bytestring-encoding-0.1.0.0/docs/Data-ByteString-Encoding.html seems to do what I want |
| 13:04:11 | <wz1000> | I wonder if I really need to bother with decoding if all I want to do is split on newlines |
| 13:04:21 | <merijn> | Probably not |
| 13:04:31 | <wz1000> | Maybe Data.ByteString.Char8 will be code enough |
| 13:04:34 | <wz1000> | *good |
| 13:09:53 | × | cassim- quits (~cassim_@51.194.80.91) (Ping timeout: 256 seconds) |
| 13:10:56 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 13:14:13 | → | cassim- joins (~cassim@51.194.80.91) |
| 13:22:24 | <tomsmeding> | if your encoding is ascii-compatible, that is :p |
| 13:22:35 | <tomsmeding> | which the UTF family is, I believe, but others may not be |
| 13:23:05 | <tomsmeding> | wz1000: if (big if) you envision people on a non-UTF machine using your software, Char8 won't work |
| 13:23:59 | → | dandels joins (~dandels@unaffiliated/dandels) |
| 13:24:01 | × | dabr quits (~daniel@p50825a42.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 13:24:38 | <merijn> | tomsmeding: Define ascii-compatible |
| 13:24:53 | <merijn> | Only UTF-8 is "ascii compatible" for any meaning of that term that I can think off |
| 13:24:58 | <tomsmeding> | newline is always represented using byte 10, and all 10 bytes mean a newline |
| 13:25:43 | <tomsmeding> | I _think_ UTF-16 also works for that, but I'm not sure |
| 13:26:17 | <tomsmeding> | ah no it will not of course |
| 13:26:27 | → | chalkmonster joins (~chalkmons@unaffiliated/chalkmonster) |
| 13:26:28 | <tomsmeding> | so only UTF-8 and the standard windows codepage, whatever that number was |
| 13:26:53 | <idnar> | ISO-8859-* are all ASCII supersets too |
| 13:30:37 | <pjb> | US-ASCII supersets. |
| 13:30:40 | → | Tario joins (~Tario@201.192.165.173) |
| 13:30:54 | <pjb> | Because ASCII has national variants with different characters mapped to 0-127… |
| 13:31:10 | → | carlomagno joins (~cararell@148.87.23.11) |
| 13:32:12 | × | ADG1089__ quits (~aditya@223.236.177.109) (Read error: Connection reset by peer) |
| 13:34:35 | <merijn> | pjb: Eh, no? |
| 13:34:49 | <merijn> | There is only one ASCII and it refers to values 0-127 |
| 13:35:09 | <merijn> | US-ASCII would be a weird redundancy, the A in ASCII already stands for American |
| 13:35:48 | <pjb> | american standard, not american code. |
| 13:35:50 | × | xff0x quits (~fox@2001:1a81:52e0:100:99c7:97dc:c017:406) (Ping timeout: 244 seconds) |
| 13:36:45 | → | xff0x joins (~fox@2001:1a81:52e0:100:14f6:c3b8:1702:ec9d) |
| 13:36:49 | <pjb> | and US-ASCII is the IANA assigned name for it. |
| 13:37:00 | × | cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 256 seconds) |
| 13:37:20 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:37:49 | <merijn> | The seems like pedantic nitpicking |
| 13:38:25 | <pjb> | You could still find some old files where the code for { is é and the code for } is è… |
| 13:38:26 | <merijn> | In the last two decades I've never heard anyone refer to any "other" ASCII, not even heard of one existing |
| 13:38:46 | <merijn> | pjb: Those are in the 128-255 range that is undefined by ascii to begin with |
| 13:38:56 | <pjb> | It's standardized nowadays as ISO/IEC 646: https://en.wikipedia.org/wiki/ISO/IEC_646 |
| 13:38:58 | <merijn> | Which, would be the ISO-8859 encodings idnar mentioned |
| 13:39:06 | → | brisbin joins (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) |
| 13:39:14 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 13:39:17 | <geekosaur> | enh |
| 13:39:44 | geekosaur | points to the brackets over in the nick ist, which are Scandinavian characters |
| 13:39:55 | <geekosaur> | *list |
| 13:39:56 | <merijn> | pjb: Hell, your wikipedia link even mentions ISO-8859 as superceding it :p |
| 13:40:11 | <pjb> | Of course. I'm talking about ancient things. |
| 13:40:32 | <pjb> | But my point is that the mathematical structure of the encoding systems is not a mere tree. |
| 13:41:15 | <merijn> | that seems also entirely unrelated to the original discussion? |
| 13:41:20 | <pjb> | Things are complicated. Like February 30th, which is a real date in 1712 in Sweden… |
| 13:41:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 13:42:07 | → | djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) |
| 13:45:29 | → | bitmapper_ joins (uid464869@gateway/web/irccloud.com/x-qmmrndshdhsgokli) |
| 13:46:06 | <merijn> | On a more on-topic note: Anyone got any good tricks for speeding up compilation? >.> |
| 13:46:31 | <merijn> | I'm being really bottlenecked by waiting for GHC right now :\ |
| 13:47:00 | <pjb> | Buy a newer computer with more memory and faster processor. Once I did that, my compilation time of the linux kernel fell down to 5 minutes from 12 hours! |
| 13:47:27 | <pjb> | (I don't buy new computers often). |
| 13:47:36 | <merijn> | This machine has something like 250GB RAM, I doubt memory is the issue :p |
| 13:47:55 | <pjb> | Use SSD instead of hard disks? |
| 13:48:19 | <merijn> | It's all on SSD already |
| 13:48:21 | <pjb> | use: make -j $N # to compile in parallel? |
| 13:48:47 | <merijn> | cabal doesn't work with per module parallelism, sadly |
| 13:48:54 | <pjb> | :-( |
| 13:49:07 | <merijn> | Or rather, cabal just uses "ghc --make" which doesn't support that |
| 13:49:14 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:93a5:a77a:27e2:f365) (Ping timeout: 264 seconds) |
| 13:50:24 | → | v_m_v joins (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) |
| 13:50:37 | <tomsmeding> | how wide is your module dependency graph |
| 13:50:38 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 13:51:03 | <tomsmeding> | I've been theorising that if it's wide enough, parallelising manually (e.g. using a makefile) might be faster than using ghc --make with the caching stuff |
| 13:51:10 | <tomsmeding> | but takes work |
| 13:51:32 | <tomsmeding> | merijn: compilation becomes faster if you do -fno-code |
| 13:51:55 | <merijn> | tomsmeding: Well, sure, everything is must faster if I just stop working all together! |
| 13:52:00 | <merijn> | s/must/much |
| 13:52:01 | <tomsmeding> | :D |
| 13:52:30 | <merijn> | tomsmeding: I am *not* rewriting my entire buildsystem while working on the finishing touches of my thesis >.> |
| 13:52:34 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 13:52:37 | <tomsmeding> | no? |
| 13:53:37 | → | cyphase joins (~cyphase@unaffiliated/cyphase) |
| 13:53:53 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 13:55:03 | bitmapper_ | is now known as bitmapper |
| 13:55:50 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Ping timeout: 264 seconds) |
| 13:57:25 | → | christo joins (~chris@81.96.113.213) |
| 13:57:46 | → | noop_noob joins (31e4c3d3@49.228.195.211) |
| 13:58:16 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 13:58:16 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 13:58:16 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 13:58:58 | × | v_m_v quits (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) (Remote host closed the connection) |
| 13:59:22 | → | v_m_v joins (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) |
| 14:00:30 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:12e2:ad75:1255:fdff:5733) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:01:13 | → | pera joins (~pera@unaffiliated/pera) |
| 14:01:41 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:321f:ffea:a269:44a4) |
| 14:03:24 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 14:04:14 | × | v_m_v quits (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) (Ping timeout: 264 seconds) |
| 14:04:22 | <merijn> | tomsmeding: The main problem is that I have a bunch of schema code that effectively everything depends on, so if that changes I'm hosed and absolutely everything ends up rebuilding :\ |
| 14:04:53 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:ec23:2fba:6a47:f771) |
| 14:05:07 | <merijn> | And a full clean build with -O1 is easily 5 minutes |
| 14:05:25 | <tomsmeding> | maybe maybe some NOINLINE can help, though it's variable in its efficacy |
| 14:05:51 | <merijn> | tomsmeding: There doesn't seem to be a single bad module/code, though |
| 14:05:54 | <tomsmeding> | which is an expensive way of saying "I tried it and it didn't work well" |
| 14:06:00 | <tomsmeding> | ah |
| 14:06:01 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 14:06:03 | <merijn> | It's just death by a thousand papercuts |
| 14:06:14 | <tomsmeding> | ¯\_(ツ)_/¯ |
| 14:06:26 | <merijn> | tomsmeding: I just have something like 120 modules that all take roughly the same amount of time |
| 14:06:59 | <noop_noob> | death by 120 papercuts |
| 14:10:49 | <wz1000> | I have a little problem I'm trying to outsource to #haskell: https://gist.github.com/wz1000/2bfc0ad5f41a5ee803cd2ccfcde9e1a3 |
| 14:11:20 | <wz1000> | My brain is too fried from lack of sleep to solve this nicely, but I promise any solutions will be richly rewarded |
| 14:12:27 | <wz1000> | (for some definition of "richly") |
| 14:13:57 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
| 14:14:20 | <noop_noob> | wz1000 https://en.wikipedia.org/wiki/Longest_common_subsequence_problem |
| 14:14:54 | <noop_noob> | https://www.geeksforgeeks.org/longest-common-subsequence-dp-4/ |
| 14:14:59 | <wz1000> | noop_noob: that is not it |
| 14:15:35 | <kuribas> | merijn: shouldn't we try to make whenMono part of base Data.Monoid? |
| 14:15:40 | <noop_noob> | It's probably a few more steps after computing the longest common subsequence though |
| 14:15:46 | <kuribas> | merijn: as a library proposal |
| 14:15:47 | → | dabr joins (~daniel@p50825a42.dip0.t-ipconnect.de) |
| 14:15:53 | <kuribas> | merijn: we can argue about the name :) |
| 14:16:22 | <wz1000> | noop_noob: nope, I already have the diff. |
| 14:16:29 | <noop_noob> | nvm then |
| 14:16:35 | <merijn> | kuribas: The lack of good name is what has stopped me from writing a proposal so far |
| 14:18:09 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 14:18:48 | <noop_noob> | What's the difference between `StateT something Maybe` and a `MaybeT (StateT something)`? |
| 14:18:56 | <noop_noob> | I'm kinda confused by this lol |
| 14:19:10 | × | dandels quits (~dandels@unaffiliated/dandels) (Ping timeout: 256 seconds) |
| 14:19:54 | <kuribas> | merijn: it's not like good names are a must to be in base ;-) |
| 14:20:30 | → | ph88^ joins (~ph88@2a02:8109:9e00:7e5c:f964:d8d4:1ec3:146c) |
| 14:20:35 | <tomsmeding> | @unmtl StateT s Maybe |
| 14:20:35 | <lambdabot> | err: `StateT s Maybe' is not applied to enough arguments, giving `/\A. s -> Maybe (A, s)' |
| 14:20:38 | <tomsmeding> | @unmtl StateT s Maybe a |
| 14:20:38 | <lambdabot> | s -> Maybe (a, s) |
| 14:20:44 | <tomsmeding> | @unmtl MaybeT (StateT s) a |
| 14:20:44 | <lambdabot> | err: `StateT s (Maybe a)' is not applied to enough arguments, giving `/\A. s -> Maybe a (A, s)' |
| 14:20:52 | <noop_noob> | Oh nice. |
| 14:20:57 | → | olban joins (~olban@213.152.161.85) |
| 14:21:07 | <tomsmeding> | @unmtl MaybeT (StateT s m) a |
| 14:21:08 | <lambdabot> | s -> m (Maybe a, s) |
| 14:21:13 | <tomsmeding> | there |
| 14:21:23 | <tomsmeding> | interpretation is up to you :p |
| 14:21:42 | <kuribas> | merijn: what about orMempty? |
| 14:21:45 | <noop_noob> | Oh. On error, the StateT Maybe version doesn't even give the modified state |
| 14:21:57 | <noop_noob> | wz1000, Computer LCS twice, once from the front and once from the back. You now have the LCS between all pairs of suffixes and all pairs of prefixes. |
| 14:22:34 | <kuribas> | merijn: I think whenMono is ok. Not great, but ok. |
| 14:22:57 | <kuribas> | merijn: because it is comparable to when |
| 14:22:59 | <kuribas> | :t when |
| 14:23:00 | <lambdabot> | Applicative f => Bool -> f () -> f () |
| 14:23:06 | <noop_noob> | If a certain line from file 1 can match with a certain line from file 2, then LCS of (file 1 before that line and file 2 before that line) + LCS of (file 1 after that line and file 2 after that line) + 1 = LCS of entire file |
| 14:23:13 | <noop_noob> | wz1000^ |
| 14:24:31 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:3831:a625:e216:5736) (Ping timeout: 272 seconds) |
| 14:25:12 | × | noop_noob quits (31e4c3d3@49.228.195.211) (Remote host closed the connection) |
| 14:26:03 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 14:26:17 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz) |
| 14:26:18 | <kuribas> | merijn: in fact, when is whenMono over Ap! |
| 14:27:22 | <Melanie> | :t whenMono |
| 14:27:23 | <lambdabot> | error: Variable not in scope: whenMono |
| 14:27:26 | <kuribas> | let whenMono True m = m; whenMono False _ = mempty in \b -> getAp . whenMono b . Ap |
| 14:27:34 | <kuribas> | > let whenMono True m = m; whenMono False _ = mempty in \b -> getAp . whenMono b . Ap |
| 14:27:36 | <ADG1089__> | is there a better way to write this? https://hastebin.com/uqelobunud.properties (using monad properties?) |
| 14:27:36 | <lambdabot> | error: |
| 14:27:37 | <lambdabot> | • No instance for (Typeable a0) |
| 14:27:37 | <lambdabot> | arising from a use of ‘show_M245131793820374088917039’ |
| 14:27:49 | → | arguapacha joins (uid134895@gateway/web/irccloud.com/x-mfwdshztacdbuefh) |
| 14:27:53 | <kuribas> | Melanie: it doesn't exist, that's why I'd like it in base :) |
| 14:28:10 | <ADG1089__> | I mean what if I have 3 screens and so on. |
| 14:28:16 | <Melanie> | kuribas: aha ;) |
| 14:28:26 | <Melanie> | tehre are a lot of monoid-related functions i'd like in base |
| 14:28:37 | <Melanie> | one is memptyToNothing |
| 14:28:47 | <kuribas> | :t let whenMono True m = m; whenMono False _ = mempty in \b -> getAp . whenMono b . Ap |
| 14:28:48 | <lambdabot> | forall k (f :: k -> *) (a :: k). Monoid (Ap f a) => Bool -> f a -> f a |
| 14:28:59 | × | thecoffemaker quits (~thecoffem@unaffiliated/thecoffemaker) (Ping timeout: 260 seconds) |
| 14:29:01 | <idnar> | :t let whenMono True m = m; whenMono False _ = mempty in whenMono |
| 14:29:03 | <lambdabot> | Monoid p => Bool -> p -> p |
| 14:29:19 | <ADG1089__> | @t when' |
| 14:29:20 | <lambdabot> | Maybe you meant: tell thank you thanks thesaurus thx tic-tac-toe ticker time todo todo-add todo-delete type v @ ? . |
| 14:29:24 | <ADG1089__> | @type when' |
| 14:29:25 | <lambdabot> | error: |
| 14:29:25 | <lambdabot> | • Variable not in scope: when' |
| 14:29:26 | <lambdabot> | • Perhaps you meant ‘when’ (imported from Control.Monad.Writer) |
| 14:29:36 | <idnar> | :t optional |
| 14:29:37 | <lambdabot> | Alternative f => f a -> f (Maybe a) |
| 14:30:06 | <ADG1089__> | @let when' b ma = if b then ma else return mempty |
| 14:30:08 | <lambdabot> | Defined. |
| 14:30:11 | <ADG1089__> | @type when' |
| 14:30:13 | <lambdabot> | (Monad m, Monoid a) => Bool -> m a -> m a |
| 14:31:04 | <idnar> | @hoogle Monoid p => Bool -> p -> p |
| 14:31:05 | <lambdabot> | Data.Monoid.HT when :: Monoid m => Bool -> m -> m |
| 14:31:05 | <lambdabot> | Relude.Monoid memptyIfFalse :: Monoid m => Bool -> m -> m |
| 14:31:05 | <lambdabot> | Relude.Monoid memptyIfTrue :: Monoid m => Bool -> m -> m |
| 14:32:09 | <kuribas> | see, it gets defined many times :) |
| 14:32:30 | <Melanie> | Data.Monoid.HT.when is the function i'm talking about, but it clashes with what's in base already :) |
| 14:32:37 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
| 14:32:57 | → | thecoffemaker joins (~thecoffem@unaffiliated/thecoffemaker) |
| 14:33:29 | <kuribas> | the name? |
| 14:33:42 | <Melanie> | i mean i guess i could go with \b -> stimesMonoid (fromEnum b) |
| 14:33:54 | <Melanie> | kuribas: yeah, the name |
| 14:34:02 | <kuribas> | having when in Prelude and Data.Monoid would be a bit shitty |
| 14:34:13 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 14:34:41 | <kuribas> | :t stimesMonoid . fromEnum |
| 14:34:43 | <lambdabot> | error: |
| 14:34:43 | <lambdabot> | Variable not in scope: stimesMonoid :: Int -> c |
| 14:35:14 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 14:35:22 | <Melanie> | stimesMonoid . fromEnum :: (Enum b, Monoid a) => b -> a -> a |
| 14:36:09 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 14:36:15 | <Melanie> | which isn't memptyToNothing, it's when |
| 14:37:01 | <merijn> | Melanie: memptyToNothing isn't possible, though? At least not without Eq |
| 14:37:11 | <Melanie> | that's correct, merijn |
| 14:37:45 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 14:38:21 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
| 14:38:24 | <Melanie> | would it be possible to write a pattern for mempty in general? |
| 14:38:31 | <merijn> | No |
| 14:38:53 | <Melanie> | ;-; |
| 14:39:05 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 14:39:08 | <ski> | (can't match on functions, e.g.) |
| 14:39:31 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 14:39:46 | <kuribas> | for example: mempty :: Endo Int |
| 14:40:41 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 14:40:45 | <Melanie> | ah, yeah, that throws a bit of a wrench in things |
| 14:41:07 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 14:41:30 | → | boistordu joins (boistordum@gateway/shell/matrix.org/x-uxzyryrlcsuoeixd) |
| 14:41:32 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 14:41:54 | <Melanie> | :l Data.Monoid |
| 14:41:58 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 14:42:06 | <Melanie> | awwwh how does bot work |
| 14:42:09 | <ski> | @let import Data.Monoid |
| 14:42:10 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
| 14:42:11 | <lambdabot> | Defined. |
| 14:42:28 | <Melanie> | :t stimesMonoid . fromEnum |
| 14:42:29 | <lambdabot> | error: |
| 14:42:29 | <lambdabot> | Variable not in scope: stimesMonoid :: Int -> c |
| 14:42:31 | <Melanie> | ugh |
| 14:42:36 | <Melanie> | it's in semigroup |
| 14:42:44 | <Melanie> | @let import Data.Semigroup |
| 14:42:46 | <lambdabot> | Defined. |
| 14:42:49 | <Melanie> | :t stimesMonoid . fromEnum |
| 14:42:50 | <lambdabot> | (Monoid a1, Enum a2) => a2 -> a1 -> a1 |
| 14:43:11 | <ADG1089__> | ok, i improved it, but is there any better way to do this? https://hastebin.com/susewuwipo.properties |
| 14:43:17 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 14:43:49 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 14:43:55 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 14:45:01 | <tomsmeding> | wz1000: https://paste.tomsmeding.com/7hlNnftk |
| 14:45:10 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 14:45:18 | <tomsmeding> | no idea if it works in general :p |
| 14:45:32 | <tomsmeding> | also "nicely" is questionable |
| 14:45:47 | × | madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out) |
| 14:46:03 | → | madjestic joins (~Android@86-88-72-244.fixed.kpn.net) |
| 14:46:13 | <wz1000> | tomsmeding: yeah, I ended up with something similar |
| 14:46:17 | <tomsmeding> | ah |
| 14:46:26 | <wz1000> | well, almost |
| 14:47:28 | <tomsmeding> | also I was too lazy to properly write 'numberify' as a scan :p |
| 14:47:31 | <Melanie> | ADG1089__: why not use an if statement instead of when'? in this case the reader may misunderstand what happens when screenCount is not 2 |
| 14:47:47 | <ADG1089__> | Melanie: yeah |
| 14:49:29 | × | ulidtko|k quits (~ulidtko@193.111.48.79) (Remote host closed the connection) |
| 14:49:56 | <wz1000> | tomsmeding: yeah, here's my partial solution: https://gist.github.com/wz1000/cf71f931893a441ca005c148c8ce1afd |
| 14:50:16 | <Melanie> | ADG1089__: also, if you're using Just in both parts of the tuple, you might as well wrap the whole thing, since it looks like you're basing whether or not the tuple has both values on whether it has the first |
| 14:50:30 | → | m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 14:50:45 | <Melanie> | and then you can use maybe or fromMaybe |
| 14:50:46 | <Melanie> | :t maybe |
| 14:50:48 | <lambdabot> | b -> (a -> b) -> Maybe a -> b |
| 14:50:50 | <Melanie> | :t fromMaybe |
| 14:50:51 | <lambdabot> | a -> Maybe a -> a |
| 14:51:20 | → | ulidtko|kk joins (~ulidtko@194.54.80.38) |
| 14:51:32 | → | Jd007 joins (~Jd007@d154-5-83-24.bchsia.telus.net) |
| 14:51:59 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 14:52:19 | <ADG1089__> | Melanie: Handle does not implement Monoid I think so there's no mempty |
| 14:52:47 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 14:53:12 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 14:54:06 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 14:54:12 | <ADG1089__> | if statement would be better |
| 14:54:30 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 14:55:21 | <tomsmeding> | wz1000: writing code is easier than reading code; I'm unsure what exactly you're doing :) |
| 14:55:28 | <tomsmeding> | but doesn't matter |
| 14:55:36 | <Melanie> | ADG1089__ here's what i mean https://hastebin.com/sopulapuqu.properties |
| 14:55:59 | <wz1000> | tomsmeding: its essentially the same thing you are doing, but I'm doing it in both directions |
| 14:56:05 | <Melanie> | sorry for changing your indentation :p |
| 14:56:11 | <ski> | (no `if' statement in __Haskell ..) |
| 14:56:16 | <tomsmeding> | I see |
| 14:56:21 | × | olban quits (~olban@213.152.161.85) (Quit: bye) |
| 14:56:25 | → | christo joins (~chris@81.96.113.213) |
| 14:56:26 | <ski> | (s/__//) |
| 14:56:51 | <wz1000> | And I'm doing it over two passes, first constructing a lookup table [(Int,Maybe Int)] for the exact positions, then my intention is to add the Range positions in a seperate pass |
| 14:56:59 | → | Neo---- joins (~neo@BSN-143-24-94.dynamic.siol.net) |
| 14:57:11 | × | geekosaur quits (ac3a54fa@172.58.84.250) (Remote host closed the connection) |
| 14:57:33 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds) |
| 14:57:45 | × | carlomagno quits (~cararell@148.87.23.11) (Ping timeout: 240 seconds) |
| 14:58:23 | <ski> | @type fst &&& snd |
| 14:58:24 | <lambdabot> | (c, b) -> (c, b) |
| 14:58:35 | <ADG1089__> | Melanie: why pure (applicative) instead of return (Monad)? |
| 14:58:36 | × | Neo--- quits (~neo@BSN-143-26-67.dynamic.siol.net) (Ping timeout: 240 seconds) |
| 14:58:45 | × | graf_blutwurst quits (~user@2001:171b:226e:adc0:fc0a:8b21:4a12:4e1f) (Read error: Connection reset by peer) |
| 14:59:47 | <Melanie> | instance (Applicative m) => Monad m since base-4.8.0.0 |
| 14:59:50 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 15:00:00 | <Melanie> | and i like pure better ¯\_(ツ)_/¯ |
| 15:00:16 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 15:00:31 | <kuribas> | is there something like guard for applicative? |
| 15:00:34 | <ski> | for_ handles (\(a,b) -> myLogHook 1 a b) -- instead of the `maybe (pure ()) ...' |
| 15:00:35 | → | carlomagno joins (~cararell@148.87.23.11) |
| 15:00:41 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 15:00:43 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
| 15:00:47 | <Melanie> | :t guard |
| 15:00:48 | <lambdabot> | Alternative f => Bool -> f () |
| 15:01:05 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 15:01:09 | <kuribas> | ah right :) |
| 15:01:11 | <Melanie> | ski: nice :) |
| 15:01:12 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Remote host closed the connection) |
| 15:01:36 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 15:02:03 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
| 15:02:03 | × | xelxebar_ quits (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds) |
| 15:02:10 | <ADG1089__> | Melanie: thanks! I went with this: https://hastebin.com/opaqamipob.rb |
| 15:02:14 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 15:02:23 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
| 15:02:43 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
| 15:03:02 | → | hrnz joins (~hrnz@unaffiliated/hrnz) |
| 15:03:09 | <Melanie> | ADG1089__: looks great!! :D |
| 15:04:24 | × | hekkaidekapus] quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 15:04:43 | <ski> | @type for_ :: Applicative i => Maybe a -> (a -> i b) -> i () |
| 15:04:44 | <lambdabot> | Applicative i => Maybe a -> (a -> i b) -> i () |
| 15:04:46 | <ski> | @hoogle whenJust |
| 15:04:46 | <lambdabot> | Control.Monad.Extra whenJust :: Applicative m => Maybe a -> (a -> m ()) -> m () |
| 15:04:47 | <lambdabot> | Extra whenJust :: Applicative m => Maybe a -> (a -> m ()) -> m () |
| 15:04:47 | <lambdabot> | Data.GI.Base.Utils whenJust :: Monad m => Maybe a -> (a -> m ()) -> m () |
| 15:05:10 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 15:05:11 | → | hekkaidekapus] joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 15:05:12 | → | hexo joins (~hexo@gateway/tor-sasl/hexo) |
| 15:05:14 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 15:05:18 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 15:05:37 | <Melanie> | very cool, i will (try to) remember that |
| 15:06:07 | <kuribas> | @type for_ @Maybe |
| 15:06:09 | <lambdabot> | error: |
| 15:06:09 | <lambdabot> | Pattern syntax in expression context: for_@Maybe |
| 15:06:09 | <lambdabot> | Did you mean to enable TypeApplications? |
| 15:06:14 | <kuribas> | :t for_ @Maybe |
| 15:06:15 | <lambdabot> | error: |
| 15:06:15 | <lambdabot> | Pattern syntax in expression context: for_@Maybe |
| 15:06:15 | <lambdabot> | Did you mean to enable TypeApplications? |
| 15:06:22 | <ski> | % :t for_ @Maybe |
| 15:06:22 | <yahb> | ski: Applicative f => Maybe a -> (a -> f b) -> f () |
| 15:07:25 | × | phasespace quits (~sar@80-89-47-117.inet.signal.no) (Ping timeout: 264 seconds) |
| 15:08:31 | → | ystael joins (~ystael@209.6.50.55) |
| 15:09:18 | × | ADG1089__ quits (~aditya@223.236.177.109) (Remote host closed the connection) |
| 15:09:43 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 15:10:20 | → | sparsity joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
| 15:10:45 | × | stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Read error: Connection reset by peer) |
| 15:11:06 | → | stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
| 15:12:02 | → | HHHH joins (77497963@static-host119-73-121-99.link.net.pk) |
| 15:12:13 | × | ulidtko|kk quits (~ulidtko@194.54.80.38) (Ping timeout: 264 seconds) |
| 15:12:27 | → | ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net) |
| 15:12:44 | <Melanie> | kuribas: if you want something a little stronger than guard, i wrote pureIf in Extra |
| 15:12:47 | <Melanie> | @hoogle pureIf |
| 15:12:48 | <lambdabot> | No results found |
| 15:12:51 | <Melanie> | awwww |
| 15:13:06 | <Melanie> | @hoogle (Alternative f) => Bool -> a -> f a |
| 15:13:07 | <lambdabot> | Protolude orEmpty :: Alternative f => Bool -> a -> f a |
| 15:13:07 | <lambdabot> | Protolude.Applicative orEmpty :: Alternative f => Bool -> a -> f a |
| 15:13:07 | <lambdabot> | Control.Bool aguard' :: Alternative m => Bool -> a -> m a |
| 15:13:15 | <Melanie> | it's on hackage :/ |
| 15:13:39 | ← | HHHH parts (77497963@static-host119-73-121-99.link.net.pk) () |
| 15:14:37 | → | HHHH joins (77497963@static-host119-73-121-99.link.net.pk) |
| 15:15:34 | × | HHHH quits (77497963@static-host119-73-121-99.link.net.pk) (Remote host closed the connection) |
| 15:16:09 | <kuribas> | @hoogle (Applicative f, Alternative t) => Bool -> f (t a) -> f (t a) |
| 15:16:10 | <lambdabot> | No results found |
| 15:16:27 | <kuribas> | lambdabot: you disappoint me :( |
| 15:17:01 | × | ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 264 seconds) |
| 15:17:23 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 256 seconds) |
| 15:17:31 | → | pera joins (~pera@unaffiliated/pera) |
| 15:18:57 | → | sparsity34 joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
| 15:21:04 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 15:21:42 | × | ADG1089__ quits (~aditya@223.236.177.109) (Remote host closed the connection) |
| 15:22:08 | → | ubert joins (~Thunderbi@p200300ecdf1ee07be6b318fffe838f33.dip0.t-ipconnect.de) |
| 15:22:16 | × | sparsity quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Ping timeout: 240 seconds) |
| 15:23:10 | → | fendor_ joins (~fendor@178.115.129.99.wireless.dyn.drei.com) |
| 15:24:20 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 15:26:01 | × | fendor quits (~fendor@91.141.3.164.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
| 15:27:16 | × | Franciman quits (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving) |
| 15:29:39 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 15:29:41 | → | noop_noob joins (31e4c3d3@49.228.195.211) |
| 15:30:48 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:321f:ffea:a269:44a4) (Ping timeout: 260 seconds) |
| 15:30:59 | × | madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 15:35:04 | × | drozdziak1 quits (drozdziak1@gateway/shell/matrix.org/x-nhtpbwaweoyyfwgx) (Quit: issued !quit command) |
| 15:36:04 | <noop_noob> | I'm using the "pipes" package. Is there a way for me to check if a Consumer is "done" consuming? |
| 15:38:04 | × | rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 246 seconds) |
| 15:38:10 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 15:39:04 | <noop_noob> | Anyway, why is it `type Consumer a = Proxy () a () X` and not `type Consumer a = Proxy X a () X` ? |
| 15:39:18 | <noop_noob> | https://hackage.haskell.org/package/pipes-4.3.14/docs/Pipes-Core.html#t:Proxy |
| 15:39:21 | → | jollygood2 joins (~bc812391@217.29.117.252) |
| 15:39:28 | <noop_noob> | Oops, wrong link |
| 15:39:28 | <noop_noob> | https://hackage.haskell.org/package/pipes-4.3.14/docs/Pipes.html#t:Consumer |
| 15:40:53 | → | rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
| 15:42:50 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:e826:4c07:b220:a42a) |
| 15:42:52 | <noop_noob> | I wish I could pattern-match on the constructor of Proxy, but unfortunately they're not exported... |
| 15:43:19 | <__monty__> | noop_noob: If I'm reading Proxy a' a b' b m r correctly it's because a' and b' need to match up. |
| 15:43:32 | <noop_noob> | what |
| 15:44:02 | <noop_noob> | Oh |
| 15:44:09 | <noop_noob> | I confused b with b' |
| 15:44:20 | <noop_noob> | I think? |
| 15:44:49 | <noop_noob> | Eh... whatever |
| 15:45:14 | <noop_noob> | So anyway..... In the "pipes" package, Is there a way for me to check if a Consumer is "done" consuming? |
| 15:46:30 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 15:47:51 | zx__ | is now known as kish` |
| 15:49:08 | × | edwtjo quits (~edwtjo@fsf/member/edwtjo) (Read error: Connection reset by peer) |
| 15:51:46 | → | edwtjo joins (~edwtjo@h-7-145.A213.priv.bahnhof.se) |
| 15:51:46 | × | edwtjo quits (~edwtjo@h-7-145.A213.priv.bahnhof.se) (Changing host) |
| 15:51:46 | → | edwtjo joins (~edwtjo@fsf/member/edwtjo) |
| 15:51:57 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 15:54:59 | × | dabr quits (~daniel@p50825a42.dip0.t-ipconnect.de) (Quit: WeeChat 3.0) |
| 15:57:02 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Ping timeout: 264 seconds) |
| 15:58:53 | × | sparsity34 quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
| 15:59:28 | × | matryoshka quits (~matryoshk@pool-74-109-186-119.albyny.fios.verizon.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:00:31 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 16:00:36 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 256 seconds) |
| 16:00:41 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 16:01:35 | → | plutoniix joins (~q@ppp-27-55-91-8.revip3.asianet.co.th) |
| 16:02:26 | → | jespada joins (~jespada@90.254.245.49) |
| 16:03:07 | → | emptyflask joins (~jon@136.49.71.178) |
| 16:05:03 | → | matryoshka joins (~matryoshk@184.75.223.227) |
| 16:06:48 | × | djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Remote host closed the connection) |
| 16:08:12 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 16:11:44 | × | hololeap quits (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/) |
| 16:12:52 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
| 16:13:37 | → | usr25 joins (~usr25@unaffiliated/usr25) |
| 16:13:53 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 16:14:39 | <shinobi> | I want to create a counter data type and set the initial value to 0, without injecting it. 1. Is this normally done in FP? |
| 16:15:13 | × | neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 264 seconds) |
| 16:15:37 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:15:47 | <merijn> | shinobi: Counter for what? Does it have to be mutable? How do you plan to update it? |
| 16:16:45 | <shinobi> | merijn: It doesn't have to be mutable. I would inject the state into a function that would return an updated state, etc. |
| 16:17:02 | <noop_noob> | shinobi, What do you mean by "inject"? |
| 16:17:14 | <shinobi> | pass in as a parameter |
| 16:17:29 | <merijn> | shinobi: Well, then that's just "data Counter = Counter Int" and passing "Counter 0" to a function, no? :p |
| 16:17:33 | <noop_noob> | Yes, you can have a function of type `Counter -> (a, Counter)` |
| 16:17:44 | <noop_noob> | Although you probably want the `State` monad. |
| 16:18:15 | <noop_noob> | https://hackage.haskell.org/package/containers-0.6.4.1/docs/Data-Sequence-Internal.html#t:State |
| 16:18:40 | → | madjestic joins (~Android@86-88-72-244.fixed.kpn.net) |
| 16:19:02 | <noop_noob> | merijn http://learnyouahaskell.com/for-a-few-monads-more |
| 16:19:20 | × | noop_noob quits (31e4c3d3@49.228.195.211) (Remote host closed the connection) |
| 16:19:34 | → | new_haskeller joins (ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com) |
| 16:19:45 | <shinobi> | merijn: I don't want a user to pass in the initial state. I was hoping it could be set in the constructor. I am trying to prevent "Counter 6". |
| 16:20:26 | <shinobi> | I see I would never be able to do that because it's constructing each time and not mutating |
| 16:20:27 | ← | usr25 parts (~usr25@unaffiliated/usr25) ("Leaving") |
| 16:20:31 | <merijn> | Don't export the constructor and have "initialCounter :: Counter; initialCounter = Counter 0" in your module? |
| 16:20:59 | <new_haskeller> | hi friends, I am puzzling over a disappearing list when I map a file input (text rings). |
| 16:21:16 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 16:21:20 | <merijn> | @where paste |
| 16:21:20 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
| 16:21:20 | <shinobi> | merijn: that may work. Thanks! |
| 16:21:35 | <merijn> | new_haskeller: paste code + output there |
| 16:21:54 | <merijn> | shinobi: If you don't want users messing with datatype internals, just don't export those ;) |
| 16:22:10 | <dsal> | new_haskeller: ...and expected output. Sometimes things are really obvious to us, but not what you expect to happen. |
| 16:22:32 | × | carbolymer quits (~carbolyme@dropacid.net) (Ping timeout: 256 seconds) |
| 16:22:39 | → | carbolymer_ joins (~carbolyme@dropacid.net) |
| 16:22:45 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 16:23:08 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
| 16:23:59 | <ski> | shinobi : you could wrap `State' in a `newtype', say `Counting', and provide a `runCounting' function that initializes your counter |
| 16:25:03 | × | ubert quits (~Thunderbi@p200300ecdf1ee07be6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 16:25:07 | <ski> | (or just have `Counting a' be implemented as `Counter -> (a,Counter)' directly, if you prefer being explicit) |
| 16:25:28 | → | ubert joins (~Thunderbi@p200300ecdf1ee07be6b318fffe838f33.dip0.t-ipconnect.de) |
| 16:25:33 | → | phasespace joins (~sar@89-162-33-21.fiber.signal.no) |
| 16:28:39 | × | xff0x quits (~fox@2001:1a81:52e0:100:14f6:c3b8:1702:ec9d) (Ping timeout: 272 seconds) |
| 16:28:57 | → | xff0x joins (~fox@2001:1a81:52e0:100:d64b:d56d:3d88:4e8b) |
| 16:29:22 | <new_haskeller> | @merijn thanks. as I was pasting the code and typing out my issues I realize that my list did not disappear. the program complained about the last line being empty! Thanks |
| 16:29:22 | <lambdabot> | Unknown command, try @list |
| 16:29:46 | <tomsmeding> | new_haskeller: https://en.wikipedia.org/wiki/Rubber_duck_debugging |
| 16:32:27 | × | alx741 quits (~alx741@186.178.110.141) (Ping timeout: 272 seconds) |
| 16:33:28 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:33:41 | → | notzmv joins (~user@unaffiliated/zmv) |
| 16:34:00 | <new_haskeller> | ye_haskeler_gods: if you could spare a minute critiquing this, I would be grateful https://paste.tomsmeding.com/KTWCGcmh |
| 16:34:42 | → | ubert1 joins (~Thunderbi@p200300ecdf1ee062e6b318fffe838f33.dip0.t-ipconnect.de) |
| 16:34:58 | × | ubert quits (~Thunderbi@p200300ecdf1ee07be6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 16:34:58 | ubert1 | is now known as ubert |
| 16:35:09 | <merijn> | new_haskeller: The map + list comprehension can be simplified to just filter |
| 16:35:14 | <merijn> | > filter even [1..10] |
| 16:35:16 | <lambdabot> | [2,4,6,8,10] |
| 16:35:38 | <Melanie> | :t count |
| 16:35:39 | <lambdabot> | error: |
| 16:35:39 | <lambdabot> | • Variable not in scope: count |
| 16:35:39 | <lambdabot> | • Perhaps you meant one of these: |
| 16:35:57 | <merijn> | new_haskeller: And rather than using head/tail multiple times in procone you probably wanna use pattern matching instead |
| 16:36:22 | <merijn> | new_haskeller: Which would also warn you for the error you're getting |
| 16:36:25 | <ski> | trues = [y | x <- l,let {y = procone x},y] |
| 16:36:29 | <new_haskeller> | ya -- I was brute forcing it |
| 16:36:32 | <merijn> | Which is calling "tail on an empty list" |
| 16:36:53 | <ski> | t1:t2:t3:_ = words l |
| 16:37:08 | × | arguapacha quits (uid134895@gateway/web/irccloud.com/x-mfwdshztacdbuefh) (Quit: Connection closed for inactivity) |
| 16:37:11 | <new_haskeller> | @merijn the last line of the input file was empty |
| 16:37:12 | <lambdabot> | Unknown command, try @list |
| 16:37:37 | <ski> | if you use `case l of t1:t2:t3:_ -> ...; _ -> ...', you can then decide what to do, if the list is too short |
| 16:38:28 | <Melanie> | @let import Util |
| 16:38:29 | <lambdabot> | .L.hs:145:1: error: |
| 16:38:29 | <lambdabot> | Could not load module ‘Util’ |
| 16:38:29 | <lambdabot> | It is a member of the hidden package ‘ghc-8.10.2’. |
| 16:38:37 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 246 seconds) |
| 16:38:39 | <ski> | > span (== '-') "foo-bar-baz" |
| 16:38:40 | <lambdabot> | ("","foo-bar-baz") |
| 16:38:45 | <ski> | > break (== '-') "foo-bar-baz" |
| 16:38:47 | <lambdabot> | ("foo","-bar-baz") |
| 16:38:54 | <merijn> | new_haskeller: If you need inspiration for other ways, here's my solution: https://github.com/merijn/AdventOfCode2020/blob/master/Day3.hs |
| 16:39:15 | <merijn> | spoilers for both day 3 puzzles, obviously :p |
| 16:39:18 | <new_haskeller> | this is perhaps my day 3 of Haskell -- lots to work through based on your comments. Much appreciated. |
| 16:39:22 | <ski> | (lboundStr,'_':uboundStr) = break (== '-') t1 |
| 16:40:21 | <ski> | and perhaps better to use `case readMaybe lboundStr of Just lbound -> ...; Nothing -> ...' as well ? |
| 16:40:32 | → | pera joins (~pera@unaffiliated/pera) |
| 16:40:34 | <new_haskeller> | I did day 1 in 1.5 days. day 2 in 10 minutes. but the day 3 IO involves a fair bit of digging. **I am a convert! ** |
| 16:42:09 | → | juttamirth joins (4e3f1297@78-63-18-151.static.zebra.lt) |
| 16:42:18 | <ski> | passed = inRange (lbound,ubound) size |
| 16:43:43 | <ski> | (and the brackets around your patterns with `Just' are redundant ..) |
| 16:43:58 | <glguy> | new_haskeller: If you're solving this in Haskell you might consider adding yourself to our private leaderboard |
| 16:44:35 | <glguy> | The code is 43100-84040706 |
| 16:44:49 | <glguy> | which I should probably remove from the /topic now that it's January |
| 16:44:54 | ChanServ | sets topic to "https://www.haskell.org | https://wiki.haskell.org/IRC_channel | Paste code/errors: https://gist.github.com/ | Logs: http://tunes.org/~nef/logs/haskell/?C=M;O=D | https://www.reddit.com/r/haskell | Admin: #haskell-ops | Offtopic: #haskell-offtopic | https://downloads.haskell.org" |
| 16:44:54 | <merijn> | I got twice as far this year before pesky real life ruined it >.> |
| 16:44:57 | → | chalkmon1 joins (~chalkmons@unaffiliated/chalkmonster) |
| 16:45:03 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 16:45:07 | <merijn> | At this rate I might actually finish AoC next year :p |
| 16:45:28 | → | alx741 joins (~alx741@186.178.110.141) |
| 16:45:35 | <Melanie> | glguy: there's a leaderboard? |
| 16:45:56 | <Melanie> | sorry, what is the code used for? |
| 16:46:08 | × | madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out) |
| 16:46:15 | <glguy> | Melanie: you put the code in the box at https://adventofcode.com/2020/leaderboard/private |
| 16:46:18 | <glguy> | to add yourself to the list |
| 16:46:25 | <Melanie> | thanks! |
| 16:46:38 | × | xff0x quits (~fox@2001:1a81:52e0:100:d64b:d56d:3d88:4e8b) (Ping timeout: 260 seconds) |
| 16:46:40 | × | chalkmonster quits (~chalkmons@unaffiliated/chalkmonster) (Ping timeout: 246 seconds) |
| 16:47:19 | <glguy> | You'll find a lot of links to github where Haskellers have uploaded their solutions if you're exploring |
| 16:47:28 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 16:48:05 | <Melanie> | neat!! i'm #62 at this point :) |
| 16:50:07 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 16:50:08 | × | notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection) |
| 16:50:24 | <xerox_> | this was the first time I ended in the top 10, it was a good year |
| 16:53:12 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 16:53:18 | → | rkbeach joins (31cfd1aa@49.207.209.170) |
| 16:53:37 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 16:55:26 | → | notzmv joins (~user@unaffiliated/zmv) |
| 16:55:55 | <new_haskeller> | @glguy @ski @merijn thanks for the hints |
| 16:55:56 | <lambdabot> | Unknown command, try @list |
| 16:56:02 | → | Wuzzy joins (~Wuzzy@p5790ed14.dip0.t-ipconnect.de) |
| 16:56:23 | × | hekkaidekapus] quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 16:57:32 | → | madjestic joins (~Android@86-88-72-244.fixed.kpn.net) |
| 16:57:49 | <ski> | yw |
| 16:59:28 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-zznalggusqjucmjb) |
| 17:00:59 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 17:02:12 | → | chrpape joins (~user@2a01:4f9:c010:632d::1) |
| 17:02:44 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 17:03:42 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 17:07:22 | → | ulidtko joins (~ulidtko@194.54.80.38) |
| 17:08:40 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 272 seconds) |
| 17:09:17 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 17:09:55 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 17:10:30 | <sm[m]> | glguy's Haskell leaderboard is great, it deserves more marketing. Permanent website ? Post competition celebration of results ? Prizes ? |
| 17:11:08 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 17:12:14 | → | geekosaur joins (ac3a8b92@172.58.139.146) |
| 17:15:11 | × | rkbeach quits (31cfd1aa@49.207.209.170) (Remote host closed the connection) |
| 17:16:20 | × | juttamirth quits (4e3f1297@78-63-18-151.static.zebra.lt) (Ping timeout: 245 seconds) |
| 17:19:34 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 246 seconds) |
| 17:19:49 | × | jess quits (jess@freenode/staff/jess) (Quit: brb) |
| 17:21:03 | × | ubert quits (~Thunderbi@p200300ecdf1ee062e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 17:22:10 | × | ADG1089__ quits (~aditya@223.236.177.109) (Remote host closed the connection) |
| 17:22:43 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 17:22:46 | <sshine> | I never get past day 5. |
| 17:23:22 | <sshine> | maybe I'll join the AOC Haskell Club next year :) |
| 17:23:28 | <glguy> | sshine: Day 7 was probably the first interesting one this year |
| 17:23:29 | <merijn> | sshine: I recommend being unemployed, great way to have time for AOC! ;) |
| 17:23:49 | <sshine> | merijn, I *was* actually unemployed all through Dec 1-24! but I was busy hacking on a compiler. |
| 17:23:59 | <merijn> | sshine: Poor excuse! |
| 17:24:10 | <sshine> | I totally agree! |
| 17:27:36 | × | ADG1089__ quits (~aditya@223.236.177.109) (Remote host closed the connection) |
| 17:28:08 | <xerox_> | sshine: which compiler? |
| 17:28:34 | → | xff0x joins (~fox@2001:1a81:52e0:100:d64b:d56d:3d88:4e8b) |
| 17:28:57 | ← | kish` parts (~oracle@unaffiliated/oracle) ("Leaving") |
| 17:29:01 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 264 seconds) |
| 17:32:22 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 17:32:46 | <adamwesp_> | best time to build a compiler, either for a job, or as your own job! :) |
| 17:33:40 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 17:35:47 | × | Boomerang quits (~Boomerang@2a05:f6c7:2179:0:8da5:2e46:f1e1:ab48) (Ping timeout: 272 seconds) |
| 17:39:27 | × | nyd quits (~nyd@unaffiliated/elysian) (Quit: nyd) |
| 17:40:57 | × | styledash quits (~styledash@157.230.173.136) (Quit: The Lounge - https://thelounge.chat) |
| 17:41:35 | → | styledash joins (~styledash@157.230.173.136) |
| 17:41:51 | <new_haskeller> | going back to my aoc day 3 code. Is there an 'easier' way to do String to Int conversion? I cropped 'readMaybe' from somewhere. Seems like there would be a library function somewhere. I'm not being lazy. I have looked but not sure what the canonical solution would be. https://paste.tomsmeding.com/sfEAme6P |
| 17:42:32 | → | knupfer joins (~Thunderbi@200116b824b6e00054a0e5fffe7c6b6a.dip.versatel-1u1.de) |
| 17:42:32 | × | knupfer quits (~Thunderbi@200116b824b6e00054a0e5fffe7c6b6a.dip.versatel-1u1.de) (Client Quit) |
| 17:42:47 | → | knupfer joins (~Thunderbi@i5E86B49C.versanet.de) |
| 17:43:21 | <ski> | @index readMaybe |
| 17:43:21 | <lambdabot> | Text.Read |
| 17:43:21 | → | spopejoy joins (~stuart@ool-44c5f8c9.dyn.optonline.net) |
| 17:43:39 | × | chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 17:44:12 | <ski> | use pattern-matching, instead of `fst' and `snd' (and you can also do it instead of `drop 1') |
| 17:44:39 | <ski> | (and you can replace the pattern `t2' by `check:_', avoiding `head') |
| 17:44:44 | <glguy> | Actual readMaybe tolerates trailing whitespace (like read does) |
| 17:45:55 | <ski> | seeing `(==True)' is jarring |
| 17:46:00 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
| 17:46:01 | → | eacameron joins (uid256985@gateway/web/irccloud.com/x-ycbifkwtkicpetrm) |
| 17:46:07 | <glguy> | ski: it's important to be sure |
| 17:46:39 | <merijn> | new_haskeller: Eh, just do "filter procone" |
| 17:46:49 | <merijn> | Instead of map, then filter by comparison to True |
| 17:47:19 | <ski> | (but then it's not a list of `True's ..) |
| 17:47:33 | <merijn> | ski: That's irrelevant |
| 17:47:37 | <ski> | i know |
| 17:47:58 | <ski> | (but the name would have to be changed, in order to not be confusing) |
| 17:48:02 | <glguy> | new_haskeller: You never need to compare for equality to True, you can just pass it through in that case with 'id' |
| 17:50:30 | <new_haskeller> | excellent! 'id' is new to me. let trues = filter id (map procone l ) |
| 17:50:44 | × | rajivr quits (uid269651@gateway/web/irccloud.com/x-faovxbrouyrpmypw) (Quit: Connection closed for inactivity) |
| 17:50:47 | <glguy> | new_haskeller: and if you're doing that you can further simplify: filter procone l |
| 17:50:57 | <glguy> | (since you don't care what the elements are) |
| 17:51:07 | × | robotmay quits (~beepboop@2001:8b0:7af0:2580:e163:8dc0:987:5b1e) (Quit: Be excellent to each other) |
| 17:51:26 | <ski> | new_haskeller : is there anything sensible you can do, or would like to do, in case any of the expected things (length of lists, presence of `-', ability to parse `Int's) fail ? |
| 17:51:53 | <sshine> | xerox_, this one: https://github.com/Sword-Smith/Sword (also, before you comment on the lack of best-practice, there's a bunch of things I did that aren't in that repo. this is a 3-year-old BSc project that was brought back to life.) |
| 17:52:22 | × | notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection) |
| 17:53:14 | → | notzmv joins (~user@unaffiliated/zmv) |
| 17:53:48 | <sshine> | xerox_, personally, the biggest accomplishment I think we achieved was to lure two students who'd never written Haskell before to extend the compiler with some features. :) |
| 17:54:00 | → | gues64803 joins (~username@62-34-117-205.abo.bbox.fr) |
| 17:54:48 | <Melanie> | > ski: That's irrelevant |
| 17:54:50 | <lambdabot> | error: Variable not in scope: skierror: |
| 17:54:50 | <lambdabot> | Data constructor not in scope: That's :: t0 -> [a]error: Variable not in... |
| 17:55:22 | <xerox_> | sshine: neat (: |
| 17:57:40 | <new_haskeller> | @ski the AoC input file was of course well-formed. I think if a line fails I probably would just skip it. Does my answer influence with library to use? |
| 17:57:40 | <lambdabot> | Maybe you meant: wiki src ask |
| 17:58:34 | <ski> | new_haskeller : i'm just thinking of possibly avoiding all the partiality in `procone' |
| 17:58:49 | <ski> | (mind that i dunno what the intent of that function is) |
| 17:59:14 | <new_haskeller> | 'partiality' ? |
| 17:59:26 | → | argento joins (~argent0@168.227.96.51) |
| 17:59:31 | <ski> | (oh, and btw, those `:: Maybe Int' type ascriptions are actually optional, here) |
| 17:59:48 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 18:00:44 | <ski> | new_haskeller : i mean that calling `procone' with a list that doesn't contain three words, or where you can't parse two `Int's from the first word, will result in the program being aborted |
| 18:00:55 | <ski> | > 1 + head [] |
| 18:00:57 | <lambdabot> | *Exception: Prelude.head: empty list |
| 18:01:03 | <ggVGc> | That's usually fine in AoC :) |
| 18:01:07 | <ski> | (similar to such a failure) |
| 18:01:20 | × | geekosaur quits (ac3a8b92@172.58.139.146) (Ping timeout: 245 seconds) |
| 18:01:22 | <ggVGc> | My rust implementations were littered with unwra |
| 18:02:07 | <ski> | > let [t1,t2,t3] = words "9-10 b: " in (t1,t2,t3) |
| 18:02:08 | <ggVGc> | also why AoC doesn't really teach you to use languages very well... since any error handling is optional |
| 18:02:10 | <lambdabot> | ("*Exception: <interactive>:3:5-33: Non-exhaustive patterns in [t1, t2, t3] |
| 18:02:17 | <new_haskeller> | is there a 'try' 'catch' idiom so the program does not abort? |
| 18:02:28 | <ski> | use `case'-`of' |
| 18:02:42 | <ski> | case words l of |
| 18:02:58 | → | dandels joins (~dandels@unaffiliated/dandels) |
| 18:03:04 | <ski> | [t1,t2,t3] -> ..t1..t2..t3.. |
| 18:03:13 | <ski> | _ -> ..oops.. |
| 18:03:28 | <ski> | and similarly for the `readMaybe' calls |
| 18:03:48 | <new_haskeller> | I see ... of course! |
| 18:03:50 | <ski> | of course, you'd have to decide what to do, in the failing branch |
| 18:04:11 | <ski> | .. which was why i was wondering whether there would be anything sensible you could do, in those cases |
| 18:04:27 | <new_haskeller> | in case of something like AoC I'll likely return False for that line |
| 18:04:37 | <ski> | e.g. maybe it would be sensible to have the call to `procone' result in `False' (or `True' ?) in that case ? |
| 18:05:57 | <jollygood2> | new_haskeller, there is, but you can just fix your function instead. there's -fwarn-incomplete-patterns flag to catch such things |
| 18:05:57 | <ggVGc> | new_haskeller: there's try/catch, but it's mostly not what you want, and it's used when doing things in IO. something like a missed pattern match, or calling `fst` on an empty list is not something you'd handle with try/catch in haskell, and is considered a programming error, and a bug that needs to be fixed and hence should crash the program |
| 18:06:13 | <jollygood2> | new_haskeller, there's also readMaybe in Text.Read |
| 18:07:00 | <ggVGc> | try/catch is somethig that would be used to handle an error while reading a file for example |
| 18:07:06 | <ski> | s/fst/head/ |
| 18:07:11 | → | codeAlways joins (uid272474@gateway/web/irccloud.com/x-ksrtxpuomausdfhe) |
| 18:07:11 | <ggVGc> | haha, sorry |
| 18:07:12 | <ggVGc> | I meant head |
| 18:07:50 | <ski> | jollygood2 : already mentioned :) |
| 18:08:37 | <new_haskeller> | I'll look in Text.Read properly. thks |
| 18:10:36 | <new_haskeller> | ggVGc: good comment about 'try/catch'. I have never thought of it this way (e.g. in javascript) |
| 18:12:22 | <ski> | (either fixing it by making the operation not partial .. or by ensuring that a precondition under which it's total is fulfilled) |
| 18:12:30 | → | geekosaur joins (42d52137@66.213.33.55) |
| 18:13:09 | <ggVGc> | new_haskeller: the thing with haskell is that in pure code (not using IO), there should never be a crash. But this is a bit of a lie, since it's possible to write partial pattern matches (can be prevented with compiler flag),and there are artial functions (like head). So in practice even pure code can crash. But those crashes are incorrect usages of the language, and all those cases can be |
| 18:13:11 | <ggVGc> | rewritten in a way that doesn't crash and produces a real error value instead. |
| 18:13:49 | <ggVGc> | So try/catch only makes sense in "truly exceptional" circumstances, from outside influence that does not mean your code is wrong, and hence only make sense in IO |
| 18:14:06 | → | ransom joins (~c4264035@8.47.12.52) |
| 18:14:46 | <jollygood2> | you can't even call try/catch outside of IO |
| 18:14:56 | <ggVGc> | jollygood2: this is exactly my point |
| 18:15:04 | <ggVGc> | I am trying to clarify why that is the case |
| 18:15:19 | <ggVGc> | I am unfortunately quite bad at expressing myself most of the time |
| 18:16:00 | → | kyali joins (~kyali@APN-123-253-144-gprs.simobil.net) |
| 18:16:43 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds) |
| 18:17:00 | <ggVGc> | new_haskeller: this is one of the big warts, imo, in JS. That exceptions like file errors are bundled together with invalid property accesses etc. Where one is an actual exceptional situation, and the other is you writing buggy code (which you shouldn't be writing an error handler for) |
| 18:17:25 | <new_haskeller> | that's why I am here :) |
| 18:17:48 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 18:18:21 | → | Tario joins (~Tario@201.192.165.173) |
| 18:19:52 | <ggVGc> | new_haskeller: I recommend compiing your code with -Wall and -Werror. This will protect you against partial pattern matches, among other things, and generally clear up your code |
| 18:21:05 | × | stefan-__ quits (~cri@42dots.de) (Ping timeout: 240 seconds) |
| 18:23:53 | <new_haskeller> | I find the Haskell extension in VS Code v helpful. If it flags a problem, there is no point going to the compiler! |
| 18:24:08 | <new_haskeller> | ggVGc: done! |
| 18:25:48 | → | stefan-_ joins (~cri@42dots.de) |
| 18:26:40 | → | robotmay joins (~beepboop@80.172.187.81.in-addr.arpa) |
| 18:29:25 | × | jitwit quits (~user@bras-base-mtrlpq4381w-grc-34-174-93-238-71.dsl.bell.ca) (Remote host closed the connection) |
| 18:38:29 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds) |
| 18:39:00 | × | chalkmon1 quits (~chalkmons@unaffiliated/chalkmonster) (Quit: WeeChat 3.0) |
| 18:39:50 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Remote host closed the connection) |
| 18:42:46 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 18:44:40 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 18:46:11 | × | nucranium quits (~nucranium@2a02:8010:6173:0:24ec:3ce1:39cf:bba2) (Remote host closed the connection) |
| 18:48:28 | × | fryguybob quits (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 246 seconds) |
| 18:49:25 | → | fryguybob joins (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) |
| 18:49:59 | → | conal joins (~conal@64.71.133.70) |
| 18:54:12 | → | gedda joins (~gedda@185.195.233.164) |
| 18:54:20 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds) |
| 18:55:55 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 18:56:57 | → | ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net) |
| 18:57:46 | <gedda> | I have a bunch of type signatures like this: "default foo :: (MonadTrans t, MyTypeClass m1, m ~ t m1) => m a" for a bunch of different foo's and MyTypeClass's |
| 18:57:54 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds) |
| 18:57:54 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:58:15 | <gedda> | If i wanted to reduce the constraint boiler, is type families and ConstraintKinds the way to go? |
| 18:58:20 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 18:58:55 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 18:58:56 | × | dandels quits (~dandels@unaffiliated/dandels) (Ping timeout: 240 seconds) |
| 18:59:40 | × | jfe quits (~user@pool-71-184-149-134.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 18:59:48 | <gedda> | is it possible to get something like "default foo :: Bar MyTypeClass m => m"? |
| 19:00:23 | <gedda> | where Bar MyTypeClass m would expand to (MonadTrans t, MyTypeClass m1, m ~ t m1) of course |
| 19:00:37 | → | christo joins (~chris@81.96.113.213) |
| 19:01:24 | × | ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 272 seconds) |
| 19:02:15 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:af56) |
| 19:03:09 | ← | gues64803 parts (~username@62-34-117-205.abo.bbox.fr) () |
| 19:03:28 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:03:39 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 19:03:50 | <merijn> | gedda: With ConstraintKinds and type families, sure |
| 19:04:10 | <merijn> | You can do nearly arbitrary nonsense that way :p |
| 19:04:32 | <gedda> | the question is always is the arbitrary nonsense worth it or KISS |
| 19:04:41 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
| 19:04:50 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
| 19:05:00 | <merijn> | gedda: Actually, for the simple case you just need ConstraintKinds, not even type families |
| 19:05:09 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 19:05:25 | <merijn> | With ConstraintKinds you can just do "type Foo v = (Show v, Eq v, Ord v)" |
| 19:05:38 | <gedda> | merijn, really? how would I define a type which can accept a typeclass as argument? |
| 19:06:28 | <merijn> | gedda: YOu can try if "type Foo cls m = (cls m, Monad m)" or something along those lines works |
| 19:06:33 | <merijn> | I think it should? |
| 19:06:43 | <gedda> | ill have a go |
| 19:06:46 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 19:06:51 | <ski> | (looks like you'd need existential quantification (the real thing) for the above example ?) |
| 19:07:29 | <gedda> | over t, and m1? |
| 19:07:32 | <gedda> | or t and m? |
| 19:07:48 | <ski> | type Foo c m = exists t m1. (MonadTrans t,c m1,m ~ t m1) |
| 19:07:55 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 19:08:09 | <ski> | oh, s/Foo/Bar/ |
| 19:09:22 | <kuribas> | why doesn't () have an alternative instance? |
| 19:09:30 | <gedda> | ski, exists and not forall? |
| 19:09:34 | <ski> | yes |
| 19:09:50 | <ski> | foo :: Bar MyTypeClass m => m |
| 19:10:05 | <ski> | foo :: (exists t m1. (MonadTrans t,MyTypeClass m1,m ~ t m1)) => m |
| 19:10:16 | <ski> | foo :: forall t m1. ((MonadTrans t,MyTypeClass m1,m ~ t m1) => m) |
| 19:10:18 | × | ADG1089__ quits (~aditya@223.236.177.109) (Remote host closed the connection) |
| 19:10:41 | <ski> | an alternative would be |
| 19:10:47 | × | ph88^ quits (~ph88@2a02:8109:9e00:7e5c:f964:d8d4:1ec3:146c) (Ping timeout: 272 seconds) |
| 19:10:58 | → | ADG1089__ joins (~aditya@223.236.177.109) |
| 19:11:00 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 19:11:03 | → | jfe joins (~user@pool-71-184-149-134.bstnma.fios.verizon.net) |
| 19:11:08 | <ski> | type FooOf c m o = forall t m1. (MonadTrans t,c m1,m ~ t m1) => o |
| 19:11:24 | <ski> | foo :: FooOf MyTypeClass m m |
| 19:11:38 | <ski> | foo :: forall t m1. (MonadTrans t,MyTypeClass m1,m ~ t m1) => m |
| 19:11:57 | × | shinobi quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Quit: Leaving) |
| 19:12:14 | <ski> | (wrapping the "body type" in a parameter of the type synonym) |
| 19:12:28 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
| 19:12:48 | <gedda> | hmm, exists gives me not in in scope error, even with ExistentialQuantification |
| 19:13:06 | <gedda> | with your "type Foo ..." |
| 19:13:33 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 19:14:04 | <ski> | `exists' doesn't exist in GHC |
| 19:14:21 | <ski> | (and `ExistentialQuantification' doesn't turn on existential quantification .. imho, it's a misnomer) |
| 19:15:22 | <gedda> | Wow thats confusing, so is your solution a no go with ghc? |
| 19:15:32 | × | jfe quits (~user@pool-71-184-149-134.bstnma.fios.verizon.net) (Ping timeout: 256 seconds) |
| 19:15:35 | → | Franciman joins (~francesco@host-82-48-174-127.retail.telecomitalia.it) |
| 19:15:49 | <ski> | `FooOf' would work, i think |
| 19:15:57 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds) |
| 19:18:11 | <ski> | (`ExistentialQuantification' turns on a feature by which you can *encode* existential quantification, by defining a `data' type (more specifically, it amounts to declating a `data' constructor with an existentially quantified parameter type .. although, you can curry -- so it's only directly an existential, in the uncurried form)) |
| 19:19:15 | <gedda> | FooOf would perfectly, thanks |
| 19:19:55 | <gedda> | and it worked neatly where i have `a -> m o` or a -> b -> m o` as well |
| 19:19:59 | <ski> | the solution with `exists' was what you would probably be ablt to do, *if* you had proper existential quantification |
| 19:20:06 | <ski> | yea |
| 19:20:25 | <ski> | of course, you can't access `t' or `m1' there, though .. but hopefully that's not needed |
| 19:20:54 | <gedda> | no it is just to remove type type signature boiler for defaultsigs when using mtl |
| 19:21:07 | <gedda> | foo = lift foo |
| 19:21:47 | <gedda> | and here i was looking for an excuses to learn type families once and for all >:^( |
| 19:22:18 | ski | didn't really see how type families would help, here .. |
| 19:22:53 | <gedda> | (hence why i should learn them) |
| 19:25:46 | <gedda> | naming wise im also a bit surprised that the forall requires RankNTypes and not QuantifiedConstraints |
| 19:25:57 | <ski> | you know how `ExistentialQuantification' works ? |
| 19:27:04 | <ski> | well, you had no quantified constraints, here. that would have been `(forall a. ..a..) => ...'. but you had `forall a. (..a.. => ..a..)', which is an ordinary universally quantified, and constrained, type |
| 19:28:53 | <gedda> | aah, of course |
| 19:29:54 | <gedda> | that explains my confusion with ExistentialQuantification as well |
| 19:30:01 | <gedda> | very helpful! |
| 19:32:10 | × | geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
| 19:32:44 | <ski> | note that `(exists a. ..a..) -> ...' is equivalent to `forall a. (..a.. -> ...)' |
| 19:32:48 | <ski> | so, in particular, e.g. |
| 19:32:57 | <ski> | length :: forall a. ([a] -> Int) |
| 19:33:00 | <ski> | could also be thought of as |
| 19:33:09 | <ski> | length :: (exists a. [a]) -> Int |
| 19:33:39 | <ski> | you can read the type signature as (a) for all types `a', if you pass a list of elements of type `a' to `length', you'll get an `Int' back |
| 19:34:16 | <ski> | but you can also read it as (b) the result of calling `length' will be `Int', if there exists some type `a' such that the argument is a list of elements of type `a' |
| 19:34:49 | <gedda> | that much i remember from my logic classes in uni |
| 19:35:22 | <ski> | and for similar reasons, `(exists a. ..a..) => ...' (an existentially quantified constraint, as in my `Foo' above) would be equivalent to `forall a. (..a.. => ...)' |
| 19:35:52 | <gedda> | i think i've been missing out on ExistentialQuantification, looks like i could use it in a bunch of places actually in my code to reduce boiler |
| 19:36:56 | <ski> | so, having an argument type wrapped in `exists' is "not serious", in the sense that you can always rewrite it with a `forall' wrapping the whole function type. (and ditto for `exists' in a constraint that you're assuming with `=>', declaring that the caller/user/consumer must ensure they're satisfied) |
| 19:37:45 | <ski> | otoh, having the result type wrapped in `exists' (or having `exists' more deeply nested in either argument types or result types) would be "serious", not as easily expressible in another way |
| 19:38:29 | <gedda> | naturally, i just presumed forall a. (...) => m a would associate to the left as (forall a. (...)) => m a and not the other way |
| 19:38:59 | <gedda> | which in hindsight doesn't make a lot of sense |
| 19:39:05 | <ski> | you could also note that `... -> (forall a. ..a..)' is equivalent to `forall a. (... -> ..a..)' (and similarly `... => (forall a. ..a..)' is equivalent to `forall a. (... => ..a..)') .. so, you can move `forall's wrapping result type so that it wraps the whole function type. so that usage is also "non-serious"/"trivial" |
| 19:39:21 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 19:39:58 | <ski> | otoh, having *argument* type wrapped in `forall' is "serious"/"nontrivial", requires `Rank2Types'. (and nesting it more deeply in arguments of a callback function type requires `RankNTypes') |
| 19:40:16 | → | knupfer1 joins (~Thunderbi@200116b824b6e000295db61e169135c3.dip.versatel-1u1.de) |
| 19:40:17 | × | knupfer quits (~Thunderbi@i5E86B49C.versanet.de) (Quit: knupfer) |
| 19:40:17 | knupfer1 | is now known as knupfer |
| 19:40:32 | <koz_> | ski: Isn't Rank2Types just part of RankNTypes now? |
| 19:40:38 | <gedda> | on the topic of Rank2Types vs RankNTypes, do people still use Rank2Types? |
| 19:40:55 | <koz_> | I mean yes, in theory we can have rank-2 inference, but it's not like GHC uses the algorithm that enables this in any case. |
| 19:41:08 | <ski> | gedda : yea .. not that seldom misunderstandings seem to be like that, they're obviously incorrect, once you examine them (once you're able to examine them, from the right angle, or with enough appropriate detail, perhaps) |
| 19:41:12 | <ski> | koz_ : yes |
| 19:41:14 | <Uniaika> | koz_: yes I think it is |
| 19:41:19 | × | thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202) |
| 19:41:22 | <ski> | (i was just about to say that :) |
| 19:41:34 | <Uniaika> | no I think you raced me |
| 19:41:42 | <Uniaika> | well-done, mr. combinator |
| 19:41:46 | <koz_> | Uniaika: Somethign something racy comments. |
| 19:41:51 | ski | just types `Rank2Types', is that's all that's needed |
| 19:42:08 | <koz_> | Also, I forget what paper had that algorithm. I remember Odersky was one of the coauthors? |
| 19:42:28 | <ski> | (and similarly, if i only need rank-2 data constructors, i use `PolymorphicComponents') |
| 19:42:57 | <ski> | @where Haskel |
| 19:42:57 | <lambdabot> | <http://web.archive.org/web/20070703001910/http://www.cs.chalmers.se/~augustss/pics/haskel.gif> |
| 19:43:40 | <koz_> | ski: Link be baroke. |
| 19:43:54 | <ski> | works here |
| 19:43:56 | <gedda> | works for me |
| 19:43:58 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:e826:4c07:b220:a42a) (Ping timeout: 260 seconds) |
| 19:44:00 | <__monty__> | Is that from Maus? |
| 19:44:03 | <ski> | yes |
| 19:44:48 | <koz_> | Ah whoops. |
| 19:45:00 | <koz_> | Clicked wrong thing because my terminal is 'smart' about links. |
| 19:45:59 | ski | . o O ( "Delimiting a URI in Context" <https://tools.ietf.org/html/rfc3986#appendix-C> ) |
| 19:46:17 | <gedda> | koz_, when you say in theory, doesnt ghc in practice have rank-2 inference with the more general rank-n algorithm? |
| 19:46:22 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Ping timeout: 272 seconds) |
| 19:46:55 | <ski> | > let foo f = (f [False,True],f "FileNotFound") in foo reverse |
| 19:46:57 | <lambdabot> | error: |
| 19:46:57 | <lambdabot> | • Couldn't match type ‘Char’ with ‘Bool’ |
| 19:46:57 | <lambdabot> | Expected type: [Bool] |
| 19:46:57 | <koz_> | gedda: In theory means quite literally 'it is possible to do'. |
| 19:47:15 | <koz_> | Rank-n polymorphism can't have type inference even in theory. |
| 19:47:16 | <ski> | > let foo :: (forall a. [a] -> [a]) -> ([Bool],String); foo f = (f [False,True],f "FileNotFound") in foo reverse |
| 19:47:18 | <lambdabot> | ([True,False],"dnuoFtoNeliF") |
| 19:47:21 | <koz_> | (for arbitrary n) |
| 19:47:27 | → | geekosaur joins (42d52137@66.213.33.55) |
| 19:47:28 | <gedda> | koz_, yeah, just wondering if I misunderstood something |
| 19:47:42 | <gedda> | and that was it, arbitrary n inference doesnt work |
| 19:47:56 | <koz_> | Yeah, indeed. Rank-2 can have inference, but IIRC the algorithm is gory. |
| 19:47:59 | → | dandart joins (~Thunderbi@home.dandart.co.uk) |
| 19:48:04 | <gedda> | does GHC limit n to some upper bound? |
| 19:48:07 | <koz_> | (both in specifics and in performance) |
| 19:48:14 | <gedda> | or rather, how large can n be? |
| 19:48:18 | <koz_> | gedda: If you really need rank-100 polymorphism, go for it. |
| 19:48:30 | <koz_> | I think you'll hit other limits _long_ before this becomes an issue. |
| 19:48:31 | <Uniaika> | (or make your machine die trying) |
| 19:49:13 | × | knupfer quits (~Thunderbi@200116b824b6e000295db61e169135c3.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 19:49:51 | <gedda> | more of a thought exercise, how little code can you write to have ghc be unable to typecheck a program in a reasonable time |
| 19:50:56 | <koz_> | gedda: I'm pretty sure it's possible to infinite loop the compiler using type families. |
| 19:51:28 | <gedda> | if we say that the program should be sound then |
| 19:51:41 | <koz_> | gedda: Define 'sound'. |
| 19:52:38 | <gedda> | no infinite types |
| 19:53:03 | <gedda> | like mutual recursion without a base case |
| 19:53:27 | <koz_> | gedda: What do you mean by 'infinite type'? |
| 19:53:31 | <ski> | @type let pair x y z = z x y; x0 y = pair y y; x1 = x0 . x0; x2 = x1 . x1; x3 = x2 . x2 in x3 id |
| 19:53:32 | <lambdabot> | ((((((((((((((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a -> a) -> (a -> a) -> t1) -> t1) -> t2) -> t2) -> (((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a -> a) -> (a -> a) -> t1) -> t1) -> t2) -> t2) |
| 19:53:32 | <lambdabot> | -> t3) -> t3) -> (((((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a -> a) -> (a -> a) -> t1) -> t1) -> t2) -> t2) -> (((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a -> a) -> (a -> a) -> t1) -> t1) -> |
| 19:53:32 | <lambdabot> | t2) -> t2) -> t3) -> t3) -> t4) -> t4) -> (((((((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a -> a) -> (a -> a) -> t1) -> t1) -> t2) -> t2) -> (((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a -> a) -> ( |
| 19:53:32 | <lambdabot> | a -> a) -> t1) -> t1) -> t2) -> t2) -> t3) -> t3) -> (((((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a -> a) -> (a -> a) -> t1) -> t1) -> t2) -> t2) -> (((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a - |
| 19:53:32 | <lambdabot> | > a) -> (a -> a) -> t1) -> t1) -> t2) -> t2) -> t3) -> t3) -> t4) -> t4) -> t5) -> t5) -> (((((((((((a -> a) -> (a -> a) -> t1) -> t1) -> (((a -> a) -> (a -> a) -> t1) -> t1) -> t2) -> t2) -> (((((a |
| 19:53:34 | <lambdabot> | [32 @more lines] |
| 19:53:53 | <monochrom> | If you insist every recursion to have a base case, you are in the wrong channel. |
| 19:53:56 | <koz_> | ski: Oooof. |
| 19:54:05 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 19:54:08 | <monochrom> | In Haskell and #haskell, we have soundness without base cases. |
| 19:54:11 | <koz_> | That's like, an exponentially-sized tree? |
| 19:54:15 | <ski> | yes |
| 19:55:10 | <gedda> | monochrom, of course, but a simple endless loop is no fun :( |
| 19:55:50 | <monochrom> | Is "x = 0 : x" fun? I think it is. |
| 19:56:00 | <monochrom> | Is it also a simple endless loop? I think it is. |
| 19:56:14 | <koz_> | Alternatively, there's the simple [1 ..] |
| 19:56:20 | <koz_> | Also a simple endless loop, but very useful! |
| 19:56:25 | <ski> | @let infixr 5 /\/; (/\/) :: [a] -> [a] -> [a]; [ ] /\/ ys = ys; (x:xs) /\/ ys = x : ys /\/ xs |
| 19:56:26 | <lambdabot> | Defined. |
| 19:56:28 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:e475:5ea1:1ccc:d1ed) |
| 19:56:31 | <koz_> | (or [0..]) |
| 19:56:45 | <ski> | > let abacaba = repeat 0 /\/ map (1 +) abacaba in abacaba |
| 19:56:47 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1... |
| 19:57:08 | <gedda> | monochrom, x :: Num a => [a] |
| 19:57:25 | <gedda> | still typechecks quickly |
| 19:57:56 | <monochrom> | I think you don't get my point. |
| 19:58:59 | <gedda> | i fully do |
| 19:59:32 | → | jfe joins (~user@pool-71-184-149-134.bstnma.fios.verizon.net) |
| 19:59:42 | → | carif joins (~mcarifio@cpe-67-246-227-118.rochester.res.rr.com) |
| 19:59:49 | <ski> | it was just a point re "like mutual recursion without a base case", not about large or infinite types |
| 20:00:18 | <ski> | (or long typechecking time) |
| 20:03:06 | × | denucat quits (teqwve@2001:bc8:28d6::2) (Quit: cya) |
| 20:03:12 | <gedda> | i might have expressed myself clumsily |
| 20:04:06 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 272 seconds) |
| 20:05:18 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 20:07:02 | × | kuribas quits (~user@ptr-25vy0i7d7aymgmplx2i.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 20:07:41 | → | conal joins (~conal@66.115.157.85) |
| 20:09:57 | → | v_m_v joins (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) |
| 20:10:23 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 20:10:34 | → | ph88^ joins (~ph88@2a02:8109:9e00:7e5c:f964:d8d4:1ec3:146c) |
| 20:11:46 | × | argento quits (~argent0@168.227.96.51) (Quit: leaving) |
| 20:12:46 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 20:12:53 | → | ADG1089_ joins (~aditya@171.76.136.168) |
| 20:13:31 | × | ADG1089__ quits (~aditya@223.236.177.109) (Ping timeout: 246 seconds) |
| 20:13:40 | × | Franciman quits (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving) |
| 20:13:42 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 20:13:44 | → | manjaro-user_ joins (~manjaro-u@2601:285:c000:a6c0::4f77) |
| 20:17:17 | × | ph88^ quits (~ph88@2a02:8109:9e00:7e5c:f964:d8d4:1ec3:146c) (Ping timeout: 272 seconds) |
| 20:18:28 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
| 20:18:56 | <melkornms> | hey guys, I was digging a little more into the Monoid (a -> b) and stumbled upon something I can't understand, I have made a little gist - https://gist.github.com/MelkorNemesis/b53535f298d478aa437853c8180dbbd9 |
| 20:19:05 | <melkornms> | would the implementation on line 4 work? |
| 20:19:11 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds) |
| 20:19:22 | <melkornms> | mappend is a binary function and here it takes 3 arguments |
| 20:19:30 | → | coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) |
| 20:20:06 | <ski> | yes it would |
| 20:20:11 | <melkornms> | does it have something to do with partial application? I can understand it on the line 11 where it clearly reads f <> g |
| 20:20:19 | <merijn> | melkornms: Question: What's the difference between a function taking 2 arguments and one taking 1 argument and returning a lambda? |
| 20:20:34 | <ski> | mappend :: (a -> b) -> (a -> b) -> (a -> b) -- where `Monoid b' is known |
| 20:20:37 | <ski> | in that case |
| 20:20:40 | <melkornms> | merijn: I would say none? |
| 20:20:44 | <merijn> | melkornms: Right |
| 20:20:53 | <ski> | mappend f g x = f x `mappend` g x |
| 20:20:56 | <ski> | is equivalent to |
| 20:21:02 | <ski> | mappend f g = \x -> f x `mappend` g x |
| 20:21:09 | <merijn> | melkornms: Now keep in mind that "mappend x f = ..." is the same as "mappend = \x -> \y -> ..." |
| 20:21:24 | <melkornms> | right, thanks guys |
| 20:21:37 | <merijn> | melkornms: So, by extension "mappend f g = \x -> f x <> g x" is equivalent to "mappend f g x = f x <> g x" |
| 20:21:47 | × | pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-39-70-27-244-102.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
| 20:22:05 | <merijn> | melkornms: Haskell doesn't really have a notion of "number of arguments", GHC just cares "do the types match?" |
| 20:22:20 | <melkornms> | brilliant, thanks for the help |
| 20:22:25 | <merijn> | So if the "return" is a function, then GHC is perfectly happy if you move that argument to the left of the = |
| 20:22:27 | <ski> | melkornms : if you turn on the `InstanceSigs' extension, you can actually put the signature i mentioned in your code (inside the `instance' declaration) |
| 20:22:52 | <melkornms> | been coding for 15 years, but it was time to dig into some haskell, haha |
| 20:23:14 | <ski> | (and note that that signature means the same thing as `mappend :: (a -> b) -> (a -> b) -> a -> b') |
| 20:23:25 | <ephemient> | let f () _ = undefined in f undefined `seq` () |
| 20:23:33 | <ephemient> | let f () = \_ -> undefined in f undefined `seq` () |
| 20:23:39 | <ephemient> | have different behavior though |
| 20:23:48 | <ski> | yes |
| 20:24:18 | × | evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer) |
| 20:24:41 | <ski> | (but if you're just matching on variables, wildcards, and `as'-patterns nested around those, then there's no difference) |
| 20:25:07 | <ski> | (you could also throw in irrefutable/lazy patterns) |
| 20:25:45 | <manjaro-user_> | I'm trying to use `rand l = (l!) <$> randomRIO (1, length l)` with the type def of `[String] -> IO String` inside a do block of type `IO ()` and the exact usage is `rand bg'` where bg' is a `[String]` |
| 20:26:19 | <manjaro-user_> | And I'm getting the error of Expected pyte: X String Actual type: IO String |
| 20:26:26 | <manjaro-user_> | type* |
| 20:26:46 | <manjaro-user_> | If I change it to type X String then it gives me the error: |
| 20:27:16 | <ski> | looks like you're not executing `rand l' in `IO', but rather in `X' |
| 20:27:24 | → | leungbk joins (~user@2603-8000-f144-2028-6884-768f-e832-6e83.res6.spectrum.com) |
| 20:27:53 | <ski> | also, i suspect you'd prefer `(0,length l - 1)' ? |
| 20:27:54 | <manjaro-user_> | Expected type: X String Actual type: IO String ... in the expression (l!... |
| 20:28:57 | <manjaro-user_> | Good catch there, but the error still persists |
| 20:28:58 | <ski> | (i also presume you mean `!!', rather than `!' ?) |
| 20:29:32 | <manjaro-user_> | No |
| 20:29:40 | <ephemient> | what is X? |
| 20:29:43 | <ski> | @type (!) |
| 20:29:45 | <lambdabot> | Ix i => Array i e -> i -> e |
| 20:29:46 | → | pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-39-70-27-244-102.dsl.bell.ca) |
| 20:29:47 | <ski> | @type (!!) |
| 20:29:49 | <lambdabot> | [a] -> Int -> a |
| 20:29:51 | <manjaro-user_> | I set ! as l ! n = l!!(n-1) |
| 20:30:00 | <ski> | which `!' are you using ? |
| 20:30:03 | <ski> | oh, ok |
| 20:30:24 | → | asthasr joins (~asthasr@162.210.29.120) |
| 20:30:39 | <manjaro-user_> | ephemient: X is an Xmonad function type (I think) |
| 20:30:49 | → | evanjs joins (~evanjs@075-129-098-007.res.spectrum.com) |
| 20:30:50 | <ski> | well, then i guess `(1,length l)' wouldn't error out (assuming the list is non-empty) |
| 20:31:20 | <ski> | (not a function type. it would be a monad. in this case for doing X Windows stuff, for Xmonad) |
| 20:31:36 | <manjaro-user_> | ^ Yeah, that makes more sense |
| 20:31:45 | <ski> | manjaro-user_ : and you actually put a type signature for `rand' in the coded ? |
| 20:31:52 | <ski> | s/coded/code/ |
| 20:32:41 | <manjaro-user_> | in the coded? |
| 20:32:52 | <manjaro-user_> | Sorry, fairly new to haskell, I'm not sure what that means |
| 20:33:15 | <ephemient> | are you writing `rand :: [String] -> X String` before the declaration or something like that |
| 20:33:17 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 20:33:21 | <ski> | in the code, "coded" was a typo |
| 20:33:30 | <manjaro-user_> | at the end of the same file, so seperate, yes |
| 20:33:50 | <ski> | could you paste your code ? |
| 20:33:52 | <ski> | @where paste |
| 20:33:52 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
| 20:34:35 | <manjaro-user_> | Sure, I actually have a slightly older version located at https://github.com/techtiger255/xbronad |
| 20:34:52 | <ski> | (if you could cut down on the code a bit, such that the error still persists, that might be nice. but unless it's a lot of code, it could still be fine) |
| 20:35:07 | <manjaro-user_> | the files in question are lib/Custom/Grid.hs <- rand is defined here |
| 20:35:18 | → | knupfer joins (~Thunderbi@i5E86B49C.versanet.de) |
| 20:35:25 | <manjaro-user_> | xmonad.hs <- the do block with rand bg' is here |
| 20:35:27 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
| 20:35:30 | geekosaur | is guessing that the real problem is a missing liftIO |
| 20:35:34 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 20:35:48 | <ski> | there's no type signature for `rand' in that file |
| 20:35:53 | <ephemient> | you can't separate the signature from the declaration like that |
| 20:36:00 | <manjaro-user_> | yeah, slightly different version |
| 20:36:03 | <ski> | yes, you can, ephemient |
| 20:36:13 | <monochrom> | Prelude does it all the time. |
| 20:36:19 | <ski> | (but most people don't) |
| 20:36:19 | <manjaro-user_> | in that one I have way less type definitions |
| 20:36:27 | <geekosaur> | ghci won't let you but that's because it's ghci |
| 20:36:32 | <manjaro-user_> | I do it so I can read my config reasonably |
| 20:36:41 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 265 seconds) |
| 20:36:48 | × | codeAlways quits (uid272474@gateway/web/irccloud.com/x-ksrtxpuomausdfhe) (Quit: Connection closed for inactivity) |
| 20:37:31 | <ephemient> | huh. TIL |
| 20:37:31 | <manjaro-user_> | again, the supposed type is `[String] -> IO String` or X String instead of IO String |
| 20:38:15 | <ephemient> | well, the generic type would be `rand :: (MonadIO m) => [a] -> m a` |
| 20:38:23 | <ski> | manjaro-user_ : in place of `maybe (pure ()) fn', you could say `traverse_ fn' |
| 20:38:37 | × | jfe quits (~user@pool-71-184-149-134.bstnma.fios.verizon.net) (Ping timeout: 264 seconds) |
| 20:39:05 | <ski> | @index traverse_ |
| 20:39:05 | <lambdabot> | Data.Foldable |
| 20:39:20 | <monochrom> | It can be a reasonable use if you have "f, g, h :: Int -> Int" on one line because they are so closely related, and then define f, g, h, respectively. |
| 20:40:06 | <ski> | or to have separate `f :: Foo' and `g :: Bar -> Baz', with a definition like `(f,g) = ...' or `Blah f g = ...' |
| 20:40:12 | <manjaro-user_> | Yeah, in a regular program I'd probably do that, but if they're all basic types like that then I've ommited them in my config |
| 20:40:39 | <manjaro-user_> | slightly increases compile times (by fractions of seconds, but eh) |
| 20:41:17 | <ski> | manjaro-user_ : anyway, i see no type error relating to `rand' in that file |
| 20:41:22 | × | ulidtko quits (~ulidtko@194.54.80.38) (Remote host closed the connection) |
| 20:41:27 | <manjaro-user_> | in xmonad.hs? |
| 20:41:30 | <ski> | manjaro-user_ : perhaps paste the code that gives the error ? |
| 20:41:57 | <ski> | oh. sorry, i was looking at `Grid.hs'. missed you also mentioned `xmonad.hs' as relevant to look at |
| 20:42:15 | → | jfe joins (~user@pool-71-184-149-134.bstnma.fios.verizon.net) |
| 20:42:26 | <manjaro-user_> | it's very close to the bottom btw |
| 20:42:51 | <manjaro-user_> | ephemient: that type you gave me didn't work |
| 20:43:03 | <ski> | manjaro-user_ : what happens if you add a type signature for `rand' ? |
| 20:43:40 | <manjaro-user_> | ski: thanks for the traverse_ tip |
| 20:43:46 | × | leungbk quits (~user@2603-8000-f144-2028-6884-768f-e832-6e83.res6.spectrum.com) (Quit: ERC (IRC client for Emacs 28.0.50)) |
| 20:43:58 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 246 seconds) |
| 20:44:45 | <manjaro-user_> | The errors I described happen (the one with X String vs IO String, and vice versa, at definition time, vs usage time) |
| 20:45:14 | <manjaro-user_> | I'm thinking I need to change my definition to accept both X String and IO String, is there any way I can do that? |
| 20:45:24 | <pie_> | bitonic: can i pull my inline-c-cpp inline c++ code from a file? |
| 20:45:33 | <manjaro-user_> | the error also occurs if I don't add a type definition |
| 20:45:56 | × | evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer) |
| 20:46:24 | × | conal quits (~conal@66.115.157.85) (Ping timeout: 260 seconds) |
| 20:46:36 | × | knupfer quits (~Thunderbi@i5E86B49C.versanet.de) (Ping timeout: 240 seconds) |
| 20:47:35 | <ski> | manjaro-user_ : anyway, in `colors', you're using `rand (..)' as an `X' action, while in `main', you're using it as an `IO' action. you can only use the same `rand' in both those two different contexts, if it's overloaded to work for both `IO' and `X', which the signature ephemient would achieve (this is the signature that the system would infer from your `rand' definition, if you don't have a type signature |
| 20:47:37 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:47:41 | <ski> | written) |
| 20:47:44 | <ski> | @type randomRIO |
| 20:47:46 | <lambdabot> | (Random a, MonadIO m) => (a, a) -> m a |
| 20:47:53 | <ggVGc> | can someone give me a real-world useful example of using fix? |
| 20:48:14 | × | adamwesp_ quits (~adamwespi@107.181.19.30) () |
| 20:48:14 | <ski> | this can work, both for `m' being `IO', and for it being `X', since both of those are instances of `MonadIO' |
| 20:48:18 | <ggVGc> | I don't understand why you'd ever use it instead of explicit recursion. I think I might be missing a bigger picture though |
| 20:49:12 | <ski> | in some cases, it can be a handy shorthand over writing an explicitly recursive definition |
| 20:49:19 | → | evanjs joins (~evanjs@075-129-098-007.res.spectrum.com) |
| 20:49:58 | <ggVGc> | well... with the added baggage of whoever reading it needing to understand fix? |
| 20:50:10 | <ggVGc> | and introducing a lambda? |
| 20:50:22 | <ggVGc> | (which I think reads worse in general) |
| 20:50:26 | <ski> | if you want to encode "open recursion", you use `T -> T', rather than plain `T', and only at the "last possible point" do you use `fix' ("instantiating the object from the class") to get a `T' |
| 20:50:39 | <manjaro-user_> | IDK, I like shorthands, and there's a fair amount of them in haskell |
| 20:51:01 | <ski> | if you use `fix', then it's easier to swap it out for an instrumented version that e.g. memoizes, or traces |
| 20:51:23 | <ggVGc> | yeah I guess I can see that point |
| 20:51:29 | <ski> | not all uses of `fix' would be applied to a lambda expression |
| 20:51:30 | <manjaro-user_> | idk why, but that typo in 'memorizes |
| 20:51:37 | <ggVGc> | abstracting away the recursion does have some value I guess |
| 20:51:44 | <manjaro-user_> | +' reminds me heavily of a boston accent |
| 20:51:52 | <ski> | (no, it's supposed to be "memoizes", not "memorizes") |
| 20:52:03 | <ggVGc> | yeah, those are different things :) |
| 20:52:05 | <manjaro-user_> | ok, well, boston accent |
| 20:52:29 | <ephemient> | https://en.wikipedia.org/wiki/Memoization > Not to be confused with Memorization. |
| 20:53:13 | <ggVGc> | ski: do you have an example of your own when you've opted for using fix? |
| 20:53:19 | <manjaro-user_> | That's quite an interesting word, never heard it before |
| 20:53:23 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
| 20:53:39 | <ski> | ggVGc : i had one on <lpaste.net> .. |
| 20:54:13 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 20:54:13 | <ggVGc> | what happened to lpaste.net? |
| 20:54:50 | <manjaro-user_> | anyway, adding `(MonadIO m) => [a] -> m a` is erroring w/ couldn't match type `m' with `IO' |
| 20:55:20 | <ski> | iirc, the maintainer wanted to do other things, and afaik noone else at the time stepped up |
| 20:55:32 | <ski> | (there was also a spamming problem, i think) |
| 20:55:37 | ski | . o O ( Sic Transit Gloria Mundi ) |
| 20:55:50 | <ski> | manjaro-user_ : adding it, where ? |
| 20:56:06 | <ephemient> | sounds like a fix is needed at the call site, not rand |
| 20:56:10 | × | evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 256 seconds) |
| 20:56:47 | <ski> | rand :: MonadIO m => [a] -> m a -- like this, at the end of `Grid' ? |
| 20:56:54 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) (Remote host closed the connection) |
| 20:56:55 | <manjaro-user_> | indeed |
| 20:57:25 | → | conal joins (~conal@64.71.133.70) |
| 20:57:28 | <manjaro-user_> | and geekosaur mentioned (or rather thought outloud) about liftIO from XMonad |
| 20:58:15 | <ski> | @type let l ! n = l!!(n-1); rand l = (l!) <$> randomRIO (1,length l) in rand |
| 20:58:17 | <lambdabot> | error: |
| 20:58:17 | <lambdabot> | • Couldn't match expected type ‘[a1]’ with actual type ‘Int -> a1’ |
| 20:58:17 | <lambdabot> | • In the expression: |
| 21:00:10 | → | urb joins (5434a07f@tm.84.52.160.127.dc.cable.static.telemach.net) |
| 21:00:23 | → | evanjs joins (~evanjs@075-129-098-007.res.spectrum.com) |
| 21:00:46 | <urb> | Is there a Haskell library that automates selection from a database into a Haskell datatype? I'm looking at Opaleye, but it seems it just selects into tuples |
| 21:00:51 | × | coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 21:01:05 | → | dandart joins (~Thunderbi@home.dandart.co.uk) |
| 21:01:07 | <urb> | perhaps there's a reason to want to do it like that. I don't know |
| 21:01:26 | <manjaro-user_> | adding liftIO to xmonad.hs didn't seem to effect the call, I also attempted to add it in the colors definition in grid.hs via `fg {- & bg -} <- liftIO <$> rand bg'` |
| 21:02:04 | <manjaro-user_> | now it's complaining about expected type IO (IO Char) vs IO [Char] -- so that's probably not the right place |
| 21:02:42 | → | conal_ joins (~conal@66.115.157.28) |
| 21:02:50 | <ski> | @type let l !!! n = l!!(n-1); rand l = (l!!!) <$> randomRIO (1,length l) in rand -- oh, fun |
| 21:02:52 | <lambdabot> | MonadIO f => [a] -> f a |
| 21:03:15 | <ephemient> | ... what version of random is this using, manjaro-user_ |
| 21:03:16 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
| 21:03:24 | <ephemient> | the type of randomRIO has changed between releases |
| 21:03:47 | <manjaro-user_> | whatever the latest is on nixpkgs (from the nix package manager) |
| 21:03:58 | × | jollygood2 quits (~bc812391@217.29.117.252) (Quit: http://www.okay.uz/) |
| 21:04:08 | → | jollygood2 joins (~bc812391@217.29.117.252) |
| 21:04:14 | <manjaro-user_> | last time this particular config worked was a few months ago, so should I downgrade then? |
| 21:04:39 | <ski> | @type let (!) l n = l!!(n-1); rand l = (l!) <$> randomRIO (1,length l) in rand |
| 21:04:40 | <lambdabot> | MonadIO f => [a] -> f a |
| 21:04:58 | <manjaro-user_> | orr, just try to rip the function from the library, and keep the rest updated? |
| 21:05:06 | <ephemient> | nixpkgs uses stackage lts for curation which which is currently at random 1.1, so... it's not MonadIO yet |
| 21:05:07 | × | koala_man quits (~vidar@unaffiliated/koala-man/x-2491903) (Remote host closed the connection) |
| 21:05:09 | <manjaro-user_> | from the older version* |
| 21:05:13 | <ski> | manjaro-user_ : could you show the exact error you get, when you place `rand :: MonadIO m => [a] -> m a' in `Grid' ? |
| 21:05:17 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 21:05:24 | <manjaro-user_> | sure, I'll get you a paste |
| 21:05:31 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Changing host) |
| 21:05:31 | → | koala_man joins (~vidar@unaffiliated/koala-man/x-2491903) |
| 21:05:39 | <ephemient> | type `rand :: [a] -> IO a` and add `liftIO (rand l)` when you're using it inside an `X` |
| 21:05:59 | <ephemient> | or update to newer random, either way |
| 21:06:05 | <ski> | `liftIO' oughtn't be necessary here (but would be one way around it, yes) |
| 21:06:09 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 21:06:28 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 21:06:50 | <ephemient> | https://hackage.haskell.org/package/random-1.1/docs/System-Random.html#v:randomRIO randomRIO :: (a, a) -> IO a |
| 21:06:54 | → | knupfer joins (~Thunderbi@200116b824b6e000f8306dfffe96fd00.dip.versatel-1u1.de) |
| 21:06:54 | × | knupfer quits (~Thunderbi@200116b824b6e000f8306dfffe96fd00.dip.versatel-1u1.de) (Client Quit) |
| 21:07:03 | <ephemient> | https://hackage.haskell.org/package/random-1.2.0/docs/System-Random.html#v:randomRIO randomRIO :: (MonadIO m) => (a, a) -> m a |
| 21:07:06 | → | knupfer joins (~Thunderbi@i5E86B49C.versanet.de) |
| 21:07:17 | <ski> | it's a backward-compatible change |
| 21:07:45 | <ephemient> | as long as you're not defining your own random instances, but yes |
| 21:07:53 | <ski> | yea |
| 21:08:03 | <ephemient> | it does mean you can't use the MonadIO version on with the older release |
| 21:08:27 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 21:09:05 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
| 21:09:18 | <ski> | (ok, `Vars' contains the definition of `!') |
| 21:09:40 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Client Quit) |
| 21:10:23 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:dfd:1630:16ef:2f33) |
| 21:10:36 | <manjaro-user_> | after fiddling around with what you two just said, to no avail, here's the paste, according to your specifications: https://paste.ee/p/WiFbw#b3dSINZxG7znzL6KEezVScDTshvhSFoo |
| 21:11:43 | <manjaro-user_> | oh wait, gimme a sec |
| 21:12:04 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
| 21:12:19 | × | v_m_v quits (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) (Remote host closed the connection) |
| 21:13:29 | <manjaro-user_> | ok, nvm, using liftIO <$> didn't work in colors |
| 21:14:06 | <monochrom> | liftIO (rand foo) ? |
| 21:14:13 | → | ghghgh joins (~ghghgh@104.152.222.36) |
| 21:15:49 | <manjaro-user_> | ok, well, the parenthesis fixed it... |
| 21:16:12 | × | carif quits (~mcarifio@cpe-67-246-227-118.rochester.res.rr.com) (Quit: leaving) |
| 21:16:26 | <manjaro-user_> | I was under the impression that doing `xyz <$> a b c` was identical to `xyz (a b c)`, but apparently not! |
| 21:17:40 | <exarkun> | You're thinking of `xyz $ a b c` I suppose |
| 21:17:55 | ← | ghghgh parts (~ghghgh@104.152.222.36) () |
| 21:17:56 | <exarkun> | @type ($) |
| 21:17:57 | <lambdabot> | (a -> b) -> a -> b |
| 21:18:00 | <exarkun> | @type (<$>) |
| 21:18:02 | <lambdabot> | Functor f => (a -> b) -> f a -> f b |
| 21:18:15 | <exarkun> | close but no cigar |
| 21:18:31 | <manjaro-user_> | Thanks for the help (monochrom geekosaur ski ephemient (and of course) lambdabot) |
| 21:18:59 | <ski> | yw |
| 21:19:02 | <manjaro-user_> | uh, did my thank you message go through, because I just tripped an anti spam measure |
| 21:19:04 | <manjaro-user_> | ah, I see |
| 21:19:29 | <ephemient> | liftIO $ rand foo -- would also work, same as parentheses |
| 21:20:10 | <manjaro-user_> | ah, thanks! |
| 21:20:49 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds) |
| 21:20:57 | → | justan0theruser joins (~justanoth@unaffiliated/justanotheruser) |
| 21:22:11 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 21:22:14 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds) |
| 21:23:49 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 21:24:09 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:cce3:aa71:9586:6387) |
| 21:27:22 | × | ADG1089_ quits (~aditya@171.76.136.168) (Read error: Connection reset by peer) |
| 21:28:09 | → | ADG1089_ joins (~aditya@171.79.107.193) |
| 21:28:11 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:32:37 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 21:32:39 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:cce3:aa71:9586:6387) (Ping timeout: 272 seconds) |
| 21:35:33 | × | geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection) |
| 21:36:57 | → | qqvat joins (~private@176.167.9.201) |
| 21:39:28 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 21:43:43 | → | amerigo joins (uid331857@gateway/web/irccloud.com/x-yfslrwncojbqmybp) |
| 21:44:01 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 264 seconds) |
| 21:46:20 | × | new_haskeller quits (ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com) (Ping timeout: 245 seconds) |
| 21:49:36 | <qqvat> | hello, is anybody familiar with ixset-typed? I have 2 ixsets ixA (elements with type A) and ixB (elements with type B). B has a field with type A and ixB can be indexed by values of type A. B has also a field "date" (UTCTime). I would like to query the most recent B in ixB that has a given A. I can easily query all Bs in ixB that have a given A (because A is an index of ixB). The date is also an index of |
| 21:49:42 | <qqvat> | ixB. The lib provides toDecList but it takes a "proxy ix" as its first parameter (I imagine to know over which index elements should be sorted, here the date). But in practice I don't know how to use the function. What is "proxy"? Which value am I to provide. The value itself does not matter in the definition of toDecList, only its type is relevant. Should I use provide any UTCTime value? What is "proxy" |
| 21:49:48 | <qqvat> | about? |
| 21:50:17 | → | Guest_93 joins (9e8cc287@158.140.194.135) |
| 21:50:35 | <Guest_93> | Hello everyoned |
| 21:53:30 | <urb> | what's the idiomatic way of dealing with long tuples returned from something like a SQL query? Since there can be many fields and the types repeat, I imagine it would be easy to alias the wrong field - or at least tedious to write out the destructured tuple |
| 21:54:07 | <Melanie> | what language extension enables the syntax foo @(via Backwards) ... ? |
| 21:56:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 21:59:03 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
| 21:59:22 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 21:59:27 | <monochrom> | probably TypeApplication |
| 21:59:38 | <monochrom> | assuming that "via Backwards" is a type. |
| 22:00:03 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
| 22:00:30 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 22:00:31 | → | hexo joins (~hexo@gateway/tor-sasl/hexo) |
| 22:02:46 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 22:03:00 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 22:04:28 | <yushyin> | it's a ghc proposal |
| 22:04:31 | <yushyin> | https://github.com/ghc-proposals/ghc-proposals/pull/218 |
| 22:04:43 | <yushyin> | ^ Melanie |
| 22:05:56 | <Rembane> | urb: I've seen the tuples been put in records, and then quite some wrangling with Generics to have that translation done more or less automatically. |
| 22:06:35 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 265 seconds) |
| 22:06:39 | <monochrom> | ooohhhh very nice, yushyin, I think we (haskellers) really need that! |
| 22:07:23 | × | ransom quits (~c4264035@8.47.12.52) (Read error: Connection reset by peer) |
| 22:07:46 | <monochrom> | probably better than my https://mail.haskell.org/pipermail/haskell-cafe/2017-May/127147.html |
| 22:08:12 | × | Guest_93 quits (9e8cc287@158.140.194.135) (Remote host closed the connection) |
| 22:08:32 | → | ransom joins (~c4264035@8.47.12.52) |
| 22:09:01 | × | kyali quits (~kyali@APN-123-253-144-gprs.simobil.net) (Ping timeout: 246 seconds) |
| 22:11:01 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 22:11:18 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 22:11:48 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 22:12:21 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 22:13:15 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) |
| 22:15:35 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Remote host closed the connection) |
| 22:17:57 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds) |
| 22:20:17 | → | ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net) |
| 22:22:44 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 22:22:57 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
| 22:24:49 | × | ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 264 seconds) |
| 22:28:30 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:29:38 | <Melanie> | yushyin: thanks!! i'll be excited when it's merged |
| 22:30:06 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:31:13 | <pie_> | how would increasing frequency of garbage collection make something _stop_ crashing? |
| 22:31:15 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:ec23:2fba:6a47:f771) (Remote host closed the connection) |
| 22:31:42 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:ec23:2fba:6a47:f771) |
| 22:32:18 | × | conal_ quits (~conal@66.115.157.28) (Ping timeout: 272 seconds) |
| 22:32:18 | <monochrom> | Would it? |
| 22:33:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 22:33:44 | → | conal joins (~conal@66.115.157.28) |
| 22:35:30 | <ephemient> | I could imagine gc more often -> finalizers called earlier -> smaller leaks |
| 22:35:37 | × | mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Read error: Connection reset by peer) |
| 22:36:26 | <monochrom> | I am against playing speculation games. Let's see some code that actually does it. Code or it didn't happen. |
| 22:36:38 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:ec23:2fba:6a47:f771) (Ping timeout: 264 seconds) |
| 22:38:03 | <monochrom> | Alternatively, I'm happy to play speculation games if outrageous speculations are welcome, such as... |
| 22:38:12 | <monochrom> | "Have you re-seated your DIMMs?" |
| 22:38:24 | → | pera joins (~pera@unaffiliated/pera) |
| 22:39:03 | → | kyali joins (~kyali@APN-123-253-144-gprs.simobil.net) |
| 22:39:04 | <pie_> | if i had an idea what was going on it might be easier to make an MRE but I dont. I can try to do some statistics though |
| 22:39:17 | pie_ | looks up how to give ghci commands as args |
| 22:40:25 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 22:40:48 | <nshepperd> | it's always bad ram |
| 22:42:06 | <ephemient> | ghci -ignore-dot-ghci -ghci-script <(echo 'putStrLn "hello, world!"') |
| 22:42:07 | <nshepperd> | or at least, it's sometimes bad ram, and when it is, you always regret how long you doesn't checking all other possibilities |
| 22:42:11 | <ephemient> | like that? |
| 22:42:22 | <pie_> | oh no. maybe it is bad ram. this wouldnt be the first time someone suggested it. |
| 22:42:36 | × | ADG1089_ quits (~aditya@171.79.107.193) (Remote host closed the connection) |
| 22:42:37 | <pie_> | ephemient: doesnt work, but piping does |
| 22:42:58 | <pie_> | ephemient: $ ghci <(echo println '"asd"') |
| 22:42:58 | <pie_> | target `/dev/fd/63' is not a module name or a source file |
| 22:43:14 | <ephemient> | -ghci-script <(...) works for me |
| 22:43:14 | <pie_> | well not that println would work anyway but |
| 22:43:17 | → | jess joins (jess@freenode/staff/jess) |
| 22:43:20 | <pie_> | oh sorry i cant read |
| 22:46:36 | × | ransom quits (~c4264035@8.47.12.52) (Ping timeout: 240 seconds) |
| 22:47:09 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a898:ee90:1b20:e047) |
| 22:49:30 | <pie_> | ephemient: hmm, seems to execute before things are loaded though |
| 22:49:55 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 22:50:31 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 22:51:47 | → | Tops2 joins (~Tobias@dyndsl-095-033-026-219.ewe-ip-backbone.de) |
| 22:52:16 | → | ransom joins (~c4264035@8.47.12.52) |
| 22:56:10 | <ephemient> | all the packages are loaded at that point, just the module path isn't set yet. you can do that yourself or fully-qualify everything |
| 23:00:24 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:01:12 | <pie_> | aha |
| 23:03:42 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 23:04:06 | × | darjeeling_ quits (~darjeelin@122.245.218.97) (Ping timeout: 265 seconds) |
| 23:04:36 | × | kyali quits (~kyali@APN-123-253-144-gprs.simobil.net) (Ping timeout: 240 seconds) |
| 23:06:25 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection) |
| 23:06:57 | → | nhs_ joins (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
| 23:09:00 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 23:13:14 | × | manjaro-user_ quits (~manjaro-u@2601:285:c000:a6c0::4f77) (Ping timeout: 264 seconds) |
| 23:13:29 | <pie_> | monochrom: this wont make you happy because it doesnt help understand the code but unless it doesnt do what it says on the tin, adding gc "fixes" the crash https://bpa.st/raw/DNGA |
| 23:13:38 | <pie_> | code 139 is segfault, code 141 is sigpipe |
| 23:13:49 | × | matryoshka quits (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:14:34 | → | dansho joins (~dansho@ec2-13-231-43-236.ap-northeast-1.compute.amazonaws.com) |
| 23:14:45 | → | matryoshka joins (~matryoshk@184.75.223.227) |
| 23:16:06 | × | matryoshka quits (~matryoshk@184.75.223.227) (Client Quit) |
| 23:18:05 | → | darjeeling_ joins (~darjeelin@122.245.218.97) |
| 23:18:52 | → | aarvar joins (~foewfoiew@2601:602:a080:fa0:4532:73f5:3132:822a) |
| 23:19:20 | <monochrom> | $? = 141 isn't exactly good news either. |
| 23:19:30 | × | aarvar quits (~foewfoiew@2601:602:a080:fa0:4532:73f5:3132:822a) (Client Quit) |
| 23:20:05 | × | plutoniix quits (~q@ppp-27-55-91-8.revip3.asianet.co.th) (Ping timeout: 240 seconds) |
| 23:20:06 | <monochrom> | Ah you already said that. |
| 23:20:10 | <pie_> | monochrom: thats because i figure head is closing the pipe to ghc or what |
| 23:20:27 | × | asthasr quits (~asthasr@162.210.29.120) (Quit: asthasr) |
| 23:20:37 | <monochrom> | No, sigpipe happens to the writer |
| 23:20:49 | <pie_> | oh hm thats weird then |
| 23:21:11 | <monochrom> | But in "... writer | reader" the writer's exit code is completely forgotten. |
| 23:21:16 | <pie_> | (sigpipe happens to the writer does make more sense in general) |
| 23:23:40 | <pie_> | i should have said, ive probably just got some funky FFI stuff somewhere |
| 23:23:53 | <pie_> | because i _am_ screwing around with FFI |
| 23:23:54 | <monochrom> | I would strace ghcpls2 to confirm or refute a lot of hypotheses. |
| 23:24:09 | <pie_> | i just would have expected increasing GC would lead to more crash |
| 23:24:40 | <pie_> | i did throw gdb at it crashing twice and it was in different parts of clang code |
| 23:25:05 | <monochrom> | But looking at exit codes is a good idea. |
| 23:25:37 | <pie_> | errrr , sorry, not actually sure 141 is sigpipe |
| 23:25:39 | <monochrom> | unveiled that things were never right even when there was no error message |
| 23:25:49 | → | matryoshka joins (~matryoshk@184.75.223.227) |
| 23:26:11 | <pie_> | ok i just googled it ant it looks like it is |
| 23:27:17 | <pie_> | monochrom: this is the stdout of a code 141 and it looks fine to me? https://bpa.st/FUFA |
| 23:28:12 | <ephemient> | for future reference: `$ trap -l` `11) SIGSEGV` `13) SIGPIPE` killed by signal sets the high bit of the status code (128) |
| 23:28:38 | × | qqvat quits (~private@176.167.9.201) (Quit: Lost terminal) |
| 23:28:50 | × | Benzi-Junior quits (~BenziJuni@dsl-149-65-135.hive.is) (Ping timeout: 256 seconds) |
| 23:28:54 | <pie_> | the sigpipe has something to do with using the yes command |
| 23:29:32 | <ephemient> | hmm unless you have shopt -s pipefail it should be ignored in bash |
| 23:29:41 | <pie_> | https://bpa.st/L3YQ |
| 23:29:52 | <pie_> | so that part seems fien |
| 23:30:08 | <monochrom> | What is &> ? |
| 23:30:35 | <ephemient> | 2&> redirects file descriptor 2 |
| 23:31:30 | <monochrom> | "./ghcpls2 &>" does not parse as "./ghcpls 2&>" |
| 23:31:33 | <ephemient> | btw, `yes 'print "asd"' | head -n1 | ghci; echo $?` prints 0 here |
| 23:31:40 | <Uniaika> | (what is &>? baby don't pipe me, don't pipe me no more) |
| 23:33:03 | → | plutoniix joins (~q@node-use.pool-125-24.dynamic.totinternet.net) |
| 23:34:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 23:34:47 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:dc2c:66b9:92e6:b921) (Quit: Leaving) |
| 23:35:36 | <ephemient> | anyhow, I think this looks consistent with (but does not necessarily imply) my guess that GC causes finalizers to run earlier than they would otherwise, leading to some leak not occurring |
| 23:36:43 | → | manjaro-user_ joins (~manjaro-u@c-73-34-23-13.hsd1.co.comcast.net) |
| 23:36:45 | <ephemient> | maybe there is some foreign state that is being reused when it is not safe to |
| 23:38:17 | × | pera quits (~pera@unaffiliated/pera) (Quit: leaving) |
| 23:39:08 | → | knupfer1 joins (~Thunderbi@200116b824b6e000a132a85041d580a8.dip.versatel-1u1.de) |
| 23:39:18 | × | knupfer quits (~Thunderbi@i5E86B49C.versanet.de) (Read error: Connection reset by peer) |
| 23:39:18 | knupfer1 | is now known as knupfer |
| 23:43:43 | × | knupfer quits (~Thunderbi@200116b824b6e000a132a85041d580a8.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 23:45:25 | × | conal quits (~conal@66.115.157.28) (Quit: Computer has gone to sleep.) |
| 23:45:54 | × | Guest20273 quits (~textual@mskresolve-a.mskcc.org) (Ping timeout: 246 seconds) |
| 23:46:08 | → | conal joins (~conal@66.115.157.28) |
| 23:46:08 | × | conal quits (~conal@66.115.157.28) (Client Quit) |
| 23:47:17 | → | conal joins (~conal@66.115.157.28) |
| 23:54:03 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 23:55:49 | × | emptyflask quits (~jon@136.49.71.178) (Ping timeout: 256 seconds) |
| 23:56:20 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 23:56:28 | → | emptyflask joins (~jon@136.49.71.178) |
| 23:58:51 | → | Alleria joins (~textual@2603-7000-3040-0000-f8bc-1046-d481-0a5d.res6.spectrum.com) |
| 23:59:15 | Alleria | is now known as Guest41259 |
All times are in UTC on 2021-01-06.