Home liberachat/#haskell: Logs Calendar

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.