Home liberachat/#haskell: Logs Calendar

Logs on 2023-07-17 (liberachat/#haskell)

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

All times are in UTC on 2023-07-17.