Home liberachat/#haskell: Logs Calendar

Logs on 2022-07-16 (liberachat/#haskell)

00:12:39 × raym quits (~raym@user/raym) (Ping timeout: 272 seconds)
00:13:30 × mimmy quits (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 240 seconds)
00:22:10 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
00:22:47 gleostocha joins (~runic@104-182-236-205.lightspeed.sntcca.sbcglobal.net)
00:24:35 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
00:27:04 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
00:27:27 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
00:30:26 nate4 joins (~nate@98.45.169.16)
00:36:36 mimmy joins (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
00:38:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
00:38:27 <SrPx> https://stackoverflow.com/questions/73000755/is-there-a-general-algorithm-to-flatten-nested-lhs-cases-in-functional-programmi
00:45:30 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
00:46:41 frost joins (~frost@user/frost)
00:48:48 × alp quits (~alp@user/alp) (Ping timeout: 276 seconds)
00:50:45 × gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 276 seconds)
00:56:59 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
00:59:04 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
01:00:40 × miv quits (~lkiraTrue@2804:6660:ff12:ef70:29cd:ef54:d2b1:731e) (Quit: Client closed)
01:01:12 dextaa joins (~DV@user/dextaa)
01:02:26 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
01:03:25 zaquest joins (~notzaques@5.130.79.72)
01:04:28 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
01:06:24 matthewmosior joins (~matthewmo@173.170.253.91)
01:06:27 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
01:10:40 × chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:5774:9752:fb9b:46d2) (Ping timeout: 260 seconds)
01:10:44 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:10:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
01:16:52 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:24:00 matthewmosior joins (~matthewmo@173.170.253.91)
01:25:01 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654) (Remote host closed the connection)
01:26:21 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654)
01:33:05 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
01:33:39 × mimmy quits (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 276 seconds)
01:34:18 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
01:34:30 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
01:36:15 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
01:36:34 geekosaur joins (~geekosaur@xmonad/geekosaur)
01:39:19 hasbae joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
01:40:43 <hasbae> I'm reading a Haskell book and it says "any type f (g a) can be written as Compose f g a"... I searched Hackage for Compose and can't find anything that fits that description. Is Compose part of Base, Prelude, something else?
01:51:10 × gleostocha quits (~runic@104-182-236-205.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
01:59:35 mimmy joins (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
02:00:10 lkiraTrue joins (~lkiraTrue@2804:6660:ff12:ef70:29cd:ef54:d2b1:731e)
02:02:10 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
02:05:23 × mimmy quits (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 272 seconds)
02:06:25 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:07:25 lkiraTrue44 joins (~lkiraTrue@2804:6660:ff12:ef70:29cd:ef54:d2b1:731e)
02:08:13 lkiraTrue44 is now known as lkira
02:10:06 × lkiraTrue quits (~lkiraTrue@2804:6660:ff12:ef70:29cd:ef54:d2b1:731e) (Ping timeout: 252 seconds)
02:10:19 × Dutchgriffon quits (~Laurens@70.36.53.134) (Read error: Connection reset by peer)
02:10:34 lkira is now known as miv
02:10:37 Dutchgriffon joins (~Laurens@70.36.53.134)
02:19:07 raym joins (~raym@user/raym)
02:19:38 × miv quits (~lkiraTrue@2804:6660:ff12:ef70:29cd:ef54:d2b1:731e) (Ping timeout: 252 seconds)
02:23:23 <[Leary]> @hoogle Compose
02:23:23 <lambdabot> module Data.Functor.Compose
02:23:23 <lambdabot> Data.Functor.Compose newtype Compose f g a
02:23:23 <lambdabot> Data.Functor.Compose Compose :: f (g a) -> Compose f g a
02:23:38 <[Leary]> hasbae: You want to be searching hoogle, not hackage.
02:24:10 × td_ quits (~td@muedsl-82-207-238-202.citykom.de) (Ping timeout: 240 seconds)
02:26:06 td_ joins (~td@muedsl-82-207-238-162.citykom.de)
02:27:12 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
02:28:05 matthewmosior joins (~matthewmo@173.170.253.91)
02:31:06 khumba joins (~khumba@user/khumba)
02:36:51 <hasbae> ah ok, thanks!
02:38:48 mimmy joins (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
02:41:33 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:41:33 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:41:33 finn_elija is now known as FinnElija
02:44:46 yauhsien joins (~yauhsien@61-231-46-226.dynamic-ip.hinet.net)
02:47:59 × dartleader1 quits (~dartleade@host-198-90-90-182.public.eastlink.ca) (Quit: WeeChat 3.4.1)
02:48:26 × hasbae quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Quit: WeeChat 3.5)
02:51:10 × yauhsien quits (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
02:53:10 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds)
02:56:10 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
02:57:50 × mimmy quits (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 240 seconds)
02:59:08 Infinite joins (~Infinite@2405:201:6014:10d3:c50:d0f6:c664:371b)
03:01:09 mimmy joins (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
03:09:19 × Infinite quits (~Infinite@2405:201:6014:10d3:c50:d0f6:c664:371b) (Quit: Client closed)
03:19:02 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
03:19:32 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:21:10 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
03:21:52 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
03:24:22 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
03:27:22 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:31:31 × mvk quits (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 272 seconds)
03:31:48 × dsrt^ quits (~dsrt@c-73-207-207-252.hsd1.ga.comcast.net) (Ping timeout: 244 seconds)
03:32:00 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
03:32:35 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
03:34:54 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
03:44:50 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
03:57:20 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
03:58:12 zxx7529 joins (~Thunderbi@user/zxx7529)
03:59:33 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
04:00:26 zxx7529 joins (~Thunderbi@user/zxx7529)
04:01:30 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
04:02:50 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
04:03:01 matthewmosior joins (~matthewmo@173.170.253.91)
04:03:50 gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net)
04:04:44 nate4 joins (~nate@98.45.169.16)
04:06:03 × alinab quits (sid468903@helmsley.irccloud.com) (Ping timeout: 276 seconds)
04:06:11 alinab joins (sid468903@id-468903.helmsley.irccloud.com)
04:10:10 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
04:14:11 × pmarg quits (~pmarg@2a01:799:159f:9b00:ccdd:708c:653c:729c) (Remote host closed the connection)
04:15:22 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
04:25:28 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
04:25:34 zxx7530 joins (~Thunderbi@user/zxx7529)
04:27:53 zxx7530 is now known as zxx7529
04:32:15 × jespada_ quits (~jespada@45.162.228.190) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:34:36 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
04:35:28 zxx7529 joins (~Thunderbi@user/zxx7529)
04:37:03 nate4 joins (~nate@98.45.169.16)
04:38:57 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 244 seconds)
04:38:58 yauhsien joins (~yauhsien@61-231-46-226.dynamic-ip.hinet.net)
04:41:50 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
04:51:57 × yauhsien quits (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
04:56:30 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
04:56:39 × mimmy quits (~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Quit: WeeChat 3.4.1)
05:07:30 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
05:08:14 Kaiepi joins (~Kaiepi@156.34.47.253)
05:10:27 nate4 joins (~nate@98.45.169.16)
05:17:30 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
05:19:36 christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
05:22:38 codaraxis___ joins (~codaraxis@user/codaraxis)
05:26:47 × codaraxis__ quits (~codaraxis@user/codaraxis) (Ping timeout: 272 seconds)
05:35:34 matthewmosior joins (~matthewmo@173.170.253.91)
05:35:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:41:52 × gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
05:45:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
05:55:17 mima joins (~mmh@aftr-62-216-210-241.dynamic.mnet-online.de)
06:00:59 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
06:01:43 zxx7529 joins (~Thunderbi@user/zxx7529)
06:05:01 <Axman6> Anyone know of any libraris which let you unroll loops using type level shenanigans? like forM @16 $ \n -> do ... would end up in 16 copies of the function applied to 0-15 to avoid recursive code
06:05:17 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
06:05:23 <Axman6> libraries*
06:05:54 kenran joins (~kenran@200116b82babe900a379f0be3b018f05.dip.versatel-1u1.de)
06:05:55 × kenran quits (~kenran@200116b82babe900a379f0be3b018f05.dip.versatel-1u1.de) (Client Quit)
06:07:46 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
06:08:49 zxx7529 joins (~Thunderbi@user/zxx7529)
06:09:30 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
06:10:54 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:11:57 × khumba quits (~khumba@user/khumba) ()
06:13:36 motherfsck joins (~motherfsc@user/motherfsck)
06:13:55 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
06:14:25 <mon_aaraj> hey! i've been trying to get ghcup working on android termux and i am getting a very bizzare error: something like ``"_eghcup config set downloader Curl" failed!"``, has anyone got it working for android in termux by now?
06:16:36 mmhat joins (~mmh@p200300f1c70559b5ee086bfffe095315.dip0.t-ipconnect.de)
06:18:09 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
06:19:48 <tomsmeding> mon_aaraj: I've tried it in the past and ghc itself didn't build, so not sure you'll have much luck
06:20:10 <tomsmeding> Ghc supports arm, it's just that termux misses some libraries, apparently
06:21:02 <tomsmeding> It's probably possible (I recall someone loaded a whole debian environment in proot in termux, and ran ghc in there; apparently that works, but I didn't try it :p)
06:23:51 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
06:24:43 zxx7529 joins (~Thunderbi@user/zxx7529)
06:25:50 acidjnk joins (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de)
06:28:07 <mon_aaraj> yep, i know proot is possible, but i can't be annoyed to do that, as it's a bit painful
06:28:17 <mon_aaraj> it would be nice to know which libraries termux is missing though
06:30:23 <mon_aaraj> the error i sent doesn't mention much, because it seems to suggest that curl failed which is a very weird issue
06:31:10 alexhandy2 joins (~trace@user/trace)
06:33:57 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
06:34:10 × alexhandy quits (~trace@user/trace) (Ping timeout: 244 seconds)
06:34:19 alexhandy joins (~trace@user/trace)
06:37:50 × alexhandy2 quits (~trace@user/trace) (Ping timeout: 240 seconds)
06:39:51 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
06:44:29 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
06:45:25 zxx7529 joins (~Thunderbi@user/zxx7529)
06:48:57 alp joins (~alp@user/alp)
06:50:08 yauhsien joins (~yauhsien@61-231-46-226.dynamic-ip.hinet.net)
06:53:49 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:55:45 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
06:56:43 zxx7529 joins (~Thunderbi@user/zxx7529)
06:58:20 jakalx parts (~jakalx@base.jakalx.net) ()
07:02:45 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
07:03:51 × alp quits (~alp@user/alp) (Ping timeout: 276 seconds)
07:04:10 × yauhsien quits (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
07:04:35 jakalx joins (~jakalx@base.jakalx.net)
07:06:50 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
07:08:59 matthewmosior joins (~matthewmo@173.170.253.91)
07:13:34 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
07:16:45 <DigitalKiwi> i have ghc/ghci on my phone
07:16:57 <DigitalKiwi> https://github.com/t184256/nix-on-droid
07:19:05 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
07:19:10 × acidjnk quits (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
07:19:38 coot joins (~coot@213.134.190.95)
07:20:03 zxx7529 joins (~Thunderbi@user/zxx7529)
07:22:08 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
07:22:20 zxx7530 joins (~Thunderbi@user/zxx7529)
07:24:29 <Maxdamantus> I run a normal Debian installation alongside Android, so ghc works as usual there, but I wouldn't recommend my setup to anyone who isn't able to do it themselves.
07:24:39 zxx7530 is now known as zxx7529
07:25:46 <Maxdamantus> (without proot or disabling SELinux, though the Debian processes run in an unconfined security context)
07:32:53 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
07:33:11 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
07:35:59 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:36:50 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
07:39:22 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
07:39:41 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
07:43:29 matthewmosior joins (~matthewmo@173.170.253.91)
07:48:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
07:55:18 gmg joins (~user@user/gehmehgeh)
07:56:58 chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:4077:c916:581a:b291)
07:58:14 jgeerds joins (~jgeerds@55d437cf.access.ecotel.net)
08:01:53 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
08:04:18 × xff0x quits (~xff0x@2405:6580:b080:900:df60:d63b:15e3:9245) (Ping timeout: 276 seconds)
08:05:41 nate4 joins (~nate@98.45.169.16)
08:08:50 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
08:08:58 × phma quits (phma@2001:5b0:211f:fc78:8858:65c6:c56c:d940) (Read error: Connection reset by peer)
08:09:31 phma joins (~phma@host-67-44-208-200.hnremote.net)
08:09:43 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654) (Remote host closed the connection)
08:10:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:10:54 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds)
08:11:39 acidjnk joins (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de)
08:17:50 matthewmosior joins (~matthewmo@173.170.253.91)
08:17:58 × coot quits (~coot@213.134.190.95) (Quit: coot)
08:20:30 × acidjnk quits (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
08:23:09 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
08:23:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
08:27:55 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
08:34:42 mc47 joins (~mc47@xmonad/TheMC47)
08:35:47 xff0x joins (~xff0x@2405:6580:b080:900:df60:d63b:15e3:9245)
08:36:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654)
08:37:48 matthewmosior joins (~matthewmo@173.170.253.91)
08:38:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:40:21 gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
08:41:16 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654) (Ping timeout: 244 seconds)
08:46:02 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:48:08 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:48:17 <tomsmeding> mon_aaraj: in my experience the worst problem with getting ghc to work in termux is simply that you don't have any debugging facilities
08:48:25 <tomsmeding> ldd is not a thing, strace is not a thing
08:57:09 <Maxdamantus> strace and ldd seem to work for me in termux, though the ldd (apparently from the "binutils" package) seems to be a wrapper around `objdump`.
08:58:11 <tomsmeding> `ldd -h` -- `objdump: '-h': No such file`
08:58:51 <tomsmeding> Oh it's just objdump -p
08:59:01 NaturalNumber joins (~monadam@137.229.82.64)
08:59:50 yauhsien joins (~yauhsien@61-231-46-226.dynamic-ip.hinet.net)
09:00:41 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
09:01:24 <tomsmeding> ghcup itself doesn't even start here, it's missing libraries too
09:04:15 <Maxdamantus> the termux binaries seem to point to the Android linker, `/system/bin/linker64`, which seems to work like the normal ld-linux linker (including `--list`)
09:05:32 <Maxdamantus> but yeah, I wouldn't normally expect software to work OOTB in termux, unless it was specifically designed/patched to work in termux.
09:05:41 NaturalNumber123 joins (~monadam@137.229.82.64)
09:07:11 <Maxdamantus> partly because it doesn't use the standard filesystem layout (everything has to be within `/data/data/com.termux`), and I think they had to patch some things to avoid system calls that are disallowed by seccomp.
09:07:43 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
09:07:55 × Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
09:07:58 × NaturalNumber quits (~monadam@137.229.82.64) (Ping timeout: 240 seconds)
09:08:13 <tomsmeding> Maxdamantus: ooh, TIL about linker64 --list, however...
09:08:19 <tomsmeding> /system/bin/linker64 --list $PWD/bin/ghcup
09:08:19 <tomsmeding> error: "/data/data/com.termux/files/home/bin/ghcup" has unexpected e_type: 2
09:09:03 <Maxdamantus> Haven't used ghcup, but I would guess it's a shell script, so not something the linker handles directly.
09:09:21 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
09:10:27 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
09:11:10 <tomsmeding> Maxdamantus: in ancient times it was a shell script, nowadays it's a haskell executable
09:11:41 <Maxdamantus> Ah, okay.
09:11:56 Tuplanolla joins (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi)
09:12:13 <JensPetersen[m]> Is there a simple cli prompt input library, which clear stdin before taking input?
09:14:07 <tomsmeding> Ah I remember, it was libnuma that I couldn't find
09:14:09 Maxdamantus recalls the horrors of `npm adduser` ignoring input from stdin.
09:15:18 × yauhsien quits (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
09:15:25 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
09:16:25 <JensPetersen[m]> Maxdamantus: (I mostly use a chroot, but) surprising lot of software packaged for termux including ghc (maybe not the version you want...?)
09:17:31 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
09:17:56 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
09:18:10 NaturalNumber joins (~monadam@137.229.82.64)
09:18:47 <JensPetersen[m]> DigitalKiwi: sick ;o)
09:20:19 <Maxdamantus> JensPetersen[m]: dunno, tomsmeding was talking about using ghcup. Personally I run a normal Debian installation outside of the normal Android environment (requiring root), which avoids most of the Android restrictions.
09:20:20 × Vajb quits (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
09:20:35 <Maxdamantus> So I mostly use termux as a terminal emulator and a way to ssh into that.
09:20:39 × NaturalNumber123 quits (~monadam@137.229.82.64) (Ping timeout: 268 seconds)
09:20:43 <JensPetersen[m]> Maxdamantus: okay sorry, just jumped into the conversion
09:20:50 <JensPetersen[m]> conversation
09:20:53 Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
09:21:20 nasosev joins (~nasosev@193-116-244-197.tpgi.com.au)
09:23:02 <nasosev> hello, i am getting the following error trying to build an empty project with either cabal or stack using ghc 9.2.2, reproduced on two different mac computers on different OS : ld64.lld: error: unknown argument '--gc-sections'
09:23:03 <nasosev> clang: error: linker command failed with exit code 1 (use -v to see invocation)
09:23:03 <nasosev> `gcc' failed in phase `Linker'. (Exit code: 1)
09:24:19 <nasosev> i couldn't find any help for this by web search. any ideas?
09:24:45 × shriekingnoise quits (~shrieking@201.212.175.181) (Quit: Quit)
09:25:50 <JensPetersen[m]> nasosev: I am not a mac user, so probably others can better help: you could try 9.2.3 instead perhaps?
09:26:28 <JensPetersen[m]> But might be some toolchain issue?
09:27:40 <nasosev> i get the same error with 9.2.3
09:28:20 <tomsmeding> JensPetersen[m]: I swear that ghc package wasn't there when I checked a while ago
09:29:25 <JensPetersen[m]> tomsmeding: might be newish? - I just happened to notice it the other day :-) Pretty cool that is available anyway
09:29:27 <c_wraith> JensPetersen[m]: I think I heard something recently about linkers on Mac OS...
09:29:33 coot joins (~coot@213.134.190.95)
09:30:28 <JensPetersen[m]> tomsmeding: seems cabal-install there too 👍️
09:30:50 × mmhat quits (~mmh@p200300f1c70559b5ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
09:30:58 × alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer)
09:31:12 <nasosev> this seems related, although both my computers are Intel CPU not M1 : https://gitlab.haskell.org/ghc/ghc/-/issues/21570
09:31:23 alexhandy joins (~trace@user/trace)
09:32:40 <tomsmeding> c_wraith: think that was this, the fix for which is to use ld64 apparently https://ircbrowse.tomsmeding.com/day/lchaskell/2022/07/11?id=618823#trid618823
09:32:45 <tomsmeding> Hence not a fix here
09:33:01 <tomsmeding> nasosev: how old is your macos
09:34:16 <nasosev> one on 12.4 the other 11.6.7
09:34:57 <c_wraith> nasosev: that ticket looks like exactly what you found. I don't think the architecture matters. I think the biggest factor is having installed a second linker via something like homebrew
09:35:09 <nasosev> at the end of that thread there is a suggestion workaround:
09:35:10 <nasosev> "As a temporary workaround, one can pass --disable-ld-override to the binary distribution configure script. This will disable the linker discovery logic and use the system's default linker."
09:35:10 <nasosev> not sure what to pass that flag to?
09:35:36 <nasosev> i think both computers have llvm installed by homebrew, and also agda
09:35:56 <nasosev> could  that be the cause?
09:36:26 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
09:36:39 <c_wraith> well. the cause is a bug in how GHC calls the linker on mac os. But it's likely getting confused by that extra llvm install, yes
09:37:20 <nasosev> ok, removing it now..
09:39:11 <c_wraith> it looks like the configure they're talking about is during ghc installation
09:39:14 <nasosev> Ok, now I have a different error:
09:39:14 <nasosev> clang: error: invalid linker name in argument '-fuse-ld=lld'
09:39:15 <nasosev> `gcc' failed in phase `Linker'. (Exit code: 1)
09:39:34 <c_wraith> yeah, I think you'll need to reinstall ghc now
09:39:59 <nasosev> ok thanks I'll try it
09:40:10 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
09:41:06 jakalx joins (~jakalx@base.jakalx.net)
09:44:18 × gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 244 seconds)
09:44:23 mmhat joins (~mmh@p200300f1c70559fbee086bfffe095315.dip0.t-ipconnect.de)
09:45:34 takuan joins (~takuan@178-116-218-225.access.telenet.be)
09:52:59 matthewmosior joins (~matthewmo@173.170.253.91)
09:54:23 × NaturalNumber quits (~monadam@137.229.82.64) (Remote host closed the connection)
09:54:42 × finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer)
09:55:16 finsternis joins (~X@23.226.237.192)
09:57:20 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
09:57:52 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
10:01:35 <nasosev> working! thanks everyone
10:01:43 <c_wraith> glad to hear it
10:01:51 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
10:02:35 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
10:12:12 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:12:22 matthewmosior joins (~matthewmo@173.170.253.91)
10:19:20 × coot quits (~coot@213.134.190.95) (Quit: coot)
10:21:31 yauhsien joins (~yauhsien@61-231-46-226.dynamic-ip.hinet.net)
10:26:26 × yauhsien quits (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
10:27:42 yauhsien joins (~yauhsien@61-231-46-226.dynamic-ip.hinet.net)
10:30:30 alternateved joins (~user@staticline-31-183-144-54.toya.net.pl)
10:31:17 × nasosev quits (~nasosev@193-116-244-197.tpgi.com.au) (Quit: Client closed)
10:31:51 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
10:36:30 × yauhsien quits (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
10:41:12 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
10:41:49 zxx7529 joins (~Thunderbi@user/zxx7529)
10:46:38 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
10:50:04 × mima quits (~mmh@aftr-62-216-210-241.dynamic.mnet-online.de) (Remote host closed the connection)
10:50:38 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
10:52:39 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
10:54:12 aveltras[m] joins (~aveltrasm@2001:470:69fc:105::3ef9)
10:57:21 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
11:00:03 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
11:00:03 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
11:00:22 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
11:00:52 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
11:05:26 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
11:12:50 × christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 240 seconds)
11:13:18 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
11:14:35 dsp_ joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
11:14:51 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
11:18:00 dsp_ parts (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) ()
11:18:10 dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
11:18:31 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
11:18:45 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:18:46 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
11:19:06 × dsp quits (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Client Quit)
11:19:25 dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
11:19:43 × dsp quits (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Client Quit)
11:20:04 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
11:20:39 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:21:57 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
11:26:36 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
11:27:14 ph88 joins (~ph88@2a02:8109:9e00:71d0::347a)
11:27:21 matthewmosior joins (~matthewmo@173.170.253.91)
11:28:30 × alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer)
11:28:36 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
11:29:45 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
11:31:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
11:33:51 nasosev joins (~nasosev@193-116-244-197.tpgi.com.au)
11:34:41 <nasosev> are the GHC2021 extensions (https://gitlab.haskell.org/ghc/ghc/-/issues/19234) enabled by efault in ghc 9.2? I started a new cabal project with 9.2.2 and I have a warning about "'qualified' in postpositive position" even though ImportQualifiedPost is on of the GHC2021 extensions
11:35:18 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
11:36:13 <geekosaur> they should be enabled by default, but check for default-language in the cabal file
11:36:28 <geekosaur> if it's Haskell2010 then they will be disabled
11:37:23 <nasosev> yes it's Haskell2010. what should it be?
11:38:01 <geekosaur> GHC2021
11:38:26 <geekosaur> you may need to check your cabal version, I think you need at least 3.6 for that to be recognized
11:38:32 Vajb joins (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi)
11:39:30 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
11:39:50 <nasosev> thank you!
11:43:27 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
11:44:00 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
11:45:41 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
11:47:30 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Ping timeout: 240 seconds)
11:51:30 × nasosev quits (~nasosev@193-116-244-197.tpgi.com.au) (Quit: Client closed)
11:52:44 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
11:53:50 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
11:56:02 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
11:57:03 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:59:28 matthewmosior joins (~matthewmo@173.170.253.91)
12:00:46 christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
12:01:07 dsrt^ joins (~dsrt@c-73-207-207-252.hsd1.ga.comcast.net)
12:01:21 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
12:06:02 MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net)
12:06:26 nate4 joins (~nate@98.45.169.16)
12:07:00 boxscape_ joins (~boxscape_@46.183.103.17)
12:07:30 Major_Biscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
12:08:26 <boxscape_> why can I write `:set -XNoGADTs` followed by `data a :~: b where Refl :: a :~: a` in ghci without it throwing an error?
12:08:35 <boxscape_> (ghc 9.2.3)
12:09:20 <boxscape_> GADTSyntax is on by default but that doesn't seem like it should be enough?
12:09:57 <boxscape_> oh or is it only the pattern matching for which you need the extension?
12:10:08 <boxscape_> I suppose that's it
12:11:10 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
12:12:20 × GoldsteinQ quits (~goldstein@goldstein.rs) (Quit: ZNC 1.8.2 - https://znc.in)
12:14:40 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
12:15:32 gmg joins (~user@user/gehmehgeh)
12:20:56 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:22:25 <tomsmeding> It's the pattern matching where you can really make use of gadt-ness, the production of new evidence from a value-level match
12:23:37 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
12:23:42 <boxscape_> right, that's true
12:25:12 <geekosaur> boxscape_, :seti ?
12:25:30 <boxscape_> geekosaur shouldn't matter, since I'm not loading a file
12:25:34 <boxscape_> :set affects both
12:25:38 <boxscape_> ghci and loaded files
12:27:50 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
12:30:39 zer0bitz joins (~zer0bitz@2001:2003:f748:2000:816c:2bf2:33a9:87c2)
12:31:12 × MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 244 seconds)
12:39:24 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654)
12:42:27 GoldsteinQ joins (~goldstein@goldstein.rs)
12:42:39 Guest3 joins (~Guest3@183.82.24.82)
12:43:32 × Guest3 quits (~Guest3@183.82.24.82) (Client Quit)
12:44:14 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654) (Ping timeout: 272 seconds)
12:45:08 jackhill is now known as KM4MBG
12:45:46 KM4MBG is now known as jackhill
12:46:30 Haskelytic joins (~Haskelyti@118.179.211.17)
12:50:00 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:52:54 × boxscape_ quits (~boxscape_@46.183.103.17) (Ping timeout: 244 seconds)
12:53:30 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:56:54 × arahael quits (~arahael@114.198.31.146) (Ping timeout: 272 seconds)
13:01:14 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
13:03:17 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
13:03:44 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
13:06:22 acidjnk joins (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de)
13:07:25 × kaskal quits (~kaskal@089144220061.atnat0029.highway.webapn.at) (Quit: ZNC - https://znc.in)
13:11:19 arahael joins (~arahael@121-44-2-189.tpgi.com.au)
13:13:00 kaskal joins (~kaskal@089144220061.atnat0029.highway.webapn.at)
13:13:58 × kaskal quits (~kaskal@089144220061.atnat0029.highway.webapn.at) (Remote host closed the connection)
13:14:38 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
13:17:21 × Major_Biscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Ping timeout: 272 seconds)
13:19:04 Major_Biscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
13:19:15 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
13:21:29 kaskal joins (~kaskal@089144220061.atnat0029.highway.webapn.at)
13:23:15 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
13:23:15 alp joins (~alp@user/alp)
13:24:57 alp_ joins (~alp@user/alp)
13:26:07 img joins (~img@user/img)
13:26:23 × alp_ quits (~alp@user/alp) (Remote host closed the connection)
13:26:42 alp_ joins (~alp@user/alp)
13:28:27 alp__ joins (~alp@user/alp)
13:28:45 × alp quits (~alp@user/alp) (Ping timeout: 272 seconds)
13:29:10 × Major_Biscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Ping timeout: 240 seconds)
13:29:43 × kaskal quits (~kaskal@089144220061.atnat0029.highway.webapn.at) (Quit: ZNC - https://znc.in)
13:29:52 × alp__ quits (~alp@user/alp) (Remote host closed the connection)
13:30:00 × img quits (~img@user/img) (Client Quit)
13:30:11 alp__ joins (~alp@user/alp)
13:30:32 kaskal joins (~kaskal@089144220061.atnat0029.highway.webapn.at)
13:31:30 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
13:32:31 matthewmosior joins (~matthewmo@173.170.253.91)
13:32:33 × alp_ quits (~alp@user/alp) (Ping timeout: 276 seconds)
13:32:53 img joins (~img@user/img)
13:33:01 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Quit: Leaving)
13:33:01 alp joins (~alp@user/alp)
13:34:05 <Haskelytic> the applicative for `(->) a` is borking my brain still
13:34:34 <geekosaur> applicative and monad for that break everyone's brains 🙂
13:35:21 <Haskelytic> do u eventually just reach enlightenment
13:35:28 <Haskelytic> or learn to accept the bork
13:35:36 <geekosaur> mostly the latter, I think
13:35:43 <Haskelytic> XD
13:35:47 <geekosaur> there are some patterns you learn to recognize
13:35:48 × alp__ quits (~alp@user/alp) (Ping timeout: 276 seconds)
13:35:51 <Haskelytic> i was hoping the former
13:36:06 <geekosaur> but you still tend to get tripped up by anything not fitting those patterns
13:36:18 <Haskelytic> hmm I suppose you're right there
13:36:27 <Haskelytic> the brain is a weird thing :)
13:36:39 <tomsmeding> The brain works very well with patterns
13:36:56 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
13:37:11 <tomsmeding> Which is also why learning by example is so effective
13:37:22 <Haskelytic> is that why haskell uses pattern matching :)
13:37:47 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
13:38:58 <tomsmeding> Your brain pattern matches the pattern matches
13:40:21 <tomsmeding> More seriously: like fst/snd are the eliminators of product types, pattern matching is (a generalisation of) the eliminator of sum types
13:40:48 × zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529)
13:40:50 <tomsmeding> So the effectiveness of pattern matching in haskell comes for a large part from the effectiveness of sum types in functional programming
13:41:24 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
13:42:05 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
13:43:18 wootehfoot joins (~wootehfoo@user/wootehfoot)
13:44:16 img joins (~img@user/img)
13:44:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
13:45:09 × img quits (~img@user/img) (Client Quit)
13:47:01 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:49:18 Guest39 joins (~Guest39@183.82.24.82)
13:49:48 img joins (~img@user/img)
13:50:33 matthewmosior joins (~matthewmo@173.170.253.91)
13:51:08 × Guest39 quits (~Guest39@183.82.24.82) (Client Quit)
13:53:30 × jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 240 seconds)
13:55:10 × acidjnk quits (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
13:55:35 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
13:55:45 <tomsmeding> Public service announcement: if someone complains that "there are files missing in the `...' package", it's not always dynamic linking on arch linux
13:55:55 <tomsmeding> Because termux does the same (dynamic linking)
13:56:32 <tomsmeding> Luckily that'll be a vanishingly small amount of people, so arch is still a good first guess :)
13:57:01 <tomsmeding> Currently trying to build a statically linked cabal using a dynamically-linked one
13:57:09 <geekosaur> was gonna say, that seems really unlikely. first you have to deal with the amount of memory needed to compile anything…
13:58:02 <geekosaur> (termux at least has a good reason to prefer dynamic linking)
13:59:44 <qrpnxz> Haskelytic: even more blowing is that pure and <*> for (->) r are the K and S combinators, with which you can write any computable function
14:01:31 yauhsien joins (~yauhsien@61-231-46-226.dynamic-ip.hinet.net)
14:01:44 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds)
14:01:53 Infinite joins (~Infinite@2405:201:6014:10d3:fb7b:36f:7eba:e87d)
14:04:37 <tomsmeding> geekosaur: my phone has 8gb ram + 2gb swap :p
14:04:47 <tomsmeding> Though quite a bunch of that is taken by the system
14:05:34 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
14:06:14 <tomsmeding> Can I create a new ghc-pkg db that contains just the boot packages from the global system db and ignores the rest, and then tell cabal to use that instead of the global db?
14:06:51 <tomsmeding> Reason being that the package-manager-installed cabal had some dependencies, now registered in the global store, that have no static library files >.>
14:07:04 <tomsmeding> Hence cabal build fails for anything
14:07:15 <geekosaur> you can copy the package registration files to a new directory and then run ghc-pkg recache in it
14:08:24 <geekosaur> I don't know about the other one, sadly. I presume it's doable but requires some horkery
14:08:42 <tomsmeding> `cabal install` has a --package-db flag
14:08:52 <tomsmeding> https://github.com/haskell/cabal/pull/7676
14:09:31 <merijn> tomsmeding: In principle that's already what v2 does :p
14:09:52 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
14:09:55 <merijn> tomsmeding: It creates an on-demand package db for each project
14:10:07 <geekosaur> but it still trusts the global package db
14:10:07 <tomsmeding> merijn: `cabal install cabal-install` fails because it says that there are files missing in Cabal etc.
14:10:13 <tomsmeding> Because those only have dyn files
14:10:14 × Haskelytic quits (~Haskelyti@118.179.211.17) (Ping timeout: 252 seconds)
14:10:25 <merijn> ah
14:10:27 <geekosaur> problem there being Cabal is a boot package used by ghc
14:10:42 <tomsmeding> The boot packages have static archives in the global db, because the system package manager has those
14:10:44 <tomsmeding> But only those
14:11:08 <merijn> good luck :p
14:11:20 × Infinite quits (~Infinite@2405:201:6014:10d3:fb7b:36f:7eba:e87d) (Ping timeout: 252 seconds)
14:11:30 <merijn> I wanna procrasinate, but not badly enough to fight "Random Ass Linux Distroy #3" :p
14:11:31 <tomsmeding> Hence my question
14:11:55 <tomsmeding> merijn: use it as motivation to do what you wanted to procrastinate on
14:12:04 <merijn> My advice would be "don't use the system package manager, but that's not super helpful" :p
14:12:22 <geekosaur> I think termux has to be a bit of a special case
14:12:27 <tomsmeding> That's super unhelpful in this case because I have no clue how to get a working ghc on this system otherwise :p
14:12:36 <merijn> tomsmeding: The last edits before my thesis can go to the printer...honestly rather stab myself at this point ;_;
14:13:10 <tomsmeding> merijn: the end is in sight
14:13:16 <tomsmeding> The force be with you
14:13:41 <merijn> It's a fight between "I really don't wanna do this" and "aaaaaaaaaah it needs to be printed"
14:16:17 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
14:17:03 acidjnk joins (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de)
14:19:10 img joins (~img@user/img)
14:20:25 × yauhsien quits (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Remote host closed the connection)
14:21:08 × chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:4077:c916:581a:b291) (Ping timeout: 272 seconds)
14:21:56 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654)
14:24:24 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
14:26:10 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654) (Ping timeout: 240 seconds)
14:26:38 yauhsien joins (~yauhsien@61-231-46-226.dynamic-ip.hinet.net)
14:26:45 zebrag joins (~chris@user/zebrag)
14:26:50 <tomsmeding> Meeeh cabal unconditionally calls `ghc --print-global-package-db`
14:27:17 img joins (~img@user/img)
14:27:42 azimut joins (~azimut@gateway/tor-sasl/azimut)
14:27:50 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
14:30:08 nasosev joins (~nasosev@193-116-244-197.tpgi.com.au)
14:30:33 <nasosev> how can i pass a flag to a package in cabal? I want to use the flag:
14:30:33 <nasosev> hmatrix:
14:30:34 <nasosev>     openblas: true
14:30:56 <dcoutts_> package hmatrix
14:31:00 <dcoutts_> flags: +openblas
14:31:10 × yauhsien quits (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
14:31:11 <dcoutts_> in your cabal.project or cabal.project.local file
14:34:36 <nasosev> I only have a project.cabal file. I tried putting that in there but it did not seem to work
14:35:03 <nasosev> I created this project with 'cabal init' . (This is my first time using cabal, I previously used stack)
14:35:15 <dcoutts_> Then make a simple cabal.project file, listing "packages: ." as the only other entry.
14:35:26 <merijn> I wish the use of cabal flags for "feature flags" was quashed harder 10 years ago :\
14:36:00 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
14:36:47 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
14:38:18 <nasosev> sorry, do I literally name the file cabal.project , or is it cabal.[PROJECTNAME] ? I tried both, the first way gave me the following error and the second had no effect:
14:38:18 <nasosev> Warning: There are no packages or optional-packages in the project
14:38:19 <nasosev> cabal-3.6.2.0.exe: There is no <pkgname>.cabal package file or cabal.project
14:38:19 <nasosev> file. To build packages locally you need at minimum a <pkgname>.cabal file.
14:38:20 <nasosev> You can use 'cabal init' to create one.
14:38:53 img joins (~img@user/img)
14:38:58 <dcoutts_> Yes, cabal.project containing
14:39:00 <dcoutts_> packages: .
14:39:16 <dcoutts_> and then the bit I mentioned above to set +openblas
14:40:01 <nasosev> the following errors occurred:
14:40:02 <nasosev> The package location 'package' does not exist.
14:40:02 <nasosev> The package location 'hmatrix' does not exist.
14:40:03 <nasosev> The package location 'flags:' does not exist.
14:40:03 <nasosev> The package location '+openblas' does not exist.
14:40:15 <nasosev> my cabal.project contains the following:
14:40:16 <nasosev> packages: .
14:40:16 <nasosev>     package hmatrix
14:40:17 <nasosev>         flags: +openblas
14:40:40 <dcoutts_> the syntax is like .cabal files, so top level sections need to start at the left, no indentation
14:40:54 <dcoutts_> packages: .
14:40:56 <dcoutts_> package hmatrix
14:41:01 <dcoutts_> oops
14:41:02 <dcoutts_> package hmatrix
14:41:07 <dcoutts_>   flags: +openblas
14:41:21 × img quits (~img@user/img) (Client Quit)
14:41:53 <dcoutts_> Make sense? The package <foo> is a new section, so top level, not indented within the packages field.
14:42:26 <dcoutts_> the packages field just lists the directories of local packages within the project (hence "." for the simplest possible projects)
14:43:20 <tomsmeding> (looks like something is working: https://tomsmeding.com/vang/yjG3AH/Screenshot_20220716-164254.jpg )
14:44:13 img joins (~img@user/img)
14:47:12 <nasosev> thanks a lot for the instructions and explanations. it looks like the flag was accepted now so that is great, however i now have an error "Missing (or bad) C library: openblas", even though this project compiles properly with stack on GHC 9.0.2
14:47:27 <nasosev> (the reason I'm trying to use cabal is so I can use GHC 9.2.2)
14:49:00 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
14:49:20 <dcoutts_> nasosev: are you quite sure you've got the development package for openblas installed via your system package manager? It's not doing anything fancy here, just trying to link against the C library. It assumes the C linker (and hence ghc) can find it.
14:49:49 × christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 272 seconds)
14:53:44 <nasosev> dcoutts_yeah but it was a bit tricky to get it working, I followed these instructions https://github.com/haskell-numerics/hmatrix/blob/master/INSTALL.md  which say that Stack is preferred, actually there are some Cabal instructions there too I should try, I had forgotten. although it also says the instructions are out of date and probably won't
14:53:44 <nasosev> work...
14:53:48 × alp quits (~alp@user/alp) (Ping timeout: 276 seconds)
14:53:53 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
14:56:28 califax_ joins (~califax@user/califx)
14:56:45 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
14:56:45 × califax quits (~califax@user/califx) (Ping timeout: 268 seconds)
14:56:46 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
14:57:22 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
14:57:22 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
14:57:40 califax_ is now known as califax
14:57:59 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 268 seconds)
14:57:59 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 268 seconds)
14:57:59 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
14:58:17 chexum joins (~quassel@gateway/tor-sasl/chexum)
14:59:04 ChaiTRex joins (~ChaiTRex@user/chaitrex)
14:59:32 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
14:59:55 gmg joins (~user@user/gehmehgeh)
15:00:10 × acidjnk quits (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
15:07:05 <nasosev> i think i'll give up trying to get this working on windows -- it's working on my mac
15:09:19 gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
15:10:31 <nasosev> unrelated question: how can i get a bunch of qualified names to automatically be in scope in 'cabal repl' -- E.g. 'import Data.Set qualified as Set'
15:10:35 <hololeap> can I use CPP to add extra lines to cabal files depending on the version of cabal?
15:10:36 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
15:11:21 <hololeap> the version of GHC, rather
15:11:24 <hololeap> ghc-8.8 doesn't like some -W flags that I have turned on
15:11:47 stiell joins (~stiell@gateway/tor-sasl/stiell)
15:11:54 <hololeap> so my github workflow is failing on that particular ghc version
15:13:30 <merijn> nasosev: You can have a .ghci file
15:13:52 <merijn> nasosev: https://github.com/merijn/dotfiles/blob/master/dotfiles/ghci
15:14:17 <merijn> hololeap: Eh, that's natively supported by cabal without CPP :p
15:14:24 <merijn> unlike CPP, which isn't supported at all
15:14:42 <hololeap> oh, I think I've seen that before
15:16:06 <merijn> hololeap: https://github.com/merijn/broadcast-chan/blob/73f8e7a7263ebd0b97193f16416f3ffb5193f787/broadcast-chan/broadcast-chan.cabal#L155-L156
15:16:20 <nasosev> merijn: thanks, actually i did try that but when I do 'import qualified My.Module as Module' and run 'cabal repl' it complains 'could not find module 'My.Module''
15:16:26 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
15:16:42 <nasosev> 'when i do'* i meant, when i put that line in the .ghci file
15:16:46 <merijn> hololeap: fields like ghc-flags are monoidal, so multiple ghc-flags get concatenated
15:16:59 <merijn> hololeap: And if lets you have conditional fields
15:17:14 <hololeap> makes sense, thanks for the example
15:17:46 Infinite joins (~Infinite@2405:201:6014:10d3:d0ca:78e0:9524:7a2a)
15:18:09 <merijn> nasosev: ah, of some non-standard package?
15:18:25 <merijn> You'd need to tell ghci that that package should be in scope
15:18:33 <nasosev> it's a module in my project
15:18:34 nasosev_ joins (~nasosev@193-116-244-197.tpgi.com.au)
15:18:54 <nasosev> it seems that in 'cabal repl', none of my modules are loaded automatically as they were in stack
15:18:59 <nasosev> stack ghci
15:19:18 acidjnk joins (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de)
15:20:24 kilolympus joins (~kilolympu@4e69e623.skybroadband.com)
15:24:19 matthewmosior joins (~matthewmo@173.170.253.91)
15:27:06 shriekingnoise joins (~shrieking@201.212.175.181)
15:28:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
15:33:28 × Infinite quits (~Infinite@2405:201:6014:10d3:d0ca:78e0:9524:7a2a) (Ping timeout: 252 seconds)
15:34:04 × _xor quits (~xor@74.215.182.83) (Quit: brb)
15:35:39 <nasosev_> i've tried putting the following in my .ghci but it is not working:
15:35:43 <nasosev_> :load My.Module
15:35:44 <nasosev_> import qualified My.Module as Module
15:35:50 Infinite joins (~Infinite@2405:201:6014:10d3:f594:75fd:97e5:bc1f)
15:37:40 econo joins (uid147250@user/econo)
15:38:03 × tomgus1 quits (~tomgus1@2a02:c7e:4229:d900:dea6:32ff:fe3d:d1a3) (Ping timeout: 268 seconds)
15:39:53 × alternateved quits (~user@staticline-31-183-144-54.toya.net.pl) (Remote host closed the connection)
15:40:10 alternateved joins (~user@staticline-31-183-144-54.toya.net.pl)
15:41:42 matthewmosior joins (~matthewmo@173.170.253.91)
15:43:25 × alternateved quits (~user@staticline-31-183-144-54.toya.net.pl) (Remote host closed the connection)
15:43:42 alternateved joins (~user@staticline-31-183-144-54.toya.net.pl)
15:46:45 × nasosev_ quits (~nasosev@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
15:48:55 nasosev_ joins (~nasosev@193-116-244-197.tpgi.com.au)
15:49:05 chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:d0d9:e962:c777:f89b)
15:53:27 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654)
15:55:17 zxx7529 joins (~Thunderbi@user/zxx7529)
15:55:46 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
15:56:34 × nasosev quits (~nasosev@193-116-244-197.tpgi.com.au) (Ping timeout: 252 seconds)
15:56:44 gmg joins (~user@user/gehmehgeh)
15:58:02 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654) (Ping timeout: 272 seconds)
15:59:32 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
16:00:16 zxx7529 joins (~Thunderbi@user/zxx7529)
16:04:13 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
16:04:56 zxx7529 joins (~Thunderbi@user/zxx7529)
16:07:57 nate4 joins (~nate@98.45.169.16)
16:09:37 × dsrt^ quits (~dsrt@c-73-207-207-252.hsd1.ga.comcast.net) (Ping timeout: 272 seconds)
16:09:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:12:51 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds)
16:16:35 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
16:20:56 coot joins (~coot@213.134.190.95)
16:25:15 × Infinite quits (~Infinite@2405:201:6014:10d3:f594:75fd:97e5:bc1f) (Quit: Client closed)
16:26:34 dsrt^ joins (~dsrt@c-73-207-207-252.hsd1.ga.comcast.net)
16:30:45 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
16:31:07 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
16:31:19 ChaiTRex joins (~ChaiTRex@user/chaitrex)
16:32:44 × zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529)
16:35:30 × acidjnk quits (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
16:36:05 Major_Biscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
16:39:44 <nasosev_> How can I use Relude's hlint.yaml file (https://github.com/kowainik/relude) ? I'm using VSCode, and there is an option to add flags for hlint, but looking at the Hlint manual it doesn't seem to mention anything about yaml files https://hackage.haskell.org/package/hlint-1.7/src/hlint.htm
16:39:52 polyphem joins (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17)
16:41:08 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
16:41:36 zxx7529 joins (~Thunderbi@user/zxx7529)
16:41:41 ChaiTRex joins (~ChaiTRex@user/chaitrex)
16:44:11 × chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:d0d9:e962:c777:f89b) (Ping timeout: 255 seconds)
16:44:52 nasosev joins (~nasosev@193-116-244-197.tpgi.com.au)
16:46:25 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
16:52:31 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
16:53:05 acidjnk joins (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de)
16:55:10 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:58:49 × coot quits (~coot@213.134.190.95) (Quit: coot)
17:00:23 × zxx7529 quits (~Thunderbi@user/zxx7529) (Read error: Connection reset by peer)
17:01:03 zxx7529 joins (~Thunderbi@user/zxx7529)
17:03:15 ChaiTRex joins (~ChaiTRex@user/chaitrex)
17:05:42 × zxx7529 quits (~Thunderbi@user/zxx7529) (Client Quit)
17:07:16 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit)
17:08:29 × Major_Biscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Quit: WeeChat 3.5)
17:08:54 ChaiTRex joins (~ChaiTRex@user/chaitrex)
17:08:54 o-90 joins (~o-90@gateway/tor-sasl/o-90)
17:11:02 × nasosev_ quits (~nasosev@193-116-244-197.tpgi.com.au) ()
17:11:55 × nasosev quits (~nasosev@193-116-244-197.tpgi.com.au) (Quit: Client closed)
17:13:00 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
17:16:02 matthewmosior joins (~matthewmo@173.170.253.91)
17:16:41 × adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
17:17:10 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
17:22:14 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
17:31:33 __monty__ joins (~toonn@user/toonn)
17:34:42 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:37:36 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds)
17:43:32 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
17:43:37 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
17:44:06 ChaiTRex joins (~ChaiTRex@user/chaitrex)
17:47:27 chomwitt joins (~chomwitt@athedsl-369793.home.otenet.gr)
17:47:51 <geekosaur> .hlint.yaml in the project
17:51:25 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654)
17:51:35 × acidjnk quits (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
17:52:30 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:52:34 × polyphem quits (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Quit: WeeChat 3.5)
17:53:10 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
17:56:30 × chomwitt quits (~chomwitt@athedsl-369793.home.otenet.gr) (Ping timeout: 264 seconds)
18:02:37 christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
18:06:20 Sgeo joins (~Sgeo@user/sgeo)
18:07:25 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
18:08:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:13:07 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 272 seconds)
18:15:20 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
18:15:20 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
18:15:20 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
18:15:20 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
18:15:48 azimut joins (~azimut@gateway/tor-sasl/azimut)
18:15:51 stiell joins (~stiell@gateway/tor-sasl/stiell)
18:16:23 gmg joins (~user@user/gehmehgeh)
18:16:29 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
18:20:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
18:23:10 × gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
18:23:39 Haskelytic joins (~Haskelyti@118.179.211.17)
18:25:11 × phma quits (~phma@host-67-44-208-200.hnremote.net) (Read error: Connection reset by peer)
18:26:06 phma joins (phma@2001:5b0:212a:ccf8:28d4:d0ee:6a25:5e66)
18:28:34 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
18:29:00 ChaiTRex joins (~ChaiTRex@user/chaitrex)
18:32:10 <Midjak> Hi I am wondering if it's possible to use dynamic lib written in Haskell from a program written in another language. If yes, is it easy ? Is it common ? Are there open source projects which do that ?
18:33:23 matthewmosior joins (~matthewmo@173.170.253.91)
18:33:40 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
18:34:02 <merijn> Midjak: Yes. Fairly easy if you know what you're doing. Not very common
18:34:30 <hpc> https://wiki.haskell.org/Foreign_Function_Interface#Exported_functions
18:34:31 <merijn> I think cabal even has a specific library type for this
18:35:01 <merijn> hpc: There's a couple of "tricky" bits, but if you are comfortable with dynamic libraries in C/C++ they should be completely minor speedbumps
18:35:05 <merijn> eh
18:35:07 <merijn> s/hpc/Midjak
18:35:10 × td_ quits (~td@muedsl-82-207-238-162.citykom.de) (Ping timeout: 240 seconds)
18:35:30 benin0 joins (~benin@183.82.24.82)
18:35:32 <merijn> Midjak: Specifically you need to remember to link the runtime too and you need to call some setup functions before you can call haskell code
18:35:43 <hpc> on the non-haskell side there's some extra stuff you have to do too - https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/ffi.html#using-your-own-main
18:36:33 <merijn> Midjak: I wrote a minimal example for using a C main function calling Haskell code years ago (so it might be a bit out of date): https://gist.github.com/merijn/4a0fee2b3a5ef3476aa4
18:37:08 td_ joins (~td@94.134.91.147)
18:37:57 <merijn> Midjak: cabal even has some support for building your Haskell into a shared lib: https://cabal.readthedocs.io/en/3.6/cabal-package.html#foreign-libraries
18:37:58 <Midjak> seems very cool. I am not very used with dynamic libraries. But I am learning about that for long.
18:38:31 <merijn> getting every bit "right" the first way will probably be a bit of fiddling and scrambling through documentation, but it shouldn't be particularly hard
18:40:16 <Midjak> thank you both. merijn a big thanks for example. Cabal guide seems exhaustive on the subject.
18:40:39 <merijn> Midjak: The GHC user's guide should have some stuff too
18:40:44 <merijn> @where userguide
18:40:44 <lambdabot> I know nothing about userguide.
18:40:46 <merijn> hmm
18:40:48 <merijn> @where user-guide
18:40:48 <lambdabot> I know nothing about user-guide.
18:40:50 <merijn> pfft
18:40:54 <merijn> useless bot >.>
18:41:09 <Midjak> oh yes sorry I was talking about GHC guide
18:41:56 <hpc> scroll most of the way down https://www.haskell.org/documentation/
18:42:25 <Midjak> this one merijn ;-) https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/ffi.html#
18:42:30 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
18:43:11 gmg joins (~user@user/gehmehgeh)
18:43:30 <geekosaur> @where+ users-guide https://downloads.haskell.org/~ghc/latest/docs/html/users_guide
18:43:30 <lambdabot> Nice!
18:43:58 <Midjak> @where user-guide
18:43:58 <lambdabot> I know nothing about user-guide.
18:44:14 <Rembane> @where users-guide
18:44:14 <lambdabot> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide
18:44:17 <hpc> @where ghc
18:44:17 <lambdabot> http://haskell.org/ghc
18:44:23 <hpc> @where ghc-guide
18:44:23 <lambdabot> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide
18:44:27 <Midjak> it works!
18:44:59 <hpc> @where- users-guide
18:44:59 <lambdabot> Maybe you meant: where+ where
18:45:00 <Midjak> I think ghc-guide is a better name no ?
18:45:18 Jeanne-Kamikaze joins (~Jeanne-Ka@142.147.89.239)
18:45:22 <hpc> @where+ users-guide see @where ghc-guide or @where cabal-guide
18:45:22 <lambdabot> Okay.
18:45:23 <geekosaur> I think the database has to be manually edited, sadly
18:45:42 <hpc> @where+ user-guide see @where ghc-guide or @where cabal-guide
18:45:42 <lambdabot> Done.
18:45:45 <geekosaur> (for removal)
18:45:50 <hpc> @where guide
18:45:50 <lambdabot> https://github.com/bitemyapp/learnhaskell
18:46:10 <hpc> heh, that one can stay
18:46:40 <Midjak> Humm I don't know this one I think
18:47:24 <Midjak> with many translations... interesting
18:48:18 <hpc> some of that page could use updating, like the platform/stack section can just say to use ghcup
18:49:26 <Midjak> ah it's just a learning path
18:50:29 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
18:50:54 img joins (~img@user/img)
18:52:55 × dsrt^ quits (~dsrt@c-73-207-207-252.hsd1.ga.comcast.net) (Ping timeout: 268 seconds)
18:53:01 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 272 seconds)
18:53:33 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:56:51 × alternateved quits (~user@staticline-31-183-144-54.toya.net.pl) (Remote host closed the connection)
18:57:50 × euandreh quits (~euandreh@189.6.33.250) (Ping timeout: 240 seconds)
18:59:50 × Jeanne-Kamikaze quits (~Jeanne-Ka@142.147.89.239) (Ping timeout: 240 seconds)
19:00:04 euandreh joins (~euandreh@189.6.33.250)
19:03:02 <hololeap> so, this parser is really slow, and I don't know where to begin figuring out why: https://github.com/hololeap/cabal-portage/blob/main/portage-hs/src/Internal/Distribution/Portage/Emerge/Parser.hs
19:05:17 <hololeap> the individual Package parser seems quite fast, but for some reason this parser is taking over a minute on my system to parse this input: http://sprunge.us/o3FFv3
19:07:07 <Rembane> hololeap: How fast is packageLine if you run it 10 000 times on a single line?
19:08:06 <hololeap> it's about as fast as running it on a single line * 10,000
19:09:05 <Rembane> Okay, then it is something else that takes time.
19:11:00 <Rembane> Creating many singleton sets shouldn't take that much time.
19:11:15 <merijn> hololeap: Probably wanna make sure you force some strict fold on those sets
19:11:28 <merijn> ah, yeah
19:12:02 <merijn> Why is this parser recursive at all?
19:12:29 <hololeap> merijn: it was just the most intuitive way for me to write it
19:12:33 <merijn> Don't you just want many (or some variation) applying the same one line parser all at once and folding
19:12:54 <merijn> hololeap: I'd write a parser for 1 line and then just apply that many times
19:13:06 <hololeap> I can try that
19:13:10 <merijn> I can see the recursion messing with backtracking or whatever
19:13:31 <merijn> Overall the "shorter" and more delimited your parsers, the smaller the chance of giant backtracking nonsense ruining performance
19:13:32 <hololeap> yeah something is definitely quadratic. when I have 100 lines it takes 3s, when I have all ~450 it takes 65s
19:14:25 <merijn> hololeap: If you have 10k lines or more (since I see mention of 10k) you might wanna go the "write one line parser" and use one of the streaming libraries to stream parse (and handle folding of the set in that streaming library)
19:14:47 <merijn> then you *know* the speed of 1 line is all you have to worry about
19:14:57 <merijn> And that's easier to benchmark and debug too
19:15:28 <hololeap> hm, that's an idea too
19:15:51 <merijn> Not sure if someone made a stream parser for megaparsec yet, but I know conduit has attoparsec wrappers, for example
19:16:18 <merijn> (because I use it for literally this kinda parsing of loads of individual lines kinda workload :p)
19:18:00 vglfr joins (~vglfr@88.155.51.199)
19:18:32 <hpc> could emergeParser be rewritten as something along the lines of many (packageLine <$ many skipLine)?
19:21:16 chomwitt joins (~chomwitt@2a02:587:dc00:5a00:f45c:29e7:726f:443d)
19:21:42 acidjnk joins (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de)
19:21:56 tomgus1 joins (~tomgus1@2a02:c7e:4229:d900:dea6:32ff:fe3d:d1a3)
19:28:30 × mmhat quits (~mmh@p200300f1c70559fbee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
19:31:13 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
19:31:13 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer)
19:31:13 × califax quits (~califax@user/califx) (Remote host closed the connection)
19:31:13 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
19:31:33 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
19:31:35 ChaiTRex joins (~ChaiTRex@user/chaitrex)
19:31:39 califax joins (~califax@user/califx)
19:32:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
19:32:16 <hololeap> I rewrote it a bit, hoping to weed out any unexpected behavior:
19:32:17 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
19:32:19 <hololeap> https://github.com/hololeap/cabal-portage/blob/faster-parse/portage-hs/src/Internal/Distribution/Portage/Emerge/Parser.hs
19:32:29 <hololeap> but it's still taking over a minute to parse that same input
19:34:52 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
19:36:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
19:38:24 × Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Client closed)
19:46:58 <hololeap> ok, the latest version (same link, needs to be refreshed) only takes 0.3s, but it completely kills any nice error messages pointing to the line number
19:47:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:47:58 seriously joins (~seriously@ool-18bd55d4.dyn.optonline.net)
19:48:33 matthewmosior joins (~matthewmo@173.170.253.91)
19:49:42 <seriously> "length  = fold 0 (\_ s -> 1 + s)"  What is the "s"
19:49:53 <seriously> pattern matching to ?
19:50:30 <darkling> I'm guessing it's the second parameter of the lambda?
19:51:16 <darkling> So it's the accumulator of the fold.
19:51:46 <c_wraith> that definition is using a non-standard fold, fwiw. the only thing named "fold" in the base library has an entirely different type.
19:52:31 <c_wraith> by the type, that looks like foldr, but foldr is inappropriate for that job.
19:52:43 <c_wraith> (it'll work for a while, until it blows the stack...)
19:54:44 <seriously> Sorry im aware of that; just using it as an example... I dont understand how the anon function would have access to the accumulator value i suppose.
19:56:21 <c_wraith> Well, can you write the same loop with direct recursion?
19:56:51 <darkling> The accumulator is passed into it as a parameter. It then returns the updated value, which is passed to the lambda for the next item in the fold.
19:57:46 <c_wraith> all a fold does is abstract out the direct recursion, so you can focus on the unique parts
19:58:10 <monochrom> If you understand "\x s -> 1 + s" then "\_ s -> 1 + s" is the same.
19:58:26 <monochrom> If you don't understand "\x s -> 1 + s" then you need to take many steps back.
19:59:36 <seriously> I think ive generalized the other list functions like map and filter, onto fold
19:59:57 <seriously> since the function argument in those works on one value at a time
20:01:17 <monochrom> Are you saying you thought up this "fold" function?
20:02:04 gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net)
20:02:21 <seriously> no haha Im just trying to understand fold in general... I have a function that Ive written in recursive fashion and im trying to convert it into a foldr
20:03:10 <hololeap> I don't get it. megaparsec is supposed to have a nice balance between speed and readable error messages, but this change makes my benchmark go from 0.3s to 65s: https://github.com/hololeap/cabal-portage/commit/1eadc1c7c896d671c05bc0ffe4dd112013015a05
20:03:19 <monochrom> IMO there is no "fold in general".
20:03:51 <monochrom> foldr, foldl, and foldMap are all very different from each other in so many important aspects.
20:03:57 <seriously> As im trying to do that, i got confused when writing the anon function to pass to foldr
20:04:11 <monochrom> "fold in general" is something you would lie to a management type.
20:04:18 dsrt^ joins (~dsrt@c-73-207-207-252.hsd1.ga.comcast.net)
20:04:34 <hololeap> there's something I'm not understanding about how to get megaparsec to parse a multi-line file efficiently. when I split the input up with T.lines, it is much much faster, but then I don't have nice error messages. parsing the entire input is unacceptably slow.
20:04:59 <seriously> fold in general is the only way i can think about it for now if I want to make any tangible progress
20:05:17 <seriously> but i uunderstand your concern
20:05:24 <c_wraith> that's like thinking about "food in general" and then asking "is food nutritious?"
20:05:28 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
20:05:55 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
20:05:59 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
20:07:16 MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net)
20:08:18 <monochrom> IMO http://data.tmorris.net/talks/list-folds/feb8749ff8447c9558f733f9493292a824b414ad/list-folds.pdf is one of the few explanations that do justice to foldr.
20:08:58 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:09:06 <monochrom> And I particularly like that one because it roasts all the other inferiror models. (I have always wanted to do that, too.)
20:09:27 nate4 joins (~nate@98.45.169.16)
20:09:29 <seriously> ok reading through it now
20:09:58 <c_wraith> huh. I don't really have a model for what foldr "means". I just think of it in terms of what code it replaces.
20:10:19 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:10:29 <monochrom> Then you're in good company! It says that too.
20:10:32 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
20:10:51 <monochrom> (I also say that to students.)
20:10:51 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
20:11:32 gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
20:13:10 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
20:13:55 tapas is now known as wafflepirate
20:14:08 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds)
20:15:15 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:16:11 × kilolympus quits (~kilolympu@4e69e623.skybroadband.com) (Ping timeout: 244 seconds)
20:24:46 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:25:33 <hololeap> this is pretty maddening. I distilled the change as far as I can, and now I just want to know why this change is killing performance _so_ bad: https://github.com/hololeap/cabal-portage/commit/1931cdbf6ae100c453abee8b35ca6fe74009c597
20:27:19 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
20:30:36 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
20:30:36 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
20:30:36 wroathe joins (~wroathe@user/wroathe)
20:33:29 <hololeap> this should be pretty standard: write a parser that handles a single line, ensure it ends with (takeWhileP Nothing (/= '\n')) so it doesn't start looking through the entire file, plug it into (sepEndBy _ newLine)
20:35:02 <hololeap> oh, wait... does 'space' match on newlines?
20:35:07 <merijn> hololeap: Yes
20:35:10 <merijn> iirc
20:35:44 <merijn> hololeap: https://hackage.haskell.org/package/megaparsec-9.2.1/docs/Text-Megaparsec-Char.html#v:hspace
20:35:58 <hololeap> that's... good to know XD
20:36:02 <merijn> space matches any whitespace including newlines
20:37:22 <merijn> also
20:37:26 <merijn> what is runParseResult doing?
20:39:21 <hololeap> ParseResult is basically a wrapper around (WriterT (Maybe ParseCoverage) (ParsecT e s m) a)
20:39:43 <merijn> hmm
20:41:20 <hololeap> yeah that very well could be part of the problem. it looks ahead to see if there is any input left and copies it into ParseCoverage, just for better error messages. I was hoping laziness would prevent this from happening unnecessarily
20:44:18 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
20:45:31 <monochrom> There is not much laziness in parsing, by definition.
20:46:24 pavonia joins (~user@user/siracusa)
20:46:29 <monochrom> You have to give up validation to increase laziness.
20:46:40 elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
20:51:19 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 244 seconds)
20:51:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
20:53:10 OscarZ joins (~oscarz@37-136-11-10.rev.dnainternet.fi)
20:53:30 × OscarZ quits (~oscarz@37-136-11-10.rev.dnainternet.fi) (Quit: Leaving)
20:55:04 coot joins (~coot@213.134.190.95)
20:57:36 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
20:58:17 × wroathe quits (~wroathe@user/wroathe) (Quit: leaving)
21:00:16 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:181f:21e0:9b42:e654) (Remote host closed the connection)
21:01:39 jgeerds joins (~jgeerds@55d437cf.access.ecotel.net)
21:03:11 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
21:04:52 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
21:05:16 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 244 seconds)
21:05:23 × christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 272 seconds)
21:06:41 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:06:43 OscarZ_ joins (~oscarz@188.126.80.50)
21:07:41 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5546:a014:fe40:2124)
21:09:19 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
21:09:27 × OscarZ_ quits (~oscarz@188.126.80.50) (Client Quit)
21:12:10 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
21:16:08 OscarZ joins (~oscarz@188.126.80.50)
21:18:09 <OscarZ> Helluva thing to live in the age of functional programming. What do you ask more?
21:18:40 causal joins (~user@50.35.83.177)
21:20:36 <hololeap> ok, I made ParseResult a special case instead of being required by my Parsable class, and the parse time is down to 0.1s. thanks for the feedback everyone
21:21:35 <hololeap> it was really only required for testing, anyway
21:21:44 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Quit: Lost terminal)
21:22:05 matthewmosior joins (~matthewmo@173.170.253.91)
21:22:15 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:22:20 <hpc> that's my secret, i never test my code :D
21:22:40 <c_wraith> I wrote types, that's good enough
21:24:33 <hpc> but yeah, that's some kind of generalization of "profile production-like builds, not debug builds"
21:24:55 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Client Quit)
21:25:19 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:25:33 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Client Quit)
21:26:05 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:26:34 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Client Quit)
21:26:35 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
21:26:53 <OscarZ> What data types are known in pure mathematics that have parallels in Haskell?
21:27:35 <Rembane> OscarZ: Look into category theory.
21:27:36 Pickchea joins (~private@user/pickchea)
21:27:40 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:28:09 <geekosaur> in many ways it's less the data types themselves than the categorizations of them (not in the category theory sense)
21:28:09 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Client Quit)
21:28:28 <geekosaur> functor, semigroup/monoid, etc.
21:28:29 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:28:43 <geekosaur> not so much what a data type is, as what you can do with it
21:29:00 <hpc> also algebraic structures
21:29:02 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
21:29:05 <hpc> semigroup, monoid, etc
21:29:37 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:30:30 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Client Quit)
21:30:53 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:31:03 marcusxavier joins (~marcusxav@2804:6660:ff12:ef70:5973:6a7e:c03d:efea)
21:31:45 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Client Quit)
21:32:30 × acidjnk quits (~acidjnk@p200300d6e705867410ff6a9084641920.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
21:32:46 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:32:49 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
21:33:31 <marcusxavier> Hi, I'm studying haskell on college and wanna get better at it.
21:33:46 <marcusxavier> I saw many people recommending the CIS 194 course. I looked at the site and found it had very little content (it seems that the site only has class notes, right?). In my case, would it be useful to do only the exercises of the course?
21:33:52 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
21:35:04 <geekosaur> some people do the cis194 exercises along with one of the free haskell books such as lyah (which really needs those exercises to be useful)
21:35:06 × coot quits (~coot@213.134.190.95) (Ping timeout: 268 seconds)
21:35:31 <hpc> there's other courses on https://www.haskell.org/documentation/ you might like better, although i haven't looked through any of them
21:36:25 <monochrom> Yeah I think the value of CIS 194 is in the exercises.
21:36:38 <geekosaur> sadly I can't give you any personal recommendations; I knew SML/NJ already so I did the Gentle Introduction, which is somewhat less gentle without an ML background
21:36:56 <qrpnxz> wtf, so I just noticed GHC is optimizing the non-tail recusive version of factorial to be just as fast as the tail-recursive one. What is this black magic?! GHC that good? Lazy magic? What gives?
21:37:05 <monochrom> OTOH I am not a fan of "w00t this is a lengthy book I can treat it as spectator sport" either.
21:37:41 <monochrom> or "w00t this is 1000 hours of lecture videos!"
21:37:47 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
21:37:51 <geekosaur> tail recursion means little in the ghc world
21:38:05 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
21:38:12 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
21:38:16 <geekosaur> depending on how you think of it, either everything or nothing is tail recursive 🙂
21:38:42 <monochrom> Very little needs to be said about getting you started in Haskell (or any programming at all). 90%+ of the time you should be trying out coding not reading/watching "more" "explanations".
21:38:46 <geekosaur> and yes, ghc's optimization is quite good these days
21:39:06 jakalx joins (~jakalx@base.jakalx.net)
21:39:24 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds)
21:39:34 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:39:42 <monochrom> To be sure, the exception is when you read someone else's solution and go "wait you can do that?!".
21:41:51 <monochrom> For optimizing factorial you should read http://www.luschny.de/math/factorial/FastFactorialFunctions.htm and confess that even your previous C code was too slow.
21:42:02 <qrpnxz> lol, even foldr is only a few sec slower wow. I wonder if GHC treats (*) especially, but either, I'm impressed.
21:42:32 <qrpnxz> monochrom: lol thanks
21:42:45 × marcusxavier quits (~marcusxav@2804:6660:ff12:ef70:5973:6a7e:c03d:efea) (Ping timeout: 272 seconds)
21:42:52 <geekosaur> unlikely. aside form optimizing strict math down to machine code
21:42:56 <qrpnxz> another good page is https://wiki.haskell.org/Prime_numbers
21:43:08 <qrpnxz> my favourite is the ord-list solution
21:43:11 <qrpnxz> absolutely beautiful
21:43:16 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
21:44:13 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
21:44:31 <hpc> a lot of the stuff for [] is not magic at all, but a bunch of carefully chosen rewrite rules that are just part of the source code
21:46:06 marcusxavier joins (~marcusxav@2804:6660:ff12:ef70:5973:6a7e:c03d:efea)
21:46:17 matthewmosior joins (~matthewmo@173.170.253.91)
21:46:41 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
21:47:05 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:48:50 × MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 240 seconds)
21:49:29 <qrpnxz> this one: primes = 2 : 3 : minus [5,7..] (unionAll [[p*p, p*p+2*p..] | p <- tail primes])
21:52:46 × sndr quits (~sander@user/sander) (Quit: So long! :))
21:55:33 sander joins (~sander@user/sander)
21:56:41 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:56:52 <hpc> does wheredb still have all the prime golf definitions?
21:56:56 <hpc> @where prime_33
21:56:56 <lambdabot> I know nothing about prime_33.
21:56:59 <hpc> @where prime33
21:56:59 <lambdabot> I know nothing about prime33.
21:57:08 <hpc> hmm
21:57:56 <pavonia> :t unionAll
21:57:57 <lambdabot> error: Variable not in scope: unionAll
21:58:17 <qrpnxz> it's from ord-list package
21:58:44 <qrpnxz> sorry, it's data-ordlist
21:58:52 <qrpnxz> https://hackage.haskell.org/package/data-ordlist-0.4.7.0/docs/Data-List-Ordered.html
22:07:31 _xor joins (~xor@74.215.182.83)
22:10:45 <[itchyjunk]> Codewars has haskell challanges. I thought I would give one a try. It felt pretty easy :D
22:10:45 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
22:10:46 <[itchyjunk]> https://bpa.st/CQWA
22:11:13 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Remote host closed the connection)
22:11:22 <mrianbloom> Can you improve compile times by being specific about module imports and outputs?
22:11:33 <mrianbloom> exports
22:11:36 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
22:11:48 <c_wraith> I doubt that's going to have a significant impact unless you have a *lot* of modules
22:12:26 × merijn quits (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds)
22:12:50 <c_wraith> however, good module structure can have a huge impact. If you can set things up so that common changes don't require recompiling most modules, that is a big win
22:14:16 <mrianbloom> I see. I have hundreds of modules :)
22:15:02 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
22:15:36 <c_wraith> I'd expect explicit exports to matter more than explicit imports. an import list still needs to be checked against the exports. But the export list shrinking means every import has fewer things to check against.
22:16:32 <c_wraith> [itchyjunk]: dnaToRna could just be written as "map go"
22:16:54 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
22:17:24 <qrpnxz> "your language feature is my library" https://hackage.haskell.org/package/named-0.3.0.1/docs/Named.html
22:17:26 <qrpnxz> unbelievable
22:18:01 <c_wraith> I mean, that *is* using extra language features
22:18:07 × marcusxavier quits (~marcusxav@2804:6660:ff12:ef70:5973:6a7e:c03d:efea) (Ping timeout: 244 seconds)
22:20:10 <qrpnxz> it's not exposing an underlying named parameter feature, it's constructing one
22:20:52 <c_wraith> true, but it's making use of the OverloadedLabels language extension to get syntax to do it
22:21:07 <[itchyjunk]> c_wraith, yes someone suggested i can fmap go
22:21:12 <qrpnxz> yes
22:21:17 <[itchyjunk]> but idk if that's more efficient/better or not hmmm
22:21:28 <c_wraith> it's not going to matter in that case.
22:21:29 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:21:35 <c_wraith> But sometimes it can
22:21:43 <[itchyjunk]> hmmmm
22:23:11 <qrpnxz> it saves the time of writing that function XD
22:27:11 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
22:30:36 marcusxavier joins (~marcusxav@2804:6660:ff12:ef70:5973:6a7e:c03d:efea)
22:34:44 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
22:35:09 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
22:36:44 × dsrt^ quits (~dsrt@c-73-207-207-252.hsd1.ga.comcast.net) (Ping timeout: 244 seconds)
22:36:58 × seriously quits (~seriously@ool-18bd55d4.dyn.optonline.net) (Ping timeout: 252 seconds)
22:37:26 <[itchyjunk]> :t map
22:37:27 <lambdabot> (a -> b) -> [a] -> [b]
22:37:42 <[itchyjunk]> :t fmap
22:37:43 <lambdabot> Functor f => (a -> b) -> f a -> f b
22:38:21 <geekosaur> % :t fmap @[]
22:38:21 <yahb2> <interactive>:1:1: error: ; Pattern syntax in expression context: fmap@[] ; Did you mean to enable TypeApplications?
22:38:39 <geekosaur> % :set -XTypeApplications
22:38:39 <yahb2> <no output>
22:38:41 <geekosaur> % :t fmap @[]
22:38:41 <yahb2> fmap @[] :: (a -> b) -> [a] -> [b]
22:38:50 × jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Remote host closed the connection)
22:39:10 <[itchyjunk]> so map is easy to read, take a function that maps a to b and a list full of a and return a list full of b
22:39:30 × inversed quits (~inversed@05412f44.skybroadband.com) (Ping timeout: 240 seconds)
22:39:40 <[itchyjunk]> in second case, its taking a function that maps a to b
22:39:52 <[itchyjunk]> then i am lost :x
22:40:18 <geekosaur> :t fmap @Maybe
22:40:19 <lambdabot> error:
22:40:19 <lambdabot> Pattern syntax in expression context: fmap@Maybe
22:40:19 <lambdabot> Did you mean to enable TypeApplications?
22:40:23 <geekosaur> whoops
22:40:27 <geekosaur> % :t fmap @Maybe
22:40:27 <yahb2> fmap @Maybe :: (a -> b) -> Maybe a -> Maybe b
22:41:00 inversed joins (~inversed@05412f44.skybroadband.com)
22:41:34 <geekosaur> it takes a value "contained in" a type that has a Functor instance. 9"contained in" being a bit of a lie, as IO is a Functor)
22:41:35 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
22:41:49 <geekosaur> so it maps over the Functor
22:41:54 <yin> think of `[a]` as `[] a`
22:42:13 pgass joins (~pg@190.247.245.154)
22:42:34 <yin> which you can actually write, foe the same effect
22:42:36 <geekosaur> this in fact defines a Functor; it's a type constructor which can retain its shape
22:43:00 <[itchyjunk]> hmmm
22:43:06 <geekosaur> so [a] becomes [b], Just a becomes Just b, IO a becomes IO b, etc.
22:43:50 <yin> f a becomes f b
22:43:51 <geekosaur> but Set a can't become Set b because its shape would change (thus Set doesn't have a Functor instance)
22:44:49 <[itchyjunk]> Hmm, i vaguely get it. But I don't think i understand shape
22:45:00 <geekosaur> it's kinda fuzzy
22:45:27 <geekosaur> for things like Maybe and [] it's easy: a Just a can't become a Nothing, it has to become a Just b
22:46:05 <geekosaur> for Set it'[s harder, because there's an Ord constraint and that constraint's shape ("ordering") can't be captured by a Functor
22:47:08 <[itchyjunk]> hm
22:47:09 <geekosaur> there is a more formal definition of what I called "shape", but at some level it becomes fuzzy again 🙂
22:47:44 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
22:48:34 <geekosaur> (for a list, you know the resulting list has the same relative ordering and the same number of elements)
22:48:49 <geekosaur> (which describes the shape of a list)
22:50:15 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
22:51:23 × shapr quits (~user@2600:4040:2d31:7100:a4a4:5e03:eeb6:d024) (Remote host closed the connection)
22:56:33 dsrt^ joins (~dsrt@c-73-207-207-252.hsd1.ga.comcast.net)
22:57:02 Shires joins (~Shires@user/shires)
22:57:23 × [Leary] quits (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 244 seconds)
22:57:52 Shires parts (~Shires@user/shires) ()
22:59:23 × marcusxavier quits (~marcusxav@2804:6660:ff12:ef70:5973:6a7e:c03d:efea) (Ping timeout: 272 seconds)
23:00:45 Lumia joins (~Lumia@c-24-34-172-110.hsd1.ma.comcast.net)
23:00:46 moonsheep joins (~user@user/moonsheep)
23:02:46 <c_wraith> thanks to parametricity, "same shape" ends up being formally expressed as "for all x :: T a, (fmap id x) is equivalent to x"
23:03:41 <monochrom> fmap f . fmap g = fmap (f . g) also helps.
23:05:14 <c_wraith> I'm pretty sure that one doesn't even need to be checked in Haskell, thanks to parametricity.
23:05:24 <c_wraith> that just follows from fmap id = id
23:05:43 <monochrom> But if you understand "(a->b) -> [] a -> [] b" then fmap is just generalizing from [] to f.
23:05:50 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
23:05:59 <monochrom> Yes that's right, [a] is syntax sugar for [] a
23:06:08 <geekosaur> which is why I started out by demonstrating that fmap on [] is map
23:06:45 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
23:07:25 <yin> any reason why we can't just generalize map already?
23:07:58 <monochrom> I don't know. We did generalize length.
23:08:05 <c_wraith> the only reason I think is any good is that it'd break a lot of Functor definitions in the wild
23:08:34 <monochrom> Or rather, I know.
23:09:05 <monochrom> Standard library decisions are social, cultural, and human; not technical or logically consistent.
23:09:16 <yin> c_wraith: how would it break?
23:09:51 <yin> we could keep fmap like we kept return
23:10:03 <geekosaur> people expect map to force lists
23:10:22 <monochrom> Well, I thought people expected length to force lists, too.
23:11:06 <geekosaur> sadly that's where generalizing map will bite hardest: the number of people who rely on map to ensure Foldable/Traversable is on a list
23:11:16 <yin> people who don't force it in signatures deserve to have their code break >=)
23:11:18 <monochrom> On top of that, people hated how length forces Int and asked why it is not synonym of genericLength already.
23:11:22 <geekosaur> and to raise a type error if it isn't
23:12:07 <yin> slippery slope then, i get it
23:12:08 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
23:12:36 <monochrom> Haskell was not designed by AI.
23:12:49 <yin> then we would complain about everywhere Int is used innapropriedly
23:12:54 matthewmosior joins (~matthewmo@173.170.253.91)
23:12:59 <Bulby[m]> i want to see a language that was designed by an ai
23:14:28 marcusxavier joins (~marcusxav@2804:6660:ff12:ef70:5973:6a7e:c03d:efea)
23:15:25 nate4 joins (~nate@98.45.169.16)
23:17:19 <[itchyjunk]> hmm
23:28:18 × marcusxavier quits (~marcusxav@2804:6660:ff12:ef70:5973:6a7e:c03d:efea) (Quit: WeeChat 3.6)
23:29:07 <qrpnxz> type application is standard now in GHC no? so you could do map @[] or "where lmap = map @[]" or "where lmap :: ...; lmap = map" etc. etc. i mean it's such a niche use case to force list so really take your pick and let us have map! (though tbh fmap is just fine though it is just a bit sad that it isn't simply and beautifully "map")
23:34:12 <yushyin> map was polymorphic in the past :)
23:34:21 <qrpnxz> i'm dead
23:37:30 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
23:38:17 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
23:39:28 <yushyin> afaik, it was made monophoric for didactic reasons and fmap was introduced for it. it was probably thought that difficult type errors because of polymorphism could confuse newcomers too much?
23:41:20 <geekosaur> …and then we made all the rest of Data.List be Foldable anyway
23:41:22 <monochrom> Type application is not standard in GHC.
23:41:49 × chomwitt quits (~chomwitt@2a02:587:dc00:5a00:f45c:29e7:726f:443d) (Ping timeout: 272 seconds)
23:42:06 <monochrom> If you want to do fmap@[] you have to turn on the extension.
23:42:35 <monochrom> Most of us turn off that extension. That's how de facto non-standard it is.
23:42:39 <qrpnxz> it's a stable extension that is part of the GHC2021 set
23:42:59 <qrpnxz> why would you turn it off
23:44:39 <geekosaur> because you only know how to use it safely if you know the oirder in which type variables were defined
23:44:54 <monochrom> I don't need it, and KISS.
23:45:09 mvk joins (~mvk@2607:fea8:5ce3:8500::909a)
23:45:25 <monochrom> I don't even teach do-notation to my students >:)
23:45:38 <geekosaur> they even had to add special syntax so people can define their type variables' visibility in a specific order for TypeApplications
23:46:05 <qrpnxz> monochrom: lol oof
23:46:37 <qrpnxz> geekosaur: you make explicit forall sound more complicated than it really is lol
23:46:46 <geekosaur> it's more than explicit forall
23:47:11 <qrpnxz> how
23:47:33 <geekosaur> the order in which you write type variables matters. they added extra braces so you can still write type variables in the order they need to be for your type signature, but still declare them for TypeApplications
23:48:14 <qrpnxz> mmm could you give an example
23:49:03 <geekosaur> https://downloads.haskell.org/ghc/9.2.1/docs/html/users_guide/exts/type_applications.html#ordering-of-specified-variables
23:49:41 <geekosaur> and the next section talks about the brace syntax
23:49:46 × Tuplanolla quits (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.)
23:50:08 <monochrom> I reckon that one day GHC2021 could be pretty standard, but not today.
23:50:19 <geekosaur> the result of this is that many people consider TypeApplications fundamentally unstable and unsafe
23:50:40 <geekosaur> and are Not Happy that it made GHC2021
23:50:41 <qrpnxz> oh i see that's nice
23:50:54 <qrpnxz> (talking about the brace syntax)
23:51:11 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5546:a014:fe40:2124) (Remote host closed the connection)
23:52:01 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
23:52:17 <qrpnxz> i don't see how any of what you mentioned either implies unstable or unsafe.
23:52:52 <qrpnxz> is it likely that typeapplications will change a lot of fundamentally from how it currently works?
23:53:00 <qrpnxz> does it allow unsound things to happen?
23:53:03 <geekosaur> change your type signature in a way that should be equivalent, and suddenly TypeApplications breaks
23:53:07 <monochrom> I don't go as far as the wordings "unstable" or "unsafe". My wording is the milder "fragile", "the devil is in the details". I mean, it can't be worse than TeX, but TeX has not been described as unstable or unsafe. Just fragile. :)
23:53:22 <qrpnxz> geekosaur: well you changed your API, it's like changing the order of your variables
23:53:30 merijn joins (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
23:53:35 <geekosaur> but that has never been part of the API
23:53:42 <maerwald> didn't SPJ talk about... what was it "big lambda" for types that would make type applications obsolete?
23:53:47 <geekosaur> except suddenly it is and there's nothing to help you deal with it
23:54:02 <geekosaur> the types would be the same, but TypeApplications suddenly breaks
23:54:04 <qrpnxz> didn't you just show how to deal with it tho with the braces?
23:54:10 <qrpnxz> and the explicit forall
23:54:22 <geekosaur> which you have to know about and opt in to
23:54:33 <monochrom> Hrm big lambda would obsolete many many things. Including a large chunk of type inference too :)
23:54:48 <qrpnxz> if you haven't opted in then user knows that they cannot relay on your type variables
23:54:49 <geekosaur> because someone you don't know a year later decided to use TypeApplications with your library
23:54:55 <monochrom> (Unless I'm thinking of a different big lambda.)
23:55:19 <qrpnxz> honestly by default you should probably not rely on type variable order unless explicitly documented probably
23:55:20 <geekosaur> and the user doesn't know that you didn't declare them
23:55:52 <geekosaur> it is, in short, not part of the contract implied by a type signature
23:57:13 <qrpnxz> does haddock show explict forall if you put explicit forall in your code
23:57:42 <geekosaur> haddock shows forall. it does not show the braces if you need to use them
23:58:08 <qrpnxz> eh, too bad. One day :)
23:59:18 × moonsheep quits (~user@user/moonsheep) (Remote host closed the connection)
23:59:26 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)

All times are in UTC on 2022-07-16.