2023/07/17

2023-07-17 00:00:25 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 240 seconds)
2023-07-17 00:06:12 +0200michalz(~michalz@185.246.207.221) (Remote host closed the connection)
2023-07-17 00:08:20 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-07-17 00:13:13 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 00:16:25 +0200dispater(~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 00:16:25 +0200orcus(~orcus@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 00:16:25 +0200brprice(~brprice@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 00:18:54 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) (Ping timeout: 272 seconds)
2023-07-17 00:18:59 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds)
2023-07-17 00:19:25 +0200dispater(~dispater@user/brprice)
2023-07-17 00:19:30 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6)
2023-07-17 00:19:56 +0200orcus(~orcus@user/brprice)
2023-07-17 00:20:17 +0200dispater(~dispater@user/brprice) (Client Quit)
2023-07-17 00:20:17 +0200orcus(~orcus@user/brprice) (Client Quit)
2023-07-17 00:20:44 +0200pavonia(~user@user/siracusa)
2023-07-17 00:22:00 +0200dispater(~dispater@user/brprice)
2023-07-17 00:22:32 +0200orcus(~orcus@user/brprice)
2023-07-17 00:28:08 +0200gurkenglas(~gurkengla@dynamic-046-114-178-024.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-07-17 00:28:44 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
2023-07-17 00:32:15 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 00:37:02 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
2023-07-17 00:37:09 +0200orcus(~orcus@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 00:37:09 +0200dispater(~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 00:38:54 +0200dispater(~dispater@user/brprice)
2023-07-17 00:39:25 +0200orcus(~orcus@user/brprice)
2023-07-17 00:40:12 +0200orcus(~orcus@user/brprice) (Client Quit)
2023-07-17 00:40:12 +0200dispater(~dispater@user/brprice) (Client Quit)
2023-07-17 00:41:11 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) (Remote host closed the connection)
2023-07-17 00:41:17 +0200dmgk(~dmgk@user/dmgk) ()
2023-07-17 00:41:55 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-07-17 00:46:09 +0200dispater(~dispater@user/brprice)
2023-07-17 00:46:41 +0200orcus(~orcus@user/brprice)
2023-07-17 00:49:14 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 00:53:50 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
2023-07-17 00:55:39 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 01:00:51 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds)
2023-07-17 01:05:01 +0200td_(~td@i5387091F.versanet.de) (Ping timeout: 245 seconds)
2023-07-17 01:06:28 +0200Lycurgus(~juan@user/Lycurgus)
2023-07-17 01:06:50 +0200td_(~td@i53870936.versanet.de)
2023-07-17 01:09:14 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 01:11:34 +0200mechap(~mechap@user/mechap) (Ping timeout: 260 seconds)
2023-07-17 01:13:32 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 240 seconds)
2023-07-17 01:13:34 +0200mechap(~mechap@user/mechap)
2023-07-17 01:15:38 +0200dispater(~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 01:15:38 +0200orcus(~orcus@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 01:18:42 +0200dispater(~dispater@user/brprice)
2023-07-17 01:19:13 +0200orcus(~orcus@user/brprice)
2023-07-17 01:20:53 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-17 01:20:53 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-17 01:20:53 +0200wroathe(~wroathe@user/wroathe)
2023-07-17 01:26:08 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 01:26:36 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-17 01:28:09 +0200dispater(~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 01:28:09 +0200orcus(~orcus@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 01:28:22 +0200HerlockSholmes(~herlock@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Quit: BRB!)
2023-07-17 01:29:05 +0200HerlockSholmes(~herlock@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
2023-07-17 01:29:29 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-07-17 01:29:47 +0200dispater(~dispater@user/brprice)
2023-07-17 01:30:20 +0200orcus(~orcus@user/brprice)
2023-07-17 01:30:42 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
2023-07-17 01:34:56 +0200nick4(~nick@2600:8807:9084:7800:a897:2684:b283:80ec) (Ping timeout: 246 seconds)
2023-07-17 01:39:59 +0200mauke_(~mauke@user/mauke)
2023-07-17 01:41:26 +0200mauke(~mauke@user/mauke) (Ping timeout: 252 seconds)
2023-07-17 01:41:26 +0200mauke_mauke
2023-07-17 01:43:44 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 01:48:50 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
2023-07-17 01:48:56 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-17 01:49:23 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 01:52:23 +0200euandreh(~Thunderbi@189.6.18.7) (Client Quit)
2023-07-17 01:53:25 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 240 seconds)
2023-07-17 01:54:18 +0200son0p(~ff@181.136.122.143)
2023-07-17 01:55:25 +0200nick4(~nick@2600:8807:9084:7800:b4a4:4a8e:7c5f:59be)
2023-07-17 01:59:25 +0200nick4(~nick@2600:8807:9084:7800:b4a4:4a8e:7c5f:59be) (Ping timeout: 240 seconds)
2023-07-17 01:59:27 +0200wildbartty(~wildbartt@user/wildbartty)
2023-07-17 02:00:45 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 02:05:14 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
2023-07-17 02:08:51 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-07-17 02:10:05 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-07-17 02:11:38 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds)
2023-07-17 02:12:01 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
2023-07-17 02:17:00 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 252 seconds)
2023-07-17 02:18:29 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 02:20:59 +0200[_][itchyjunk]
2023-07-17 02:21:14 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 250 seconds)
2023-07-17 02:26:12 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
2023-07-17 02:27:50 +0200zerozwro
2023-07-17 02:29:56 +0200fr33domlover(~fr33domlo@towards.vision) (Ping timeout: 258 seconds)
2023-07-17 02:33:33 +0200fr33domlover(~fr33domlo@towards.vision)
2023-07-17 02:34:02 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14::ac08)
2023-07-17 02:34:46 +0200hugo(znc@verdigris.lysator.liu.se)
2023-07-17 02:38:17 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14::ac08) (Ping timeout: 246 seconds)
2023-07-17 02:41:59 +0200wildbartty_(~wildbartt@159.196.158.155)
2023-07-17 02:43:06 +0200marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2023-07-17 02:45:12 +0200wildbartty(~wildbartt@user/wildbartty) (Ping timeout: 272 seconds)
2023-07-17 02:46:53 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-17 02:48:52 +0200wildbartty_(~wildbartt@159.196.158.155) (Quit: Leaving)
2023-07-17 02:49:05 +0200wildbartty_(~wildbartt@159.196.158.155)
2023-07-17 02:49:34 +0200dobblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-17 02:49:35 +0200dobblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-17 02:49:35 +0200dobblego(~dibblego@haskell/developer/dibblego)
2023-07-17 02:50:06 +0200dobblegodibblego
2023-07-17 02:52:37 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-17 02:56:29 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 02:58:58 +0200nick4(~nick@ip98-162-147-230.pn.at.cox.net)
2023-07-17 02:59:40 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-17 03:01:11 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 264 seconds)
2023-07-17 03:10:55 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-07-17 03:12:13 +0200razetime(~quassel@117.193.6.110)
2023-07-17 03:14:01 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 03:17:03 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-07-17 03:18:30 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
2023-07-17 03:20:02 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 272 seconds)
2023-07-17 03:21:37 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 03:24:11 +0200 <Axman6> @src Monoid
2023-07-17 03:24:11 +0200 <lambdabot> class Monoid a where
2023-07-17 03:24:11 +0200 <lambdabot> mempty :: a
2023-07-17 03:24:11 +0200 <lambdabot> mappend :: a -> a -> a
2023-07-17 03:24:11 +0200 <lambdabot> mconcat :: [a] -> a
2023-07-17 03:24:47 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 03:25:01 +0200Square(~Square@user/square)
2023-07-17 03:25:02 +0200 <Axman6> @src Foldable
2023-07-17 03:25:02 +0200 <lambdabot> Source not found. Do you think like you type?
2023-07-17 03:25:06 +0200 <Axman6> :(
2023-07-17 03:25:35 +0200 <Square> I sit and hammer away in GHCI. Suddenly 🎃 appears on the command line out of nowhere.
2023-07-17 03:26:46 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-07-17 03:29:15 +0200dispater(~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 03:29:16 +0200orcus(~orcus@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 03:29:32 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
2023-07-17 03:32:26 +0200dispater(~dispater@user/brprice)
2023-07-17 03:32:59 +0200orcus(~orcus@user/brprice)
2023-07-17 03:35:42 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 03:39:14 +0200 <Axman6> Square: spooky, I can't wait to hear the end of the story... if you survive
2023-07-17 03:40:02 +0200 <Square> I have to admit, it was a bit scary.
2023-07-17 03:40:11 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 264 seconds)
2023-07-17 03:40:16 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-17 03:40:27 +0200 <Axman6> The emojis are coming from inside the house, get out!
2023-07-17 03:45:35 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2023-07-17 03:45:48 +0200kritty(~crumb@c-76-155-235-153.hsd1.co.comcast.net)
2023-07-17 03:47:07 +0200 <Square> omg omg =D
2023-07-17 03:47:54 +0200 <ddellacosta> is there a way to pass a struct by value via FFI other than just writing a wrapper function in C myself?
2023-07-17 03:53:20 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 03:54:21 +0200 <monochrom> I think no, since there is no pass-struct-by-value-via-FFI at all.
2023-07-17 03:54:22 +0200 <probie> https://wiki.haskell.org/Foreign_Function_Interface#Foreign_types concretely says "no". Being a wiki, it might be out of date, but I don't think it is
2023-07-17 03:54:26 +0200 <Axman6> ddellacosta: have you tried it? IIRC if you're passing something by reference you need to be explicit by using Ptr, so I would have assumed that as long as you have the appropriate Storable instance it might work?
2023-07-17 03:54:37 +0200 <Axman6> guess I'm wrong
2023-07-17 03:54:51 +0200 <monochrom> FFI only knows ints, floats, and pointers. It almost doesn't even know C strings.
2023-07-17 03:56:26 +0200 <ddellacosta> Axman6: yeah I've had no luck in any variation I've tried even with what seems like a viable Storable instance :-(
2023-07-17 03:56:34 +0200 <ddellacosta> monochrom: thanks for confirming, that's what I suspected
2023-07-17 03:56:35 +0200 <probie> If it's a struct like `struct point { int x; int y; }` you might be able to get away with `newtype Point = Point Word64`
2023-07-17 03:56:48 +0200 <ddellacosta> naw, this is a beast with like 14 fields
2023-07-17 03:57:00 +0200 <monochrom> You can make and use an appropriate Storable instance, but then you are still by-ref/ptr not by-value.
2023-07-17 03:57:26 +0200 <ddellacosta> yeah, I'm going to have to just make a C wrapper to call the API function, as far as I can understand right now
2023-07-17 03:57:42 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 260 seconds)
2023-07-17 03:57:52 +0200kritty(~crumb@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Leaving)
2023-07-17 03:58:42 +0200 <ddellacosta> also probie thanks for that wiki link, missed that somehow
2023-07-17 03:59:05 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-17 04:00:20 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
2023-07-17 04:00:39 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-17 04:09:28 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-07-17 04:09:35 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 264 seconds)
2023-07-17 04:09:42 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-07-17 04:10:19 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 04:12:16 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-17 04:12:16 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-17 04:12:16 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-17 04:14:32 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
2023-07-17 04:16:30 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-17 04:17:58 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2023-07-17 04:18:12 +0200 <ddellacosta> woohoo that was actually super easy
2023-07-17 04:18:36 +0200phma(~phma@2001:5b0:210b:e378:ed22:f5d0:8c20:185c) (Read error: Connection reset by peer)
2023-07-17 04:19:00 +0200phma(~phma@host-67-44-208-43.hnremote.net)
2023-07-17 04:21:05 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680)
2023-07-17 04:21:14 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-07-17 04:22:21 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection)
2023-07-17 04:23:14 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216)
2023-07-17 04:25:06 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-07-17 04:29:42 +0200td_(~td@i53870936.versanet.de) (Ping timeout: 272 seconds)
2023-07-17 04:30:55 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 240 seconds)
2023-07-17 04:31:19 +0200td_(~td@i53870921.versanet.de)
2023-07-17 04:37:48 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
2023-07-17 04:39:12 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 04:43:43 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 258 seconds)
2023-07-17 04:52:21 +0200lain1001(~lain@76.108.135.43)
2023-07-17 04:54:36 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-07-17 04:54:36 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-07-17 04:54:37 +0200finn_elijaFinnElija
2023-07-17 04:56:33 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-07-17 04:57:52 +0200ddellacosta(~ddellacos@143.244.47.81) (Ping timeout: 245 seconds)
2023-07-17 04:58:38 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds)
2023-07-17 04:59:14 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Client Quit)
2023-07-17 04:59:46 +0200lain1001(~lain@76.108.135.43) (Ping timeout: 260 seconds)
2023-07-17 05:00:01 +0200ddellacosta(~ddellacos@146.70.171.140)
2023-07-17 05:01:22 +0200picklejuice(~root@172.58.204.21) (Ping timeout: 272 seconds)
2023-07-17 05:02:23 +0200picklejuice(~root@172.58.203.145)
2023-07-17 05:02:56 +0200puke(~puke@user/puke) (Remote host closed the connection)
2023-07-17 05:03:21 +0200puke(~puke@user/puke)
2023-07-17 05:04:25 +0200puke(~puke@user/puke) (Max SendQ exceeded)
2023-07-17 05:05:51 +0200puke(~puke@user/puke)
2023-07-17 05:08:32 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 05:08:58 +0200ft(~ft@p508db47d.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2023-07-17 05:09:33 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net)
2023-07-17 05:09:57 +0200picklejuice(~root@172.58.203.145) (Ping timeout: 245 seconds)
2023-07-17 05:10:34 +0200ft(~ft@p508dbe50.dip0.t-ipconnect.de)
2023-07-17 05:12:52 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 245 seconds)
2023-07-17 05:16:22 +0200pyooque(~puke@user/puke)
2023-07-17 05:16:22 +0200pukeGuest5974
2023-07-17 05:16:22 +0200Guest5974(~puke@user/puke) (Killed (zirconium.libera.chat (Nickname regained by services)))
2023-07-17 05:16:22 +0200pyooquepuke
2023-07-17 05:16:36 +0200phma(~phma@host-67-44-208-43.hnremote.net) (Read error: Connection reset by peer)
2023-07-17 05:17:00 +0200phma(phma@2001:5b0:210b:e378:ed22:f5d0:8c20:185c)
2023-07-17 05:18:46 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-07-17 05:21:15 +0200ddellacosta(~ddellacos@146.70.171.140) (Ping timeout: 246 seconds)
2023-07-17 05:22:10 +0200mechap(~mechap@user/mechap) (Ping timeout: 260 seconds)
2023-07-17 05:22:53 +0200mechap(~mechap@user/mechap)
2023-07-17 05:23:21 +0200ddellacosta(~ddellacos@143.244.47.68)
2023-07-17 05:25:50 +0200lain1001(~lain@76.108.135.43)
2023-07-17 05:29:39 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-07-17 05:30:06 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2023-07-17 05:31:18 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 05:35:25 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 240 seconds)
2023-07-17 05:42:40 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 05:46:14 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-07-17 05:47:21 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 258 seconds)
2023-07-17 05:59:53 +0200aforemny(~aforemny@i59F516E8.versanet.de)
2023-07-17 06:00:23 +0200actioninja63(~actioninj@user/actioninja) (Quit: see ya mane)
2023-07-17 06:00:48 +0200actioninja63(~actioninj@user/actioninja)
2023-07-17 06:01:02 +0200aforemny_(~aforemny@i59F516F8.versanet.de) (Ping timeout: 252 seconds)
2023-07-17 06:01:51 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 246 seconds)
2023-07-17 06:04:06 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-07-17 06:06:55 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-07-17 06:07:19 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-07-17 06:09:11 +0200razetime(~quassel@117.193.6.110) (Ping timeout: 245 seconds)
2023-07-17 06:10:22 +0200Square(~Square@user/square) (Ping timeout: 245 seconds)
2023-07-17 06:15:59 +0200lain1001(~lain@76.108.135.43) (Quit: leaving)
2023-07-17 06:17:53 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 06:22:26 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
2023-07-17 06:24:46 +0200trev(~trev@user/trev)
2023-07-17 06:32:24 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2023-07-17 06:34:28 +0200son0p(~ff@181.136.122.143) (Ping timeout: 272 seconds)
2023-07-17 06:35:00 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 06:38:03 +0200gentauro(~gentauro@user/gentauro)
2023-07-17 06:39:26 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds)
2023-07-17 07:05:31 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-07-17 07:08:28 +0200dobblego(~dibblego@116-255-1-114.ip4.superloop.au)
2023-07-17 07:08:28 +0200dobblego(~dibblego@116-255-1-114.ip4.superloop.au) (Changing host)
2023-07-17 07:08:28 +0200dobblego(~dibblego@haskell/developer/dibblego)
2023-07-17 07:09:11 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-07-17 07:09:11 +0200dobblegodibblego
2023-07-17 07:15:43 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 07:23:14 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
2023-07-17 07:29:01 +0200notzmv(~zmv@user/notzmv)
2023-07-17 07:31:12 +0200 <Lears> probie: Re your Preludeless adventures, I've done similar things before. It's vastly more comfortable if you allow yourself to craft a RebindableSyntax interface layer. I.e. write an alternate prelude that imports (but does not reexport) types like `Integer` and `String`, just to implement `fromInteger` and `fromString`, etc.
2023-07-17 07:31:47 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2023-07-17 07:34:09 +0200rainbyte(~rainbyte@181.31.239.226)
2023-07-17 07:39:11 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-07-17 07:43:17 +0200pickleju1ce(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 246 seconds)
2023-07-17 07:46:36 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 07:50:50 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 246 seconds)
2023-07-17 08:01:37 +0200mncheck(~mncheck@193.224.205.254)
2023-07-17 08:03:52 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 08:05:25 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-07-17 08:05:46 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2023-07-17 08:08:12 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 240 seconds)
2023-07-17 08:10:44 +0200mauke(~mauke@user/mauke) (Ping timeout: 272 seconds)
2023-07-17 08:16:03 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 08:20:06 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-17 08:20:12 +0200Guest97(~Guest97@2603-7000-4b42-1100-8446-81c1-b315-7d12.res6.spectrum.com)
2023-07-17 08:20:55 +0200 <Guest97> Hello !! How to Calculate mod of Rational Number in Haskell? I can't get it right
2023-07-17 08:23:24 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
2023-07-17 08:24:20 +0200razetime(~quassel@117.193.6.110)
2023-07-17 08:25:25 +0200 <Axman6> > let fmod n d = let q = n / d in n - q*d in fmod pi 3
2023-07-17 08:25:27 +0200 <lambdabot> 0.0
2023-07-17 08:25:36 +0200 <Axman6> hmmm
2023-07-17 08:25:55 +0200 <Axman6> uh, yeah of course
2023-07-17 08:26:25 +0200 <Axman6> Guest97: what sort of answer are you expecting to get?
2023-07-17 08:27:20 +0200 <Guest97> A rational number between 0%1 and 11%1
2023-07-17 08:27:40 +0200 <c_wraith> > mod' 3.5 1.5
2023-07-17 08:27:41 +0200 <lambdabot> 0.5
2023-07-17 08:27:47 +0200 <c_wraith> > mod' 3.5 1.5 :: Rational
2023-07-17 08:27:48 +0200 <lambdabot> 1 % 2
2023-07-17 08:27:57 +0200 <c_wraith> it's in Data.Fixed, for some reason
2023-07-17 08:28:11 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 08:28:32 +0200 <Guest97> ok I couldn't find mod'
2023-07-17 08:28:51 +0200 <c_wraith> https://hackage.haskell.org/package/base-4.18.0.0/docs/Data-Fixed.html#v:mod-39-
2023-07-17 08:29:25 +0200 <Axman6> :t realFrac
2023-07-17 08:29:26 +0200 <lambdabot> error:
2023-07-17 08:29:26 +0200 <lambdabot> • Variable not in scope: realFrac
2023-07-17 08:29:26 +0200 <lambdabot> • Perhaps you meant ‘realToFrac’ (imported from Prelude)
2023-07-17 08:29:58 +0200 <Axman6> :t properFraction
2023-07-17 08:29:59 +0200 <lambdabot> (RealFrac a, Integral b) => a -> (b, a)
2023-07-17 08:35:35 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14::ac08)
2023-07-17 08:36:33 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-17 08:39:22 +0200 <Axman6> > let fmod n d = let (i,f) = properFraction (n / d) in f*d in fmod pi 3
2023-07-17 08:39:23 +0200 <lambdabot> 0.1415926535897929
2023-07-17 08:39:31 +0200 <Axman6> > let fmod n d = let (i,f) = properFraction (n / d) in f*d in fmod 3.5 1.5
2023-07-17 08:39:33 +0200 <lambdabot> 0.5000000000000002
2023-07-17 08:39:40 +0200 <Axman6> > let fmod n d = let (i,f) = properFraction (n / d) in f*d in fmod 3.5 1.5 :: Rational
2023-07-17 08:39:41 +0200 <lambdabot> 1 % 2
2023-07-17 08:39:55 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14::ac08) (Ping timeout: 240 seconds)
2023-07-17 08:40:50 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-17 08:40:52 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-07-17 08:41:34 +0200michalz(~michalz@185.246.207.218)
2023-07-17 08:43:59 +0200titibandit(~titibandi@user/titibandit)
2023-07-17 08:45:41 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14::ac08)
2023-07-17 08:46:31 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-07-17 08:47:00 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-17 08:49:09 +0200mango(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
2023-07-17 08:53:54 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-07-17 09:00:42 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-07-17 09:04:25 +0200shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
2023-07-17 09:12:56 +0200fendor(~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932)
2023-07-17 09:16:02 +0200razetime(~quassel@117.193.6.110) (Ping timeout: 246 seconds)
2023-07-17 09:16:21 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-17 09:21:08 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
2023-07-17 09:31:48 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2023-07-17 09:33:17 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-17 09:35:48 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-17 09:36:03 +0200razetime(~quassel@117.193.6.110)
2023-07-17 09:37:40 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Client Quit)
2023-07-17 09:38:54 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 09:41:23 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14::ac08) (Remote host closed the connection)
2023-07-17 09:41:58 +0200pointlessslippe1(~pointless@212.82.82.3)
2023-07-17 09:42:59 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-07-17 09:48:35 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 09:51:00 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-07-17 09:53:20 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 272 seconds)
2023-07-17 10:00:26 +0200rainbyte(~rainbyte@181.31.239.226) (Ping timeout: 245 seconds)
2023-07-17 10:03:26 +0200gurkenglas(~gurkengla@dynamic-046-114-176-022.46.114.pool.telefonica.de)
2023-07-17 10:05:38 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-17 10:09:38 +0200titibandit(~titibandi@user/titibandit) (Ping timeout: 260 seconds)
2023-07-17 10:10:17 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-17 10:11:13 +0200titibandit(~titibandi@user/titibandit)
2023-07-17 10:13:22 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 10:15:23 +0200bontaq(~user@ool-45779b84.dyn.optonline.net)
2023-07-17 10:15:23 +0200titibandit(~titibandi@user/titibandit) (Read error: Connection reset by peer)
2023-07-17 10:18:14 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-07-17 10:19:54 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Ping timeout: 258 seconds)
2023-07-17 10:21:11 +0200titibandit(~titibandi@user/titibandit)
2023-07-17 10:22:49 +0200ripspin(~chatzilla@1.145.214.25)
2023-07-17 10:24:29 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-17 10:24:44 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-17 10:24:58 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 10:25:49 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-07-17 10:28:20 +0200califax(~califax@user/califx)
2023-07-17 10:28:32 +0200chele(~chele@user/chele)
2023-07-17 10:29:26 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2023-07-17 10:32:17 +0200qqq(~qqq@92.43.167.61)
2023-07-17 10:36:22 +0200titibandit(~titibandi@user/titibandit)
2023-07-17 10:38:18 +0200razetime(~quassel@117.193.6.110) (Ping timeout: 272 seconds)
2023-07-17 10:39:16 +0200wildbartty_(~wildbartt@159.196.158.155) (Remote host closed the connection)
2023-07-17 10:39:52 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 10:41:00 +0200danse-nr3(~francesco@151.43.141.194)
2023-07-17 10:43:44 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-07-17 10:43:51 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 10:51:16 +0200mei(~mei@user/mei)
2023-07-17 10:58:14 +0200razetime(~quassel@117.193.6.110)
2023-07-17 11:02:33 +0200Guest97(~Guest97@2603-7000-4b42-1100-8446-81c1-b315-7d12.res6.spectrum.com) (Quit: Client closed)
2023-07-17 11:04:48 +0200m1k3d(~md@74.102.139.139)
2023-07-17 11:06:10 +0200mango(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds)
2023-07-17 11:12:42 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-07-17 11:12:59 +0200end\(~end^@user/end/x-0094621) (Remote host closed the connection)
2023-07-17 11:17:41 +0200Inst__(~Inst@2601:6c4:4081:2fc0:39c6:994c:92a5:82c7) (Ping timeout: 246 seconds)
2023-07-17 11:18:25 +0200acidjnk(~acidjnk@p200300d6e7072f499123e473781aa8c4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-07-17 11:18:42 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6)
2023-07-17 11:20:06 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds)
2023-07-17 11:24:32 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) (Ping timeout: 272 seconds)
2023-07-17 11:25:06 +0200ft(~ft@p508dbe50.dip0.t-ipconnect.de) (Quit: leaving)
2023-07-17 11:29:10 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-17 11:33:07 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-07-17 11:34:16 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-07-17 11:34:24 +0200danse-nr3(~francesco@151.43.141.194) (Remote host closed the connection)
2023-07-17 11:34:46 +0200danse-nr3(~francesco@151.43.141.194)
2023-07-17 11:35:03 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2023-07-17 11:35:27 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-17 11:36:01 +0200puke(~puke@user/puke) (Remote host closed the connection)
2023-07-17 11:37:06 +0200Lord_of_Life_Lord_of_Life
2023-07-17 11:41:09 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
2023-07-17 11:44:14 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 258 seconds)
2023-07-17 11:44:38 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-07-17 11:44:39 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-17 11:45:12 +0200__monty__(~toonn@user/toonn)
2023-07-17 11:49:18 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2023-07-17 11:52:18 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
2023-07-17 11:52:18 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-07-17 11:52:32 +0200CrunchyFlakes(~pi4@ip5f5b4693.dynamic.kabel-deutschland.de) (Quit: WeeChat 4.0.1)
2023-07-17 11:53:52 +0200Inst__(~Inst@2601:6c4:4081:2fc0:79c8:42a5:37ad:5ebf)
2023-07-17 11:56:50 +0200titibandit(~titibandi@user/titibandit) (Ping timeout: 272 seconds)
2023-07-17 11:58:28 +0200titibandit(~titibandi@user/titibandit)
2023-07-17 11:59:56 +0200dobblego(~dibblego@116-255-1-114.ip4.superloop.au)
2023-07-17 11:59:56 +0200dobblego(~dibblego@116-255-1-114.ip4.superloop.au) (Changing host)
2023-07-17 11:59:56 +0200dobblego(~dibblego@haskell/developer/dibblego)
2023-07-17 12:00:38 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 272 seconds)
2023-07-17 12:00:39 +0200dobblegodibblego
2023-07-17 12:02:38 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
2023-07-17 12:11:42 +0200puke(~puke@user/puke)
2023-07-17 12:12:49 +0200puke(~puke@user/puke) (Max SendQ exceeded)
2023-07-17 12:14:21 +0200puke(~puke@user/puke)
2023-07-17 12:29:52 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332)
2023-07-17 12:30:15 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 12:31:56 +0200 <danse-nr3> maybe a b c d
2023-07-17 12:32:13 +0200 <danse-nr3> i guess `c` cannot be a function applied to `d` to return a maybe ...
2023-07-17 12:34:19 +0200 <danse-nr3> oh, the case is that `maybe a b c` could return a function to be applied to `d`
2023-07-17 12:39:28 +0200zazaeil(~user@91.234.25.217)
2023-07-17 12:39:51 +0200 <probie> > maybe (*2) (*) (Just 3) 14
2023-07-17 12:39:52 +0200 <lambdabot> 42
2023-07-17 12:41:36 +0200 <zazaeil> is there a way to run `Yesod.Test` with `QuickCheck` altogether? like `prop "tests foo" $ forAll genFoo $ \foo -> do { get $ HomeR foo ; statusIs 400 }`?
2023-07-17 12:41:45 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-07-17 12:42:26 +0200 <zazaeil> I want request to be generated randomly and then run it on top of the `Yesod.Test` capabilities.
2023-07-17 12:43:04 +0200titibandit(~titibandi@user/titibandit) (Ping timeout: 250 seconds)
2023-07-17 12:45:01 +0200titibandit(~titibandi@user/titibandit)
2023-07-17 12:47:01 +0200p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-17 12:48:01 +0200ishig(~abbe@136.pool85-53-4.dynamic.orange.es)
2023-07-17 12:48:08 +0200picklejuice(~root@c-73-196-164-60.hsd1.nj.comcast.net)
2023-07-17 12:48:46 +0200ishig(~abbe@136.pool85-53-4.dynamic.orange.es) (Client Quit)
2023-07-17 12:49:12 +0200 <Profpatsch> Is it possible to refer to the current module?
2023-07-17 12:49:33 +0200 <Profpatsch> e.g. if I have a let fooFn = fooFnFromModule
2023-07-17 12:49:45 +0200 <Profpatsch> something like let foo = ThisModule.foo
2023-07-17 12:50:04 +0200 <danse-nr3> zazaeil, i wonder whether a tool already exists to do that. I recall a friend was working on something similar many years ago. I think it was independent from the framework serving the interface though, just querying from a client
2023-07-17 12:50:50 +0200 <danse-nr3> Profpatsch, usually if you have an ambiguity in scope, the compiler will show you the alternatives "qualified"
2023-07-17 12:51:15 +0200acidjnk(~acidjnk@p200300d6e7072f779123e473781aa8c4.dip0.t-ipconnect.de)
2023-07-17 12:51:18 +0200 <zazaeil> danse-nr3: any chance you got a `GitHub` ref or something alike? I really need that but seems quite a complex task get done.
2023-07-17 12:52:03 +0200 <danse-nr3> nope sorry, i think he abandoned that project since, so i should do a proper research about the topic
2023-07-17 12:53:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2023-07-17 12:53:12 +0200 <danse-nr3> something platform-independent should rely on a description of the interface anyways
2023-07-17 12:53:24 +0200 <zazaeil> danse-nr3: I have some guesses why he did abandon that; does not sound like an easy thing to do.
2023-07-17 12:53:54 +0200 <danse-nr3> nah, it was working. There are many reasons why projects do not take off sometimes
2023-07-17 12:54:36 +0200 <zazaeil> danse-nr3: I see. just in case you'd recall something useful, pls shoot me a msg.
2023-07-17 12:54:54 +0200 <zazaeil> meanwhile will try to scan the Github once again. might find something to reuse.
2023-07-17 12:55:00 +0200 <danse-nr3> good luck!
2023-07-17 12:55:22 +0200 <danse-nr3> and also try scanning hackage, not everything is on github
2023-07-17 12:55:46 +0200tomku(~tomku@user/tomku) (Ping timeout: 260 seconds)
2023-07-17 12:56:21 +0200 <zazaeil> danse-nr3: indeed
2023-07-17 12:59:57 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-07-17 13:05:17 +0200misterfish(~misterfis@87.215.131.102)
2023-07-17 13:07:31 +0200mei(~mei@user/mei)
2023-07-17 13:08:36 +0200CrunchyFlakes(~pi4@ip5f5b4693.dynamic.kabel-deutschland.de)
2023-07-17 13:08:46 +0200CrunchyFlakes(~pi4@ip5f5b4693.dynamic.kabel-deutschland.de) (Quit: WeeChat 4.0.2)
2023-07-17 13:08:59 +0200CrunchyFlakes(~pi4@ip5f5b4693.dynamic.kabel-deutschland.de)
2023-07-17 13:09:46 +0200 <Profpatsch> danse-nr3: yeah but I can’t import the current module without creating a cycle as far as I can see
2023-07-17 13:10:36 +0200 <danse-nr3> why would you import it when all symbols are already in scope?
2023-07-17 13:11:23 +0200ubert(~Thunderbi@91.141.70.181.wireless.dyn.drei.com)
2023-07-17 13:16:26 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:adeb:5d31:3c95:b332) (Remote host closed the connection)
2023-07-17 13:17:51 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-17 13:18:52 +0200 <probie> I think the only time one would need this is if you had some shadowing going on, e.g. `foo x y = if y == 0 then x else let foo = x + y in ThisModule.foo foo (y - 1)`
2023-07-17 13:19:43 +0200 <probie> if it's a top level name collision, one can import every module qualified, and then only the current module will have unqualified names
2023-07-17 13:19:56 +0200 <danse-nr3> % let head = const 1 in head [0]
2023-07-17 13:19:57 +0200 <yahb2> 1
2023-07-17 13:20:20 +0200 <danse-nr3> maybe i have something setup that makes the compiler complain and list alternatives
2023-07-17 13:22:18 +0200 <probie> No, it's just that that definition of `head` shadows `Prelude.head`. If you make a top level definition named `head`, it won't shadow `Prelude.head` and you'll get an error about ambiguity when you go to use `head`
2023-07-17 13:22:30 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2023-07-17 13:22:52 +0200 <danse-nr3> % head = const 1
2023-07-17 13:22:52 +0200 <yahb2> <no output>
2023-07-17 13:22:58 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds)
2023-07-17 13:23:02 +0200 <danse-nr3> % head [0]
2023-07-17 13:23:02 +0200 <yahb2> 1
2023-07-17 13:23:19 +0200 <danse-nr3> i do not know how to make a top-level definition then
2023-07-17 13:25:22 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-07-17 13:25:28 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-17 13:25:46 +0200 <danse-nr3> % head = Prelude.head
2023-07-17 13:25:46 +0200 <yahb2> <no output>
2023-07-17 13:25:54 +0200 <danse-nr3> just in case
2023-07-17 13:26:03 +0200 <probie> Try loading something like https://paste.tomsmeding.com/DSgolX8Z in GHCi
2023-07-17 13:27:33 +0200 <danse-nr3> i get no errors
2023-07-17 13:27:43 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 13:27:57 +0200 <probie> Interesting
2023-07-17 13:28:02 +0200acidjnk(~acidjnk@p200300d6e7072f779123e473781aa8c4.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2023-07-17 13:28:55 +0200 <probie> So if I try and load that, I get https://paste.tomsmeding.com/6YcL8qZM
2023-07-17 13:29:50 +0200 <Lears> Profpatsch: The current module is already "imported" (in scope) both qualified and unqualified.
2023-07-17 13:29:51 +0200 <danse-nr3> maybe it is a new feature, i run old 8.6
2023-07-17 13:30:04 +0200 <fvr> Profpatsch: you don't need import the current module, you can prefix usage with current module name without importing
2023-07-17 13:30:23 +0200acidjnk(~acidjnk@p200300d6e7072f770cf848d8868092f6.dip0.t-ipconnect.de)
2023-07-17 13:32:11 +0200 <Profpatsch> Lears: fvr but I can’t give it a different qualified name?
2023-07-17 13:32:25 +0200 <Profpatsch> maybe I’m asking too much haha
2023-07-17 13:34:22 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2023-07-17 13:34:36 +0200 <fvr> Profpatsch: Perhaps `qualified-imports-plugin` can be modified to accomplish that
2023-07-17 13:35:05 +0200CrunchyFlakes(~pi4@ip5f5b4693.dynamic.kabel-deutschland.de) (Quit: WeeChat 4.0.2)
2023-07-17 13:38:10 +0200danse-nr3(~francesco@151.43.141.194) (Ping timeout: 272 seconds)
2023-07-17 13:38:42 +0200Logio_(em@kapsi.fi) (Ping timeout: 260 seconds)
2023-07-17 13:39:03 +0200 <Profpatsch> fvr: errr, if plain Haskell doesn’t support it it’s fine
2023-07-17 13:39:21 +0200Logio(em@kapsi.fi)
2023-07-17 13:39:36 +0200 <Profpatsch> I’d rather not use plugins if I can avoid it, esp not for things that can be trivially worked around
2023-07-17 13:48:56 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection)
2023-07-17 13:49:08 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-17 13:50:41 +0200Guest94(~Guest94@89.101.145.49)
2023-07-17 13:50:58 +0200Guest94(~Guest94@89.101.145.49) (Client Quit)
2023-07-17 13:58:59 +0200razetime(~quassel@117.193.6.110) (Remote host closed the connection)
2023-07-17 13:59:05 +0200rainbyte(~rainbyte@181.31.239.226)
2023-07-17 14:00:22 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-17 14:05:24 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds)
2023-07-17 14:07:26 +0200danse-nr3(~francesco@151.43.154.166)
2023-07-17 14:13:22 +0200m1k3d(~md@74.102.139.139) (Read error: Connection reset by peer)
2023-07-17 14:22:42 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 14:42:02 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-07-17 14:42:55 +0200gurkenglas(~gurkengla@dynamic-046-114-176-022.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-07-17 14:53:38 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
2023-07-17 14:53:38 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2023-07-17 14:53:47 +0200yoggurt[m](~yoggurtma@2001:470:69fc:105::2:ba5)
2023-07-17 14:56:34 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
2023-07-17 15:03:40 +0200telser(~quassel@user/telser)
2023-07-17 15:04:18 +0200zazaeil(~user@91.234.25.217) (Ping timeout: 272 seconds)
2023-07-17 15:08:46 +0200picklejuice(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
2023-07-17 15:09:28 +0200picklejuice(~root@c-73-196-164-60.hsd1.nj.comcast.net)
2023-07-17 15:17:23 +0200nick4(~nick@ip98-162-147-230.pn.at.cox.net) (Ping timeout: 264 seconds)
2023-07-17 15:22:02 +0200xff0x(~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 272 seconds)
2023-07-17 15:23:45 +0200xff0x(~xff0x@178.255.149.135)
2023-07-17 15:24:16 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
2023-07-17 15:25:38 +0200thyriaen(~thyriaen@2a01:aea0:dd4:6659:6245:cbff:fe9f:48b1)
2023-07-17 15:30:44 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2023-07-17 15:35:56 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2023-07-17 15:37:11 +0200xff0x(~xff0x@178.255.149.135) (Ping timeout: 246 seconds)
2023-07-17 15:38:06 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
2023-07-17 15:39:11 +0200xff0x(~xff0x@2405:6580:b080:900:28aa:9c66:15d:15fc)
2023-07-17 15:40:10 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2023-07-17 15:40:40 +0200alexbiehl(~alexbiehl@77.20.253.164)
2023-07-17 15:40:45 +0200danse-nr3(~francesco@151.43.154.166) (Ping timeout: 258 seconds)
2023-07-17 15:40:56 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-07-17 15:41:13 +0200danse-nr3(~francesco@151.43.154.166)
2023-07-17 15:45:01 +0200alexbiehl(~alexbiehl@77.20.253.164) (Remote host closed the connection)
2023-07-17 15:45:53 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2023-07-17 15:46:41 +0200 <Lears> Profpatsch: I doubt it's an improvement over your workaround, but I'd been wanting a TH/QQ exercise anyway, so I wrote this: <https://gist.github.com/LSLeary/5e181568bdf7a7fba72d243e15e5b632>.
2023-07-17 15:46:51 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 15:47:33 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 15:54:37 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection)
2023-07-17 15:54:59 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 15:58:14 +0200qqq(~qqq@92.43.167.61) (Quit: Lost terminal)
2023-07-17 15:59:11 +0200 <Profpatsch> Lears: erm, no thank you
2023-07-17 15:59:24 +0200 <Profpatsch> that is scary
2023-07-17 16:00:03 +0200 <Profpatsch> Am I right in the assumption that HasField cannot be correctly derived for rankN fields?
2023-07-17 16:02:07 +0200 <[exa]> the complexity of the proposition that the HasField would represent may get pretty scary there
2023-07-17 16:04:05 +0200Square(~Square@user/square)
2023-07-17 16:04:09 +0200 <Profpatsch> The thing is I’m using a record to mock some functions
2023-07-17 16:04:28 +0200 <Profpatsch> and this record field looks like: insert :: forall coll. ([InsertEntry coll] -> m [Entry coll ()])
2023-07-17 16:04:49 +0200 <Profpatsch> but mock.insert cannot infer coll?
2023-07-17 16:04:55 +0200 <Profpatsch> Proxy I guess
2023-07-17 16:04:55 +0200qqq(~qqq@92.43.167.61)
2023-07-17 16:05:34 +0200 <Profpatsch> doesn’t seem to work :(
2023-07-17 16:06:27 +0200jabuxas(~jabuxas@user/jabuxas) (WeeChat 3.8)
2023-07-17 16:06:28 +0200 <Profpatsch> It does work with a FieldSelector
2023-07-17 16:06:42 +0200nick4(~nick@wsip-174-78-110-18.pn.at.cox.net)
2023-07-17 16:06:45 +0200 <Profpatsch> So I guess I’d have to enable FieldSelectors for this module :(
2023-07-17 16:07:30 +0200 <Lears> NamedFieldPuns is best for records of functions.
2023-07-17 16:08:12 +0200 <Profpatsch> Lears: ah yes, that’s another possibility thanks
2023-07-17 16:09:32 +0200 <Profpatsch> that’s a lot better
2023-07-17 16:13:56 +0200shriekingnoise(~shrieking@186.137.175.87)
2023-07-17 16:26:08 +0200 <nick4> I'm trying to install hoogle locally through cabal. I keep getting this error when building the warp-tls dependency: Couldn't match type ‘x509-1.7.7:Data.X509.CertificateChain.CertificateChain’
2023-07-17 16:26:10 +0200 <nick4> with ‘crypton-x509-1.7.6:Data.X509.CertificateChain.CertificateChain’
2023-07-17 16:26:32 +0200 <nick4> Is there a way to resolve this without modifying source? I'm not sure how to resolve this.
2023-07-17 16:31:06 +0200 <int-e> maybe try --constraint 'crypton-x509 < 0.0'
2023-07-17 16:31:29 +0200 <int-e> but presumably there's a reason for that fork of x509
2023-07-17 16:32:01 +0200mango(~finn@176-151-21-224.abo.bbox.fr)
2023-07-17 16:34:46 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2023-07-17 16:35:42 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-07-17 16:36:19 +0200ss4(~wootehfoo@user/wootehfoot)
2023-07-17 16:38:07 +0200mei(~mei@user/mei)
2023-07-17 16:39:11 +0200 <int-e> it's a very recent fork though so it'll probably work for now
2023-07-17 16:40:24 +0200tomku(~tomku@user/tomku)
2023-07-17 16:40:34 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 272 seconds)
2023-07-17 16:44:37 +0200 <nick4> so you're saying I should try $ cabal install --contraint 'crypton-x509 < 0.0' hoogle?
2023-07-17 16:44:55 +0200 <int-e> con*s*traint. yes.
2023-07-17 16:46:12 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-07-17 16:46:16 +0200 <int-e> it should use previous releases of tls and http-client-tls that still rely on x509
2023-07-17 16:46:29 +0200 <nick4> well that kinda works. Now I'm getting an out of scope error for the same variable that it says couldn't match type . . . =/
2023-07-17 16:46:50 +0200 <int-e> fun?
2023-07-17 16:46:57 +0200 <nick4> much
2023-07-17 16:47:10 +0200 <nick4> I'm just not sure how I'm supposed to figure out how to resolve the dependencies?
2023-07-17 16:47:40 +0200 <nick4> like at least with missing C headers, I can try random things lol
2023-07-17 16:47:45 +0200 <int-e> . o O ( reset the package index state to early 2022 and try again )
2023-07-17 16:47:48 +0200 <nick4> I'm completely lost here
2023-07-17 16:48:13 +0200 <int-e> (the last upload of hoogle was in december 2021; presumably it could be built then)
2023-07-17 16:48:32 +0200 <int-e> Oh, C headers... that's outside the scope of cabal
2023-07-17 16:48:54 +0200 <geekosaur> I think that was an example of what they could fix, as compared to this?
2023-07-17 16:48:59 +0200 <int-e> but if it's a type error that rather suggests incompatible dependencies
2023-07-17 16:49:03 +0200 <int-e> on the haskell side
2023-07-17 16:49:32 +0200 <nick4> Hmmm I'm not sure what you mean by the package index . . . I'm not seeing any options in cabal help to direct me.
2023-07-17 16:50:04 +0200mango(~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 272 seconds)
2023-07-17 16:50:38 +0200 <int-e> the package index is what `cabal update` updates
2023-07-17 16:50:42 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2023-07-17 16:51:30 +0200 <int-e> And you can roll that back with, uhm, `cabal update --index-state='2022-01-01'` for example. I'm not convinced that this is a great idea unless you're also willing to use a similarly old ghc.
2023-07-17 16:51:59 +0200 <int-e> and also I've never done that
2023-07-17 16:52:15 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection)
2023-07-17 16:52:16 +0200 <int-e> I only know of that feature because `caba update` itself advertises it
2023-07-17 16:52:32 +0200 <nick4> well clearly this version of ghc isn't working with hoogle, so I'm willing to try things
2023-07-17 16:52:42 +0200 <nick4> how do I know which version of ghc that I need?
2023-07-17 16:53:11 +0200 <nick4> I assume I can just install it with ghcup and symlink it?
2023-07-17 16:53:37 +0200 <maerwald> symlink?
2023-07-17 16:53:40 +0200 <int-e> somewhere between 8.10 and 9.2 I guess
2023-07-17 16:53:44 +0200 <geekosaur> ghcup set ghc, or use ghcup tui to select it, or use -w with cabal to tell caball to use a specific version
2023-07-17 16:54:05 +0200 <maerwald> or symlink it manually and cause havoc :D
2023-07-17 16:54:08 +0200 <geekosaur> cabal install haddock -w ghc-8.10.7
2023-07-17 16:54:13 +0200 <int-e> 9.2 was still rather new then; 8.10 is the safest bet
2023-07-17 16:54:52 +0200 <maerwald> ghcup run --ghc 8.10 -- cabal install haddock
2023-07-17 16:55:24 +0200 <int-e> (not sure whether there is a convenient list of release dates, but with https://www.haskell.org/ghc/download.html it's just a click per version)
2023-07-17 16:55:57 +0200 <maerwald> int-e: ghcup now supports adding release dates (which is used for nightlies only atm)
2023-07-17 16:56:06 +0200zwroyin
2023-07-17 16:56:09 +0200 <maerwald> so anyone with too much time on their hands could provide a PR
2023-07-17 16:56:37 +0200 <jade[m]> I believe this shows modification dates without click http://downloads.haskell.org/~ghc/9.6.1/
2023-07-17 16:56:47 +0200 <int-e> . o O ( I'm too busy procrastinating to do that )
2023-07-17 16:56:55 +0200 <jade[m]> oops, one directory back
2023-07-17 16:57:16 +0200 <maerwald> yeah, I got a lot of time, but not a lot of energy (sick leave)
2023-07-17 16:57:16 +0200 <geekosaur> only to 2020
2023-07-17 16:57:26 +0200 <maerwald> so am just bikeshedding on github issues
2023-07-17 16:57:31 +0200 <geekosaur> but that may be good enough
2023-07-17 16:57:40 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 272 seconds)
2023-07-17 16:57:43 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-07-17 16:58:11 +0200misterfish(~misterfis@87.215.131.102) (Ping timeout: 264 seconds)
2023-07-17 16:58:55 +0200 <nick4> well i installed ghcup from brew install, and in .ghcup/bin it doesn't install a plain ghc/ghci version, but instead always symlinks to an executable in .ghcup/bin/ghc/{version} but does not provide a ghc/ghci without a version appended to the name, so how else can I run ghc/ghci without symlinking one of those binaries?
2023-07-17 16:59:12 +0200 <geekosaur> that's what ghcup set is for
2023-07-17 16:59:18 +0200 <nick4> exactly
2023-07-17 16:59:26 +0200 <geekosaur> ghcup set ghc <version>
2023-07-17 16:59:41 +0200 <geekosaur> or use ghcup tui to select a version
2023-07-17 16:59:58 +0200 <maerwald> yeah, we need an introductory mode
2023-07-17 17:00:17 +0200 <maerwald> https://github.com/haskell/ghcup-hs/pull/850
2023-07-17 17:00:49 +0200 <nick4> ah hell yeah that's way better than manual symlinking! XD
2023-07-17 17:02:09 +0200 <maerwald> that's because you installed via brew and didn't go through the installation script that will do that for you
2023-07-17 17:02:43 +0200 <maerwald> I'm not too excited of people packaging ghcup... means I can't control the entry point anymore. It's more support work
2023-07-17 17:04:55 +0200 <danse-nr3> many technologies ship with an environment switcher. ghcup has become the haskell standard
2023-07-17 17:05:14 +0200 <danse-nr3> which alternative would you suggest?
2023-07-17 17:05:45 +0200 <nick4> ah ok, do you think it would be better to just uninstall through brew and then install through the script?
2023-07-17 17:05:51 +0200 <maerwald> nick4: yes
2023-07-17 17:05:54 +0200 <nick4> I'm just trying ot manage installations with a package manager
2023-07-17 17:05:58 +0200 <maerwald> curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
2023-07-17 17:06:25 +0200 <danse-nr3> oh got it was just about packaging
2023-07-17 17:06:33 +0200 <maerwald> danse-nr3: I'm not sure I'm following... with "I can't control the entry point anymore" I mean I'm the maintainer of ghcup and have to deal with fallout that packagers do
2023-07-17 17:06:44 +0200 <maerwald> (e.g. brew packaging broke the vscode-haskell extension)
2023-07-17 17:06:45 +0200 <danse-nr3> yeah apologies
2023-07-17 17:07:20 +0200 <maerwald> because `ghcup upgrade --inplace` doesn't work anymore when using brew
2023-07-17 17:07:32 +0200 <maerwald> may fail with permission denied
2023-07-17 17:08:20 +0200danse-nr3(~francesco@151.43.154.166) (Remote host closed the connection)
2023-07-17 17:08:28 +0200 <maerwald> or... the users run `ghcup upgrade` and got the PATH not in order
2023-07-17 17:08:37 +0200 <maerwald> now they got 2 binaries
2023-07-17 17:08:43 +0200danse-nr3(~francesco@151.43.154.166)
2023-07-17 17:09:51 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-07-17 17:09:55 +0200mauke(~mauke@user/mauke)
2023-07-17 17:11:02 +0200Sgeo(~Sgeo@user/sgeo)
2023-07-17 17:11:54 +0200califax(~califax@user/califx)
2023-07-17 17:13:25 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 17:13:43 +0200gurkenglas(~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de)
2023-07-17 17:14:32 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-07-17 17:15:22 +0200 <probie> Why do people package ghcup? If I'm a package maintainer, the last thing I want is software that upgrades itself and installs things outside the package manager, since I can't make any promises about the stability or security of it.
2023-07-17 17:16:05 +0200 <maerwald> probie: ghcup doesn't update itself inplace by default
2023-07-17 17:16:11 +0200 <maerwald> it has sane defaults
2023-07-17 17:16:24 +0200 <maerwald> and many package managers provide e.g. rustup
2023-07-17 17:16:35 +0200 <maerwald> there is something compelling about it, but
2023-07-17 17:16:57 +0200califax(~califax@user/califx)
2023-07-17 17:17:35 +0200 <int-e> but for you as the maintainer it's a burden
2023-07-17 17:17:37 +0200 <maerwald> probie: you can't make any guarantee about any application in your repository that connects to the internet (games, chat apps, whatever)
2023-07-17 17:17:42 +0200 <maerwald> they all write to $HOME
2023-07-17 17:19:21 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-17 17:19:34 +0200 <maerwald> from a security perspective, I think ghcup is better than (most) package repositories: it prefers GHC upstream bindists whenever possible. Those are built and verified by GHC devs.
2023-07-17 17:20:06 +0200 <maerwald> security is established through sha256 checksums and gpg signatures
2023-07-17 17:20:22 +0200 <maerwald> https://www.haskell.org/ghcup/guide/#gpg-verification
2023-07-17 17:21:00 +0200 <maerwald> but no one ever asked me for my GPG key... so I think no one cares about security
2023-07-17 17:21:20 +0200 <maerwald> they'll just believe whatever someone uploaded to that website
2023-07-17 17:22:08 +0200 <maerwald> I think people rather rely on public shaming
2023-07-17 17:22:52 +0200 <maerwald> give trust to random strangers and shame them if they f*ck up :D
2023-07-17 17:23:18 +0200 <nick4> lol I'm definitely doing this wrong, but you may find it humours that I was jesting about C headers before . . . . `gcc' failed in phase `C Compiler'. (Exit code: 1) . . . fatal error: 'ffitarget_arm64.h' file not found . . . no wonder why you didn't recommend this XD
2023-07-17 17:23:35 +0200 <maerwald> nick4: darwin aarch64?
2023-07-17 17:23:41 +0200 <nick4> Monterey
2023-07-17 17:23:49 +0200 <maerwald> what architecture
2023-07-17 17:23:58 +0200 <nick4> M1
2023-07-17 17:24:08 +0200 <maerwald> which ghc version
2023-07-17 17:24:08 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6)
2023-07-17 17:24:12 +0200xff0x(~xff0x@2405:6580:b080:900:28aa:9c66:15d:15fc) (Ping timeout: 240 seconds)
2023-07-17 17:24:24 +0200Pickchea(~private@user/pickchea)
2023-07-17 17:24:31 +0200 <nick4> right now I've downgraded to 9.2.1
2023-07-17 17:24:46 +0200 <maerwald> this is a known bug
2023-07-17 17:24:54 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2023-07-17 17:24:58 +0200 <maerwald> https://gitlab.haskell.org/ghc/ghc/-/issues/20592#note_391266
2023-07-17 17:25:02 +0200 <nick4> yeah I really hate macs man
2023-07-17 17:25:20 +0200 <nick4> wouldn't have this thing if my boss didn't buy it for me
2023-07-17 17:25:22 +0200 <maerwald> export C_INCLUDE_PATH="`xcrun --show-sdk-path`/usr/include/ffi"
2023-07-17 17:25:38 +0200 <maerwald> but it's fixed in 9.2.3+
2023-07-17 17:26:17 +0200xff0x(~xff0x@ai086045.d.east.v6connect.net)
2023-07-17 17:26:42 +0200 <nick4> how did you find that so fast?
2023-07-17 17:27:13 +0200 <maerwald> my brain is filled with GHC bugs
2023-07-17 17:27:39 +0200 <maerwald> most of them are on mac
2023-07-17 17:27:42 +0200 <nick4> rofl
2023-07-17 17:28:17 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) (Ping timeout: 245 seconds)
2023-07-17 17:28:33 +0200 <maerwald> I should take more sick leave... I feel more productive that way
2023-07-17 17:31:04 +0200 <nick4> fuck, all that downgrading and I get the same failure to build from the warp-tls dependency . . .
2023-07-17 17:31:21 +0200 <maerwald> what failure
2023-07-17 17:33:25 +0200Ashkan(~Ashkan@a119011.upc-a.chello.nl)
2023-07-17 17:34:19 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 17:35:23 +0200 <Ashkan> Hi guys. I have this rather simple function :
2023-07-17 17:35:23 +0200 <Ashkan> ```
2023-07-17 17:35:24 +0200 <Ashkan> size :: SomeTypeClass a => a -> Float
2023-07-17 17:35:24 +0200 <Ashkan> size x = x * blockSize
2023-07-17 17:35:25 +0200 <Ashkan> ```
2023-07-17 17:35:25 +0200 <Ashkan> `blockSize` is a `Float` and I need `size` to work with essentially every number as long as they are not imaginary or anything fancy: Integer, Int, Double etc. Ideas ?
2023-07-17 17:35:45 +0200 <maerwald> SomeTypeClass?
2023-07-17 17:36:22 +0200 <Ashkan> that is part of the question. I don't know which type class but I assume there must be a type class ?
2023-07-17 17:37:02 +0200 <Ashkan> maybe I should define one and then instance it for those type I want to work with :thinking: Would that be too much ?
2023-07-17 17:37:37 +0200 <geekosaur> Ashkan, I think you've got typeclasses backwards, as is common for people coming from OOP
2023-07-17 17:37:47 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection)
2023-07-17 17:38:05 +0200 <geekosaur> blockSize will have some specific type; x must therefore have the same type, it cannot be "any numeric type"
2023-07-17 17:38:13 +0200 <geekosaur> :t (*)
2023-07-17 17:38:14 +0200 <lambdabot> Num a => a -> a -> a
2023-07-17 17:38:22 +0200 <probie> You probably want `Real`. `size x = (realToFrac x) * blockSize`
2023-07-17 17:38:25 +0200 <geekosaur> they all have to be the same `a`
2023-07-17 17:38:30 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
2023-07-17 17:38:42 +0200 <probie> s/probably/may/
2023-07-17 17:38:50 +0200 <mauke> :t \x -> toEnum (fromEnum x) * (2 :: Float)
2023-07-17 17:38:51 +0200 <lambdabot> Enum a => a -> Float
2023-07-17 17:38:58 +0200chele(~chele@user/chele) (Remote host closed the connection)
2023-07-17 17:39:05 +0200maukeruns away
2023-07-17 17:39:08 +0200 <Ashkan> Think of it this way: I need to express that there is a block-size and then I have full-number blocks (like 3 blocks, or 10 blocks) and half blocks (3.5) and partial blocks (1/3rd of a bock or 3.56 of a block) and they all translate to a screen size by multiplying them with the block-size. How do I model that ?
2023-07-17 17:39:14 +0200 <probie> > toEnum (fromEnum (3.2 :: Float))
2023-07-17 17:39:15 +0200 <lambdabot> *Exception: Prelude.Enum.().toEnum: bad argument
2023-07-17 17:39:19 +0200 <probie> :(
2023-07-17 17:39:53 +0200 <mauke> > toEnum (fromEnum 3.2) * (2 :: Float)
2023-07-17 17:39:54 +0200 <lambdabot> 6.0
2023-07-17 17:40:24 +0200 <mauke> Ashkan: Rational, maybe?
2023-07-17 17:41:14 +0200 <Ashkan> geekosaur they don;t need to be all `a`.  `size` outputs `Float`. It's argument, however, could be anything: whole numbers, fractional numbers, Doubles ... anything except non-real number or fancy stuff
2023-07-17 17:41:57 +0200 <geekosaur> (*) requires both parameters and its result to be the same type
2023-07-17 17:42:09 +0200 <geekosaur> you must do a conversion somewhere and it must be explicit
2023-07-17 17:42:12 +0200 <mauke> why are you using Float?
2023-07-17 17:43:01 +0200 <nick4> https://paste.tomsmeding.com/pIaBfPzw
2023-07-17 17:43:03 +0200 <nick4> there's the error
2023-07-17 17:43:18 +0200 <probie> > (0.1 + (0.2 :: Double), 0.1 + (0.2 :: Float)) -- <joke>It's the more correct type</joke>
2023-07-17 17:43:19 +0200 <lambdabot> (0.30000000000000004,0.3)
2023-07-17 17:43:30 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2023-07-17 17:43:48 +0200 <Ashkan> mauke the `size` output is used with gloss functions which use `Float` but on a more conceptual level :the output is the screen size of the blocks in question, hence its either `Float` or `Double`
2023-07-17 17:43:50 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-17 17:44:17 +0200 <mauke> my screen uses pixels
2023-07-17 17:44:34 +0200 <mauke> I've never seen floating points
2023-07-17 17:44:48 +0200 <maerwald> nick4: try using 3.4.0
2023-07-17 17:44:57 +0200 <maerwald> it uses the new crypton package, which might have fixedit
2023-07-17 17:45:19 +0200 <c_wraith> Eh. It's not wrong to model the screen as point samples of some continuous function, at least when doing graphics.
2023-07-17 17:45:32 +0200 <geekosaur> mauke, opengl (gloss) doesn't do pixels
2023-07-17 17:46:09 +0200 <int-e> . o O ( fragments )
2023-07-17 17:46:16 +0200 <mauke> maybe someone should port it to computer screens
2023-07-17 17:46:18 +0200 <c_wraith> but Float's lack of precision when magnitudes get a little big has led to all sorts of bugs in all sorts of games
2023-07-17 17:46:34 +0200geekosaurhas flashbacks to DPS
2023-07-17 17:47:14 +0200 <mauke> ... but first we need to talk about parallel universes
2023-07-17 17:47:38 +0200 <Square> I'm playing with ":kind" here. Can i somehow write the type function (->) ((,) Int) wo defining the actual parameterized type?
2023-07-17 17:47:39 +0200 <probie> Ashkan: Whether or not it's the right thing to do, `size :: Real a => a -> Float; size x = realToFrac x * blockSize` will do what you've asked, assuming `blockSize` is a `Float` (i.e take Int, Integer, Float, Double, Word etc.)
2023-07-17 17:48:38 +0200 <Ashkan> probie Thank you ! that answers my question.
2023-07-17 17:48:48 +0200 <Square> (...as I do with function composition using ":t")
2023-07-17 17:49:08 +0200 <c_wraith> A lot of games model time by converting some system timer that reports uptime into a number of seconds. Turns out that if you then convert that timer into a Float, after about 6 days, updates to it are no longer of sufficient granularity to update at 60 Hz. This has caused bugs in a number of games.
2023-07-17 17:50:13 +0200danse-nr3_(~francesco@151.57.135.118)
2023-07-17 17:50:17 +0200danse-nr3(~francesco@151.43.154.166) (Read error: Connection reset by peer)
2023-07-17 17:50:56 +0200 <Ashkan> Now another question. How do I properly model this concept of "converting to screen units" ? the key point is : there are a few things (expressed as types) for all of which it makes sense and is required to get the screen-size. Some of them are used-defined like `newtype Col = Col Int` or maybe even more complex. Does a type-class fit here ?
2023-07-17 17:50:59 +0200 <c_wraith> A lot of games model world coordinates as floats. When the world gets too big, this results in objects popping between locations, as the minimum available precision becomes a visible gap
2023-07-17 17:53:04 +0200hellwolf(~user@5b3d-5cac-bb28-d008-0f00-4d40-07d0-2001.sta.estpak.ee)
2023-07-17 17:54:37 +0200 <hellwolf> Who here has experience to share regarding how to kick start a local haskell user group? How many people needed to have the 1st event, what topics, what format, etc? I know this is too general a question, but still would like to just hear some stories...
2023-07-17 17:55:31 +0200 <geekosaur> that sounds like a good thing to ask on the discourse
2023-07-17 17:56:04 +0200 <geekosaur> c_wraith, while your observations are correct, Ashkan is using gloss which uses Float
2023-07-17 17:56:17 +0200 <geekosaur> rewriting it is probably out of scope
2023-07-17 17:56:26 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 17:57:19 +0200 <Ashkan> It is a very stripped down mine sweeper but interesting to know about how float will cause all those bugs !
2023-07-17 17:58:47 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-07-17 17:58:55 +0200 <c_wraith> Technically, Double has all the same bugs. But you're way less likely to encounter them thanks to the much larger precision
2023-07-17 17:59:31 +0200 <c_wraith> Still, ideally you'd be doing those tasks with some sort of fixed-point numbers, where precision doesn't depend on the magnitude
2023-07-17 18:00:26 +0200 <c_wraith> (And that have good hardware support, and good language support... it's not happening any time soon)
2023-07-17 18:00:49 +0200 <mauke> > head [ n | n <- [0 ..], let x = fromInteger (1 `shiftL` n) :: Float, x + 1 == x ]
2023-07-17 18:00:50 +0200 <lambdabot> 24
2023-07-17 18:00:55 +0200 <mauke> > head [ n | n <- [0 ..], let x = fromInteger (1 `shiftL` n) :: Double, x + 1 == x ]
2023-07-17 18:00:56 +0200Ashkan(~Ashkan@a119011.upc-a.chello.nl) (Quit: Client closed)
2023-07-17 18:00:56 +0200 <lambdabot> 53
2023-07-17 18:01:07 +0200 <mauke> that sounds about right
2023-07-17 18:02:05 +0200 <c_wraith> more than double the mantissa size!
2023-07-17 18:02:09 +0200 <mauke> well, everybody knows that home computers can't handle integers larger than 32 bits, so you should be safe using Double
2023-07-17 18:02:21 +0200 <c_wraith> ah, the javascript approach
2023-07-17 18:03:27 +0200 <mauke> ... cribbed from perl
2023-07-17 18:03:33 +0200 <c_wraith> I like that javascript has bitwise operators that are specified as "convert the arguments to a 32-bit integer, do the bitwise operation, convert the result back to a double"
2023-07-17 18:04:30 +0200 <mauke> except in the mean time, perl switched to keeping the internal representation as an integer wherever possible
2023-07-17 18:04:38 +0200 <jade[m]> c_wraith: Q_sqrt "evil bit hack" moment
2023-07-17 18:05:34 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net)
2023-07-17 18:05:38 +0200 <c_wraith> jade[m]: Oh. No, I meant convert the number to a 32-bit integer by rounding/clamping. Not doing a bitwise conversion, like that hack does.
2023-07-17 18:05:47 +0200 <jade[m]> ahhhhh okay
2023-07-17 18:06:07 +0200 <mauke> s/rounding/truncating/
2023-07-17 18:06:10 +0200 <jade[m]> what are those useful for?
2023-07-17 18:06:27 +0200 <c_wraith> When you want to pretend you have an integer and do bitwise operations
2023-07-17 18:06:43 +0200 <c_wraith> despite javascript only having doubles
2023-07-17 18:06:53 +0200 <jade[m]> ahh I see
2023-07-17 18:06:59 +0200 <jade[m]> js fuckery
2023-07-17 18:07:21 +0200 <danse-nr3_> Square what do you mean?
2023-07-17 18:07:34 +0200 <mauke> (I'm serious about the perl part, btw: perl's internal type for floating-point numbers is still called NV (for "numeric value"))
2023-07-17 18:07:47 +0200 <mauke> probably the fast inverse square root hack
2023-07-17 18:08:03 +0200 <[exa]> hellwolf: do you have some user group communication platform/link/base? once that is established just share the link here and you'll see. :D
2023-07-17 18:08:13 +0200nyc(~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Read error: Connection reset by peer)
2023-07-17 18:08:45 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-07-17 18:09:14 +0200 <jade[m]> https://www.youtube.com/watch?v=p8u_k2LIZyo / https://en.m.wikipedia.org/wiki/Fast_inverse_square_root
2023-07-17 18:09:55 +0200 <mauke> I'd like to strike my last remark. I've accidentally crossed the conversation streams
2023-07-17 18:10:14 +0200 <Square> danse-nr3_, I meant that just as I can do ':t show . (3*)' Id hoped I could do ':k (->) ((,) Int)' and it magically sorted out the resulting type function/kind. =D
2023-07-17 18:10:34 +0200 <mauke> you'd need a type-level compose
2023-07-17 18:10:46 +0200 <Square> oh ok
2023-07-17 18:11:07 +0200 <danse-nr3_> wow i received a message from lambdabot from two days ago
2023-07-17 18:11:26 +0200 <mauke> type C f g x = f (g x), except that doesn't help you because C (->) ((,) Int) is malformed
2023-07-17 18:12:27 +0200 <Square> oh ok
2023-07-17 18:13:34 +0200 <jade[m]> unrelated, but I recently realized that I really dislike how TupleSections look
2023-07-17 18:14:00 +0200remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 252 seconds)
2023-07-17 18:15:47 +0200remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz)
2023-07-17 18:15:48 +0200 <probie> I hate all three of `flip (,) x`, `\y -> (y, x)` and `(,x)`
2023-07-17 18:17:01 +0200 <jade[m]> yeah that's fair
2023-07-17 18:17:01 +0200 <danse-nr3_> `(,x)` looks nice and readable
2023-07-17 18:17:10 +0200 <jade[m]> just don't use tuples tbh
2023-07-17 18:17:16 +0200 <jade[m]> (half joking)
2023-07-17 18:18:26 +0200 <probie> :t (,42,,)
2023-07-17 18:18:27 +0200 <lambdabot> Num t1 => t2 -> t3 -> t4 -> (t2, t1, t3, t4)
2023-07-17 18:20:17 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-07-17 18:20:32 +0200 <probie> :t (,(,(,(,42)))) -- I hate that they make parens extra meaningful
2023-07-17 18:20:33 +0200 <lambdabot> Num t1 => t2 -> (t2, t3 -> (t3, t4 -> (t4, t5 -> (t5, t1))))
2023-07-17 18:20:53 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-07-17 18:20:57 +0200 <probie> :t (, , , , 42)
2023-07-17 18:20:58 +0200 <lambdabot> Num t1 => t2 -> t3 -> t4 -> t5 -> (t2, t3, t4, t5, t1)
2023-07-17 18:20:59 +0200pickleju1ce(~root@172.56.217.212)
2023-07-17 18:21:01 +0200 <jade[m]> that's truly disgusting
2023-07-17 18:21:09 +0200 <mauke> you sound like you'd enjoy perl
2023-07-17 18:21:35 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au)
2023-07-17 18:21:41 +0200 <mauke> in perl, (1,(((2),3),4)) and 1,2,3,4 mean the same thing
2023-07-17 18:21:49 +0200 <mauke> (because , is list concatenation)
2023-07-17 18:23:38 +0200picklejuice(~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 246 seconds)
2023-07-17 18:24:31 +0200hiredman(~hiredman@frontier1.downey.family)
2023-07-17 18:24:41 +0200 <probie> I can't make lambdabot demonstrate it, but I also hate that you're allowed to put newlines into tuple sections
2023-07-17 18:26:11 +0200 <monochrom> You're allowed to put newlines into almost everywhere.
2023-07-17 18:26:20 +0200arahael_(~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds)
2023-07-17 18:26:30 +0200 <jade[m]> as long as the indentation on the next line is right
2023-07-17 18:26:34 +0200 <mauke> I avoid newlines by programming in the whitespace-free subset of Haskell
2023-07-17 18:27:02 +0200 <probie> Yes, but it means that people from languages that allow trailing commas get a rather weird type error
2023-07-17 18:27:36 +0200 <monochrom> This allows a religious cult of code formatting that minimizes line-based diffs. Perhaps that's what you hate. :)
2023-07-17 18:28:44 +0200 <jade[m]> very evil
2023-07-17 18:28:54 +0200 <int-e> > let{fibs(x)(y)=x:fibs(y)(x+y)}in{--}fibs(0)(1)
2023-07-17 18:28:55 +0200 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
2023-07-17 18:29:30 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-17 18:29:43 +0200 <mauke> baeuaeutiful
2023-07-17 18:29:50 +0200 <int-e> mauke: do you think using {--} is cheating?
2023-07-17 18:29:56 +0200 <probie> > let{fibs(x)y=x:fibs(y)(x+y)}in0+fibs(0)1
2023-07-17 18:29:58 +0200 <lambdabot> <hint>:1:29: error: parse error on input ‘in0’
2023-07-17 18:30:16 +0200 <probie> right, that turns it into an identifier
2023-07-17 18:30:29 +0200 <mauke> int-e: no, but you could've used ( ) instead, which is shorter
2023-07-17 18:30:30 +0200 <probie> > let{fibs(x)y=x:fibs(y)(x+y)}in(fibs(0)1)
2023-07-17 18:30:32 +0200 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
2023-07-17 18:30:39 +0200 <int-e> probie: ohright
2023-07-17 18:30:44 +0200 <int-e> mauke: err
2023-07-17 18:30:51 +0200 <int-e> mauke: (that was for you)
2023-07-17 18:31:17 +0200 <int-e> so silly too since I used so many parentheses already
2023-07-17 18:31:35 +0200 <probie> > let{fibs(x)y=y:fibs(x+y)y}in(fibs(1)0)
2023-07-17 18:31:36 +0200 <lambdabot> [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
2023-07-17 18:31:40 +0200 <monochrom> let kt = flip take in kt"abcdefg"2
2023-07-17 18:31:44 +0200 <monochrom> err
2023-07-17 18:31:46 +0200 <monochrom> > let kt = flip take in kt"abcdefg"2
2023-07-17 18:31:47 +0200 <lambdabot> "ab"
2023-07-17 18:32:01 +0200 <int-e> apparently `data(A)=B|C` is legal?
2023-07-17 18:32:09 +0200 <jade[m]> lambdabot: iccanobif
2023-07-17 18:32:25 +0200 <int-e> so the white-space-free fragment is shaping up to be rather big even without comments
2023-07-17 18:32:52 +0200 <probie> > let{fibs(x)y=y:fibs(x+y)x}in(fibs(1)0)
2023-07-17 18:32:54 +0200 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
2023-07-17 18:34:25 +0200 <int-e> with PackageImports you can even foo import"base"Data.List
2023-07-17 18:34:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-07-17 18:34:40 +0200 <mauke> ah, but how do you enable PackageImports?
2023-07-17 18:34:52 +0200 <int-e> I don't know yet
2023-07-17 18:35:06 +0200 <probie> cheat and pass it as an argument to GHC
2023-07-17 18:35:50 +0200 <int-e> Sorry, that was poor style. I meant "this is left as an exercise to the reader".
2023-07-17 18:36:01 +0200 <jade[m]> the command and args to ghc itself also may not contain whitespace
2023-07-17 18:36:26 +0200 <monochrom> x`fibs`y=y:(x+y)`fibs`x :)
2023-07-17 18:36:35 +0200 <geekosaur> {-#OPTIONS_GHC-XPackageImportds#-}
2023-07-17 18:36:39 +0200 <geekosaur> -d
2023-07-17 18:37:36 +0200 <Square> Free monads seems hyped in that they can be give you analyzable trace of a computation. I wonder if there are any examples libs / apps using it that way. I mostly find illustrative examples of Free rather than actual application of it.
2023-07-17 18:38:11 +0200 <monochrom> Use C instead of shell. execlp("ghc","-XPackageImports",(char*)NULL); no space at all :)
2023-07-17 18:38:25 +0200 <Square> ie Free tutorials-
2023-07-17 18:38:40 +0200 <monochrom> (I am teaching fork-exec in a course right now :) )
2023-07-17 18:39:30 +0200 <monochrom> https://hackage.haskell.org/package/free-game is a game library that uses a free monad.
2023-07-17 18:39:52 +0200 <Square> thanks
2023-07-17 18:40:05 +0200 <geekosaur> you can rev-deps any free monad package such as prompt
2023-07-17 18:40:10 +0200 <geekosaur> or freer or etc.
2023-07-17 18:40:23 +0200 <geekosaur> (packdeps.haskellers.com/revdeps)
2023-07-17 18:40:44 +0200 <Square> thans
2023-07-17 18:41:04 +0200 <int-e> . o O ( echo${IFS}a${IFS}b${IFS}c )
2023-07-17 18:42:05 +0200 <int-e> (there is nothing wrong with using more than one whitespace character per argument)
2023-07-17 18:42:11 +0200 <geekosaur> sorry that's /reverse not /revdeps
2023-07-17 18:42:22 +0200 <mauke> {echo,hello,world}
2023-07-17 18:42:24 +0200 <geekosaur> also I think flora.pm provides reverse dependencies
2023-07-17 18:42:37 +0200CrunchyFlakes(~pi4@ip9234cf0c.dynamic.kabel-deutschland.de)
2023-07-17 18:42:43 +0200 <int-e> mauke: hmm interesting
2023-07-17 18:43:37 +0200 <int-e> oh duh
2023-07-17 18:44:01 +0200 <int-e> (I know that syntax, but I have probably never used it in isolation like that)
2023-07-17 18:44:02 +0200pickleju1ce(~root@172.56.217.212) (Ping timeout: 250 seconds)
2023-07-17 18:44:08 +0200 <geekosaur> heh
2023-07-17 18:44:19 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-17 18:44:59 +0200picklejuice(~root@172.56.218.140)
2023-07-17 18:49:31 +0200 <probie> int-e: You've probably seen it prefixed like in `mv foo{,.old}`
2023-07-17 18:50:35 +0200 <int-e> probie: Among other things, yes. I'm surprised I didn't recognize it because I actually use it quite a lot. I think the reason is that I usually don't think much about what it actually expands too
2023-07-17 18:50:39 +0200 <int-e> *to
2023-07-17 18:51:51 +0200 <int-e> or maybe I forgot that the command name is just another word in the command line
2023-07-17 18:52:06 +0200 <int-e> whatever
2023-07-17 18:52:56 +0200 <Square> geekosaur, i found it
2023-07-17 18:53:17 +0200 <int-e> so I think whitespace- and comment-free Haskell is quite adequte for programming, but I don't think you can name modules (`module Foo where`)
2023-07-17 18:54:18 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Remote host closed the connection)
2023-07-17 18:55:01 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 18:55:18 +0200 <probie> But you can run definitely write little programs like `{runhaskell,-XPackageImports}<<<'import"base"Data.List;main=putStrLn(sort("Hello\x20World"))'`
2023-07-17 18:55:52 +0200 <geekosaur> did you catch how to turn on PackageImports in the file?
2023-07-17 18:55:54 +0200 <mauke> \x20? how gauche
2023-07-17 18:56:07 +0200 <geekosaur> concat 😛
2023-07-17 18:56:34 +0200 <mauke> \32, baby
2023-07-17 18:56:41 +0200 <int-e> probie: right, and you can use let{...}in(...) to switch to explicit layout for as many local function definitions as you like
2023-07-17 18:57:06 +0200 <geekosaur> \& is gauche too 😛
2023-07-17 18:57:15 +0200 <geekosaur> \32\&5
2023-07-17 18:57:17 +0200 <int-e> geekosaur: I'm debating whether a pragma is a comment
2023-07-17 18:58:26 +0200 <geekosaur> I'd say it isn't. I get syntax errors for using one in the wrong place (try it with e.g. {-# COMPLETE #-})
2023-07-17 19:00:22 +0200 <geekosaur> btw, re {} there's another confusion in that { means two different things
2023-07-17 19:00:35 +0200 <geekosaur> {foo,bar} vs. {;a;b;}
2023-07-17 19:00:52 +0200 <geekosaur> one's a glob, the other's a command list
2023-07-17 19:01:30 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-07-17 19:01:49 +0200 <Hecate> Unicorn_Princess: hohai
2023-07-17 19:01:50 +0200 <ncf> {;a;b;} is nothing
2023-07-17 19:02:02 +0200 <probie> An unrecognised pragma is only a warning though
2023-07-17 19:02:05 +0200 <ncf> i think you need spaces to disambiguate
2023-07-17 19:03:07 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-07-17 19:03:43 +0200 <geekosaur> probie, https://paste.tomsmeding.com/HYpvaxKe
2023-07-17 19:04:19 +0200 <geekosaur> (serious example, I am still trying to put together a promposal and found out I couldn't reuse that pragma with backward compatibility)
2023-07-17 19:04:41 +0200 <geekosaur> -m
2023-07-17 19:04:47 +0200 <probie> Sure, but `{runhaskell,-XPackageImports}<<<'module{-##-}Main{-#Deprecated"a"#-}where;import"base"Data.List;main=putStrLn(sort("Hello\x20World"))'` runs
2023-07-17 19:05:40 +0200 <geekosaur> int-e asked if pragmas counted as comments, at least one does not because you get a syntax error
2023-07-17 19:05:46 +0200 <Unicorn_Princess> Hecate, o/
2023-07-17 19:07:33 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection)
2023-07-17 19:09:49 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-07-17 19:12:04 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2023-07-17 19:14:06 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::c680)
2023-07-17 19:16:15 +0200ripspin(~chatzilla@1.145.214.25) (Remote host closed the connection)
2023-07-17 19:19:32 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 272 seconds)
2023-07-17 19:21:32 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net) (Remote host closed the connection)
2023-07-17 19:22:15 +0200mizlan(~mizlan@c-174-62-68-33.hsd1.ca.comcast.net)
2023-07-17 19:23:42 +0200kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 246 seconds)
2023-07-17 19:24:50 +0200dibblego(~dibblego@haskell/developer/dibblego) (Quit: λ)
2023-07-17 19:26:02 +0200kritzefitz(~kritzefit@debian/kritzefitz)
2023-07-17 19:27:12 +0200mango(~finn@176-151-21-224.abo.bbox.fr)
2023-07-17 19:28:23 +0200thyriaen(~thyriaen@2a01:aea0:dd4:6659:6245:cbff:fe9f:48b1) (Quit: Leaving)
2023-07-17 19:32:49 +0200 <probie> cat<<<'{-#OPTIONS_GHC-XPackageImports#-}import"base"System.Environment;main=do{[input,_,output]<-getArgs;writeFile(output)"module\x20";readFile(input)>>=appendFile(output).drop(34)}'>AddModule.hs;{ghc,--make,AddModule.hs,-o,addModule};{runhaskell,-F}<<<'{-#OPTIONS_GHC-pgmF=./addModule#-}Main{-#Warning"SpacelessMode"#-}where;main=putStrLn"hi"'
2023-07-17 19:32:59 +0200 <probie> this almost definitely counts as cheating
2023-07-17 19:33:30 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 19:35:25 +0200 <probie> namely, write a source preprocessor that adds `module ` to the start of files in the space-free dialect of Haskell, and then run it on a source file that starts with the module name. It breaks when there are other pragmas at the start of the file, but that's easily fixed
2023-07-17 19:38:02 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 258 seconds)
2023-07-17 19:40:30 +0200 <[exa]> probie: still better than perl
2023-07-17 19:40:55 +0200mango(~finn@176-151-21-224.abo.bbox.fr) (Quit: WeeChat 2.8)
2023-07-17 19:45:30 +0200trev(~trev@user/trev) (Quit: trev)
2023-07-17 19:55:34 +0200ensyde(~ensyde@2600:381:4229:8b04:2d50:ec6d:ab72:78a2)
2023-07-17 19:58:31 +0200driib(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2023-07-17 19:59:10 +0200driib(~driib@vmi931078.contaboserver.net)
2023-07-17 20:00:18 +0200ensyde(~ensyde@2600:381:4229:8b04:2d50:ec6d:ab72:78a2) (Quit: WeeChat 4.0.1)
2023-07-17 20:04:34 +0200Guest8732(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
2023-07-17 20:15:34 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-17 20:16:09 +0200dibblego(~dibblego@116-255-1-114.ip4.superloop.au)
2023-07-17 20:16:09 +0200dibblego(~dibblego@116-255-1-114.ip4.superloop.au) (Changing host)
2023-07-17 20:16:09 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-17 20:17:06 +0200danse-nr3_(~francesco@151.57.135.118) (Ping timeout: 245 seconds)
2023-07-17 20:26:50 +0200ncf(~n@monade.li) (Quit: Fairfarren.)
2023-07-17 20:27:13 +0200ncf(~n@monade.li)
2023-07-17 20:29:02 +0200 <hellwolf> [exa]: yea, I have a meetup page, it has less than 10 members atm, and many of them know each other :D Comparing to the one in Helsinki across the pond, there is 100-200 ppl...
2023-07-17 20:29:32 +0200 <hellwolf> crazy question: can GHCJS cross compile GHC itself? (probably not, but just asking, why not)
2023-07-17 20:30:16 +0200codaraxis(~codaraxis@user/codaraxis)
2023-07-17 20:30:42 +0200 <Hecate> hellwolf: latest GHC or a specific, outdated version of GHC? Also, GHCJS *specifically* or the JS backend of GHC?
2023-07-17 20:31:01 +0200 <hellwolf> latest JS backend of GHC, and latest GHC
2023-07-17 20:34:00 +0200 <geekosaur> js backend of ghc is a tech demo as yet
2023-07-17 20:34:14 +0200 <geekosaur> so my guess is not
2023-07-17 20:34:45 +0200gmg(~user@user/gehmehgeh)
2023-07-17 20:36:02 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2023-07-17 20:37:51 +0200 <hellwolf> Would... would it ever?
2023-07-17 20:38:13 +0200dumptruckman(~dumptruck@143-42-239-71.ip.linodeusercontent.com) (Quit: ZNC - https://znc.in)
2023-07-17 20:38:16 +0200 <hellwolf> imaging running GHC in browser without using a cloud service paid by someone who doesn't have the money
2023-07-17 20:38:27 +0200dibblego(~dibblego@haskell/developer/dibblego) (Quit: λ)
2023-07-17 20:38:29 +0200 <geekosaur> I don't see wy not, it'll just take time and more work
2023-07-17 20:39:00 +0200 <geekosaur> that said, I imagine the resule would be slow as molasses
2023-07-17 20:39:05 +0200 <geekosaur> *result
2023-07-17 20:42:08 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-07-17 20:42:26 +0200dibblego(~dibblego@116-255-1-114.ip4.superloop.au)
2023-07-17 20:42:26 +0200dibblego(~dibblego@116-255-1-114.ip4.superloop.au) (Changing host)
2023-07-17 20:42:26 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-17 20:43:39 +0200Nosrep(~Nosrep@user/nosrep) (Remote host closed the connection)
2023-07-17 20:44:03 +0200dumptruckman(~dumptruck@143-42-184-47.ip.linodeusercontent.com)
2023-07-17 20:45:01 +0200Nosrep(~Nosrep@user/nosrep)
2023-07-17 20:45:20 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14::ac08)
2023-07-17 20:47:01 +0200 <monochrom> This is what you get for FOSS. (Oh don't get me wrong, paid software has the opposite problems...)
2023-07-17 20:47:14 +0200 <monochrom> (So, this is what you get for human nature.)
2023-07-17 20:47:39 +0200 <geekosaur> I strongly suspect this is being funded and someone wanted to see results early so got a tech demo
2023-07-17 20:48:59 +0200deb776[m](~deb776ted@2001:470:69fc:105::3:84c5)
2023-07-17 20:49:06 +0200 <[exa]> hellwolf: re ghcjs, actually I saw some talk which kinda demonstrated it, iirc from zurihac, but maybe that was the wasm backend
2023-07-17 20:49:21 +0200 <monochrom> That sounds exactly how I work. Before the deadline for the thesis proposal: intensive work and impressive proposal. After submitting that: Yeah let's chill out on IRC and do nothing. >:)
2023-07-17 20:49:29 +0200 <[exa]> hellwolf: btw it's stockholm then? :D
2023-07-17 20:51:00 +0200 <hellwolf> [exa]: oh, I think you mean Ben Lynn's MacGyver's Haskell :)
2023-07-17 20:51:09 +0200 <hellwolf> [exa]: no, actually Tallinn/Estonia :)
2023-07-17 20:51:27 +0200 <[exa]> yeah likely, it looked like a lot of stuff running in the browser there
2023-07-17 20:52:00 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14::ac08) (Remote host closed the connection)
2023-07-17 20:52:02 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-17 20:52:03 +0200 <hellwolf> It was, and it was wasm indeed. Close haskell 98 though.
2023-07-17 20:52:08 +0200 <hellwolf> *close to
2023-07-17 20:52:27 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
2023-07-17 20:52:40 +0200 <[exa]> re community, it may just take time
2023-07-17 20:53:03 +0200 <[exa]> community building is _hard_
2023-07-17 20:53:25 +0200 <hellwolf> geekosaur: funding is overrated, I have heard that you can launch a coin with cute dog face on it and you can fund GHC 20 years with that money. Talking about humanity priority.
2023-07-17 20:54:29 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2023-07-17 20:54:32 +0200 <[exa]> hellwolf: compared to how easy it is there's strikingly low amount of funding received that way. :D
2023-07-17 20:54:54 +0200 <[exa]> btw geekosaur might have been pointing to a grant timing out to "show papers" phase
2023-07-17 20:55:24 +0200 <monochrom> So we should go out and scam people?
2023-07-17 20:56:11 +0200 <monochrom> Oh the research world has its dose of scammers alright.
2023-07-17 20:56:24 +0200 <monochrom> I guess s/dose/share/
2023-07-17 20:56:41 +0200 <[exa]> that's pretty cool on bitcoin, most scammy folks migrated there
2023-07-17 20:58:08 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
2023-07-17 20:59:32 +0200 <hellwolf> Sorry for the digression, I am a bit disillusioned about the state of the affairs. Back to Haskell.
2023-07-17 21:00:03 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2023-07-17 21:00:10 +0200 <monochrom> :)
2023-07-17 21:00:17 +0200 <[exa]> hellwolf: there's always #-offtopic
2023-07-17 21:00:31 +0200 <[exa]> also do you have estonian haskell channel?
2023-07-17 21:02:58 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de)
2023-07-17 21:07:07 +0200 <hellwolf> No I don't, only the meetup page. There used to be a slack server, and there is this https://haskell.ee/ and I met many of them.
2023-07-17 21:07:56 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 245 seconds)
2023-07-17 21:08:59 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-07-17 21:10:10 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-07-17 21:13:34 +0200new(~new@ool-18bbef1a.static.optonline.net)
2023-07-17 21:16:49 +0200 <new> Hi, im reading "Learn yourself a haskell for good", and i dont understand this quote when learning about typeclass and type
2023-07-17 21:16:49 +0200 <new> > To join Num, a type must already be friends with Show and Eq.
2023-07-17 21:16:50 +0200 <new> I know that typeclass is like Interface, so it looks like either Show or Eq should have something like implemented the Num typeclass in their :i
2023-07-17 21:16:50 +0200 <new> But using :i on Num Show or Eq I don't see any link to one another.
2023-07-17 21:16:50 +0200 <lambdabot> <hint>:1:12: error: parse error on input ‘,’
2023-07-17 21:16:51 +0200 <new> So if I have a type that wants to implement Num, how do I know I must first implements Show and Eq? Will the compiler show error?
2023-07-17 21:16:51 +0200 <new> Thank you
2023-07-17 21:20:09 +0200 <monochrom> I don't know how "like interface" helps.
2023-07-17 21:20:24 +0200 <monochrom> and the "friends" analogy is also highly broken.
2023-07-17 21:20:51 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-17 21:21:09 +0200 <monochrom> I would think my own lecture notes does it justice. http://www.cs.utoronto.ca/~trebla/CSCC24-2023-Summer/04-haskell-types-2.html
2023-07-17 21:21:23 +0200 <mauke> does Num still require Show and Eq?
2023-07-17 21:21:28 +0200 <monochrom> No.
2023-07-17 21:21:28 +0200 <mauke> I thought they got rid of that
2023-07-17 21:21:34 +0200 <monochrom> Right.
2023-07-17 21:21:35 +0200 <new> oh
2023-07-17 21:21:46 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 250 seconds)
2023-07-17 21:21:50 +0200 <monochrom> In the past, Num was a subclass of Show and Eq.
2023-07-17 21:22:13 +0200 <monochrom> Today, not any more. However, you can still learn the subclassing concept from Ord and Eq.
2023-07-17 21:22:23 +0200 <mauke> yeah, but :i Ord produces massive output
2023-07-17 21:22:52 +0200 <mauke> 'class Eq a => Ord a' is in there somewhere if you know what you're looking for :-)
2023-07-17 21:22:53 +0200 <monochrom> Well, Integral and Num then. :)
2023-07-17 21:23:02 +0200 <mauke> ah, that's better
2023-07-17 21:23:04 +0200 <new> right
2023-07-17 21:23:19 +0200 <new> meaning, if i wants to implement Ord, I have to implement everything in Eq
2023-07-17 21:23:24 +0200 <mauke> yes
2023-07-17 21:23:31 +0200 <monochrom> "class Eq a => Ord a" is also in my lecture notes. And yes that should be where you should look. </shameless plug>
2023-07-17 21:23:33 +0200 <new> really helpful thank you for all your help
2023-07-17 21:23:50 +0200 <new> this is my second attempt learning haskell
2023-07-17 21:24:27 +0200 <new> I learned haskell to learn F# for work. And after a while I love F# so much that I goes back to haskell because FP is so beautiful
2023-07-17 21:24:50 +0200 <mauke> my second attempt was the successful one :-)
2023-07-17 21:25:50 +0200 <new> the initial attempt was rushed because i needed to get a sense of FP basic concepts like monad and functor to use F# quick. Now I have a better grasp and actually enjoy FP, it's time to go back to haskell again :)
2023-07-17 21:26:12 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2023-07-17 21:28:26 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2023-07-17 21:32:06 +0200 <nick4> so I wasted most of the day trying to install hoogle locally from cabal with no success at all. I decided to just try stack, and it literally worked first try. Is stack, just better to use than cabal? How do I decide which package manager to use?
2023-07-17 21:33:00 +0200 <nick4> I know a lot of people have complained about cabal (that I have read online), but this is the first issue I've had. So I'm just trying to see what opinions are out there between cabal/stack
2023-07-17 21:33:28 +0200 <geekosaur> stack does things like download matching ghc versions for things
2023-07-17 21:34:12 +0200 <sclv> for installing software stack could well be better, because you never need to have two different dep sets and merge them
2023-07-17 21:34:15 +0200 <sclv> stackage solved that for you
2023-07-17 21:34:16 +0200 <geekosaur> and won't have picked up all the crypton churn in the LTS yet
2023-07-17 21:34:23 +0200 <sclv> but note that cabal works with stackage as well!
2023-07-17 21:34:34 +0200 <nick4> doesn't cabal do that? I mean, it tries to match the base version at least with whatever you're doing? Am I missing something?
2023-07-17 21:34:39 +0200 <sclv> the current issue is really fundamentally just that there's been a very recent breakage in crypto churn
2023-07-17 21:34:54 +0200 <sclv> and stackage has a pinned set that has not yet faced that issue
2023-07-17 21:35:14 +0200 <sclv> cabal uses whatever ghc you pass it with the -w flag, it can't pick a different ghc version for you
2023-07-17 21:35:21 +0200 <sclv> so that means it uses the base you passed it
2023-07-17 21:36:55 +0200 <sclv> but in any case, you're experiencing the fact that hoogle latest is busted w/r/t the crypto changes, and stackage doesn't have that problem. so if you used cabal with the stackage resolver you'd be fine.
2023-07-17 21:37:27 +0200 <nick4> so you would use stack when you're just trying to build an executable from hackage? But you think cabal is still good to use in projects?
2023-07-17 21:37:32 +0200 <sclv> i would always use cabal
2023-07-17 21:37:35 +0200 <sclv> personally
2023-07-17 21:37:47 +0200 <sclv> but i might use the stackage resolver in conjunction with it for just building executables :-)
2023-07-17 21:38:07 +0200 <nick4> I don't know, I've tried building hoogle several times the past month, and have given up every instance because I didn't want to devote the time to fix it
2023-07-17 21:38:09 +0200 <sclv> i don't think stack is any worse in this case -- just personally i like to stick to one thing
2023-07-17 21:38:17 +0200 <nick4> and today I just said f it and have been focusing on that
2023-07-17 21:38:25 +0200 <sclv> again -- cabal with the stackage resolver gives the same benefit you just got
2023-07-17 21:38:58 +0200 <nick4> for how long has this crypto issue been going on with hoogle and cabal? because if its recent, it seems that hoogle often has issues with cabal?
2023-07-17 21:39:11 +0200 <sclv> its very recent, and its not just hoogle. its the entire network ecosystem
2023-07-17 21:39:28 +0200 <sclv> the cryptonite package went unmaintained, and the maintainer refused to hand over ownership
2023-07-17 21:39:41 +0200 <sclv> so it was forked into crypton, but not all packages are uniformly updated to use the fork
2023-07-17 21:39:46 +0200 <nick4> has this been going on for hours? days? weeks? months?
2023-07-17 21:39:51 +0200 <sclv> about a month
2023-07-17 21:39:57 +0200 <nick4> ok that makes sense
2023-07-17 21:40:36 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-07-17 21:40:42 +0200 <monochrom> I use cabal. I have never run into problems.
2023-07-17 21:40:46 +0200 <sclv> basically we had one very ornery maintainer who wrote and controlled the crypto ecosystem, but did not play well with others, and now that they've walked away and taken their ball with them, we're all picking up the pieces
2023-07-17 21:41:31 +0200 <nick4> so how do you use the stackage resolver? This is the first I'm hearing about it.
2023-07-17 21:41:47 +0200 <nick4> I'm still trying to install hoogle on my debian machine, so I can try doing that.
2023-07-17 21:41:50 +0200 <monochrom> I don't use stack because I don't have disk space for stack automatically deciding that I need 10 versions of GHC.
2023-07-17 21:42:01 +0200 <nick4> you also didn't suggest using stackage
2023-07-17 21:42:07 +0200 <sm> nick4: stack makes certain kinds of install (things which are in the stackage version you're using) more likely to work reliably, as you saw. cabal makes certain other kinds of install (things which are not in the stackage snapshot) possible.
2023-07-17 21:42:33 +0200alexbiehl(~alexbiehl@ip4d14fda4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2023-07-17 21:42:38 +0200 <sclv> stackage provides freeze files as "cabal.config" files for each lts (they're sort of undocumented on its side)
2023-07-17 21:42:39 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6)
2023-07-17 21:42:46 +0200 <sm> also stack can optionally install ghc and on windows, extra libs, for you. But nowadays it can let ghcup handle that and experts mostly prefer that.
2023-07-17 21:42:53 +0200 <sclv> one can either download them and use them in a project directly
2023-07-17 21:43:02 +0200 <sclv> or create a cabal.project file that remotely imports them https://cabal.readthedocs.io/en/stable/cabal-project.html#conditionals-and-imports
2023-07-17 21:44:12 +0200 <sclv> in this case if i remember the story i pieced together, you first got sufficient advice to avoid the package issue without that hassle -- just setting the constraint on crypton like so `cabal install hoogle --constraint='crypton-x509 < 0.0'`
2023-07-17 21:44:14 +0200 <nick4> oh, so you're saying instead of building the package through cabal, you actually download the cabal file and build it like a local project?
2023-07-17 21:44:34 +0200 <sclv> then it was just you had the bad luck of using a ghc with a known bug on c headers, and stack picking a ghc without that bug
2023-07-17 21:44:49 +0200 <geekosaur> no, you build through cabal, you just tell cabal to use the same dependencies stack would use
2023-07-17 21:44:52 +0200 <sm> in all cases, cabal and stack build packages from source - there's no binary downloading
2023-07-17 21:45:18 +0200 <sclv> geekosaur: right, but you can't do it from hackage directly, you need to use the repo or unpack to use the freeze or project stuff
2023-07-17 21:45:23 +0200 <geekosaur> (stack calls this a resolver)
2023-07-17 21:45:59 +0200 <sclv> in general one can use ghcup to make sure you're on "recommended" and not known-buggy versions of ghc.
2023-07-17 21:46:28 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-17 21:47:23 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f161:e9a5:5038:6be6) (Ping timeout: 264 seconds)
2023-07-17 21:48:19 +0200 <nick4> yes I know that, but I used like 7 different versions of ghc and two different versions of cabal using ghcup
2023-07-17 21:48:32 +0200 <nick4> been trying to add all sorts of constraints etc etc
2023-07-17 21:48:40 +0200ft(~ft@p508dbe50.dip0.t-ipconnect.de)
2023-07-17 21:48:44 +0200 <sclv> right but my understanding was that single constraint and _any_ nonbuggy ghc would work
2023-07-17 21:48:48 +0200 <nick4> what I'm trying to figure out is how you actually do that with cabal because it makes no sense to me
2023-07-17 21:48:51 +0200 <sclv> you just stumbled into a matrix of two problems
2023-07-17 21:49:03 +0200 <nick4> it feels like more than two problems =/
2023-07-17 21:49:03 +0200 <sclv> and you ended up exploring it in an accidentally very suboptimal order
2023-07-17 21:49:25 +0200 <nick4> are you saying there's a way to install hoogle through cabal right now? or is it impossible because of the bugs?
2023-07-17 21:49:25 +0200 <sclv> ok i literally only know of two from what i saw -- the crypto issue, solvable by a single constraint, and the buggy header issue
2023-07-17 21:49:38 +0200 <sclv> its literally possible with exactly the command i pasted above
2023-07-17 21:49:41 +0200 <nick4> yeah, i haven't mentioned every issue i've had =/
2023-07-17 21:49:41 +0200 <sclv> and any nonbuggy ghc
2023-07-17 21:50:02 +0200 <nick4> you're talking about cabal install hoogle --constraint='crypton-x509 < 0.0?
2023-07-17 21:50:15 +0200 <nick4> I'm going to run that on my debian machine right now, and I'll let you know about the output.
2023-07-17 21:50:25 +0200 <sclv> i'll test too, to make sure i'm not blowing smoke
2023-07-17 21:51:10 +0200 <nick4> which version of ghc should I have set from ghcup? 9.2.8?
2023-07-17 21:51:33 +0200 <sclv> i'd imagine that works, idk. i'm using 9.4.5 locally typically
2023-07-17 21:51:46 +0200 <sclv> that's the one i'm testing with at least
2023-07-17 21:51:53 +0200 <sclv> the 9.2 series is ancient
2023-07-17 21:52:08 +0200 <nick4> ok I'll try 9.2.8 since its running, then 9.4.5 if it doesn't work.
2023-07-17 21:53:42 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-17 21:57:40 +0200 <monochrom> cabal ... -wghc-?.?.? --constraint='????? < 0.0'
2023-07-17 21:59:19 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 21:59:35 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection)
2023-07-17 21:59:48 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 22:02:08 +0200 <monochrom> When I use hexchat, or calibre, or fcitx, I just let ubuntu choose which version and where to install to and what compile-time options to turn on or off. This is because for my use case of them, it doesn't matter.
2023-07-17 22:02:33 +0200 <monochrom> But I do not go around saying "therefore ubuntu is easier than building your own".
2023-07-17 22:02:58 +0200 <monochrom> If some non-default option is important for other people, it is not easier for them.
2023-07-17 22:03:36 +0200 <monochrom> Now just do hexchat, calibre, fcitx : ubuntu :: haskell : stack
2023-07-17 22:03:56 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-07-17 22:04:25 +0200 <monochrom> And damn English prepositions. s/important for/important to/
2023-07-17 22:04:45 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection)
2023-07-17 22:04:59 +0200trev(~trev@user/trev)
2023-07-17 22:05:35 +0200 <monochrom> People debate like "stack works out of the box" vs "no, cabal works out of the box". I don't understand why.
2023-07-17 22:05:40 +0200trev(~trev@user/trev) (Client Quit)
2023-07-17 22:05:52 +0200 <monochrom> It's almost like religious wars among ubuntu, gentoo, nix.
2023-07-17 22:05:55 +0200 <monochrom> Oh wait.
2023-07-17 22:07:56 +0200 <mauke> stack just rubs me the wrong way because of the FUD
2023-07-17 22:08:58 +0200 <Square> Is there some way of showing the type of function for a certain instance in ghci. Say for fmap for "instance Functor ((->) r) ", instead of the class generic variant.
2023-07-17 22:09:04 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 258 seconds)
2023-07-17 22:10:28 +0200 <monochrom> There was even a time when I didn't want to use cabal (and stack didn't even exist) and I simply point my web browser to hackage and downloaded some tarballs and ran Setup.hs myself.
2023-07-17 22:10:35 +0200 <mauke> :t fmap @((->) Char)
2023-07-17 22:10:36 +0200 <lambdabot> error: parse error on input ‘->’
2023-07-17 22:13:24 +0200 <monochrom> Even today, I still keep around a shell script that runs Setup.hs for call-stack and then for HUnit. This is because a few years ago I made students use HUnit for homework, and "cabal update" would be inappropriate because their school accounts did not have enough disk quota for the humongous 00-index.tar. (So nevermind stack.)
2023-07-17 22:13:58 +0200 <monochrom> Here be a use case in which both cabal and stack would be impossible.
2023-07-17 22:15:09 +0200 <Square> mauke, thanks. Works!
2023-07-17 22:16:02 +0200 <monochrom> Actually cabal was slightly possible because the disk quota was just enough for 00-index.tar, so some students had success because they had no other files.
2023-07-17 22:16:28 +0200 <carbolymer> huh, I've discovered today that closed type families don't really protect you from referring to non-existing instances. so why use closed type families over open?
2023-07-17 22:19:05 +0200 <Square> Unless you get a better answer. There are situations closed families are an requirement for certain functionality iirc.
2023-07-17 22:19:18 +0200 <Square> is an*
2023-07-17 22:20:12 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 22:23:02 +0200fendor(~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) (Remote host closed the connection)
2023-07-17 22:23:20 +0200 <carbolymer> yeah I imagine there exists a purpose
2023-07-17 22:23:38 +0200new(~new@ool-18bbef1a.static.optonline.net) (Ping timeout: 246 seconds)
2023-07-17 22:24:38 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 260 seconds)
2023-07-17 22:29:16 +0200 <sm> mauke: what FUD ?
2023-07-17 22:29:54 +0200 <mauke> "Hackage documentation generation is not reliable. For up to date documentation, please see: http://www.stackage.org/package/http-client."
2023-07-17 22:30:57 +0200 <nick4> unfortunately i got a build error on my debian machine with `cabal install hoogle --constraint='crypton-x509 < 0.0'`. Here's the pastebin of the error https://paste.tomsmeding.com/Osm8xdGd. I just don't know what to do. That's with ghc-9.4.5
2023-07-17 22:31:08 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 22:31:34 +0200 <sm> is hackage documentation generation reliable ? I thought sometimes it failed and that's why there's a manual upload feature
2023-07-17 22:31:57 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Remote host closed the connection)
2023-07-17 22:32:42 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 22:33:29 +0200 <sclv> yeah i got that too nick4 -- its because of buggy bounds on the tls stuff -- precisely another reason its good (despite the pain) that it was forked, sigh
2023-07-17 22:33:36 +0200 <sclv> its worth tracing down tho and i guess i will
2023-07-17 22:33:55 +0200 <nick4> thanks at least I know its not me now
2023-07-17 22:36:50 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 246 seconds)
2023-07-17 22:39:43 +0200 <geekosaur> sm, the main reason for hackage documentation build failures is it's done as part of package building, which can fail because there's only one ghc version available and a very limited set of system libraries etc.
2023-07-17 22:39:56 +0200 <sm> yes, I know
2023-07-17 22:40:06 +0200 <geekosaur> it *used* to be fairly unreliable but that was fixed long ago
2023-07-17 22:40:19 +0200 <geekosaur> like, years
2023-07-17 22:40:34 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 252 seconds)
2023-07-17 22:40:51 +0200 <sm> the effect is the same surely to a user ? Some packages/versions will not have the docs they're looking for ?
2023-07-17 22:41:08 +0200 <geekosaur> yeh
2023-07-17 22:42:03 +0200 <sm> I see no value judgement in the statement, it's just factual. But I'm sure we could get it reworded
2023-07-17 22:42:51 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 246 seconds)
2023-07-17 22:44:14 +0200 <sm> or removed, if it's just obsolete. (I assume some uploaders fail to manually upload or are slow about it, but maybe the percentage is ignorable)
2023-07-17 22:45:50 +0200 <mauke> the statement is information-free
2023-07-17 22:46:00 +0200 <mauke> it tells me nothing
2023-07-17 22:46:47 +0200 <sm> how could we measure how many packages have haddocks currently ?
2023-07-17 22:48:02 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2023-07-17 22:48:25 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 22:50:04 +0200 <sm> https://www.yesodweb.com/blog/2014/12/use-stackage-for-docs was the announcement of this message, with a little discussion. It sounds like he was willing to reword it but got busy
2023-07-17 22:53:59 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
2023-07-17 22:54:28 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2023-07-17 22:54:40 +0200 <mauke> yeah, that's stupid
2023-07-17 22:56:22 +0200 <monochrom> Oh, https://hackage.haskell.org/package/free-game doesn't have docs built. But that's because extra C libs.
2023-07-17 22:56:44 +0200 <mauke> ... and apparently he solved it the next day by automating documentation generation
2023-07-17 22:56:58 +0200 <monochrom> I wouldn't be surprised that by now (even since several years ago), doc build failure iff extra C libs.
2023-07-17 22:57:21 +0200 <monochrom> in which case I don't bet that stackage is any better.
2023-07-17 22:57:57 +0200 <mauke> I like how the "my next blog post" link goes to the article itself
2023-07-17 22:59:04 +0200 <monochrom> But I'm disillusioned (about humanity in general, you see). Please still FUD about recursion taking stack space, like 3 decades since gcc -O2 does TCO.
2023-07-17 22:59:18 +0200 <monochrom> err, s/Please/People/
2023-07-17 22:59:25 +0200 <monochrom> (Please don't FUD about that! heh)
2023-07-17 22:59:57 +0200 <mauke> 'my main motivation here is explaining my reasoning for these changes, so I don't get a flood of new inquiries as to "why do you have such a strange description field in all your packages?"' [proceeds to not link to the blog post anywhere, especially not the package description field]
2023-07-17 23:00:06 +0200 <geekosaur> in 2023 FUD is the norm 😞
2023-07-17 23:00:15 +0200 <monochrom> And https://queue.acm.org/detail.cfm?id=3212479 points out a ton of updated information about C and real metal.
2023-07-17 23:00:29 +0200 <monochrom> err, s/updated/outdate/
2023-07-17 23:00:43 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-17 23:00:52 +0200 <monochrom> Gosh I can't write today. It's even at the word level.
2023-07-17 23:01:15 +0200yinzzz
2023-07-17 23:02:13 +0200 <monochrom> Oh wait, "my next blog post" link going to the article itself. That's recursion. >:D
2023-07-17 23:02:29 +0200 <mauke> tail recursion, even
2023-07-17 23:05:43 +0200michalz(~michalz@185.246.207.218) (Remote host closed the connection)
2023-07-17 23:06:10 +0200Guest8732(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2023-07-17 23:07:50 +0200 <darkling> This article's really interesting. Thanks, monochrom.
2023-07-17 23:08:10 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 272 seconds)
2023-07-17 23:13:52 +0200nick4(~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 240 seconds)
2023-07-17 23:16:20 +0200 <int-e> well "not just a fast PDP-11" is cute
2023-07-17 23:20:04 +0200Square(~Square@user/square) (Ping timeout: 250 seconds)
2023-07-17 23:20:32 +0200justsomeguy(~justsomeg@user/justsomeguy)
2023-07-17 23:21:12 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861)
2023-07-17 23:21:36 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-17 23:26:12 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:9c68:5d81:ef7b:a861) (Ping timeout: 245 seconds)
2023-07-17 23:32:04 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836)
2023-07-17 23:35:15 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2023-07-17 23:36:12 +0200alexbiehl(~alexbiehl@2a02:8108:323f:ca14:91cb:37cc:152b:5836) (Ping timeout: 240 seconds)
2023-07-17 23:37:16 +0200nick4(~nick@2600:100d:b126:6e75:7c64:2bc8:586e:a3ac)
2023-07-17 23:38:34 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 272 seconds)
2023-07-17 23:39:14 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 252 seconds)
2023-07-17 23:39:15 +0200son0p(~ff@181.136.122.143)
2023-07-17 23:39:30 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-07-17 23:40:17 +0200 <sclv> alright, i hunted down the underlying issue.
2023-07-17 23:40:35 +0200 <sclv> hoogle depends both on warp-tls and connection
2023-07-17 23:40:49 +0200 <sclv> the former is updated to use the forked crypto ecosystem and the latter isn't
2023-07-17 23:41:07 +0200 <monochrom> :(
2023-07-17 23:41:10 +0200 <sclv> the other issues are just like weird mismatches that come from forcing hoogle back onto prior versions that don't have this given issue
2023-07-17 23:42:39 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-17 23:42:59 +0200gurkenglas(~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-07-17 23:44:26 +0200 <sclv> and doh, i see this is fixed in the hoogle repo
2023-07-17 23:45:29 +0200 <sclv> nick4: the correct answer to all the issues turns out to be "this is fixed by using the hoogle repo from github, which is ahead of the release"
2023-07-17 23:45:54 +0200 <int-e> sclv: good to know
2023-07-17 23:46:17 +0200 <monochrom> Ugh "fixed in HEAD" rears its head again.
2023-07-17 23:46:41 +0200 <int-e> brain surgery is difficult
2023-07-17 23:49:14 +0200gurkenglas(~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de)
2023-07-17 23:53:42 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
2023-07-17 23:54:08 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)