Logs on 2022-03-06 (liberachat/#haskell)
| 00:01:15 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 00:03:17 | <monochrom> | Everyone invented computing at the same time. :) |
| 00:03:52 | × | mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds) |
| 00:04:05 | × | chenqisu1 quits (~chenqisu1@183.217.201.47) (Remote host closed the connection) |
| 00:04:30 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 250 seconds) |
| 00:05:52 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 00:06:46 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 00:07:03 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 00:07:29 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 00:11:17 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 240 seconds) |
| 00:11:57 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 00:12:00 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 00:15:02 | × | Tuplanolla quits (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:16:32 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 00:17:22 | <hpc> | i read the othere day that we knew how to make computers before we realized what computing even was |
| 00:17:35 | <hpc> | babbage added a lot of complexity to his difference engine and analytical engine |
| 00:18:05 | <hpc> | from trying to build too-large registers and stuff like that |
| 00:18:34 | <hpc> | but if math had just advanced a little bit further, we could have had a mechanical computer in the 1800s |
| 00:18:39 | <hpc> | that was turing-complete |
| 00:18:45 | <hpc> | (babbage-complete?) |
| 00:18:46 | <geekosaur> | it's been argued that the jacquard loom was in some sense the first computer, or at least the first programmable device |
| 00:19:03 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 00:19:39 | <hpc> | that loom is also the origin of the term luddite |
| 00:20:02 | <geekosaur> | yep |
| 00:20:13 | <hpc> | it took a skilled industry and turned it into sweatshops, so a guy named ludd gathered support and destroyed those looms |
| 00:22:01 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 00:23:17 | <hpc> | another great computing story is that lisp was created by accident |
| 00:23:54 | <hpc> | it was just supposed to be mathematical notation that was convenient for early computational research |
| 00:24:17 | <hpc> | some grad students took the definition of eval from the original paper and hand-compiled it |
| 00:25:27 | <hpc> | hmm, correction: it wasn't grad students |
| 00:25:52 | <hpc> | it was even better - the same guy that implemented lisp also made the first computer game |
| 00:26:02 | <hpc> | https://en.wikipedia.org/wiki/Steve_Russell_(computer_scientist) |
| 00:26:33 | × | DNH quits (~DNH@2a02:8108:1100:16d8:5900:7509:5d83:fce2) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:31:35 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 00:31:36 | pooryori1k | is now known as pooryorick |
| 00:33:05 | <dpratt> | Trying to get a better understanding (again) of HN type inference, and I don't know why I struggle so much to interpret some of the rules. For example, one of the premises of the "Abs[traction]" rule will start something like "Γ, x : σ ⊢ ...". Now I think I understand that this is adding some information about the type of "x" to the context. But where did this information come from? Or am I entirely out in left field here? |
| 00:34:59 | <hpc> | it's like implication rules in logic, or function parameters |
| 00:35:42 | <dpratt> | oh, maybe I just figured it out...it's in the other premise? |
| 00:35:55 | × | neurocyte0917090 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 00:36:08 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 250 seconds) |
| 00:36:39 | <dpratt> | hpc: yeah, too bad I know about as much of that as I do this :) |
| 00:37:08 | <dpratt> | it's also really hard to type questions what with all the unicode :D |
| 00:38:06 | <hpc> | yeah, sometimes i wish someone had introduced variable names to math |
| 00:38:17 | <dpratt> | oh no, it's not in the other premise, I got abstraction and let rules mixed up |
| 00:38:18 | <hpc> | (environment, x :: t) -> ... |
| 00:39:40 | <monochrom> | Mathematicians already decided that juxtaposition meant multiplication (or even generally a monoid operation) so they were very afraid of multi-letter names. |
| 00:40:27 | → | neurocyte0917090 joins (~neurocyte@IP-094016064020.dynamic.medianet-world.de) |
| 00:40:27 | × | neurocyte0917090 quits (~neurocyte@IP-094016064020.dynamic.medianet-world.de) (Changing host) |
| 00:40:27 | → | neurocyte0917090 joins (~neurocyte@user/neurocyte) |
| 00:40:38 | → | Guest98 joins (~Guest98@072-239-219-016.res.spectrum.com) |
| 00:42:00 | <hpc> | just write variable names vertically |
| 00:42:17 | <geekosaur> | already taken by matrices :þ |
| 00:42:34 | <hpc> | put each letter in the same location on sequential pieces of paper |
| 00:42:44 | <hpc> | 3d math papers |
| 00:47:23 | × | Trattue- quits (~Trattue@152.70.182.158) (Quit: bye) |
| 00:48:20 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Remote host closed the connection) |
| 00:48:22 | → | romesrf joins (~romes@44.190.189.46.rev.vodafone.pt) |
| 00:50:28 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 00:50:30 | → | Trattue joins (~Trattue@152.70.182.158) |
| 00:51:48 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 00:54:07 | <dpratt> | Ok, maybe I'm looking at this the wrong way. The thing I was describing above was a typing judgment (I think). So it would sort of inform type inference, but I think it's not right for me to think of it as describing type inference, at least in a "forward" way. In a type inference scenario, you might not "know" the premises up front, but they would be deducible. Right? Kinda sorta? |
| 00:56:02 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 00:56:42 | → | lavaman joins (~lavaman@98.38.249.169) |
| 00:58:18 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 00:59:57 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 01:05:07 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 01:13:25 | × | fockeriz1 quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 01:16:12 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 01:17:46 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 01:19:58 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 01:20:17 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 01:30:58 | → | wolfshappen joins (~waff@irc.furworks.de) |
| 01:33:51 | ← | Guest98 parts (~Guest98@072-239-219-016.res.spectrum.com) () |
| 01:36:26 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 01:37:10 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Remote host closed the connection) |
| 01:40:30 | → | vysn joins (~vysn@user/vysn) |
| 01:40:42 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 250 seconds) |
| 01:40:52 | → | wolfshappen_ joins (~waff@irc.furworks.de) |
| 01:40:58 | × | wolfshappen quits (~waff@irc.furworks.de) (Ping timeout: 256 seconds) |
| 01:44:14 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 01:45:19 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 01:45:52 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:49:50 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 01:50:16 | × | romesrf quits (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4) |
| 01:50:36 | × | wolfshappen_ quits (~waff@irc.furworks.de) (Ping timeout: 256 seconds) |
| 01:56:42 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 01:57:26 | → | j3r3my joins (~j3r3my@68-73-116-155.lightspeed.rlghnc.sbcglobal.net) |
| 02:02:24 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 02:02:31 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 256 seconds) |
| 02:06:29 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
| 02:07:13 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 02:07:19 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:11:49 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 02:12:57 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 02:14:08 | → | wolfshappen joins (~waff@irc.furworks.de) |
| 02:15:13 | → | zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
| 02:17:14 | × | soxen_ quits (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds) |
| 02:22:26 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 245 seconds) |
| 02:23:07 | × | kaph quits (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 02:23:56 | × | ishutin quits (~ishutin@92-249-193-47.pool.digikabel.hu) (Ping timeout: 272 seconds) |
| 02:24:17 | → | AlexNoo_ joins (~AlexNoo@178.34.160.24) |
| 02:24:57 | → | ishutin joins (~ishutin@193-110-63-27.cable-modem.hdsnet.hu) |
| 02:25:57 | × | Alex_test quits (~al_test@178.34.161.1) (Ping timeout: 250 seconds) |
| 02:26:12 | × | AlexZenon quits (~alzenon@178.34.161.1) (Ping timeout: 240 seconds) |
| 02:27:56 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:28:00 | × | AlexNoo quits (~AlexNoo@178.34.161.1) (Ping timeout: 256 seconds) |
| 02:28:11 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:28:18 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:28:33 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:28:40 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:28:45 | × | hyiltiz_ quits (~quassel@31.220.5.250) (Quit: hyiltiz_) |
| 02:28:54 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:29:01 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:29:16 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:29:23 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:29:37 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:29:44 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:29:55 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 02:29:59 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:30:06 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:30:24 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:30:31 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:30:40 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Remote host closed the connection) |
| 02:31:45 | → | Alex_test joins (~al_test@178.34.160.24) |
| 02:31:59 | → | AlexZenon joins (~alzenon@178.34.160.24) |
| 02:33:45 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 02:34:05 | × | waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
| 02:37:34 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 02:38:02 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
| 02:39:00 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 02:39:05 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:40:43 | × | beka quits (~beka@104.193.170.240) (Ping timeout: 256 seconds) |
| 02:41:48 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Ping timeout: 240 seconds) |
| 02:42:59 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 02:44:19 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 02:45:18 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 02:47:00 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 250 seconds) |
| 02:47:24 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 02:48:06 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 02:49:31 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 245 seconds) |
| 02:50:36 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
| 02:50:37 | × | neurocyte0917090 quits (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
| 02:50:47 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Read error: Connection reset by peer) |
| 02:50:55 | → | aplainze1akind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 02:54:54 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 02:57:44 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 03:01:18 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 250 seconds) |
| 03:03:08 | × | xkuru quits (~xkuru@user/xkuru) (Ping timeout: 256 seconds) |
| 03:03:26 | → | soxen joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
| 03:04:35 | → | beka joins (~beka@104-244-24-117.PUBLIC.monkeybrains.net) |
| 03:05:47 | → | xkuru joins (~xkuru@user/xkuru) |
| 03:06:39 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 03:09:59 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 03:11:01 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
| 03:11:05 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 03:12:12 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 03:12:28 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Remote host closed the connection) |
| 03:12:41 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 03:16:12 | → | merijn joins (~merijn@c-001-002-007.client.esciencecenter.eduvpn.nl) |
| 03:16:46 | Batzy_ | is now known as Batzy |
| 03:17:11 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 03:21:31 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 03:28:12 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
| 03:35:15 | → | lavaman joins (~lavaman@98.38.249.169) |
| 03:37:28 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 03:42:28 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 03:44:26 | × | beka quits (~beka@104-244-24-117.PUBLIC.monkeybrains.net) (Remote host closed the connection) |
| 03:44:51 | → | beka joins (~beka@104-244-24-117.PUBLIC.monkeybrains.net) |
| 03:48:13 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 03:50:25 | × | merijn quits (~merijn@c-001-002-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 03:53:14 | × | beka quits (~beka@104-244-24-117.PUBLIC.monkeybrains.net) (Remote host closed the connection) |
| 03:53:14 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 03:53:37 | → | beka joins (~beka@104-244-24-117.PUBLIC.monkeybrains.net) |
| 03:58:17 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 03:58:27 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 04:02:53 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 04:06:25 | × | Unicorn_Princess quits (~Unicorn_P@46-54-248-191.static.kate-wing.si) (Quit: Leaving) |
| 04:07:41 | × | beka quits (~beka@104-244-24-117.PUBLIC.monkeybrains.net) (Remote host closed the connection) |
| 04:07:48 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 04:08:05 | → | beka joins (~beka@104-244-24-117.PUBLIC.monkeybrains.net) |
| 04:12:32 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 04:13:05 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 04:16:48 | × | ishutin quits (~ishutin@193-110-63-27.cable-modem.hdsnet.hu) (Ping timeout: 256 seconds) |
| 04:17:35 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 04:18:18 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 04:18:19 | → | ishutin joins (~ishutin@178-164-207-239.pool.digikabel.hu) |
| 04:18:23 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 04:22:36 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 04:23:00 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 04:30:17 | × | zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 240 seconds) |
| 04:31:32 | × | tcard_ quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
| 04:36:10 | → | tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) |
| 04:36:16 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 04:36:37 | × | j3r3my quits (~j3r3my@68-73-116-155.lightspeed.rlghnc.sbcglobal.net) (Quit: Leaving) |
| 04:37:07 | → | deadmarshal_ joins (~deadmarsh@95.38.115.28) |
| 04:37:16 | × | lumberjack123 quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 04:38:36 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 04:40:39 | → | lavaman joins (~lavaman@98.38.249.169) |
| 04:43:00 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 04:43:05 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 04:46:03 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 04:46:22 | × | mvk quits (~mvk@2607:fea8:5cc3:7e00::45ee) (Ping timeout: 260 seconds) |
| 04:46:46 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 04:47:11 | → | liz joins (~liz@217.146.92.242) |
| 04:48:23 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 04:48:36 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 04:50:48 | × | deadmarshal_ quits (~deadmarsh@95.38.115.28) (Ping timeout: 256 seconds) |
| 04:52:31 | <liz> | hello everyone! i'm having a bit of a brain-block currently; i have a function solve :: String -> Int, and i want to do something like readFile "myfile.txt" >>= solve, but that'd require solve to be String -> IO Int instead. is there an obvious other way of doing this that i'm missing? i really feel like i'm missing something very obvious! i did make a function lift :: (Applicative f) => (a -> b) -> a -> f b so i could do readFile "myfile.txt" >>= lift solve, |
| 04:52:31 | <liz> | but this feels messy. |
| 04:54:04 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 04:54:06 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 04:54:10 | allbery_b | is now known as geekosaur |
| 04:54:40 | <monochrom> | See my http://www.vex.net/~trebla/haskell/IO.xhtml#organization |
| 04:56:05 | <liz> | i'll have a look now, thank you! |
| 04:57:22 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 04:58:50 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 04:59:58 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Remote host closed the connection) |
| 05:03:32 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 05:07:16 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:09:28 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 05:11:48 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 05:14:36 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 05:19:39 | → | img joins (~img@user/img) |
| 05:20:59 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 05:21:05 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 05:25:42 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 05:27:40 | → | mbuf joins (~Shakthi@110.225.225.117) |
| 05:30:30 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 05:30:55 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 05:31:38 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 05:34:36 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 05:36:00 | → | emf joins (~emf@2600:1700:19e0:5c80:463:c67:e6c7:c76) |
| 05:36:43 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 256 seconds) |
| 05:37:06 | × | soxen quits (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 272 seconds) |
| 05:37:37 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 05:37:37 | → | soxen joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
| 05:39:37 | × | emf quits (~emf@2600:1700:19e0:5c80:463:c67:e6c7:c76) (Remote host closed the connection) |
| 05:39:58 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 05:40:14 | → | emf joins (~emf@2620:10d:c090:400::5:12de) |
| 05:44:28 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 05:45:13 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 05:45:24 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Ping timeout: 240 seconds) |
| 05:46:17 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 240 seconds) |
| 05:46:47 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 05:47:22 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 05:48:05 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 05:49:33 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 05:49:46 | → | Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
| 05:49:54 | → | iqubic joins (~iqubic@c-67-171-37-233.hsd1.wa.comcast.net) |
| 05:50:24 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 05:50:45 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 05:51:00 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 05:51:46 | × | emf quits (~emf@2620:10d:c090:400::5:12de) (Quit: emf) |
| 05:52:49 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 05:55:24 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 05:56:20 | × | liz quits (~liz@217.146.92.242) (Quit: Leaving) |
| 05:58:59 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 05:59:20 | → | zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
| 06:01:35 | × | Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 06:02:09 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 06:04:24 | → | deadmarshal_ joins (~deadmarsh@95.38.115.28) |
| 06:08:19 | → | lumberjack123 joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:08:47 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 06:10:45 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 06:10:59 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 06:11:56 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 06:12:39 | → | Null_A joins (~null_a@2601:645:8700:2290:c864:fc8b:2d0b:834a) |
| 06:12:44 | × | agumonkey quits (~user@88.163.231.79) (Read error: Connection reset by peer) |
| 06:13:31 | → | agumonkey joins (~user@88.163.231.79) |
| 06:14:28 | × | ishutin quits (~ishutin@178-164-207-239.pool.digikabel.hu) (Ping timeout: 272 seconds) |
| 06:15:18 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 06:15:45 | → | ishutin joins (~ishutin@92-249-141-199.pool.digikabel.hu) |
| 06:15:56 | → | xkuru joins (~xkuru@user/xkuru) |
| 06:16:12 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 06:16:13 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 06:17:17 | × | Null_A quits (~null_a@2601:645:8700:2290:c864:fc8b:2d0b:834a) (Ping timeout: 240 seconds) |
| 06:17:52 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 06:20:54 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 06:21:19 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 06:21:26 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 06:22:00 | → | coot joins (~coot@213.134.190.95) |
| 06:22:12 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 06:24:13 | × | CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 06:25:14 | → | zebrag joins (~chris@user/zebrag) |
| 06:25:20 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 06:27:48 | × | soxen quits (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 240 seconds) |
| 06:31:13 | × | gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
| 06:33:38 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 06:35:06 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 06:35:49 | → | Null_A joins (~null_a@2601:645:8700:2290:c864:fc8b:2d0b:834a) |
| 06:37:06 | × | Null_A quits (~null_a@2601:645:8700:2290:c864:fc8b:2d0b:834a) (Remote host closed the connection) |
| 06:37:19 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 06:38:07 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 06:38:32 | → | fef joins (~thedawn@user/thedawn) |
| 06:39:01 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 06:40:44 | → | zebrag joins (~chris@user/zebrag) |
| 06:41:00 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 06:42:41 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 06:45:14 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:46:21 | → | mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 06:47:07 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 06:47:55 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 06:51:14 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 06:52:07 | → | lavaman joins (~lavaman@98.38.249.169) |
| 06:52:36 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:cfdc:46b6:d3d6:d388) (Ping timeout: 240 seconds) |
| 06:54:50 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:c731:e273:a007:5879) |
| 06:57:08 | → | gentauro joins (~gentauro@user/gentauro) |
| 06:58:16 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 245 seconds) |
| 06:58:21 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 07:02:37 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 07:02:50 | × | zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 256 seconds) |
| 07:09:52 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:11:01 | × | beka quits (~beka@104-244-24-117.PUBLIC.monkeybrains.net) (Ping timeout: 256 seconds) |
| 07:11:49 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 07:13:16 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 240 seconds) |
| 07:13:26 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 07:16:01 | → | zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
| 07:18:40 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 07:23:14 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 07:23:19 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:24:59 | × | altern quits (~altern@altern.corbina.com.ua) (Remote host closed the connection) |
| 07:27:49 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:30:46 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 07:33:38 | → | liz joins (~liz@217.146.92.242) |
| 07:35:48 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:38:43 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
| 07:39:18 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 07:41:37 | × | mbuf quits (~Shakthi@110.225.225.117) (Quit: Leaving) |
| 07:42:49 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 07:42:59 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 07:43:24 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 07:43:58 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 07:48:12 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 07:55:03 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 07:59:33 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 08:00:41 | → | `2jt joins (~jtomas@210.red-88-24-179.staticip.rima-tde.net) |
| 08:01:17 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 08:03:56 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Remote host closed the connection) |
| 08:04:29 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 08:04:40 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 08:05:37 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 08:05:40 | AlexNoo_ | is now known as AlexNoo |
| 08:07:01 | → | zaquest joins (~notzaques@5.130.79.72) |
| 08:09:06 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Ping timeout: 272 seconds) |
| 08:09:24 | → | lavaman joins (~lavaman@98.38.249.169) |
| 08:09:59 | → | acidjnk joins (~acidjnk@p200300d0c70d8c985c6dbece2fe5bbc5.dip0.t-ipconnect.de) |
| 08:10:08 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 08:10:56 | × | liz quits (~liz@217.146.92.242) (Quit: Leaving) |
| 08:14:48 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 08:17:19 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 08:19:17 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 08:19:25 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:22:12 | × | amazigh quits (~amirouche@user/amirouche) (Ping timeout: 240 seconds) |
| 08:24:38 | → | Null_A joins (~null_a@2601:645:8700:2290:c864:fc8b:2d0b:834a) |
| 08:28:02 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 08:28:17 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 08:32:36 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 08:34:13 | × | Null_A quits (~null_a@2601:645:8700:2290:c864:fc8b:2d0b:834a) (Remote host closed the connection) |
| 08:38:52 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 08:39:44 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 08:44:12 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Ping timeout: 240 seconds) |
| 08:46:46 | × | zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
| 08:46:58 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 08:48:31 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 08:51:24 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 08:51:36 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 08:52:37 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 08:56:12 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 09:00:31 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 09:02:16 | → | zeenk joins (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
| 09:04:35 | <worldhelloworld> | I'm struggling a bit conceptualizing fold(s....r/l) when having arbitrary/lambda functions to be implemented (vs the usual *,+, those I kinda get) .......... does anyone know of good examples/material to get used to thinking about it correctly? |
| 09:06:31 | <worldhelloworld> | eg this problem : Select elements from a list while they satisfy a predicate: takeWhile :: (a -> Bool) -> [a] -> [a] |
| 09:06:31 | <worldhelloworld> | How do I go about conceptualizing/thinking about it? |
| 09:06:42 | <worldhelloworld> | to define that function |
| 09:08:46 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 09:09:30 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 09:13:14 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Remote host closed the connection) |
| 09:13:30 | → | Tuplanolla joins (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) |
| 09:13:42 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 09:13:57 | × | little_mac quits (~little_ma@2601:410:4300:3ce0:3499:893c:26f0:bcd0) (Ping timeout: 240 seconds) |
| 09:14:40 | → | DNH joins (~DNH@2a02:8108:1100:16d8:d9d2:7af1:5c0a:c9d9) |
| 09:18:09 | <jackdk> | worldhelloworld: http://data.tmorris.net/talks/list-folds/b30aa0fdff296c731bc5b1c824adf1d02b3b69d9/list-folds.pdf |
| 09:18:45 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 09:19:06 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 09:19:16 | → | zer0bitz joins (~zer0bitz@2001:2003:f74d:b800:f999:2ecc:9c95:df5d) |
| 09:19:33 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer) |
| 09:20:45 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 09:23:16 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 245 seconds) |
| 09:29:01 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 09:30:09 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 09:31:13 | → | Pickchea joins (~private@user/pickchea) |
| 09:33:24 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 09:33:36 | <worldhelloworld> | thanks @jackdk - just trying to figure out how to conditionally traverse a list like in the above problem. More specifically how to form the lambda functions and their arguments/body wrt folds |
| 09:34:01 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 09:34:12 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 240 seconds) |
| 09:34:28 | <jackdk> | You know that takeWhile must work on an infinite list - that excludes foldl for reasons explained in the slides |
| 09:34:55 | <jackdk> | Therefore, we must use foldr, which tells us to formulate the problem in terms of constructor replacement |
| 09:35:41 | <jackdk> | Writing out the type signature and the arguments: `takeWhile' :: (a -> Bool) -> [a] -> [a]`; `takeWhile' f list = foldr ? ? ?` |
| 09:36:07 | <jackdk> | Can you answer the following questions: 1. On what list are we performing constructor replacement? 2. What do we replace `[]` with? |
| 09:36:39 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 09:37:47 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:38:25 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Remote host closed the connection) |
| 09:39:25 | <worldhelloworld> | Tbh, not really able to think in terms of fold .... so struggling |
| 09:40:46 | <jackdk> | What do you mean "think in terms of fold"? Did you read the slides? They are an excellent and IMHO underappreciated description of left and right folds, and I find them significantly clearer than the standard explanations |
| 09:41:01 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 09:42:01 | <worldhelloworld> | I did, but maybe worked out examples would help me more, will try to re-read them though, hoping to understand |
| 09:42:35 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 09:42:46 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 09:42:50 | → | random-jellyfish joins (~random-je@user/random-jellyfish) |
| 09:43:57 | × | `2jt quits (~jtomas@210.red-88-24-179.staticip.rima-tde.net) (Ping timeout: 240 seconds) |
| 09:45:17 | <jackdk> | Let us work out `map` together, as that's one of the challenges in the slides. It challenges you to write `map` using `foldr`. That means you will need to decide 1. the list whose constructors we will be replacing; 2. what should we replace the [] constructor with; and 3. what we should replace the (:) constructor with. You can get clues for 2 and 3 by writing on a piece of paper some sample inputs and outputs to `map`. |
| 09:47:53 | → | lavaman joins (~lavaman@98.38.249.169) |
| 09:48:06 | <jackdk> | when writing a function, it's a good idea to start with the type signature and put holes where you don't know what goes where |
| 09:48:36 | × | lumberjack123 quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 09:49:00 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 240 seconds) |
| 09:49:44 | <jackdk> | worldhelloworld: consider this - we know we are using foldr because that's part of the challenge, and the only list worth folding over is the one we've been given. GHC will then tell you the expected types for _func and _nil https://www.irccloud.com/pastebin/wiuP4XXp/MyMap.hs |
| 09:52:58 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 09:53:43 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 10:01:16 | → | Null_A joins (~null_a@2601:645:8700:2290:c864:fc8b:2d0b:834a) |
| 10:03:01 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 10:03:03 | × | acidjnk quits (~acidjnk@p200300d0c70d8c985c6dbece2fe5bbc5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 10:05:28 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 10:06:40 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 10:12:07 | × | zer0bitz quits (~zer0bitz@2001:2003:f74d:b800:f999:2ecc:9c95:df5d) (Ping timeout: 256 seconds) |
| 10:12:47 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 10:14:29 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 10:15:32 | <worldhelloworld> | Hmmm, that makes sense - i've read about it using the concept of an accumulator |
| 10:16:02 | → | fockeriz1 joins (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 10:16:37 | → | zer0bitz joins (~zer0bitz@2001:2003:f74d:b800:f999:2ecc:9c95:df5d) |
| 10:17:40 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 10:17:43 | <worldhelloworld> | so in this case _nil would basically represent nothing/empty/zero/base case, right? I think I get that part, just more confused about how to handle arguments for _func_ |
| 10:18:17 | × | Null_A quits (~null_a@2601:645:8700:2290:c864:fc8b:2d0b:834a) (Ping timeout: 240 seconds) |
| 10:18:48 | <jackdk> | foldr is a machine which takes three arguments: a function which will replace the cons `(:)` constructors in the input list; a value which will replace the `[]` constructor in the input list, and the list over which to fold |
| 10:19:43 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 10:20:23 | <worldhelloworld> | ok, that's clear - the part which confuses me is how will the (anonymous) function be defined and how are arguments handled ......... the list, and base case are clear |
| 10:20:39 | <jackdk> | What is the type of `_func`? |
| 10:21:05 | <worldhelloworld> | `a -> b` ? |
| 10:21:34 | <jackdk> | no. Have you put that snippet into GHC? It will tell you the type it is expecting there. |
| 10:21:48 | <worldhelloworld> | ok, let me try |
| 10:23:41 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 245 seconds) |
| 10:23:46 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 10:23:53 | <worldhelloworld> | doesn't compile - seems to be giving error about _func and _nil |
| 10:24:27 | → | lavaman joins (~lavaman@98.38.249.169) |
| 10:24:29 | <jackdk> | yes! those are called typed holes, and are a way for the programmer to ask GHC "what is the type of the thing which should go here?" |
| 10:25:46 | <worldhelloworld> | ah ok, so I guess that's because we haven't defined _func and _nil ? Nor type declaration nor definition |
| 10:26:27 | → | briandaed joins (~root@109.95.142.93.r.toneticgroup.pl) |
| 10:26:35 | <jackdk> | while _func and _nil are valid names that are not defined, an undefined symbol which starts with an _ is a typed hole, which is a way for the programmer to ask GHC "what is the type of the thing which should go here?" |
| 10:26:37 | → | dudek joins (~dudek@185.150.236.127) |
| 10:27:13 | <jackdk> | https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/typed_holes.html |
| 10:27:33 | <worldhelloworld> | that's interesting - had no idea about it! |
| 10:30:37 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 10:31:20 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 10:34:17 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 10:35:04 | × | dudek quits (~dudek@185.150.236.127) (Quit: Leaving) |
| 10:37:37 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 10:38:49 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 10:42:41 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 10:42:57 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Ping timeout: 240 seconds) |
| 10:43:36 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 10:43:39 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 10:46:24 | → | cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
| 10:47:45 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 10:47:57 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 10:47:57 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 240 seconds) |
| 10:48:47 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 10:49:45 | × | dcoutts__ quits (~duncan@host86-144-78-249.range86-144.btcentralplus.com) (Ping timeout: 256 seconds) |
| 10:51:13 | × | cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds) |
| 10:52:06 | → | zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
| 10:53:00 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 10:54:31 | → | alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 10:54:44 | → | cheater joins (~Username@user/cheater) |
| 10:57:51 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 10:58:41 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 10:59:46 | × | briandaed quits (~root@109.95.142.93.r.toneticgroup.pl) (Quit: leaving) |
| 11:01:26 | → | coot joins (~coot@213.134.190.95) |
| 11:01:58 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 11:03:30 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 11:04:47 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 11:05:34 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 11:06:52 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 11:08:20 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 11:08:54 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 11:12:46 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 272 seconds) |
| 11:13:33 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 11:14:07 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 11:14:42 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 11:17:01 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 11:19:07 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 11:20:48 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 11:21:42 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 11:23:48 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 11:24:10 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 11:24:33 | <Inst> | @hecate |
| 11:24:33 | <lambdabot> | Unknown command, try @list |
| 11:25:19 | <Inst> | paid $10 for this: |
| 11:25:27 | × | jespada quits (~jespada@85.255.234.170) (Ping timeout: 272 seconds) |
| 11:25:53 | <Inst> | https://drive.google.com/drive/folders/1bGO8q5j1gpMjoBMExPA2EF1tb0aGerDv |
| 11:26:14 | × | shailangsa quits (~shailangs@host86-186-133-59.range86-186.btcentralplus.com) () |
| 11:26:28 | <Inst> | https://drive.google.com/drive/folders/1bGO8q5j1gpMjoBMExPA2EF1tb0aGerDv |
| 11:27:09 | <Inst> | things have just been going on for so long, no progress, got into a (serious) fight with a friend and now I no longer have access to the artist that friend provided |
| 11:27:10 | <Inst> | https://drive.google.com/drive/folders/1bGO8q5j1gpMjoBMExPA2EF1tb0aGerDv |
| 11:27:18 | <Inst> | $200 down the drain |
| 11:27:49 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 11:28:05 | → | jespada joins (~jespada@148.252.129.201) |
| 11:28:43 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer) |
| 11:28:51 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 11:30:30 | → | alp joins (~alp@user/alp) |
| 11:33:02 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:34:49 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 11:40:17 | → | __monty__ joins (~toonn@user/toonn) |
| 11:41:10 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 11:42:57 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 11:45:24 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 11:47:06 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 11:53:14 | × | random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
| 11:54:08 | <Hecate> | hello |
| 11:56:16 | <Rembane> | Hi Hecate ! |
| 11:58:43 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 11:58:58 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 260 seconds) |
| 11:59:17 | × | mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 12:04:49 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 12:07:16 | × | zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
| 12:08:12 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 12:09:01 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 12:09:44 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 12:10:09 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 12:10:48 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Remote host closed the connection) |
| 12:13:37 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 12:14:00 | → | zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
| 12:14:34 | → | cynomys joins (~cynomys@user/cynomys) |
| 12:15:38 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Ping timeout: 256 seconds) |
| 12:15:50 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 12:27:10 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 12:28:47 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
| 12:29:46 | × | zer0bitz quits (~zer0bitz@2001:2003:f74d:b800:f999:2ecc:9c95:df5d) (Ping timeout: 260 seconds) |
| 12:30:34 | × | zeenk quits (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!) |
| 12:31:13 | → | zer0bitz joins (~zer0bitz@2001:2003:f74d:b800:f999:2ecc:9c95:df5d) |
| 12:32:46 | → | MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 12:35:09 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 12:35:20 | → | soxen joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
| 12:35:34 | → | coot joins (~coot@213.134.190.95) |
| 12:38:17 | × | MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 12:39:00 | → | MajorBiscuit joins (~MajorBisc@c-001-021-050.client.tudelft.eduvpn.nl) |
| 12:40:10 | × | coot quits (~coot@213.134.190.95) (Ping timeout: 272 seconds) |
| 12:41:02 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 12:44:56 | → | mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 12:45:17 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Ping timeout: 240 seconds) |
| 12:47:01 | → | kaph joins (~kaph@net-109-116-124-149.cust.vodafonedsl.it) |
| 12:49:03 | × | deadmarshal_ quits (~deadmarsh@95.38.115.28) (Ping timeout: 272 seconds) |
| 12:50:35 | → | random-jellyfish joins (~random-je@user/random-jellyfish) |
| 12:50:57 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 12:51:52 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 12:51:54 | × | cynomys quits (~cynomys@user/cynomys) (Ping timeout: 256 seconds) |
| 12:56:17 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 12:57:07 | × | zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
| 12:57:30 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
| 12:59:23 | → | lavaman joins (~lavaman@98.38.249.169) |
| 13:01:47 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 13:05:02 | × | alp quits (~alp@user/alp) (Ping timeout: 240 seconds) |
| 13:06:44 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 13:10:10 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 13:12:51 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 13:14:54 | <rembo10> | Hey, I wonder if I can get some help on this function... I'm trying to write a simple thing that will split a vcf (vcards) file... but for some reason the second guard doesn't seem to be catching |
| 13:14:59 | <rembo10> | https://pastebin.com/43PWrAWS |
| 13:16:05 | <rembo10> | It's probably bad haskell but it's a first pass |
| 13:16:56 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 13:22:38 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 13:24:12 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 13:27:00 | Axma41360 | is now known as Axman6 |
| 13:27:07 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 13:27:59 | <rembo10> | Whoops there was a little typo. This one compiles: https://pastebin.com/SGBbeRUH |
| 13:28:25 | → | Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
| 13:28:26 | × | wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
| 13:28:48 | → | wyrd joins (~wyrd@gateway/tor-sasl/wyrd) |
| 13:29:57 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Remote host closed the connection) |
| 13:30:41 | → | zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
| 13:32:14 | → | c1utt4r joins (~c1utt4r@vmi275462.contaboserver.net) |
| 13:32:45 | <rembo10> | Oh maybe it's foldl vs foldr |
| 13:34:36 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds) |
| 13:34:40 | <rembo10> | Yeah, I am dumb... |
| 13:35:02 | <geekosaur> | yeh |
| 13:35:17 | <geekosaur> | I pu ttraces on the lines and noted it was doing them in reverse order |
| 13:35:30 | <geekosaur> | changed foldr to foldl and flipped args to parseLine and it worked |
| 13:35:57 | × | mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 13:37:04 | → | Midjak joins (~Midjak@82.66.147.146) |
| 13:37:52 | × | jespada quits (~jespada@148.252.129.201) (Ping timeout: 250 seconds) |
| 13:38:00 | × | Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 13:41:38 | <geekosaur> | btw yiou're not handling the case of truncated data; you should catch when the final parser has inVCF set, it wouldhave warned you in this case that something was wrong |
| 13:42:11 | → | shailangsa joins (~shailangs@host86-186-133-59.range86-186.btcentralplus.com) |
| 13:42:12 | <rembo10> | That's a good point |
| 13:42:25 | <rembo10> | I just stuck with foldr for now and am parsing in reverse order |
| 13:42:35 | <rembo10> | Then I don't need to reverse the end result also |
| 13:43:17 | → | jespada joins (~jespada@85.255.234.169) |
| 13:46:36 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 13:52:01 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 13:55:27 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 13:57:34 | × | dextaa_ quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 13:58:05 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 13:58:59 | × | zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
| 14:01:21 | → | coot joins (~coot@213.134.190.95) |
| 14:02:36 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 14:04:29 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 14:05:06 | × | shailangsa quits (~shailangs@host86-186-133-59.range86-186.btcentralplus.com) (Remote host closed the connection) |
| 14:05:44 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Remote host closed the connection) |
| 14:05:56 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 14:07:16 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 14:09:11 | × | son0p quits (~ff@181.136.122.143) (Remote host closed the connection) |
| 14:13:24 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 14:13:45 | × | soxen quits (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds) |
| 14:14:16 | → | zer0bitz_ joins (~zer0bitz@2001:2003:f74d:b800:c486:dc7e:8ce4:e6c9) |
| 14:15:12 | → | Unicorn_Princess joins (~Unicorn_P@46-54-248-191.static.kate-wing.si) |
| 14:18:02 | × | zer0bitz quits (~zer0bitz@2001:2003:f74d:b800:f999:2ecc:9c95:df5d) (Ping timeout: 260 seconds) |
| 14:18:21 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 272 seconds) |
| 14:22:50 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 14:24:52 | <Hecate> | Rembane: how are you doing? :) |
| 14:24:53 | × | DNH quits (~DNH@2a02:8108:1100:16d8:d9d2:7af1:5c0a:c9d9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:25:00 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 14:27:40 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 14:30:51 | × | coot quits (~coot@213.134.190.95) (Remote host closed the connection) |
| 14:31:15 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 14:36:58 | → | bahamas joins (~lucian@84.232.140.52) |
| 14:42:27 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 14:43:07 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 14:46:37 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Ping timeout: 240 seconds) |
| 14:48:54 | → | soxen joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
| 14:49:12 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 14:50:20 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:55:26 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 14:56:25 | → | CiaoSen joins (~Jura@p5dcc0a70.dip0.t-ipconnect.de) |
| 14:57:01 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 14:57:35 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 14:59:05 | × | mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 256 seconds) |
| 14:59:27 | → | Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
| 15:01:01 | → | mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
| 15:01:25 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 15:03:48 | → | son0p joins (~ff@181.136.122.143) |
| 15:03:55 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 15:04:35 | × | Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 15:07:54 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 15:08:39 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 15:09:49 | → | TonyStone31 joins (~TonyStone@2603-7080-8607-c36a-543d-a065-e6d9-3062.res6.spectrum.com) |
| 15:09:50 | × | TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Quit: Leaving) |
| 15:10:57 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 15:12:31 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 15:15:01 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 15:15:48 | <unit73e> | my xp3 archiver saga is going well. I managed to parse one item. |
| 15:16:06 | <unit73e> | so I just have to use something like many now |
| 15:16:23 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 15:16:57 | × | bahamas quits (~lucian@84.232.140.52) (Ping timeout: 240 seconds) |
| 15:17:01 | → | mvk joins (~mvk@2607:fea8:5cc3:7e00::45ee) |
| 15:19:27 | × | worldhelloworld quits (uid543174@id-543174.helmsley.irccloud.com) (Quit: Updating details, brb) |
| 15:19:35 | → | worldhelloworld1 joins (uid543174@id-543174.helmsley.irccloud.com) |
| 15:20:03 | c1utt4r | is now known as worldhelloworld |
| 15:21:37 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 15:24:39 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:27:46 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 15:32:27 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 15:32:29 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 15:36:57 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 15:38:04 | <Rembane> | Hecate: Tired, but not too unhappy. I released something today with a bug that asked the people who wanted to sign up for 10x the amount of money that it should have done. That was both hilarious and harrowing. How are you? |
| 15:38:46 | → | romesrf joins (~romes@44.190.189.46.rev.vodafone.pt) |
| 15:39:02 | <romesrf> | hello |
| 15:39:46 | <Rembane> | Hi romesrf ! |
| 15:39:51 | → | shailangsa joins (~shailangs@host86-186-133-59.range86-186.btcentralplus.com) |
| 15:40:06 | <romesrf> | : ) |
| 15:41:00 | <romesrf> | how could I encode to json a Float value with commas separating the decimal digits instead of dots |
| 15:41:21 | <romesrf> | toEncoding @Float 12.3 = "12,3" |
| 15:41:55 | <romesrf> | Rembane: what are you up to? |
| 15:42:10 | × | random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
| 15:42:23 | <Rembane> | romesrf: I'm hacking away! :) |
| 15:42:27 | <Rembane> | romesrf: Are you using Aeson? |
| 15:42:33 | <romesrf> | yes I am |
| 15:42:45 | <Rembane> | Isn't JSON always writing floats with dots? |
| 15:43:15 | → | alp joins (~alp@user/alp) |
| 15:43:27 | <romesrf> | i think the default is dots indeed, and I'm trying to make it be "," |
| 15:43:32 | → | coot joins (~coot@213.134.190.95) |
| 15:43:33 | <yushyin> | it is not a valid json number, but it would be a valid string anyway |
| 15:43:34 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 15:43:50 | → | DNH joins (~DNH@2a02:8108:1100:16d8:d9d2:7af1:5c0a:c9d9) |
| 15:43:51 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 15:44:03 | <romesrf> | Yeah I just need the string.. |
| 15:44:19 | → | lavaman joins (~lavaman@98.38.249.169) |
| 15:44:28 | <romesrf> | perhaps the easiest way would be to do the normal float and try to replace "." w "," after |
| 15:44:52 | <unit73e> | romesrf, you can have a normal float and represent it as something else |
| 15:45:15 | <unit73e> | that's the common way to handle it afaik |
| 15:45:24 | <romesrf> | How do you mean? |
| 15:45:46 | <unit73e> | I mean parse it with "." but when you output you do it with "," |
| 15:45:59 | <romesrf> | That's what I'd like to do :) |
| 15:46:26 | <unit73e> | btw, is that money? because if it is don't use floats |
| 15:46:35 | <romesrf> | It's not hahaha |
| 15:46:49 | <romesrf> | But what should I use for money in haskell? |
| 15:47:13 | <geekosaur> | usually some variant of Fixed |
| 15:47:13 | <unit73e> | data.currency |
| 15:47:20 | <romesrf> | Cool |
| 15:47:24 | <maerwald> | @hackage safe-money |
| 15:47:24 | <lambdabot> | https://hackage.haskell.org/package/safe-money |
| 15:47:37 | <geekosaur> | you do *not* want floating point errors in money calculations |
| 15:47:37 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 15:47:44 | <romesrf> | geekosaur: yea hahaha |
| 15:48:00 | <yushyin> | https://hackage.haskell.org/package/format-numbers-0.1.0.1/docs/Data-Text-Format-Numbers.html |
| 15:49:00 | <geekosaur> | plus you want to be aware of things like bankers' rounding, because even with fixed point you can have rounding issues |
| 15:49:11 | <romesrf> | a library might be a good idea but I don't know if what I'm trying to do calls for an import like that |
| 15:49:22 | <romesrf> | geekosaur: interesting |
| 15:49:35 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Remote host closed the connection) |
| 15:50:15 | <geekosaur> | consider currency conversions, for one |
| 15:50:44 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 15:51:09 | <romesrf> | I have an API that does something like ToJSON a => a -> IO b: IO that does an HTTP request and the body req depends on the instance of ToJSON. Now, I want it to be so that when i call that function with Float, the ToJSON representation uses "," instead of ".2 |
| 15:51:24 | <romesrf> | should I overlap the ToJSON instance of Float in my library? |
| 15:52:16 | → | Joaquin joins (~Joaquin@14.red-83-51-143.dynamicip.rima-tde.net) |
| 15:52:40 | <unit73e> | I wouldn't because JSON expects floats to have "." but it depends on what the JSON is. you could have a string. what I would do is keep the JSON as is and the app itselfs outputs the naumers as something else. |
| 15:52:56 | <unit73e> | naumers/numbers |
| 15:53:59 | <romesrf> | however the HTTP requests done are to a place that always expects the numbers with a "," |
| 15:54:15 | <romesrf> | So I don't want to follow JSON conventions |
| 15:54:25 | <romesrf> | Would the overlap be good in that case? |
| 15:54:26 | <geekosaur> | noncompliant JSON. why am I not surprised |
| 15:54:31 | <romesrf> | geekosaur: ahahahaha |
| 15:55:06 | → | zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
| 15:56:04 | <unit73e> | I guess in that case you have to have your JSON-Alternative :p |
| 15:56:17 | <romesrf> | unit73e: hahaha |
| 15:56:25 | <romesrf> | Okay. I'll attempt it |
| 15:56:29 | → | Everything joins (~Everythin@37.115.210.35) |
| 15:56:31 | <romesrf> | https://datatracker.ietf.org/doc/html/rfc7159 |
| 15:56:44 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 15:56:46 | <romesrf> | > A fraction part is a decimal point followed by one or more digits. |
| 15:56:47 | <lambdabot> | <hint>:1:67: error: |
| 15:56:47 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
| 15:57:55 | <unit73e> | the > isn't quote in IRC but I get the confusion :\ |
| 15:58:27 | <unit73e> | remember when # used to mean channel... well... now it's hashtag |
| 15:58:37 | <geekosaur> | "@" |
| 15:59:24 | × | zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 240 seconds) |
| 15:59:25 | TonyStone31 | is now known as TonyStone |
| 16:00:03 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 256 seconds) |
| 16:02:34 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 16:03:00 | <unit73e> | huh I just put 'many' in 'getItem' and surprisingly my xp3 parser didn't explode |
| 16:03:06 | <unit73e> | I was expecting to fail somewhere |
| 16:03:21 | → | niekvandepas joins (~niekvande@77.161.122.185) |
| 16:03:38 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 16:06:30 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 16:07:32 | × | niekvandepas quits (~niekvande@77.161.122.185) (Ping timeout: 240 seconds) |
| 16:09:11 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 16:10:42 | → | Pickchea joins (~private@user/pickchea) |
| 16:10:56 | <Hecate> | Rembane: well, I've been working a bit on Flora today, finished category tuning for packages, and the display on the package page https://twitter.com/flora_haskell/status/1500476775268331528 |
| 16:11:20 | <Hecate> | and now my documentation duties call to me, so I have to spread a call for volunteers to help with Alex & Happy's manuals |
| 16:11:24 | <Rembane> | Hecate: Woop woop! Good stuff! |
| 16:11:54 | <Franciman> | is alex still developed? |
| 16:12:33 | <Hecate> | Franciman: it's still maintained |
| 16:12:47 | <Hecate> | I know it doesn't answer your question, but I wanted to clarify that it's not abandoned :) |
| 16:13:21 | <Franciman> | oh ok |
| 16:13:36 | <Franciman> | i was going to the old website. Thanks |
| 16:15:20 | <Hecate> | Franciman: to be fully honest, the websites deserve a revamp |
| 16:16:07 | <Hecate> | but I need someone to produce a clone of https://github.com/steveklabnik/rustbook with Hakyll and an appropriate theme :) |
| 16:16:47 | × | worldhelloworld quits (~c1utt4r@vmi275462.contaboserver.net) (Ping timeout: 272 seconds) |
| 16:18:31 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:18:47 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 16:23:01 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 16:23:16 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Ping timeout: 256 seconds) |
| 16:24:51 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 252 seconds) |
| 16:25:29 | → | rond_ joins (~rond_@90.251.109.52) |
| 16:25:46 | × | Joaquin quits (~Joaquin@14.red-83-51-143.dynamicip.rima-tde.net) (Quit: Client closed) |
| 16:26:55 | <romesrf> | Hecate: Flora looks nice |
| 16:26:59 | <romesrf> | first time i'm hearing about it |
| 16:27:42 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Quit: mikoto-chan) |
| 16:27:46 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 260 seconds) |
| 16:28:17 | × | lbseale quits (~ep1ctetus@user/ep1ctetus) (Ping timeout: 240 seconds) |
| 16:32:20 | <Hecate> | romesrf: thank you very much. I've taken the opportunity to create a beautiful web application alongside of it, especially when refactoring time isn't free, so I'd rather take my time for some things |
| 16:33:07 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 16:33:13 | <Hecate> | for example the db queries are in separate modules called "Model.<type>.Query" and "Model.<type>.Update", which means I can more easily see what goes where, and also use a read-replica of my database more easily |
| 16:34:31 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds) |
| 16:34:40 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 16:34:48 | × | LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
| 16:35:05 | → | LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao) |
| 16:35:32 | → | sayola joins (~vekto@dslb-002-201-085-116.002.201.pools.vodafone-ip.de) |
| 16:36:50 | × | CiaoSen quits (~Jura@p5dcc0a70.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 16:37:21 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 16:38:10 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 16:43:09 | × | xff0x quits (~xff0x@dslb-094-222-029-254.094.222.pools.vodafone-ip.de) (Quit: xff0x) |
| 16:44:36 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 16:45:47 | → | xff0x joins (~xff0x@dslb-094-222-029-254.094.222.pools.vodafone-ip.de) |
| 16:47:23 | → | little_mac joins (~little_ma@2601:410:4300:3ce0:3499:893c:26f0:bcd0) |
| 16:48:50 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 16:50:53 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 16:51:22 | → | bahamas joins (~lucian@84.232.140.52) |
| 16:52:59 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 16:53:26 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 16:55:15 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 16:56:08 | × | bahamas quits (~lucian@84.232.140.52) (Ping timeout: 256 seconds) |
| 16:56:42 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Ping timeout: 256 seconds) |
| 16:57:39 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Remote host closed the connection) |
| 16:57:54 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 17:07:04 | → | bahamas joins (~lucian@84.232.140.52) |
| 17:08:38 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 17:09:01 | <lechner_> | Hi, should Debian strive to keep up with new versions on Hackage? |
| 17:13:09 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 17:15:39 | <maerwald> | new versions of what? |
| 17:16:17 | <Taneb> | lechner_: to a degree, I think. What other package sets do (thinking of nixpkgs in particular) is use a Stackage set, which is a sort-of curated set of recent versions of libraries. |
| 17:19:05 | <unit73e> | I just use cabal/stack and don't bother with package managers... |
| 17:19:38 | <unit73e> | though I get I should check nix at some point |
| 17:21:15 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 17:23:17 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 17:23:50 | <lechner_> | maerwald: 1097 packages successfully tested for co-installability. 520 packages have newer versions on hackage |
| 17:24:35 | → | CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 17:24:39 | <maerwald> | lechner_: you should understand how PVP works and at least do non-breaking updates |
| 17:25:04 | <maerwald> | https://pvp.haskell.org/ |
| 17:26:13 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 17:28:23 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 17:28:32 | <lechner_> | maerwald: thanks! does that meant it's probably safe to work on these 373 minor version updates? http://paste.debian.net/1233192/ |
| 17:29:27 | <maerwald> | lechner_: well, safe if the maintainers did not mess up... it happens |
| 17:30:25 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 17:32:46 | <lechner_> | maerwald: thanks! does hackage track release-critical bugs? |
| 17:32:58 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 17:33:23 | <maerwald> | no, but there's a deprecate flag on hackage, not sure you can query that via cli |
| 17:33:42 | <maerwald> | https://hackage.haskell.org/package/aeson |
| 17:33:47 | <maerwald> | there are versions marked in red |
| 17:34:40 | <lechner_> | deprecated means old, though. i am looking for new, but defective |
| 17:35:10 | <maerwald> | no, deprecated here means "broken" |
| 17:35:46 | × | Everything quits (~Everythin@37.115.210.35) (Quit: leaving) |
| 17:35:56 | <lechner_> | also, i would like to make Haskell in Debian to be as easy to use as ghcup. do you have any words of advice? |
| 17:36:23 | <maerwald> | https://hackage.haskell.org/package/aeson/preferred |
| 17:37:04 | <maerwald> | lechner_: you allow installation of multiple GHC versions and then add that to update-alternatives |
| 17:37:11 | × | MajorBiscuit quits (~MajorBisc@c-001-021-050.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.4) |
| 17:37:31 | <maerwald> | e.g. like https://launchpad.net/~hvr/+archive/ubuntu/ghc |
| 17:41:07 | <maerwald> | you probably want a "main" ghc version than, which is used for your libghc-<haskell-pkg> or you have to switch to lighc<ghcver>-<haskell-pkg> |
| 17:41:17 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 252 seconds) |
| 17:41:20 | <lechner_> | maerwald: without wishing to speak out of school, i'm a little embarrassed to see that implemented by hvr in a Ubuntu PPA. |
| 17:42:53 | <maerwald> | I'm not sure what policy debian has wrt static binary shipping, but I'd advise you get rid of all haskell libraries in the debian repos and only ship GHC and cabal/stack/pandoc as static binaries |
| 17:42:58 | <sclv> | i don't know the difference between debian packaging solutions. i do know the ppa is no longer maintained, but when it was, it seemed to be a solution a lot of people were very happy with |
| 17:43:31 | <sclv> | and if there were something that was continuously maintained (maybe in a way you thought was more suitable) and offered the same functionality, it would probably be well regarded and used |
| 17:43:42 | <maerwald> | dealing with haskell libraries in distro repos is time consuming and not very useful for actual haskell devs |
| 17:46:01 | <lechner_> | sclv: if needed, i can implement, and perhaps maintain, a Debian repo like it, but my preferencen would be to use the official build daemons |
| 17:46:19 | → | beka joins (~beka@104.193.170.240) |
| 17:46:44 | <sclv> | sure. providing the ability to switch between multiple ghc versions was really its biggest selling point. and also providing far newer ghcs than in the official debian distros |
| 17:47:07 | <lechner_> | maerwald: we need libraries to build executables, Build-Depends here: https://tracker.debian.org/media/packages/k/kickoff/control-0.1.1 |
| 17:47:59 | <maerwald> | lechner_: you can link statically |
| 17:48:07 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 17:48:08 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 17:48:13 | <maerwald> | as I said... this depends on debian packaging policy |
| 17:48:25 | <geekosaur> | lechner_, historically having a large system package db has caused problems when one needs a different version of a dependency than is in the system package db, because packages can't be hidden properly by build tools (since it requires root) |
| 17:48:50 | <geekosaur> | so many experienced people will be wary of distro haskell packages |
| 17:48:51 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 17:49:36 | <maerwald> | lechner_: also note that GHC has extremely unstable ABI. Even within the same version it's not guaranteed to be stable. A different GHC build config can cause a different ABI |
| 17:49:46 | <lechner_> | maerwald: that was the idea you gave me a few days ago. the issue is that debian does not presently have a way to declare relationships between sources |
| 17:50:11 | <sclv> | this is one reason people like to use a development ghc completely different from the system toolchain. the latter installs whatever libs it wants to for the exes the system provides, etc |
| 17:50:26 | <sclv> | but the development toolchain doesn't share any of that and is used for fresh coding |
| 17:50:54 | <maerwald> | lechner_: you mean you need a single tarball? |
| 17:51:15 | <lechner_> | sclv: it works great, but Debian is also great for your deployment! |
| 17:51:49 | → | tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 17:51:51 | <maerwald> | Can't you have multiple sources for one package build? |
| 17:53:10 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 17:53:57 | → | zincy_ joins (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) |
| 17:53:59 | <lechner_> | maerwald: we have multiple tar ball source format, but it cannot be used to duplicate. that is why we currently ship many sources in installables, as in https://packages.debian.org/sid/all/golang-github-hanwen-go-fuse-dev/filelist |
| 17:54:16 | <lechner_> | i don't swear often, but ... |
| 17:54:49 | <maerwald> | Well, that sounds you could do the same for haskell |
| 17:55:02 | <lechner_> | that's what the current alternative is if we go the static route |
| 17:55:07 | <maerwald> | yes |
| 17:55:58 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
| 17:56:07 | <lechner_> | it is hated by our archive guys. maintainers are asked to double up modules using the multiple tar ball mechanism i mentioned earlier! |
| 17:56:28 | <lechner_> | there isn't even a word for that confusion |
| 17:56:57 | <lechner_> | the best way would be to declare relationships between sources |
| 17:57:10 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Remote host closed the connection) |
| 17:57:25 | <lechner_> | we make those available separately |
| 17:57:49 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Read error: Connection reset by peer) |
| 17:58:29 | <lechner_> | one advantage of shipping sources as installables is that we can run the tests |
| 17:58:32 | → | Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
| 17:58:56 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 17:59:29 | <lechner_> | that's until the porters remind us that the package is arch-independent and has to be so marked, which disables many interesting tests |
| 18:00:37 | <sclv> | one possible solution could be to use ghc's fine grained control of packagedbs to put system packages in a special packagedb that's distinct from the default global one |
| 18:01:08 | <lechner_> | where do the dist packages go? |
| 18:01:29 | <sclv> | you mean the stuff built under `dist`? |
| 18:01:44 | <lechner_> | no, the libraries shipped as part of Debian |
| 18:01:46 | <sclv> | that gets installed by `ghc-pkg install` to a packagedb |
| 18:02:08 | <sclv> | oh i see you're asking in my proposal what would happen |
| 18:02:35 | <sclv> | i'm suggesting that every lib shipped as part of debian not go into the default global ghc packagedb but a `debian-dist` packagedb or something |
| 18:02:37 | <lechner_> | yes |
| 18:02:46 | <lechner_> | i am green behind the ears |
| 18:03:18 | <sclv> | so users can use a packagedb stack that includes it (and debian executables etc can link against it) |
| 18:03:26 | × | Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 18:03:29 | <sclv> | but also users can choose _not_ to use it when in a pure development mode |
| 18:03:30 | → | deadmarshal_ joins (~deadmarsh@95.38.115.28) |
| 18:03:45 | <sclv> | the problem is if stuff goes into the systemwide global ghc packagedb, then there's no way to "sandbox" out of using it |
| 18:04:00 | <lechner_> | does that require setuid? |
| 18:04:09 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 18:04:14 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 18:04:44 | <sclv> | nope, just configuring the package setup https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/packages.html#package-databases |
| 18:05:35 | <maerwald> | sclv: hmm, I think it's possible to have the package `ghc` be the only one with a bloated package db and dynamic libaries and `ghc-<ver>` be packages that just ship with the boot libraries. Then you can basically switch between those package db's by update-alternatives |
| 18:05:51 | <lechner_> | system packages are those that come with GHC? |
| 18:06:03 | <maerwald> | boot libraries yeah |
| 18:06:30 | <maerwald> | so you could have `ghc` (version 8.8.4) and `ghc-8.8.4`, two distinct packages |
| 18:06:46 | <maerwald> | the former is the only one that's related to additional dynamic libraries |
| 18:06:53 | → | xkuru joins (~xkuru@user/xkuru) |
| 18:07:46 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Quit: mikoto-chan) |
| 18:07:56 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 18:08:19 | <maerwald> | so you can introduce new `ghc-<ver>` packages quickly, because it doesn't cause massive rebuilds |
| 18:08:29 | <maerwald> | and be more conservative with updating `ghc` |
| 18:09:15 | <maerwald> | and then somehow make this distinction clear to end-users (wiki page, package description, ...) |
| 18:09:24 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 18:10:34 | <lechner_> | and then someone wishing to use the newer ghc would simply run update-alternatives, but it would not affect the build machinery for everything else in the archive (which uses the unversioned'ghc')? |
| 18:10:44 | <maerwald> | yeah |
| 18:10:52 | <lechner_> | debian users already know about alternatives |
| 18:11:16 | <maerwald> | right, but I guess most packages are either completely unversioned or always versioned? So this might be new |
| 18:12:02 | → | Hanicef joins (~gustaf@81-229-9-108-no92.tbcn.telia.com) |
| 18:12:30 | → | wroathe joins (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) |
| 18:12:30 | × | wroathe quits (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host) |
| 18:12:30 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:12:41 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 18:13:55 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Remote host closed the connection) |
| 18:14:04 | <lechner_> | not for gcc, llvm or openjdk, plus a few others (use browser's search) https://lintian.debian.org/sources |
| 18:14:20 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 18:14:38 | → | Null_A joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 18:15:43 | <maerwald> | well, you prolly wanna post that on some Debian ML and get a nice train of bikeshed xD |
| 18:16:01 | <lechner_> | i am not doing anything on my own |
| 18:16:15 | <lechner_> | other than be pushy |
| 18:16:44 | → | Null_A_ joins (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) |
| 18:16:55 | <lechner_> | that's not how hvr's Ubuntu PPA worked though, right? |
| 18:17:23 | <maerwald> | that ppa only has versioned GHCs |
| 18:17:34 | <maerwald> | and now haskell libraries packaged |
| 18:17:41 | <maerwald> | *no |
| 18:17:57 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 18:17:59 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 18:18:46 | <lechner_> | would your solution place two copies of the default GHC source into the Debian archive? |
| 18:18:52 | <geekosaur> | before using that as a reference you might consider that it's intended for Ubuntu-based CI setups |
| 18:19:57 | <maerwald> | lechner_: if `ghc` and `ghc-8.8.4` are the same version, then you have two copies yeah |
| 18:20:20 | <maerwald> | otherwise you have to play tricks with package db switching |
| 18:20:36 | × | Null_A quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Ping timeout: 240 seconds) |
| 18:24:57 | → | econo joins (uid147250@user/econo) |
| 18:27:15 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Ping timeout: 272 seconds) |
| 18:27:40 | <Cheery> | I'd want to somehow test some haskell code and verify that it 100% works. |
| 18:28:13 | <Cheery> | are there equipment to do this? |
| 18:29:00 | <Cheery> | oh. haskell has code coverage tool |
| 18:32:12 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:33:02 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 18:33:17 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 18:33:45 | <geekosaur> | code coverage and a number of test frameworks |
| 18:33:59 | <geekosaur> | (just because it compiles doesn't mean it's correct…) |
| 18:34:13 | <dsal> | Just because your tests pass doesn't mean it 100% works. That just means you can't figure out how it works. |
| 18:34:20 | <dsal> | If you want to know what's wrong with your code, you have to ask a user. |
| 18:35:17 | × | mvk quits (~mvk@2607:fea8:5cc3:7e00::45ee) (Ping timeout: 240 seconds) |
| 18:35:40 | <dsal> | QuickCheck is the standard for good testing. Hedgehog is popular in some circles. I just wrote a gigantic hedgehog thing at work so I know it enough to feel I can do many of the same things with it, but I'd still reach for QC in my own stuff at the moment. |
| 18:37:24 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 18:37:51 | → | barzo joins (~hd@31.155.65.151) |
| 18:38:16 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 18:40:09 | → | worldhelloworld joins (~c1utt4r@vmi275462.contaboserver.net) |
| 18:40:17 | × | barzo quits (~hd@31.155.65.151) (Client Quit) |
| 18:49:11 | <maerwald> | the only thing I really believe in is a) integration test and b) regression tests for every bug that's filed |
| 18:49:30 | <maerwald> | everything else is there to make you feel more like an "engineer" :p |
| 18:49:30 | <romesrf> | Cheery: there's also a cool video by rae using Tasty which brings together multiple testing tools such as QuickCheck + HUnit + ... |
| 18:50:07 | <romesrf> | maerwald: what's a good example of an integration test and regression test |
| 18:50:27 | <lechner_> | Hi, does anyone see a Haskell logo in the top left? https://pvp.haskell.org/ |
| 18:50:30 | <romesrf> | Cheery: https://www.youtube.com/watch?v=dcEhpPob-wM |
| 18:50:42 | <romesrf> | lechner_: no logo |
| 18:50:48 | <Cheery> | romesrf: ok. |
| 18:51:06 | → | coot joins (~coot@213.134.190.95) |
| 18:51:08 | <unit73e> | lechner_, broken logo |
| 18:51:09 | <romesrf> | lechner_: img/logo 404 Not Found |
| 18:51:12 | <Cheery> | hcp is really good already, I can work through it. :) |
| 18:51:59 | <geekosaur> | https://www.haskell.org/img/logo.png is missing, yeh |
| 18:52:17 | <unit73e> | there's a favicon.ico that would work |
| 18:52:24 | <unit73e> | except it's not png |
| 18:52:45 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 18:52:51 | <maerwald> | romesrf: integration test tests workflows. For a cli that means invoking the binary with flags. For a standard backend that means sending HTTP requests, etc. |
| 18:52:59 | → | liz joins (~liz@2a00:23c5:9680:501:b62e:99ff:fee4:47fa) |
| 18:53:34 | <maerwald> | when you find a bug, you write a test that fails, then fix it, then check that it doesn't fail anymore |
| 18:53:52 | <unit73e> | lechner_, also noticed other errors you might want to check in chrome console |
| 18:54:05 | <romesrf> | I see. I'm doing the first currently but I'm missing some should-fail tests |
| 18:54:34 | shapr | hops randomly |
| 18:54:47 | <romesrf> | It feels a bit loose, but at least I'm assured that the main interactions with the app works correctly |
| 18:55:39 | <maerwald> | is this a cli tool? |
| 18:56:48 | travisb_ | is now known as tabemann |
| 18:57:25 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 18:57:28 | <romesrf> | maerwald: it's a chat bot |
| 18:57:43 | <romesrf> | receives messages, communicates with external api, .. |
| 18:59:23 | <romesrf> | i'm basically testing "do 1, 2, 3 in that order: does it crash? if not the test is OK" |
| 19:00:20 | <romesrf> | It's not very rigorous, but at least I'm sure the main features are working when I update some things without having to interact with it manually |
| 19:02:14 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:d43:5e37:69e3:551c) (Ping timeout: 260 seconds) |
| 19:05:54 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 19:06:49 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 19:07:31 | → | wroathe joins (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) |
| 19:07:31 | × | wroathe quits (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host) |
| 19:07:31 | → | wroathe joins (~wroathe@user/wroathe) |
| 19:11:17 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 19:12:30 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 19:12:52 | × | Null_A_ quits (~null_a@2601:645:8700:2290:edbd:15d:262b:d392) (Read error: Connection reset by peer) |
| 19:16:36 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 19:17:37 | × | deadmarshal_ quits (~deadmarsh@95.38.115.28) (Ping timeout: 240 seconds) |
| 19:18:37 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 19:21:38 | × | Hanicef quits (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving) |
| 19:22:59 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
| 19:27:24 | × | drdo quits (~drdo@roach0.drdo.eu) (Ping timeout: 240 seconds) |
| 19:31:09 | → | drdo joins (~drdo@roach0.drdo.eu) |
| 19:32:12 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 19:35:39 | × | xff0x quits (~xff0x@dslb-094-222-029-254.094.222.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 19:36:45 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 19:37:49 | → | mvk joins (~mvk@2607:fea8:5cc3:7e00::45ee) |
| 19:39:26 | → | xff0x joins (~xff0x@dslb-094-222-029-254.094.222.pools.vodafone-ip.de) |
| 19:46:35 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 19:49:31 | × | worldhelloworld quits (~c1utt4r@vmi275462.contaboserver.net) (Ping timeout: 245 seconds) |
| 19:50:09 | → | fendor joins (~fendor@91.141.40.111.wireless.dyn.drei.com) |
| 19:50:19 | → | zebrag joins (~chris@user/zebrag) |
| 19:54:25 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 19:55:17 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
| 19:56:34 | → | theproffesor joins (~theproffe@2601:282:8202:4a10::8622) |
| 19:57:11 | Lord_of_Life_ | is now known as Lord_of_Life |
| 20:00:44 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 20:05:16 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 250 seconds) |
| 20:11:30 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 20:13:40 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 20:16:54 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 20:17:08 | → | deadmarshal_ joins (~deadmarsh@95.38.115.28) |
| 20:17:27 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 20:17:53 | × | bahamas quits (~lucian@84.232.140.52) (Ping timeout: 256 seconds) |
| 20:18:59 | → | kaph_ joins (~kaph@net-109-116-124-149.cust.vodafonedsl.it) |
| 20:19:13 | → | bahamas joins (~lucian@84.232.140.52) |
| 20:19:37 | × | kaph quits (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
| 20:20:08 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 20:21:53 | × | deadmarshal_ quits (~deadmarsh@95.38.115.28) (Ping timeout: 272 seconds) |
| 20:24:06 | × | bahamas quits (~lucian@84.232.140.52) (Ping timeout: 256 seconds) |
| 20:30:21 | ← | iqubic parts (~iqubic@c-67-171-37-233.hsd1.wa.comcast.net) () |
| 20:32:15 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 20:32:34 | → | Pickchea joins (~private@user/pickchea) |
| 20:32:50 | <lechner_> | Hi, is there a replacement for Haskell Platform? |
| 20:33:01 | <geekosaur> | nope |
| 20:33:14 | <lechner_> | why was it needed? |
| 20:33:28 | <geekosaur> | because neither modern cabal nor stack existed |
| 20:33:51 | <geekosaur> | you could think of it as an early rendition of stackage |
| 20:34:06 | <lechner_> | it was that broad? |
| 20:34:22 | <geekosaur> | not quite as broad, but the ecosystem was also smaller back then |
| 20:34:41 | <geekosaur> | as it grew keeping HP up to date with the packages developers needed became more expensive |
| 20:35:09 | <geekosaur> | and it didn't offer multiple releases after the fashion of stackage LTSes |
| 20:35:24 | alMalsamo | is now known as lumberjack123 |
| 20:36:08 | <geekosaur> | if you're building a package which needs older versions of things, with stack you can just point to the appropriate LTS; you didn't really have that option with HP |
| 20:36:17 | → | cjb joins (~cjb@user/cjb) |
| 20:36:19 | <lechner_> | on that note, why did the stackage folks roll their own instead of providing merely a cabal file for Hackage? |
| 20:37:00 | <geekosaur> | stack uses (the library version of) cabal underneath, and at the time cabal wasn't quite up to it |
| 20:37:05 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 20:37:21 | <geekosaur> | there was active work on getting cabal up to speed but it wasn't ready yet |
| 20:38:14 | <lechner_> | Could (or should) stackage.org eventually go away? |
| 20:38:19 | <geekosaur> | also, stackage *does* provide cabal files if you know where to look. they still don't have quite as much functionality as stack LTSes though |
| 20:38:32 | <geekosaur> | probably not. you saw the discussion in #hackage |
| 20:38:44 | <lechner_> | "Packages in Stackage are not patched: all package changes occur upstream in Hackage." |
| 20:38:55 | <lechner_> | https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package |
| 20:39:07 | <geekosaur> | right, if you need an update you switch to a later LTS or use an override in stack.yaml |
| 20:40:18 | <geekosaur> | LTSes are package sets tested to work together reliably, patching them instead of making a new LTS release is kinda making the same mistake HP did in trying to serve everyone's needs with one "current" release |
| 20:40:59 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 20:41:05 | <lechner_> | in debian, we sucessfully distinguish between files in a pool and what we then publish as a distribution (which ties the different versions together and is more commonly called a release) |
| 20:41:35 | <lechner_> | why is hackage not that "pool"? |
| 20:41:39 | <geekosaur> | right. but hackage is rolling-release as it were |
| 20:41:52 | <lechner_> | old versions are available |
| 20:42:34 | <geekosaur> | hackage is a master package index, updated as new packages are released on their maintainers' timetables. it doesn't and can't make an attempt to ensure sets of packages work together |
| 20:42:43 | <geekosaur> | stackage does that (and it's a lot of work) |
| 20:43:12 | → | notzmv joins (~zmv@user/notzmv) |
| 20:43:42 | <lechner_> | i do not doubt it, but does stackage need to publish more than a map of the tested relationships? |
| 20:44:15 | <hpc> | hackage is like universe in ubuntu-speak |
| 20:44:22 | <maerwald> | lechner_: that's what it does |
| 20:44:26 | <geekosaur> | ^ |
| 20:44:35 | <lechner_> | ok, sorry |
| 20:44:44 | <hpc> | all the versions of all the packages live there, and if you have say, ubuntu 1804, that's just a list of references into that |
| 20:44:48 | <geekosaur> | if you go digging under ~/.stack you will find that a stackage release is just such a map |
| 20:45:10 | <maerwald> | lechner_: that also has the side effect that stack doesn't need a dependency solver |
| 20:45:15 | <geekosaur> | and tht map points back to the appropriate hackage releases |
| 20:45:27 | <lechner_> | please allow me to rephrase: Sould 'stack' (the tool) eventually go away? |
| 20:45:52 | <maerwald> | lechner_: it's on life support anyway, although a new release is coming up soon |
| 20:46:20 | <lechner_> | maerwald: there are never alternative implementations for the same type? |
| 20:46:46 | <geekosaur> | that's a difficult question. as an interface to stackage it is useful, and stackage as a repository of tested sets of package versions is still quite useful |
| 20:46:55 | <maerwald> | lechner_: https://github.com/haskell/cabal/issues/7556 |
| 20:47:12 | <geekosaur> | you'll find for example that, even if they use cabal instead of stack, a great many linux distributions start from stackage instead of hackage |
| 20:47:46 | <geekosaur> | to make their haskell packages |
| 20:48:01 | <lechner_> | i.e. debian |
| 20:49:28 | <geekosaur> | meanwhile the stackage maintainers are currently working to get aeson 2.0 integrated into a package set, and probably will integrate text 2.0 after that |
| 20:49:45 | <lechner_> | that's unicode? |
| 20:49:49 | <geekosaur> | which means working to get maintainers of dependent packages to catch up |
| 20:50:04 | <geekosaur> | the switch from utf16 to utf8 internally, yes |
| 20:50:17 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 20:50:57 | <lechner_> | speaking from experience, that is a very unfavorable position. how do the stackage folks motivate the upstream maintainers? |
| 20:51:17 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Read error: Connection reset by peer) |
| 20:51:35 | <geekosaur> | dropping their packages if they don't, which means they don't get seen or used by somewhere 50 and 70 percent of haskell developers any more |
| 20:51:36 | → | tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 20:51:45 | <geekosaur> | *somewhere between |
| 20:51:48 | <lechner_> | the whip |
| 20:53:10 | <geekosaur> | (what poercentage depends on the sector: it seems to be around 50-50 here in #haskell, but among commercial users it'scloser to 70%) |
| 20:53:17 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Remote host closed the connection) |
| 20:53:35 | → | tzh_ joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 20:53:43 | <lechner_> | maybe debian and stackage should merge. debian has the infrastructure to test their sets, and also ships single versions |
| 20:54:03 | <maerwald> | lechner_: stackage is more ad-hoc than debian |
| 20:54:07 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 20:54:13 | <maerwald> | less process etc. |
| 20:54:15 | <lechner_> | that's where i come in |
| 20:54:23 | <maerwald> | most people don't know what distro work is like |
| 20:54:32 | <sclv> | i mean stackage just provides some subset of stuff that's all known to build together |
| 20:54:43 | geekosaur | has been there. it's a shitload of work |
| 20:54:47 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Remote host closed the connection) |
| 20:54:47 | <sclv> | so nix and other things start with a stackage release as a baseline |
| 20:54:53 | <lechner_> | it's exactly what i would like to do |
| 20:55:09 | → | tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 20:55:15 | <geekosaur> | haven't worked directly on a mainstream distro but did maintain a university internal distribution for a decade. that was bad enough even with alimited userbase |
| 20:55:45 | <lechner_> | geekosaur: i would deputize the stackage folks |
| 20:55:58 | <maerwald> | lechner_: the right person to talk to is snoyman, probably |
| 20:56:19 | <lechner_> | well, he is way above my pay grade |
| 20:56:40 | <lechner_> | it was just an idea anyway |
| 20:56:48 | <lechner_> | what os does he use? |
| 20:57:18 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
| 20:57:22 | <sclv> | lechner_: i'm not sure what exactly you're proposing or what the advantage is? |
| 20:57:41 | <sclv> | would it be fundamentally about helping stackage by letting it leverage debian's infrastructure? |
| 20:58:17 | <lechner_> | that would possibly be the advantage for them, yes |
| 20:58:24 | <maerwald> | I'd imagine that could create more coordination/communication issues than is worth for the stackage people |
| 20:59:15 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 20:59:42 | <maerwald> | it's a relatively small project compared to a distro and the investment isn't as high |
| 21:00:23 | <lechner_> | twenty-three release architectures! |
| 21:00:56 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 21:01:31 | × | zer0bitz_ quits (~zer0bitz@2001:2003:f74d:b800:c486:dc7e:8ce4:e6c9) (Read error: Connection reset by peer) |
| 21:01:40 | <geekosaur> | right, but you'll note stackage doesn't do per-architecture releases at all |
| 21:01:51 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:01:56 | <sclv> | most haskell code (except for bindings) doesn't really care about arch. if it builds on one arch it'll build on any arch |
| 21:01:56 | <geekosaur> | \which means a different set of tradeoffs. (also note that stackage thereby supports windows as well) |
| 21:01:58 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
| 21:02:19 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 256 seconds) |
| 21:02:42 | <lechner_> | neither does debian for unstable; only testing and stable release require advancement on all ports |
| 21:03:07 | <geekosaur> | stackage doesn't consider ports at all |
| 21:03:20 | → | cynomys joins (~cynomys@user/cynomys) |
| 21:03:46 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
| 21:03:52 | <lechner_> | it may find bugs |
| 21:04:26 | <maerwald> | anything that's not C/C++ doesn't work too well on traditional package managers... some distros managed to get somewhat reasonable python support (which is already hard), but even less managed to get reasonable Haskell support |
| 21:04:35 | <maerwald> | and I think it's not worth it (wrt libraries at least) |
| 21:05:10 | <geekosaur> | especially since stack and cabal both are prone to ignore distribution libraries and use their own builds |
| 21:05:27 | <geekosaur> | thing is, this isn't actually that uncommon among languages other than C/C++ |
| 21:05:37 | <geekosaur> | consider virtualenv and friends for python |
| 21:06:26 | <geekosaur> | developers often need to be more flexiblethan an OSdistribution can reasonably be |
| 21:08:19 | <lechner_> | that my be a myth. there is also a manpower issue. |
| 21:08:19 | <maerwald> | geekosaur: I dunno, I just got a bug report on ghcup issue tracker saying that it's non-idiomatic and *only* the package manager should install software xD |
| 21:10:11 | <geekosaur> | someone'sabout 2 decades behind the times |
| 21:10:24 | <maerwald> | "Just write normal packages. It’s much easier than this ugly hack." |
| 21:10:50 | <dolio> | Why aren't they? |
| 21:10:55 | <maerwald> | so at least there are different opinions :D |
| 21:10:56 | <sclv> | maerwald: respond "patches welcome" |
| 21:10:58 | → | cyphase joins (~cyphase@user/cyphase) |
| 21:11:02 | <geekosaur> | and has never written a normal package |
| 21:11:22 | <geekosaur> | or at least hasn't actually maintained it afterward |
| 21:11:47 | <dolio> | It doesn't even make sense to be a patch. It's just a completely different project. |
| 21:12:02 | <sclv> | thats-the-joke.gif |
| 21:12:16 | <dolio> | Oh sorry. :) |
| 21:12:45 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 21:13:20 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Remote host closed the connection) |
| 21:13:51 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 21:15:14 | <lechner_> | Hi, how can I figure out which of these packages come with ghc, please? https://salsa.debian.org/haskell-team/hackage-tracker/-/blob/history/hackage-tracker.cabal#L25-34 |
| 21:15:54 | <sclv> | https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history |
| 21:16:09 | <lechner_> | or alternative, what does 'installed' mean here? https://www.stackage.org/lts-18.26/cabal.config |
| 21:16:43 | <sclv> | installed means "whatever version is already installed in the pkgdb" |
| 21:17:05 | <maerwald> | lechner_: `ghc-pkg list` on a "freshly installed GHC" also shows you the prepackaged libs. |
| 21:17:16 | <geekosaur> | but for the purposes of stackage means that those packages cannot be upgraded |
| 21:17:36 | × | LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 240 seconds) |
| 21:17:40 | <geekosaur> | which I believe only applies tobase, ghc, ghc-prim, and template-haskell |
| 21:17:51 | → | acidjnk joins (~acidjnk@p200300d0c70d8c985c6dbece2fe5bbc5.dip0.t-ipconnect.de) |
| 21:17:55 | <geekosaur> | because they're wired into the compiler |
| 21:18:53 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 21:18:53 | <lechner_> | because ghc ships what it uses itself? |
| 21:18:58 | <sclv> | stackage constrains a number of packages to "installed" |
| 21:19:20 | <dolio> | Does debian have a methodology for having multiple version sets for packages? Because that's what people do with stackage. |
| 21:19:25 | <sclv> | _however_ only some subset of those (a geeokosaur listed) are the ones that are actually non-upgradable |
| 21:19:31 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 272 seconds) |
| 21:19:35 | → | LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao) |
| 21:19:48 | <dolio> | One project might depend on a set with foo-X.Y, and another might depend on one with foo-X.Z. |
| 21:20:30 | <dolio> | And when a new set is released, not all projects upgrade at the same rate. |
| 21:20:36 | <lechner_> | dolio: we provide fixed version sets based on their stability. we call them releases |
| 21:20:48 | <lechner_> | but we have backports |
| 21:21:13 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 21:21:24 | <lechner_> | as noted, that may not be flexible enough for development but it is great if you distribute |
| 21:21:36 | <dolio> | Yeah, but stack and cabal are for development. |
| 21:22:07 | <lechner_> | yes, but your work product may be intended for distribution |
| 21:22:53 | <dolio> | If someone were just using a Haskell program I might recommend that they get it from a distribution (unless it's out of date or something). |
| 21:23:01 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 21:23:59 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 21:24:13 | <lechner_> | Debian offers a lot more. you can configure graphically, or install system services and timers |
| 21:24:19 | <lechner_> | systemd |
| 21:24:23 | <sclv> | sure. nobody's saying this stuff replaces a distro |
| 21:24:25 | <sclv> | we all know that |
| 21:24:52 | <sclv> | we're just saying that devs want one workflow, and finished executables can then be built and packaged in a distribution in a different workflow |
| 21:24:54 | <sclv> | with different tools |
| 21:24:58 | <sclv> | and... its fine |
| 21:25:11 | <lechner_> | sorry, we were just chatting. it was not a pitch |
| 21:25:18 | <maerwald> | lechner_: most projects distribute either fully static haskell binaries (linked via musl on alpine) or use complicated nix configurations |
| 21:25:35 | <sclv> | i mean except for actual widely used open source haskell apps like pandoc |
| 21:25:35 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Read error: Connection reset by peer) |
| 21:25:37 | <dolio> | Yeah, distros are great and valuable. They're just not designed to be build tools. And that's good, because they'd be a lot worse at their job then. :) |
| 21:25:38 | <sclv> | which distributions package just fine |
| 21:26:04 | <lechner_> | On Linode, Debian deploys in three seconds |
| 21:26:13 | <lechner_> | custom repo, and done |
| 21:26:26 | <lechner_> | no gpl required |
| 21:26:55 | <lechner_> | we are working on musl |
| 21:28:42 | × | coot quits (~coot@213.134.190.95) (Ping timeout: 256 seconds) |
| 21:29:31 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 21:29:34 | <lechner_> | but i'll stop now. no need to antagonize you all. it just seemed like a synergy to me |
| 21:30:51 | <geekosaur> | you're not antagonizing, it's just that whilethere are some synergies, there are also a lot of differences |
| 21:32:18 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 21:32:29 | <lechner_> | i am always the most positive guy in the room |
| 21:33:22 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 21:33:34 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 21:33:48 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 21:35:43 | → | lbseale joins (~ep1ctetus@user/ep1ctetus) |
| 21:38:20 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 21:38:40 | × | rond_ quits (~rond_@90.251.109.52) (Quit: Client closed) |
| 21:42:16 | × | wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 240 seconds) |
| 21:44:49 | → | dcoutts__ joins (~duncan@host86-144-78-249.range86-144.btcentralplus.com) |
| 21:45:25 | <maerwald> | new stack release is out |
| 21:48:29 | × | lbseale quits (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
| 21:48:52 | → | pavonia joins (~user@user/siracusa) |
| 21:49:27 | → | wyrd joins (~wyrd@gateway/tor-sasl/wyrd) |
| 21:51:22 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 21:55:23 | × | vorpuni quits (~pvorp@2001:861:3881:c690:1c84:d4a:1e89:fb0b) (Quit: bye) |
| 21:55:43 | → | pilipilihoho joins (~pilipilih@d154-20-227-112.bchsia.telus.net) |
| 21:56:08 | → | bahamas joins (~lucian@84.232.140.52) |
| 21:56:55 | → | vorpuni joins (~pvorp@2001:861:3881:c690:a9b4:7766:3796:4ab1) |
| 21:58:08 | × | son0p quits (~ff@181.136.122.143) (Remote host closed the connection) |
| 21:58:25 | × | pilipilihoho quits (~pilipilih@d154-20-227-112.bchsia.telus.net) (Client Quit) |
| 21:58:38 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 21:59:15 | → | son0p joins (~ff@181.136.122.143) |
| 21:59:25 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 21:59:44 | <ProfSimm> | How to iterate the items in a set without suggesting a specific order of the items? |
| 22:01:00 | × | bahamas quits (~lucian@84.232.140.52) (Ping timeout: 256 seconds) |
| 22:03:16 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 22:03:16 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 22:04:53 | <geekosaur> | sets are inherently ordered |
| 22:05:10 | <geekosaur> | you may want a HashSet instead |
| 22:05:20 | <geekosaur> | look at the unordered-containers package |
| 22:06:06 | <ProfSimm> | geekosaur: how do we iterate unordered containers? |
| 22:06:18 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:06:51 | <geekosaur> | technically they are ordered but noassumption may be made about the ordering |
| 22:07:14 | <geekosaur> | (in this case it's underlain by a hash table and the ordering depends on the hash function for the type, which is opaque) |
| 22:08:00 | <geekosaur> | note that it is not a cryptographic hash, nor randomized |
| 22:08:37 | × | werneta_ quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 22:08:46 | → | mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 22:08:51 | <ProfSimm> | geekosaur: I'm trying to think of a way to reveal what items are in a set, without revealing any order, random or not |
| 22:08:59 | <geekosaur> | (in particular, while you aren't allowed ot rely on this, last I checked the hash function for an Int was modulus) |
| 22:09:26 | <geekosaur> | think really hard |
| 22:09:33 | <ProfSimm> | geekosaur: I am. Not helping. |
| 22:10:08 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:10:31 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 22:10:42 | × | vorpuni quits (~pvorp@2001:861:3881:c690:a9b4:7766:3796:4ab1) (Quit: bye) |
| 22:12:55 | <geekosaur> | the only way I can think of is a wrapper which randomizes the element order you get from the traversal |
| 22:13:18 | <geekosaur> | if it's really important to you then you'll want a crypto-strength random algorithm |
| 22:13:52 | <geekosaur> | because, no matter what, there will internally be *some* kind of order or it would be impossible to retrieve items from the set at all |
| 22:14:16 | <ProfSimm> | geekosaur: I'm thinking maybe some way to express a "parallel iterator" where it's impossible to discern in which order the handler of each item was executed |
| 22:15:23 | × | fendor quits (~fendor@91.141.40.111.wireless.dyn.drei.com) (Remote host closed the connection) |
| 22:17:00 | → | merijn joins (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) |
| 22:17:01 | <geekosaur> | that iis functionally the same as, but probably slower than, what I suggested |
| 22:18:45 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 22:18:49 | × | liz quits (~liz@2a00:23c5:9680:501:b62e:99ff:fee4:47fa) (Remote host closed the connection) |
| 22:21:58 | × | Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
| 22:22:04 | → | vorpuni joins (~pvorp@2001:861:3881:c690:6087:4839:e849:d145) |
| 22:23:40 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 22:25:18 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Quit: Leaving) |
| 22:25:26 | → | Inst joins (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
| 22:25:27 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 22:30:09 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 22:31:06 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:31:17 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
| 22:36:27 | <jackdk> | ProfSimm: consider the story of Sussman, Minsky, and the Tic-Tac-Toe neural net: https://foldoc.org/AI+koan |
| 22:38:10 | <ProfSimm> | geekosaur: randomness is not free either |
| 22:38:32 | <ProfSimm> | geekosaur: parallel execution can be simulated, just isolate the operator from the environment |
| 22:38:55 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 22:40:03 | <ProfSimm> | jackdk: I was enlightened, but the lesson seems to be "f*** you, there's always an order" |
| 22:40:17 | <geekosaur> | which is what I already told you |
| 22:40:29 | × | son0p quits (~ff@181.136.122.143) (Remote host closed the connection) |
| 22:40:40 | <ProfSimm> | geekosaur: I refuse! |
| 22:41:11 | <ProfSimm> | geekosaur: I'm thinking more along the lines of, let's take all set values, and xor them together, but now how to disentangle that :P |
| 22:41:18 | <ski> | the order can matter sometimes, and sometimes not matter |
| 22:41:45 | <ProfSimm> | ski: I want to ensure it's impossible to derive any order while getting the set contents, whether it matters or not |
| 22:42:01 | <ProfSimm> | ski: an API where no order can be derived, no matter significant or not |
| 22:42:13 | → | liz joins (~liz@2a00:23c5:9680:501:b62e:99ff:fee4:47fa) |
| 22:42:13 | <lechner_> | is that possible without randomization? |
| 22:42:37 | <ProfSimm> | We could aggregate the values using commutative operations, like + and xor, and so on, and provide that to the user. |
| 22:42:44 | <ProfSimm> | And somehow they should disentangle it |
| 22:42:46 | <ProfSimm> | :P |
| 22:43:05 | <ProfSimm> | So what commutative operations can there be that work for arbitrary symbols |
| 22:43:30 | × | mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 22:43:42 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:43:45 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 22:43:45 | <ski> | take unordered pairs over some type `A'. we can represent an unordered pair `{|x,y|}' by an ordered pair `(x,y)', such that, whenever you're trying to use (take apart) the unordered pair, with some function `f', so that you're computing `f (x,y)', you're only allowed to do this for a commutative `f', iow where `f (x,y) = f (y,x)'. that way, the representation of the unordered pair could involve a particular |
| 22:43:46 | <ProfSimm> | We can return all values of the set at once. And when you apply some argument to it, it's applies to all items in the set at once |
| 22:43:51 | <ski> | ordering, but you're not allowed to depend on that ordering |
| 22:43:58 | <jackdk> | ProfSimm: Exactly. |
| 22:44:09 | × | alp quits (~alp@user/alp) (Remote host closed the connection) |
| 22:44:29 | → | alp joins (~alp@user/alp) |
| 22:44:59 | <ski> | you can express this (`f' being commutative) with dependent types |
| 22:45:19 | <ProfSimm> | ski, gears are turning slowly but I'll probably fail you here |
| 22:45:58 | × | burnsidesLlama quits (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) (Remote host closed the connection) |
| 22:46:08 | × | Tuplanolla quits (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:46:08 | <ski> | (you should also make sure you distinguish between material sets and structural sets) |
| 22:46:13 | <ProfSimm> | ski: so the result of "f" should be the same regardless of argument order. OK but how would that function itself work |
| 22:46:28 | <ski> | that's up to the user of the unordered pair |
| 22:47:17 | <ProfSimm> | ski: I'm thinking what if the receiver of the set applies from a set of arbitrary "discriminators" until they get one result after a certain distriminator. Only then they can read the set value |
| 22:47:33 | <ProfSimm> | ski: this way the caller determines the order of reading, not the set or its implementation |
| 22:47:35 | <ski> | btw, one way to represent a (finite) multiset/bag of numbers is as a polynomial, that have those numbers as roots |
| 22:47:43 | × | vorpuni quits (~pvorp@2001:861:3881:c690:6087:4839:e849:d145) (Quit: bye) |
| 22:48:05 | <ProfSimm> | ah |
| 22:48:18 | <ski> | no idea what you mean by those "discriminators" |
| 22:48:20 | <ProfSimm> | yeah |
| 22:48:55 | <ProfSimm> | ski: filters of some sort, that would filter the set down and down until we get one value. |
| 22:49:07 | <ProfSimm> | ski: and do so deterministically and regardless of the order of the set |
| 22:49:46 | ski | stares blankly |
| 22:49:49 | <lechner_> | where is the "regardless" coming from? |
| 22:50:04 | <romesrf> | can anyone point me to literature on the `newtype` |
| 22:50:07 | <romesrf> | is it zero cost? |
| 22:50:40 | <ProfSimm> | lechner_: the regardless is coming from it being like a filter operation on every item of the set, not processing them in order |
| 22:51:35 | <ski> | romesrf : given `newtype Foo = MkFoo Bar', `MkFoo myBar' is represented in the same way as `myBar', yes |
| 22:51:58 | <romesrf> | ski: truly amazing :) |
| 22:51:59 | × | merijn quits (~merijn@c-001-001-005.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 22:52:23 | <ski> | this means that `MkFoo' is strict (iow `MkFoo _|_ = _|_'), is a no-op, and matching on it is also a no-op |
| 22:52:35 | <lechner_> | ProfSimm: does a filter impose an order? |
| 22:53:01 | <justsomeguy> | What is the cost of creating a new datatype using the data keyword, anywys? Does it exist in memory, even if it isn't used? |
| 22:53:05 | <ProfSimm> | ski: in essense it's a function, that when given a set, can assign a cost to each value in the set, order it by that cost, and pick the item with highest cost |
| 22:53:29 | <ProfSimm> | ski: there "cost" is not anything meaningful, except that it should be computable from each individual item |
| 22:53:29 | × | cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1)) |
| 22:53:37 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 22:53:51 | <ProfSimm> | lechner_: it doesn't |
| 22:54:16 | <lechner_> | you just wrote it orders by cost |
| 22:54:36 | <ski> | (as opposed to `data Foo = MkFoo !Bar', where `MkFoo' is also strict, but matching on it is not a no-op) |
| 22:54:37 | <ProfSimm> | My problem is not an order in general. It's an order that comes from the set |
| 22:55:01 | <geekosaur> | justsomeguy, just declaring it costsonly some memory during compilation, and an info table at runtime which tells the garbage collector how to deal with any values of that type it finds |
| 22:55:13 | <geekosaur> | the info table is small and shared among all valuesof that type |
| 22:55:33 | <ProfSimm> | lechner_: let's imagine we have two parties here. Set and Caller (working with the set). I want the Set to reveal its members, but without any specific order. Then the Caller has to sort them for itself to iterate them, |
| 22:55:39 | <ski> | ProfSimm : what is a cost ? |
| 22:55:44 | <ProfSimm> | ski: some number |
| 22:55:52 | <ski> | integer ? |
| 22:55:55 | <ski> | real number ? |
| 22:56:17 | <lechner_> | ProfSimm: and do the relative costs not relate directly to the composition of each set? |
| 22:56:23 | <ProfSimm> | ski: well the odds of two items with the same cost should be basically 0. so doesn't matter if it's int or float, but it should be large enough |
| 22:56:42 | <ski> | ProfSimm : usually it'd be preferable (more efficient) not to insist on ordering |
| 22:56:52 | <ProfSimm> | lechner_: it's an absolute cost, not relative |
| 22:57:00 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 22:57:25 | <ProfSimm> | ski: yes but I have no way for a set to express its content without doing it in some order. |
| 22:57:45 | <ski> | why not what i sketched above ? |
| 22:58:18 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 22:58:21 | <ski> | provide the elements in some order, while forbidding the consumer from depending on the particular ordering |
| 22:58:40 | <ProfSimm> | ski: well, the end goal is the consumer can understand what items are in the set |
| 22:58:46 | <ski> | ProfSimm : btw, real numbers do not have decidable ordering |
| 22:59:12 | <ProfSimm> | ski: let's make it a 128-bit hash integer then |
| 23:00:30 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 256 seconds) |
| 23:03:48 | × | totte quits (~totte@h-82-196-112-155.A166.priv.bahnhof.se) (Ping timeout: 240 seconds) |
| 23:05:35 | <ProfSimm> | ski when you think of something, you also recall similar things. This implies sets are ordered in your mind |
| 23:05:48 | <ProfSimm> | ski: but the same set will have a different order in someone else's mind |
| 23:06:07 | <ProfSimm> | ski: this is similar to what I'm trying to replicate here. The consumer sets the order, not the set. |
| 23:06:42 | <ski> | what you just said would seem to imply to me the producer, not the consumer, setting the order |
| 23:07:09 | → | yauhsien joins (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) |
| 23:07:26 | <ski> | (the individual mind that's procuring the elements) |
| 23:07:31 | × | soxen quits (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Remote host closed the connection) |
| 23:07:37 | <ProfSimm> | ski: the producer thinks of three fruit kinds. It wants to know how you'd order these fruits, so it wants to tell you the three fruits, but without biasing you by giving them in some order. |
| 23:07:43 | <ProfSimm> | ski: that's the problem in a nutshell |
| 23:07:59 | → | soxen joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
| 23:08:15 | → | totte joins (~totte@h-82-196-112-155.A166.priv.bahnhof.se) |
| 23:08:34 | <ski> | the solution is still the same, it seems to me |
| 23:08:41 | <ProfSimm> | ski: the consumer can probably ask questions like "do you have a fruit that's yellow" or "tennis ball sizes" |
| 23:09:02 | <ProfSimm> | ski: and the producer can answer yes, or no. Or when exactly one fruit matches, it can give you the name of the fruit |
| 23:10:12 | <ProfSimm> | ski: so the producer can provide three answers: "0 items match your description" or "more than 1 items match your description" or "exactly 1 item matches: pear" |
| 23:10:30 | <ProfSimm> | ski: this would not reveal producer's internal order |
| 23:10:42 | <ProfSimm> | ski: how to make the questions efficient? |
| 23:11:10 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:c731:e273:a007:5879) (Ping timeout: 250 seconds) |
| 23:11:16 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
| 23:11:31 | × | yauhsien quits (~yauhsien@61-231-30-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 23:13:10 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:8911:efbc:6ba0:c242) |
| 23:13:16 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 23:13:42 | <sclv> | reading the scrollback I think you would want `foldUnordered :: CommutativeMonoid m => (a -> m) -> UnorderedSet a -> m` |
| 23:14:08 | <sclv> | but of course this relies on people only making valid instances for the commutativemonoid typecleass |
| 23:14:32 | <ski> | ProfSimm : what if you have a set for which it's not known whether it has one or two elements ? |
| 23:14:50 | <ProfSimm> | sclv: I'll explore that thanks |
| 23:15:01 | <ski> | say, it has `0' as an element, and it has a number `x' as an element. and `x' is known to be zero if and only if Goldbach's conjecture is true |
| 23:15:11 | <ProfSimm> | ski: out of scope. We know how many items are in the set, that's commutative to the order. |
| 23:15:35 | <ProfSimm> | ski: interesting suggestion, but out of scope |
| 23:15:50 | <ski> | so, in that case the producer can't answer the question "how many elements are non-zero ?" |
| 23:16:13 | <sclv> | the monoid-subclasses lib has a commutativemonoid type fwiw |
| 23:16:57 | <ski> | "We know how many items are in the set" -- how ? |
| 23:17:45 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 23:17:46 | <ProfSimm> | ski: the set knows |
| 23:18:45 | <ski> | i was just pointing out a set where that isn't the case |
| 23:19:26 | <ski> | "the set of all odd perfect numbers" is another example. noone knows whether that's non-empty |
| 23:24:46 | × | Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Quit: Leaving) |
| 23:25:03 | <ProfSimm> | ski: we're not talking about abstract sets. |
| 23:25:22 | <ProfSimm> | ski: think of it as literally a list of values whose interface is a set. |
| 23:25:28 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:8911:efbc:6ba0:c242) (Ping timeout: 250 seconds) |
| 23:26:44 | <ski> | so what if `[0,x]' is such a list of computable reals ? |
| 23:27:06 | <ProfSimm> | x is not a real |
| 23:27:08 | <ski> | > showCReal 49 pi |
| 23:27:09 | <lambdabot> | "3.1415926535897932384626433832795028841971693993751" |
| 23:27:11 | <ProfSimm> | it's a letter :P |
| 23:27:15 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) (Remote host closed the connection) |
| 23:27:30 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:7f03:8b0:a81c:56d7) |
| 23:28:31 | <ski> | `x' could be defined as the series (infinite sum) of all terms `a_i * 2^(-i)', where `i' ranges over all natural numbers and `a_i' is `0' iff all even natural numbers less than `i' can be written as a sum of two primes, and `1' otherwise |
| 23:29:31 | × | DNH quits (~DNH@2a02:8108:1100:16d8:d9d2:7af1:5c0a:c9d9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:29:47 | <monochrom> | Haha GHC 9.2.2 is "not" available :) |
| 23:29:48 | <geekosaur> | I'm confused. the discussion began with Set and HashSet, not abstract sets or concrete sets with abstract values |
| 23:29:59 | → | DNH joins (~DNH@2a02:8108:1100:16d8:d9d2:7af1:5c0a:c9d9) |
| 23:30:12 | <geekosaur> | you're around the third one to notice that one :) |
| 23:30:34 | → | son0p joins (~ff@181.136.122.143) |
| 23:30:53 | <monochrom> | But it's good news. Does it mean that everything will work out of the box on M1? |
| 23:31:00 | <maerwald> | ahaha |
| 23:31:03 | <ski> | geekosaur : well, ProfSimm's been asking about sets in ##math and ##programming as well, for some days |
| 23:32:02 | <ProfSimm> | ski: I think Set/HashSet is a closer match than uncalculable value x in a set :P |
| 23:32:18 | <ski> | `x' is computable |
| 23:32:26 | <ProfSimm> | So let's compute it then |
| 23:32:27 | <ProfSimm> | :/ |
| 23:32:50 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 23:33:03 | <ski> | you can compute it to arbitrary precision |
| 23:33:17 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 23:34:10 | <unit73e> | is it a good idea to have 'Data.Binary.Get (Either String [Item])' as a return type instead of 'Data.Binary.Get [Item]' or not really? |
| 23:34:19 | <unit73e> | because with either I can get a fail message |
| 23:34:29 | <unit73e> | but I guess Get does implement fail properly |
| 23:34:37 | <ski> | to compute the `i'th bit of `x', it's enough to have computed all prime numbers up to `i' |
| 23:34:40 | <Axman6> | do you have a reason for wanting to have thta type? |
| 23:34:49 | <monochrom> | Or even ExceptT String Get [Item]? |
| 23:35:03 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-543d-a065-e6d9-3062.res6.spectrum.com) (Remote host closed the connection) |
| 23:35:11 | <unit73e> | monochrom, hum that might be a good idea |
| 23:35:36 | <unit73e> | thanks |
| 23:35:41 | <Axman6> | <spiderman meme> ExceptT String Get [Item] -> <- Get (Either String [Item] </spiderman meme> |
| 23:35:59 | <unit73e> | lol |
| 23:36:07 | <unit73e> | I ugess |
| 23:36:12 | <unit73e> | guess* |
| 23:36:28 | <Axman6> | @unmtl ExceptT String Get [Item] |
| 23:36:28 | <lambdabot> | Get (Either String [Item]) |
| 23:36:56 | → | TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) |
| 23:36:56 | <unit73e> | what's a unmtl? |
| 23:37:00 | <monochrom> | Hrm, runGetOrFail exists and probably wants you to use fail. |
| 23:37:09 | <unit73e> | yes that is true monochrom |
| 23:37:28 | <unit73e> | might as well use what already is there... |
| 23:37:37 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 23:38:13 | <unit73e> | I must be overthinking... I'll just use what Get wants and change later if necessary |
| 23:38:18 | <unit73e> | so fail it is |
| 23:38:43 | × | TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Remote host closed the connection) |
| 23:38:44 | <unit73e> | I was using guard as suggested before but it doesn't give me a message |
| 23:39:54 | × | jrm quits (~jrm@156.34.173.250) (Ping timeout: 260 seconds) |
| 23:39:59 | <dons> | anyone know a good way to ask cabal for the cached build dir to a local exe? better than e.g. cabal run exe:$(MY_EXE) -v2 2>/dev/null | sed -n 's/Running: \(.*\)/\1/p' |
| 23:40:22 | <geekosaur> | did you want cabal find-bin? |
| 23:40:34 | <sclv> | list-bin even |
| 23:40:40 | <geekosaur> | sorry, that |
| 23:40:45 | <dons> | sounds plausible! |
| 23:41:45 | <dons> | find-bin is the one. |
| 23:41:56 | <unit73e> | I'll just use "when Bool (fail "smth")" for now. thanks |
| 23:42:14 | <dons> | cabal --help | grep find | wc -l |
| 23:42:15 | <dons> | 0 |
| 23:42:28 | <dons> | i wonder if the help is missing something |
| 23:43:07 | <sclv> | its list-bin, not find-bin |
| 23:43:46 | <dons> | lol. cabal --help | grep list update Updates list of known packages. list List packages matching a search string. list-bin List the path to a single executable. v2-update Updates list of known packages. |
| 23:43:50 | <dons> | yes. |
| 23:44:54 | <dons> | (caching the path to an exe in a build saves 900ms per invocation compared to cabal run exe:.. |
| 23:45:04 | → | jrm joins (~jrm@156.34.173.250) |
| 23:47:20 | → | burnsidesLlama joins (~burnsides@rrcs-76-81-82-250.west.biz.rr.com) |
| 23:52:54 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:ddb1:758a:abd2:2050) |
| 23:53:20 | → | niekvandepas joins (~niekvande@77-161-122-185.fixed.kpn.net) |
| 23:54:08 | → | Guest|56 joins (~Guest|56@212.201.44.244) |
| 23:54:19 | × | Guest|56 quits (~Guest|56@212.201.44.244) (Client Quit) |
| 23:55:47 | → | pilipilihoho joins (~pilipilih@d154-20-227-112.bchsia.telus.net) |
| 23:56:05 | × | pilipilihoho quits (~pilipilih@d154-20-227-112.bchsia.telus.net) (Changing host) |
| 23:56:05 | → | pilipilihoho joins (~pilipilih@user/pilipilihoho) |
| 23:56:31 | → | Inst joins (~Liam@2601:6c4:4080:3f80:d0ab:3f36:53e6:70a6) |
| 23:57:36 | <shapr> | whoa, dons?! |
| 23:57:36 | × | Inst quits (~Liam@2601:6c4:4080:3f80:d0ab:3f36:53e6:70a6) (Client Quit) |
| 23:57:42 | → | Inst joins (~Liam@2601:6c4:4080:3f80:d0ab:3f36:53e6:70a6) |
| 23:57:49 | × | pilipilihoho quits (~pilipilih@user/pilipilihoho) (Client Quit) |
| 23:58:09 | → | pilipilihoho joins (~pilipilih@user/pilipilihoho) |
| 23:58:19 | × | niekvandepas quits (~niekvande@77-161-122-185.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 23:58:45 | → | InstX1 joins (~Liam@2601:6c4:4080:3f80:2cc2:d132:f33f:4fd4) |
| 23:59:11 | <shapr> | long time no see! |
| 23:59:12 | → | chenqisu1 joins (~chenqisu1@183.217.201.47) |
All times are in UTC on 2022-03-06.