Logs: liberachat/#haskell
| 2021-08-26 15:41:28 | → | hannessteffenhag joins (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) |
| 2021-08-26 15:42:54 | <c_wraith> | *sigh*. I went looking on hackage to see if a function I want exists someplace. It's stuffed in a half-dozen packages as a throw-away utility. |
| 2021-08-26 15:43:28 | <maerwald> | create a package per function |
| 2021-08-26 15:43:42 | <c_wraith> | this one should probably just be in base |
| 2021-08-26 15:45:49 | <c_wraith> | ... or part of the language. I kind of wish every data type definition also created a non-recursive eliminator for the type |
| 2021-08-26 15:45:55 | × | hannessteffenhag quits (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds) |
| 2021-08-26 15:46:34 | × | Hydrazer quits (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) (Ping timeout: 246 seconds) |
| 2021-08-26 15:49:58 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 2021-08-26 15:55:53 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c68:9e4d:912c:4792) |
| 2021-08-26 15:56:13 | → | elf_fortrez joins (~elf_fortr@adsl-72-50-5-235.prtc.net) |
| 2021-08-26 15:57:52 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2) |
| 2021-08-26 15:58:06 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 2021-08-26 15:58:10 | × | peterhil quits (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Read error: error:1408F10B:SSL routines:ssl3_get_record:wrong version number) |
| 2021-08-26 15:58:33 | → | peterhil joins (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) |
| 2021-08-26 15:58:36 | <tomsmeding> | as in, the recursive place is instead a call to an argument of this eliminator? |
| 2021-08-26 15:58:54 | × | dajoer quits (~david@user/gvx) (Quit: leaving) |
| 2021-08-26 15:59:06 | × | azeem quits (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
| 2021-08-26 16:00:18 | → | azeem joins (~azeem@dynamic-adsl-78-13-253-103.clienti.tiscali.it) |
| 2021-08-26 16:00:33 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 2021-08-26 16:01:12 | <tomsmeding> | kuribas: get the full dependency tree of your project using 'stack dot', download all the .cabal files for those packages from stackage and grep for 0.10.4; if not found, download all the .cabal files of _all the versions_ of those packages :p |
| 2021-08-26 16:01:30 | <c_wraith> | I think eliminator is the wrong term - it doesn't eliminate the type entirely, if the type is recursive. just one level of it |
| 2021-08-26 16:02:27 | <kuribas> | ugh stack is worse than cabal hell. |
| 2021-08-26 16:02:33 | <tomsmeding> | c_wraith: if I understand what you refer to correctly, I've wanted this multiple times with GADTs |
| 2021-08-26 16:02:40 | <kuribas> | unless it happens to have all your version perfectly in the snapshot. |
| 2021-08-26 16:02:48 | <tomsmeding> | making something like that generically using GHC generics should be doable, but gadts don't do generics :p |
| 2021-08-26 16:03:51 | <c_wraith> | Basically, I want cata : church encoding :: ??? : scott encoding |
| 2021-08-26 16:04:28 | <kuribas> | Or I guess stack forces you to use old versions... |
| 2021-08-26 16:10:36 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 2021-08-26 16:10:51 | <maerwald> | stack is worse than both nix and cabal... doesn't have the expressivity of nix and doesn't have the constraint solver of cabal |
| 2021-08-26 16:11:30 | <maerwald> | but it managed to provide a better user interface |
| 2021-08-26 16:11:35 | ← | lbseale parts (~lbseale@user/ep1ctetus) (Leaving) |
| 2021-08-26 16:11:41 | <janus> | why does stack need a constraint solver if you have stackage? |
| 2021-08-26 16:12:03 | <c_wraith> | it needs *something* to specify versions the instant you step outside stackage |
| 2021-08-26 16:12:08 | <c_wraith> | it just punts to the user |
| 2021-08-26 16:12:12 | <maerwald> | janus: are you asking why you'd want to install packages outside of stackage? |
| 2021-08-26 16:12:17 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 2021-08-26 16:12:31 | <sm> | Hydrazer: it's difficult because it doesn't make sense - how would you display a count of days as Y-m-d |
| 2021-08-26 16:12:39 | <maerwald> | or why dependency resolution is a thing? |
| 2021-08-26 16:12:57 | <janus> | no, not really asking that. i just thought it was weird to make that the deciding factor acting like stackage doesn't exist |
| 2021-08-26 16:13:07 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds) |
| 2021-08-26 16:13:14 | <janus> | i understand you may need one once you leave stackage |
| 2021-08-26 16:13:32 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 250 seconds) |
| 2021-08-26 16:13:46 | <janus> | thought it didn't seem super complicated the problems i had stepping outside of stackage. it remains the exception |
| 2021-08-26 16:13:58 | <maerwald> | cabal would allow us to define package range sets that work with each other... stack can't |
| 2021-08-26 16:14:24 | <maerwald> | you could add security overlays as constraints etc etc |
| 2021-08-26 16:14:32 | <maerwald> | all things stack can't do, because it doesn't have a solver |
| 2021-08-26 16:15:52 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
| 2021-08-26 16:16:15 | <janus> | that would be so cool |
| 2021-08-26 16:17:02 | <kuribas> | janus: because stackage doesn't have all libraries, or you need a newer version. |
| 2021-08-26 16:17:19 | <maerwald> | janus: https://mail.haskell.org/pipermail/cabal-devel/2015-July/010214.html |
| 2021-08-26 16:17:52 | <janus> | kuribas: yes i know, occasionally i need to put an 'extra dep'. i acknowledged that already in my previous comment stating that it is the exception |
| 2021-08-26 16:18:15 | <kuribas> | janus: not for me |
| 2021-08-26 16:19:03 | <janus> | i acknowledge that it depends what you're trying to do, how bleeding edge you need to be |
| 2021-08-26 16:19:14 | <maerwald> | sometimes you add extra-dep and then in the next step it tells you to add a different version of the same dep you just added :D |
| 2021-08-26 16:19:23 | <maerwald> | which, of course, doesn't work |
| 2021-08-26 16:20:30 | <janus> | maerwald: what happened to that proposal by dcoutts go? |
| 2021-08-26 16:20:49 | <maerwald> | he got busy with blockchain xD |
| 2021-08-26 16:21:46 | <maerwald> | but it seems we'll likely get something along those lines |
| 2021-08-26 16:21:48 | <maerwald> | https://github.com/haskell/cabal/issues/7556 |
| 2021-08-26 16:21:54 | <janus> | hmm, given the choice between undermining nation states (causing anarchy) and having cabal support package sets.... difficult choice |
| 2021-08-26 16:22:25 | <janus> | if you go for impact, you may choose the first |
| 2021-08-26 16:22:37 | <siers> | I hope it's the anarchist communist kind |
| 2021-08-26 16:23:04 | <maerwald> | I believe includes are the way to go: 1. generic includes and 2. constraint includes. As a 3rd step, named constraint sets can be introduced at a later stage and then as the last step provide an algebra to combine named constraint sets the way you like |
| 2021-08-26 16:25:18 | → | markpythonicbtc joins (~textual@50.228.44.6) |
| 2021-08-26 16:26:39 | × | shredder quits (~user@user/shredder) (Quit: quitting) |
| 2021-08-26 16:28:36 | → | hannessteffenhag joins (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) |
| 2021-08-26 16:28:49 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 2021-08-26 16:29:33 | → | vysn joins (~vysn@user/vysn) |
| 2021-08-26 16:29:56 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 2021-08-26 16:33:02 | × | hannessteffenhag quits (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds) |
| 2021-08-26 16:35:48 | → | son0p joins (~ff@181.136.122.143) |
| 2021-08-26 16:39:01 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 2021-08-26 16:39:20 | <maerwald> | do we have a good story for versioned json parsing to maintain backwards compat? |
| 2021-08-26 16:41:32 | <maerwald> | https://github.com/Vlix/safe-json |
| 2021-08-26 16:42:06 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 2021-08-26 16:42:24 | → | kmein joins (~weechat@user/kmein) |
| 2021-08-26 16:42:49 | → | hexfive joins (~eric@50.35.83.177) |
| 2021-08-26 16:43:56 | <janus> | if you know the support lifetime once each migration begins, add the new field next to the old one, and put a comment on the old one stating it's removal date, and make calendar event for that date |
| 2021-08-26 16:44:58 | <janus> | if the schema changes too much, do the same for endpoints |
| 2021-08-26 16:45:16 | → | neo1 joins (~neo3@cpe-292712.ip.primehome.com) |
| 2021-08-26 16:45:52 | <janus> | an Aeson parser will ignore unknown keys of an object, so never have an endpoint return anything that is not an object, otherwise, you will not be able to change the schema without a new endpoint |
| 2021-08-26 16:46:07 | × | d0ku quits (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Ping timeout: 252 seconds) |
| 2021-08-26 16:48:05 | <janus> | one thing that sucks about Aeson is that AFAIK it is not verify convenient to omit a key. so if you have a key that is supposed to be omitted when its value is Nothing, it is hard to test for that with e.g. a property test that uses your serializer |
| 2021-08-26 16:49:24 | <janus> | but that is not strictly related to version migrations i guess |
| 2021-08-26 16:49:37 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
| 2021-08-26 16:50:19 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 2021-08-26 16:50:29 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 2021-08-26 16:51:04 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 2021-08-26 16:52:28 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 2021-08-26 16:52:46 | → | kmein joins (~weechat@user/kmein) |
| 2021-08-26 16:55:55 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2021-08-26 16:55:55 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 2021-08-26 16:55:55 | → | wroathe joins (~wroathe@user/wroathe) |
| 2021-08-26 16:57:18 | <siers> | I'm learning about GADTs and I noticed when I have a GADT, say Nats, – SNat ('Succ ('Succ Zero)) – the type parameter inside of it seems to be a value |
| 2021-08-26 16:57:27 | → | hannessteffenhag joins (~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) |
| 2021-08-26 16:58:51 | <siers> | or, well, the constructor names |
| 2021-08-26 16:59:23 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
| 2021-08-26 16:59:35 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 2021-08-26 17:00:16 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 2021-08-26 17:00:27 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
All times are in UTC.