Home liberachat/#haskell: Logs Calendar

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

00:01:28 pleo joins (~pleo@user/pleo)
00:01:28 × Tuplanolla quits (~Tuplanoll@91-159-69-173.elisa-laajakaista.fi) (Quit: Leaving.)
00:07:42 dzdcnfzd joins (~dzdcnfzd@pool-108-54-250-165.nycmny.fios.verizon.net)
00:07:53 aegon joins (~mike@174.127.249.180)
00:08:45 <aegon> hey all, i'm trying to optimize some docker containers for size using stack... the starting container is ~2 gigs, after a (stack build && stack install && rm -Rf ./.stack-work && rm -Rf ~/.stack)
00:08:50 <aegon> it balloons to almost 10 gigs
00:09:16 <aegon> any idea where all those gigs are coming from? are there artifacts placed elsewhere than ~/.stack or ./.stack-work
00:11:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
00:13:51 son0p joins (~ff@181.136.122.143)
00:15:07 × werneta quits (~werneta@137.79.230.15) (Ping timeout: 260 seconds)
00:16:27 <DigitalKiwi> is not using stack an option
00:16:50 <aegon> not one without a high cost
00:16:52 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
00:17:45 <aegon> i'm just kinda curous, would be open to moving away from it but wher else would these gigs be going? i thought in docker at least, everything with an && was treated as one delta so removing .stack / .stack-work should be the majority of the excess
00:18:03 <aegon> but removing those folders only saved me ~ 800 megs or so in final image size
00:20:28 <aegon> i guess at the end of the day storage is dirt cheap, 10 gigs seems excessive though
00:21:10 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
00:21:54 werneta joins (~werneta@137.79.230.15)
00:22:27 <jackdk> I use nix these days, but I understand that's a massive jump. But 2MB static binaries built against musl are tasty
00:22:56 <dragestil> kinda related but i find haskell binaries rather big
00:23:16 <geekosaur> 10GB big seems unlikely though
00:23:20 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 248 seconds)
00:23:52 <geekosaur> (haskell binaries are linked statically to most things, which bloats them considerably. but dynamic linking poses a bunch of other problems)
00:24:17 <geekosaur> (as Arch likes to demonstrate regularly, since they force dynamic linking)
00:25:40 × dzdcnfzd quits (~dzdcnfzd@pool-108-54-250-165.nycmny.fios.verizon.net) (Quit: Client closed)
00:26:25 <dragestil> i see
00:26:38 × stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!)
00:26:41 <aegon> yeah, i'm doing a test build to see how big the bin is, but the wholse .stack-work foldier after a build is ~5 gigs
00:26:59 <dragestil> I wonder why dynamic linking is a problem with haskell, but not some other langs
00:27:14 <aegon> i should bite the nix bullet, i just got comfy with kubernetes
00:27:15 <geekosaur> because the dependencies are *really* tight
00:27:48 <aegon> i'm pretty sure my exe is dynamically linked with libzmq but it might be be static i'll check that too
00:27:54 <geekosaur> ghc exposes module internals for cross-module optimization, which means the ABI is much larger than you would expect, and must match precisely or you get runtime crashes
00:28:30 <geekosaur> so you can't for example simply replace a shared object with a new one, you have to recompile everything using it because the ABI may have changed
00:28:41 × xff0x quits (~xff0x@2405:6580:b080:900:22c7:1522:c1f2:cdfc) (Ping timeout: 258 seconds)
00:28:42 <dragestil> ok
00:29:07 <aegon> i'm updating zeromq4-haskell bindings with some of the more recent draft apis it looks like the maintainer hasn't done anything with the project in 3 years, whats the etiquette for republishing to hackage :?
00:29:56 <geekosaur> try to contact the maintainer to be added as a co-maintainer. if you get no response in ~3 months you can request a package takeover on the libraries list
00:31:08 <dragestil> btw i've been playing with haddock code. it uses the TTG pattern (a new type instance for the HsSyn ast param thingie) but does not offer Data instance so is a pain to try to look into it
00:31:26 <aegon> kk I'll reach out now then. Related, these drafts require linking to functions only valid if the library was built with a preprocessor define, afaik theres no artifact left around to determing if the symbols will be present. Is there a way to offer a cabal or stack flag so i can conditionally bind in the .hsc file?
00:32:21 <dragestil> e.g. I can't use showAstData / pprTrace to print out the ast
00:32:28 <aegon> hmm.. that would also have ramifications to non .hsc modules
00:32:48 <geekosaur> no. in fact that sitation is supposed to not happen and is a violation of the Cabal (not cabal/stack but the package system) standard, precisely because there's no good way to test for it
00:33:32 <geekosaur> dragestil, talk to Hecate, maybe one can be added
00:34:22 <dragestil> geekosaur: ok thanks for the pointer
00:35:46 <aegon> geekosaur: darn, so maybe this is why the origonal maintainer didn't bother with them
00:36:13 <jackdk> aegon: you can wire cabal into a configure script if things get dire. Set `build-type: Configure`, make `Setup.hs` contain `main = defaultMainWithHooks autoconfUserHooks` and write a configure script (using autoconf and autoheader to generate a `config.h` might go?)
00:36:15 <jackdk> https://cabal.readthedocs.io/en/3.4/cabal-package.html#system-dependent-parameters
00:37:18 <jackdk> I speak fluent autoconf and wrote something that used zmq many years ago, so maybe I can help if you get stuck
00:38:42 <aegon> jackdk: thanks! :) sounds promising i'll readthedocs to start, likely wont be tackling it till july but will start picking away at it
00:42:12 × feliix42 quits (~felix@gibbs.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in)
00:42:47 feliix42 joins (~felix@gibbs.uberspace.de)
00:43:34 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
00:44:01 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
00:48:04 × pleo quits (~pleo@user/pleo) (Ping timeout: 248 seconds)
00:50:43 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:52:23 × lottaquestions quits (~nick@2607:fa49:5041:a200:e93:cdbf:1805:a1c8) (Ping timeout: 255 seconds)
00:53:30 motherfsck joins (~motherfsc@user/motherfsck)
00:55:30 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
00:58:17 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
00:59:49 <Axman6> aegon: I assume this docker image is for building using stack, and not deploying?
00:59:54 <aegon> welp, that was dumb, i was adding the src directory into the container that already had .stack-work files in it, went from adding ~8gigs to adding ~ 30 megs
01:00:14 <Axman6> yeah... don't include the host's .stack-work :P
01:00:22 × benin quits (~benin@183.82.27.33) (Ping timeout: 246 seconds)
01:01:22 <aegon> :X yeah, my bad. thats a suprising amount of artifacts but i think this stack work had artifacts from 2 ghc 8.x builds and ghc 9.x
01:01:30 <Axman6> when it comes to deployment images, it is possible to make very small images with static linking - I had a web service that ended up with an 8MB image (can't remember how though)
01:01:38 × jargon quits (~jargon@184.101.186.108) (Remote host closed the connection)
01:01:59 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
01:02:43 benin joins (~benin@183.82.204.191)
01:03:41 × mixfix41 quits (~sdenynine@user/mixfix41) (Ping timeout: 256 seconds)
01:07:56 lainon joins (~lainon@2601:7c0:c500:4d20:758f:bedd:f48d:1829)
01:11:44 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:12:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
01:12:42 × raym quits (~raym@user/raym) (Quit: leaving)
01:13:21 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:14:56 <aegon> Axman6: that woudl be super cool to know if you remember :)
01:15:53 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
01:17:51 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:57 × Alleria quits (~textual@user/alleria) (Read error: Connection reset by peer)
01:30:53 × lainon quits (~lainon@2601:7c0:c500:4d20:758f:bedd:f48d:1829) (Quit: Textual IRC Client: www.textualapp.com)
01:38:49 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds)
01:42:50 king_gs joins (~Thunderbi@187.201.173.69)
01:42:53 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:45:03 × YoungFrog quits (~youngfrog@2a02:a03f:c21b:f900:4407:6901:d62:3299) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
01:45:23 YoungFrog joins (~youngfrog@2a02:a03f:c21b:f900:9057:83fb:8876:5481)
01:48:20 × king_gs quits (~Thunderbi@187.201.173.69) (Quit: king_gs)
01:50:56 frost joins (~frost@user/frost)
02:03:54 dyeplexer joins (~dyeplexer@user/dyeplexer)
02:10:33 × td_ quits (~td@muedsl-82-207-238-033.citykom.de) (Ping timeout: 256 seconds)
02:12:32 td_ joins (~td@muedsl-82-207-238-107.citykom.de)
02:20:19 nate4 joins (~nate@98.45.169.16)
02:25:17 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
02:25:40 × hughjfch1 quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
02:27:59 × frost quits (~frost@user/frost) (Quit: Ping timeout (120 seconds))
02:29:34 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
02:30:28 frost joins (~frost@user/frost)
02:30:37 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
02:30:41 × benin quits (~benin@183.82.204.191) (Ping timeout: 246 seconds)
02:36:57 × mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
02:37:44 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:37:44 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:37:44 finn_elija is now known as FinnElija
02:38:00 mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001)
02:42:11 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
02:42:16 lottaquestions joins (~nick@2607:fa49:5041:a200:617:f64b:a96:e051)
02:49:04 × jinsun__ quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
02:52:11 jinsun joins (~jinsun@user/jinsun)
02:54:31 <shapr> wait, why doesn't hpc work on internal libraries?!
02:58:45 <Axman6> yeah hpc, why you gotta be like that?
02:59:51 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:05:39 <shapr> :-P
03:07:54 <shapr> @paste
03:07:54 <lambdabot> A pastebin: https://paste.debian.net/
03:08:19 <shapr> Axman6: I mean https://paste.debian.net/1244258/
03:09:23 <shapr> I wrote a minimum viable prototype for a feedback loop between quickcheck and hpc ( https://wiki.haskell.org/Haskell_program_coverage ) and now hpc doesn't work for internal libraries?
03:13:47 <Axman6> hmm, sounds like a good #ghc question
03:14:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
03:15:37 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:17:03 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:21:55 <shapr> yeah, gotta finish reading the cabal docs on internal libraries first. I have to ask an informed question!
03:22:19 <shapr> specifically: https://cabal.readthedocs.io/en/3.6/cabal-package.html#sublibs
03:23:52 × slack1256 quits (~slack1256@186.11.82.227) (Ping timeout: 258 seconds)
03:24:04 × whosthis quits (~whosthis@97-122-203-212.hlrn.qwest.net) (Read error: Connection reset by peer)
03:42:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
03:47:30 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
03:53:10 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 240 seconds)
03:55:04 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
04:01:14 yauhsien_ joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
04:01:15 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
04:02:10 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
04:02:54 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
04:04:12 slack1256 joins (~slack1256@181.43.227.13)
04:07:58 mvk joins (~mvk@2607:fea8:5ce3:8500::4588)
04:09:58 machinedgod joins (~machinedg@66.244.246.252)
04:15:42 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
04:16:04 noteness joins (~noteness@user/noteness)
04:17:23 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
04:17:27 bilegeek joins (~bilegeek@2600:1008:b004:f8a7:1da1:2f77:e7e0:d631)
04:18:07 Vajb joins (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06)
04:18:45 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
04:24:56 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
04:27:33 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
04:27:46 chexum joins (~quassel@gateway/tor-sasl/chexum)
04:32:54 takuan joins (~takuan@178.116.218.225)
04:46:24 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
04:57:40 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 246 seconds)
05:16:04 × yauhsien_ quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Remote host closed the connection)
05:16:13 Pickchea joins (~private@user/pickchea)
05:27:09 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
05:31:00 coot joins (~coot@213.134.190.95)
05:33:59 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:34:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
05:36:24 k8yun joins (~k8yun@user/k8yun)
05:37:48 mattil joins (~mattil@helsinki.portalify.com)
05:42:35 coot parts (~coot@213.134.190.95) ()
05:42:48 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 248 seconds)
05:43:31 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
05:44:10 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
05:46:04 × k8yun quits (~k8yun@user/k8yun) (Quit: Leaving)
05:49:07 stefan-_ joins (~cri@42dots.de)
05:50:32 × Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds)
05:53:06 acidjnk joins (~acidjnk@p200300d0c7068b45256a07aefaa7dce4.dip0.t-ipconnect.de)
06:02:12 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
06:02:41 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
06:09:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:09:07 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:15:18 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
06:15:54 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
06:17:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:18:06 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:18:13 jakalx parts (~jakalx@base.jakalx.net) ()
06:18:27 jakalx joins (~jakalx@base.jakalx.net)
06:18:28 img joins (~img@user/img)
06:18:45 <dragestil> Is there a way to invoke haddock without cabal, that builds haddock for a package? I'm guessing no because haddock has no idea about where to find build-depends
06:19:46 × img quits (~img@user/img) (Client Quit)
06:21:10 img joins (~img@user/img)
06:21:51 nate4 joins (~nate@98.45.169.16)
06:26:34 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
06:29:36 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
06:29:36 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
06:29:36 × winny quits (~weechat@user/winny) (Remote host closed the connection)
06:29:36 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
06:29:37 Neuromancer joins (~Neuromanc@user/neuromancer)
06:29:59 noteness joins (~noteness@user/noteness)
06:30:13 winny joins (~weechat@user/winny)
06:30:40 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
06:37:03 × echoreply quits (~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
06:38:21 echoreply joins (~echoreply@45.32.163.16)
06:40:19 cony_mony[m] joins (~conymonym@2001:470:69fc:105::2:2ea2)
06:45:20 <Hecate> dragestil: you would basically have to replicate the haddock invocation that cabal does, just without cabal
06:46:01 <DigitalKiwi> o/ Hecate
06:46:05 <dragestil> Hecate: ok, how do I find the invocation?
06:47:29 <Hecate> heya DigitalKiwi
06:47:45 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:47:58 <Hecate> dragestil: I'd say check your computer's processes when `cabal haddock` is launched
06:48:01 <Hecate> with htop or something
06:48:24 <dragestil> ok thanks
06:49:02 <DigitalKiwi> use a slow computer for better results!
06:52:08 [exa] nostalgically smashes the turbo button
06:53:05 <DigitalKiwi> https://xkcd.com/1172/
06:54:00 <DigitalKiwi> is tomsmeding here
06:59:07 kenran joins (~kenran@200116b82bfe7600e70c06a9d9c609b8.dip.versatel-1u1.de)
06:59:28 ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net)
07:00:03 × kenran quits (~kenran@200116b82bfe7600e70c06a9d9c609b8.dip.versatel-1u1.de) (Client Quit)
07:01:21 <tomsmeding> DigitalKiwi: now I am
07:01:26 × bilegeek quits (~bilegeek@2600:1008:b004:f8a7:1da1:2f77:e7e0:d631) (Quit: Leaving)
07:08:32 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
07:10:00 <tomsmeding> DigitalKiwi: what was the question :p
07:10:05 zaquest joins (~notzaques@5.130.79.72)
07:10:33 dschrempf joins (~dominik@mobiledyn-62-240-134-11.mrsn.at)
07:11:24 MajorBiscuit joins (~MajorBisc@c-001-020-042.client.tudelft.eduvpn.nl)
07:17:59 × Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Remote host closed the connection)
07:20:19 alp joins (~alp@user/alp)
07:20:42 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:24:06 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:24:19 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368) (Remote host closed the connection)
07:34:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:49:18 zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
07:53:22 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
07:58:45 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
07:59:48 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:00:11 img joins (~img@user/img)
08:01:12 AlexNoo joins (~AlexNoo@178.34.150.200)
08:02:18 Alex_test joins (~al_test@178.34.150.200)
08:03:02 AlexZenon joins (~alzenon@178.34.150.200)
08:04:26 <merijn> dragestil: "probably", but it's a pain
08:04:50 <merijn> dragestil: Why do you wanna do it without cabal, though?
08:05:43 <slack1256> Do anyone know what Edward Z Yang uses for his slides? Example: http://ezyang.com/slides/ezyang15-cnf-slides.pdf
08:05:57 <slack1256> Is that just a wacom output made slides?
08:05:58 <dragestil> merijn: oh i'm hacking on haddock code, and it would be easier to test and iterate if I don't have to invoke cabal to call my modified haddock
08:06:28 coot joins (~coot@213.134.190.95)
08:06:38 <merijn> ah, wouldn't the haddock tests be a better example to check?
08:07:05 <dragestil> yeah, I found an abundance of test cases there. I will try those first
08:08:02 <dragestil> i hope that is sufficient
08:08:25 benin joins (~benin@183.82.28.222)
08:09:10 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:09:49 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Remote host closed the connection)
08:10:24 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
08:11:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:12:02 slac79071 joins (~slack1256@186.11.47.77)
08:14:21 × slack1256 quits (~slack1256@181.43.227.13) (Ping timeout: 256 seconds)
08:15:01 <tomsmeding> slac79071: looks very much like that yes
08:15:08 <tomsmeding> oh sorry wrong ping
08:18:16 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:19:34 <Tisoxin> Is it possible to collect all top level functions in a module in a list with template haskell?
08:21:03 mixfix41 joins (~sdenynine@user/mixfix41)
08:22:51 <merijn> Tisoxin: "It Depends (TM)"
08:23:06 <merijn> Most crucially on "where is said TH code"
08:23:08 <tomsmeding> Tisoxin: judging by QuickCheck's implementation of the same, no https://hackage.haskell.org/package/QuickCheck-2.14.2/docs/src/Test.QuickCheck.All.html#line-143
08:23:55 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
08:23:59 <tomsmeding> but maybe if you're in a different module you can request the functions exported by a module?
08:24:44 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368)
08:25:24 moonsheep joins (~user@user/moonsheep)
08:27:18 slac79071 is now known as slack1256
08:28:47 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368) (Ping timeout: 240 seconds)
08:29:19 stiell joins (~stiell@gateway/tor-sasl/stiell)
08:29:43 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
08:32:34 × moonsheep quits (~user@user/moonsheep) (Ping timeout: 246 seconds)
08:33:47 × slack1256 quits (~slack1256@186.11.47.77) (Remote host closed the connection)
08:40:36 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
08:58:51 judeka[m] joins (~judekamat@2001:470:69fc:105::1:559c)
09:00:20 × TitusTzeng[m] quits (~titusjgrm@2001:470:69fc:105::2:1140) (Quit: You have been kicked for being idle)
09:01:14 judeka[m] parts (~judekamat@2001:470:69fc:105::1:559c) ()
09:03:03 × kimjetwav quits (~user@2607:fea8:2340:da00:592f:dda3:fea6:1b4c) (Remote host closed the connection)
09:04:44 × ubert quits (~Thunderbi@2a02:8109:abc0:6434:c1f3:6a1d:d03:af39) (Remote host closed the connection)
09:05:50 kimjetwav joins (~user@2607:fea8:2340:da00:592f:dda3:fea6:1b4c)
09:08:43 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:09:05 tungki joins (~tungki@182.253.45.237)
09:10:45 Pickchea joins (~private@user/pickchea)
09:11:08 ccntrq1 joins (~Thunderbi@87.139.187.64)
09:11:39 × bliminse quits (~bliminse@host86-164-164-134.range86-164.btcentralplus.com) (Quit: leaving)
09:12:15 gdd joins (~gdd@2001:470:1f13:187:c211:ee4c:6eca:b634)
09:12:43 × ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Ping timeout: 256 seconds)
09:12:44 ccntrq1 is now known as ccntrq
09:13:29 bliminse joins (~bliminse@host86-164-164-134.range86-164.btcentralplus.com)
09:15:08 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
09:15:15 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection)
09:15:46 ubert joins (~Thunderbi@2a02:8109:abc0:6434:6683:c4a9:3b6d:6651)
09:15:52 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:18:24 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds)
09:20:41 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
09:21:07 heinz9 joins (~trace@user/trace)
09:21:20 <heinz9> how do I execute haskell programs on arm
09:24:35 <heinz9> okay forget my question
09:26:59 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
09:27:04 <heinz9> can haskell programs be converted to something, so all haskell programs can be executed on arm64 ?
09:27:27 Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
09:31:06 <jackdk> Yeah, ghc has an arm64 target these days I think'
09:32:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
09:37:04 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
09:40:19 <merijn> Depends which exact arm you're talking about
09:40:45 <merijn> heinz9: https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms
09:41:06 <merijn> I think that page is a little out of date
09:41:30 × dschrempf quits (~dominik@mobiledyn-62-240-134-11.mrsn.at) (Quit: WeeChat 3.5)
09:42:27 <heinz9> merijn, what is newer known about haskell on arm
09:43:55 <merijn> heinz9: Might wanna ask in #ghc for more detailed info on the status of ARM support
09:43:58 <heinz9> what does the Native Code Generator (NCG) do ?
09:44:12 <merijn> It, eh, generates native code? :D
09:44:25 <heinz9> what is native code
09:44:32 <merijn> As in "executable binary"
09:44:38 <heinz9> oh
09:44:50 <heinz9> the page you suggested, haskell cannot do this on arm
09:45:11 chele joins (~chele@user/chele)
09:45:17 <merijn> It's a bit out of date, because (at least) NCG support for the Apple M1 should be in 9.4(?)
09:45:36 <merijn> heinz9: But better off asking in #ghc, because the people who know hang out there
09:46:46 <heinz9> and GHCi does not create native code?
09:49:01 <heinz9> ah
09:49:05 <heinz9> this seems to be an interpreter
09:49:08 <tomsmeding> by default, it does not; you can tell it to compile to native code with the -fobject-code flag, I think
09:49:09 <tomsmeding> yes
09:49:15 <merijn> By default ghci creates bytecode that gets interpreted
09:49:31 <heinz9> so on arm it gets interpreted
09:49:58 <tomsmeding> ghci interprets code, yes; however, you cannot load more than one package into ghci at the same time
09:50:28 <merijn> tomsmeding: Pedantic nitpick: Not more than one component
09:50:34 <tomsmeding> good point
09:50:36 <merijn> Even if in the same package
09:50:58 <tomsmeding> but in any case, if you can get ghci to work on a platform, you can probably also get the whole GHC situation orking on that platform
09:51:09 <tomsmeding> so the fact that ghci doesn't compile to native code doesn't buy you much
09:55:46 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Remote host closed the connection)
09:56:51 × shriekingnoise quits (~shrieking@201.212.175.181) (Quit: Quit)
10:09:16 <heinz9> I tried to compile ghc on arm64, but ./boot does not create a ./configure file
10:12:47 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
10:19:49 <heinz9> Can every or most haskell programs be cross-compiled to arm64?
10:20:13 <maerwald[m]> heinz9: there are binsists
10:20:27 <maerwald[m]> Install via GHCup
10:23:20 nate4 joins (~nate@98.45.169.16)
10:23:21 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
10:26:55 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368)
10:28:05 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
10:31:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368) (Ping timeout: 258 seconds)
10:38:17 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
10:40:34 <tomsmeding> (a "bindist" is a "binary distribution", i.e. a GHC that is already compiled and can be downloaded and run just like that)
10:43:24 Midjak joins (~Midjak@82.66.147.146)
10:44:16 × glguy quits (x@libera/staff/glguy) (Read error: Connection reset by peer)
10:44:44 glguy joins (x@libera/staff/glguy)
10:48:50 gmg joins (~user@user/gehmehgeh)
10:48:59 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
10:50:11 <heinz9> maerwald[m], google can not find them
10:52:19 <tomsmeding> heinz9: use ghcup https://www.haskell.org/ghcup/
10:54:15 <tomsmeding> heinz9: alternatively, if you like to do stuff manually, they are here https://downloads.haskell.org/~ghc/
10:54:48 <tomsmeding> (the newest stable is 9.2.3)
10:55:42 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
10:56:02 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
10:57:07 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:57:52 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
11:00:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
11:01:20 × MajorBiscuit quits (~MajorBisc@c-001-020-042.client.tudelft.eduvpn.nl) (Ping timeout: 272 seconds)
11:03:34 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
11:04:10 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:04:38 geraldus joins (~geraldus@139.45.240.5)
11:05:56 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:06:00 <geraldus> Hello everybody!  Looking for a way to write TH function which will return module name at use site.  Can someone give some clues?
11:08:40 chele_ joins (~chele@user/chele)
11:08:51 × chele quits (~chele@user/chele) (Ping timeout: 258 seconds)
11:09:01 chele_ is now known as chele
11:10:26 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
11:13:17 × geraldus quits (~geraldus@139.45.240.5) (Quit: Ping timeout (120 seconds))
11:14:59 × mvk quits (~mvk@2607:fea8:5ce3:8500::4588) (Ping timeout: 258 seconds)
11:16:02 kenran joins (~kenran@200116b82bfe76009675698051763dd9.dip.versatel-1u1.de)
11:20:17 lyle joins (~lyle@104.246.145.85)
11:21:01 × kenran quits (~kenran@200116b82bfe76009675698051763dd9.dip.versatel-1u1.de) (Quit: WeeChat info:version)
11:24:43 xstill_7 is now known as xstill_
11:25:39 leeb joins (~leeb@KD106155004098.au-net.ne.jp)
11:26:35 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
11:30:08 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:33:48 geraldus joins (~geraldus@139.45.240.5)
11:33:58 × geraldus quits (~geraldus@139.45.240.5) (Client Quit)
11:35:00 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
11:39:14 <tomsmeding> (Language.Haskell.TH.thisModule, but they're gone)
11:40:06 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
12:03:48 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 248 seconds)
12:05:49 MajorBiscuit joins (~MajorBisc@c-001-030-042.client.tudelft.eduvpn.nl)
12:05:53 chele_ joins (~chele@user/chele)
12:07:15 × chele quits (~chele@user/chele) (Ping timeout: 256 seconds)
12:07:18 × benin quits (~benin@183.82.28.222) (Quit: The Lounge - https://thelounge.chat)
12:11:04 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
12:11:05 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Remote host closed the connection)
12:12:26 Haskelytic joins (~Haskelyti@118.179.211.17)
12:13:03 gaff joins (~gaff@49.207.216.96)
12:13:10 × gaff quits (~gaff@49.207.216.96) (Client Quit)
12:14:59 xff0x joins (~xff0x@2405:6580:b080:900:f5db:151e:7d9e:c4bc)
12:16:01 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
12:16:30 sshine_ is now known as sshine
12:23:02 pleo joins (~pleo@user/pleo)
12:23:02 × EsoAlgo quits (~EsoAlgo@129.146.136.145) (Quit: Ping timeout (120 seconds))
12:23:28 EsoAlgo joins (~EsoAlgo@129.146.136.145)
12:24:05 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
12:24:10 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 240 seconds)
12:24:18 dschrempf joins (~dominik@mobiledyn-62-240-134-11.mrsn.at)
12:24:23 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
12:25:04 × siers69 quits (~ij@user/ij) (Ping timeout: 244 seconds)
12:25:05 siers joins (~ij@user/ij)
12:25:50 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving)
12:27:35 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
12:28:36 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:32:56 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
12:39:05 × mixfix41 quits (~sdenynine@user/mixfix41) (Ping timeout: 252 seconds)
12:45:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:47:34 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
12:50:07 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
12:52:09 <byorgey> @tell geraldus Language.Haskell.TH.thisModule
12:52:10 <lambdabot> Consider it noted.
12:53:14 kenran joins (~kenran@200116b82bfe76009675698051763dd9.dip.versatel-1u1.de)
13:01:24 × mattil quits (~mattil@helsinki.portalify.com) (Remote host closed the connection)
13:14:47 <cdsmith> Anyone know a clean way to make a build fail if a type class instance doesn't exist? I have defined a type class called ValidSchema that performs some checks on fairly complex type synonym that defines a data schema. I'd like the build to fail in the module where I define the schema if it's not an instance of ValidSchema.
13:16:31 <merijn> cdsmith: Put a ValidSchema constraint on it? :p
13:17:09 <cdsmith> merijn: On what? I can't put a context on a type synonym...
13:17:20 <merijn> Or do like: "validSchema :: ValidSchema a => a -> a; validSchema = id"
13:17:22 <tomsmeding> cdsmith: no, apart from defining an unused top level definition that has the constraint on it
13:17:26 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:17:28 <merijn> and call validSchema on your thing
13:17:45 <tomsmeding> oh right, unused top-level def doesn't even work, ignore please
13:18:09 × coot quits (~coot@213.134.190.95) (Quit: coot)
13:18:11 <cdsmith> merijn: Here's an example of the module that I would like to fail to build if a ValidSchema instance doesn't exist: https://github.com/cdsmith/ourmud/blob/main/app/Model.hs
13:18:15 fweht joins (uid404746@id-404746.lymington.irccloud.com)
13:18:27 × acidjnk quits (~acidjnk@p200300d0c7068b45256a07aefaa7dce4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
13:19:00 <merijn> Thanks, I hate it :)
13:19:42 <tomsmeding> unused :: () ; unused = validSchema (Proxy @MUDSchema) where validSchema :: ValidSchema a -> Proxy a -> () ; validSchema _ _ = ()
13:19:53 <geekosaur> cdsmith, I think the open world assumption makes what you want impossible?
13:19:56 <tomsmeding> not sure if it satisfies the requirement for "clean" :D
13:20:09 <merijn> geekosaur: It does not
13:20:14 <tomsmeding> oh the first -> should be a =>
13:21:08 <cdsmith> I guess I could define a dummy type class like `class ValidSchema schema => SchemaValidator schema`, and then write `instance SchemaValidator MySchema` to do the validation. That's probably the way
13:23:13 <tomsmeding> cdsmith: data Dict c a where { Dict :: c a => Dict c a } ; witness :: Dict ValidSchema MUDSchema ; witness = Dict
13:23:31 Kaiepi joins (~Kaiepi@156.34.47.253)
13:23:53 <tomsmeding> ConstraintKinds, GADTs; the extensions aren't necessary if you're willing to specialise the Dict type to this particular case
13:24:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
13:26:42 <tomsmeding> (another name for Dict is Has)
13:33:03 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
13:34:58 × briandaed quits (~briandaed@109.95.143.14.r.toneticgroup.pl) (Ping timeout: 246 seconds)
13:36:32 ccntrq1 joins (~Thunderbi@172.209.94.92.rev.sfr.net)
13:37:58 × ccntrq quits (~Thunderbi@87.139.187.64) (Ping timeout: 256 seconds)
13:37:58 ccntrq1 is now known as ccntrq
13:40:46 <exarkun> I'm having trouble converting from `nullIsError :: a -> IO (Ptr a) -> ExceptT b IO a` from `nullIsError' :: a -> Ptr a -> ExceptT b IO a`. I can use the former like `nullIsError SomeErr someIO :: ExceptT b IO a` and I would expect to be able to use the latter like `someIO >>= nullIsError'`
13:41:17 <exarkun> Somehow the latter ends up as `IO a` instead of `ExceptT b IO a`? I don't see how though.
13:43:07 <merijn> exarkun: eh, nullIsError takes 2 arguments and your example passes it to >>= which expects a one argument function?
13:43:42 <exarkun> oops, quite :/ What if I fix that dumb mistake like this: `someIO >>= nullIsError' SomeErr`
13:43:52 <merijn> exarkun: actually, the more I look at your example it's obvious why?
13:44:11 <merijn> exarkun: if someIO is a valid second argument to nullIsError, then "someIO :: IO (Ptr a)"
13:44:28 <merijn> exarkun: So "someIO >>= " is obviously gonna expect some IO
13:44:33 <merijn> :t (>>=)
13:44:35 <lambdabot> Monad m => m a -> (a -> m b) -> m b
13:44:45 <merijn> Note the same 'm' on both sides
13:45:02 <exarkun> Arg. Right. This is a persistent hole in my understand...
13:45:15 <exarkun> Or, wait is it
13:45:21 <exarkun> am I just missing liftIO
13:45:25 <merijn> exarkun: You probably want "liftIO someIO >>=" :)
13:45:26 <merijn> Yeah
13:45:41 <exarkun> right ok, thank you
13:45:48 <merijn> Although, nullIsError feels like a "withX" wrapper
13:46:07 <merijn> Actually, then it still won't work
13:46:27 <merijn> Because you'll be passing "Ptr a" to nullIsError, which expects "IO (Ptr a)"
13:47:16 <exarkun> nullIsError doesn't really need to be in IO, hence my attempt at nullIsError'
13:47:34 × Haskelytic quits (~Haskelyti@118.179.211.17) (Ping timeout: 252 seconds)
13:48:08 <exarkun> (big picture is I am doing a lot of FFI and any null result along the way aborts the computation, I just want to annotate the result with which step failed)
13:48:26 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
13:52:39 catern joins (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
13:52:50 <dragestil> oh man, it seems to me the haddock markup type (DocH see also markup) does not distinguish between block and inline elements. so one can append an inline element to a block element?
13:54:02 dyeplexer joins (~dyeplexer@user/dyeplexer)
13:54:50 <catern> i'm not familiar with Haskell development, if I want a nice development shell for https://github.com/sweirich/pi-forall/tree/2022/version1 using just Nix to manage dependencies (i.e. using packages from Nix rather than using Stack), is there a known best way to do that?
13:54:51 <dragestil> but the htmls are all generated correctly, interesting
13:56:51 <merijn> The best way to do that is "get someone else to fix all the Nix stuff for you" :p
13:57:35 <dragestil> i'm guessing the comment documentation syntax + the parsing somehow guarantee no bad mix of inline and block
13:57:56 emad joins (~emad@156.214.76.207)
13:59:32 <exarkun> catern: What is the goal of getting them from nixpkgs instead of stackage?
13:59:58 thewaves joins (~thewaves@2001:470:69fc:105::2:2eef)
14:00:01 <catern> exarkun: just makes my life easier to not have to deal with other package managers
14:00:28 <exarkun> catern: If upstream doesn't manage their dependencies that way then as far as I know it's very annoying for you to get them that way.
14:00:50 <exarkun> catern: Another way to not deal with another package manager (ie, stack) is to let haskell.nix deal with it for you.
14:01:07 <exarkun> catern: haskell.nix will read stack or cabal files so you don't have to
14:01:32 <exarkun> Of course if upstream isn't using haskell.nix then you have to maintain that part yourself.
14:03:12 <exarkun> Here's my Haskell project that uses it, for a sense of what's involved, https://github.com/PrivateStorageio/PaymentServer/tree/main/nix
14:03:19 <catern> I see
14:03:21 <exarkun> (pre-flakes, so ...)
14:03:32 <catern> what about cabal2nix? I can't see much comparison of the two
14:03:56 <exarkun> I haven't used that one much so I'm not sure if I can help with a comparison.
14:04:33 <exarkun> I _think_ that with either cabal2nix or haskell.nix, you're still not taking Haskell packages from nixpkgs, but it sounds like that isn't your primary concern anyway.
14:08:36 <catern> I think that's true for haskell.nix but not for cabal2nix, it uses Haskell packages from nixpkgs
14:11:52 <geekosaur> hm? cabal2nix converts a cabal file into a nix derivation
14:12:29 <geekosaur> using other dependencies fron mix (sometimes annoyingly: last I heard it removed the version ranges, leaving that solely to nix)
14:12:41 <geekosaur> s/mix/nix/
14:12:58 <catern> https://haskell4nix.readthedocs.io/index.html aha here this is perfect I think
14:14:27 <exarkun> So now I have my careful null pointer checks factored somewhat more nicely ... I don't suppose there's a pointer type for representing only non-null pointers?
14:14:41 <geekosaur> nope
14:15:01 <geekosaur> the sole reason Haskell has a Ptr type is the FFI, which in general makes no such guarantee
14:16:22 <geekosaur> of course if you check your raw Ptrs carefully enough you can then designate a Ptr ThisWillNeverBeNull or some such; that's completely up to you
14:16:44 <catern> any thoughts about why I'd be getting "Preprocessing test suite 'test-pi-forall' for pi-forall-0.2..\n Setup: can't find source for Main in dist/build/test-pi-forall/test-pi-forall-tmp, test"? is this a bug in the .cabal file, because there's no test/Main.hs that I see https://github.com/sweirich/pi-forall/blob/2022/version1/pi-forall.cabal#L84
14:18:09 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
14:18:35 × causal quits (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.5)
14:21:54 coot joins (~coot@213.134.190.95)
14:24:36 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
14:24:51 nate4 joins (~nate@98.45.169.16)
14:26:22 shriekingnoise joins (~shrieking@201.212.175.181)
14:27:13 Feuermagier joins (~Feuermagi@user/feuermagier)
14:27:22 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 260 seconds)
14:29:12 <tomsmeding> catern: yeah that looks broken, seems that version doesn't have a test/
14:29:27 <tomsmeding> version3 does have a test/
14:29:44 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
14:29:56 <catern> tomsmeding: thanks for confirming, I just sent a PR about it https://github.com/sweirich/pi-forall/pull/17
14:31:21 <tomsmeding> catern: "the build is broken" is relative; the haskell build tools generally don't build test suites that you don't explicitly specify (because they may have additional dependencies)
14:31:32 <tomsmeding> but it's still a (minor) issue
14:31:37 <catern> ah, well, okay, shrug
14:31:51 <tomsmeding> same holds for version2 apparently
14:32:06 <cdsmith> Grr... that works, but triggers warnings for orphan instances...
14:32:17 × dschrempf quits (~dominik@mobiledyn-62-240-134-11.mrsn.at) (Quit: WeeChat 3.5)
14:32:43 <tomsmeding> cdsmith: I've always found it unfortunate that there isn't a pragma for saying "yes this specific instance is an orphan, don't complain"
14:32:50 <catern> i noticed it only because cabal2nix builds the test suite by default
14:33:01 <tomsmeding> cdsmith: because clearly in this case the instance is fine, because you're not even exporting the class
14:35:07 × emad quits (~emad@156.214.76.207) (Quit: Leaving)
14:37:30 <merijn> tomsmeding: I proposed one
14:37:56 <merijn> tomsmeding: It was shot down as too limited and "we should just have a generic pragma that lets you selectively disable warnings for pieces of code"
14:38:17 <merijn> Of course, the generic solution is too vague to have a concrete plan and is thus still waiting to be implemented
14:38:18 <tomsmeding> merijn: as in, -Wno-orphans?
14:38:32 <tomsmeding> oh, as in disabling warnings for a particular chunk of code in a file
14:38:40 <cdsmith> Okay, I settled on writing `data SchemaValidator schema where ValidateSchema :: ValidSchema schema => SchemaValidator schema`, and then when the schema is defined, `_ = ValidateSchema @MySchema`
14:38:42 <tomsmeding> yeah that's a design mess
14:38:42 <merijn> tomsmeding: No, I argued for an "{-# ADOPT #-}" macro, because I'm a funny guy :D
14:38:47 <tomsmeding> lol
14:38:52 Sgeo joins (~Sgeo@user/sgeo)
14:38:59 <merijn> I was so proud of thinking of that too...
14:39:03 <tomsmeding> merijn: name is funny but not really appropriate for the cases where you write an orphan instance though
14:39:07 <merijn> Damn you, GHCHQ! Damn you!
14:39:08 Haskelytic joins (~Haskelyti@118.179.211.17)
14:39:30 <tomsmeding> cdsmith: that's another option :p
14:40:31 <catern> would it be sane to have the pragma also *require* that the annotated thing is an orphan, rather than just disable warnings?
14:40:42 × heinz9 quits (~trace@user/trace) (Remote host closed the connection)
14:41:22 <tomsmeding> catern: something ceases to be an orphan if 1. the class definition is moved into the same file, or 2. the data type that the instance is of, is moved into the same file
14:41:38 <catern> yes
14:42:06 <catern> i'm saying this as a response to the response that merijn got, that a generic warning-disabler is better than something specific to orphans
14:42:08 <tomsmeding> neither is a thing that usually happens in practice, and in neither case do the things that you'd usually use {-# ADOPT #-} for fail in those cases
14:44:49 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
14:46:12 machinedgod joins (~machinedg@66.244.246.252)
14:47:30 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
14:49:08 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
14:49:57 Inoperable joins (~PLAYER_1@fancydata.science)
14:55:14 × coot quits (~coot@213.134.190.95) (Quit: coot)
14:56:01 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368)
14:57:07 jakalx parts (~jakalx@base.jakalx.net) ()
14:57:07 × Vajb quits (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) (Read error: Connection reset by peer)
14:57:31 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:57:57 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
14:59:06 jakalx joins (~jakalx@base.jakalx.net)
15:00:14 alexhandy2 joins (~trace@user/trace)
15:01:53 <alexhandy2> how certainly is haskell going to become much better for aarch64 and arm?
15:02:49 <geekosaur> better than what?
15:03:04 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
15:03:13 <alexhandy2> that it is not only the interpreter but the compiler that translates to arm
15:03:23 <geekosaur> 8.10.7 requires the llvm backend, but as of 9.2.3 aarch64 native support is up to the same level as native x86
15:03:49 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
15:03:55 Cupcakus joins (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net)
15:03:57 <alexhandy2> compiled or interpreted?
15:04:01 <geekosaur> both
15:04:04 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
15:04:22 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
15:04:22 <alexhandy2> great, so the doc is out of date
15:04:34 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
15:04:34 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
15:04:45 califax_ joins (~califax@user/califx)
15:04:54 <alexhandy2> because it displays only the interpreter is going to work on aarch64
15:05:12 <geekosaur> o.O iirc it was the opposite, compiling worked but the interpreter had problems
15:05:23 <geekosaur> because the interpreter's linker didn't work right on arm
15:05:30 <geekosaur> that's been fixed
15:05:46 <alexhandy2> I tried to compile ghc
15:05:49 dextaa joins (~DV@user/dextaa)
15:05:54 chexum joins (~quassel@gateway/tor-sasl/chexum)
15:06:08 <alexhandy2> but there are only .configure files in subdirectories
15:06:20 califax_ is now known as califax
15:06:25 <alexhandy2> and I could not finish one of them
15:06:32 <geekosaur> building ghc from scratch is quite difficult
15:06:35 <alexhandy2> .boot worked so fat
15:06:38 <alexhandy2> far
15:06:43 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
15:06:45 <alexhandy2> okay 👌
15:07:18 <geekosaur> you need a bootstrap ghc, and you need to run boot to generate most of the actual configure files, plus you need to do git submodule update --init --recursive
15:07:38 <geekosaur> usually it's better to find an existing binary distribution than to try to build it yourself, even on intel
15:08:03 <alexhandy2> so, probably will support haskell some day later for aarch64?
15:08:31 <alexhandy2> so, probably distributions will support haskell some day later for aarch64?
15:08:46 <geekosaur> https://downloads.haskell.org/~ghc/9.2.3/
15:09:00 <geekosaur> I see aarch 64 for both darwin/m1 and debian
15:09:11 <alexhandy2> as manjaro and gentoo have no aarch64 or arm packages
15:09:29 <alexhandy2> for haskell
15:09:34 <geekosaur> linux distributions will probably take longer, mostly because their haskell maintainers all seem to be ditching traditional distributions for nix
15:09:41 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
15:10:10 <geekosaur> (we've been waiting almost a year for distributions to pick up the latest xmonad…)
15:10:30 <catern> geekosaur: really?? i hadn't heard that heh, that's good news for me, a nix zealot...
15:10:55 <geekosaur> that's the report from both arch and debian, at least
15:10:59 <telser> FWIW there is an aarch64 package of ghc for FreeBSD, so at least _some_ OSes are up on this.
15:11:06 <geekosaur> there seem to still be maintainers on fedora
15:11:07 <exarkun> I was just playing with `nix bundle` which can now produce a Docker image, an RPM, or a deb for a more-or-less arbitrary nix derivation...
15:11:18 <exarkun> So there is some consolation for users of other distros ;)
15:11:51 dextaa joins (~DV@user/dextaa)
15:12:39 ArthurS joins (~arthur@163.5.10.3)
15:12:49 <alexhandy2> so chosing haskell as lang for arm / aarch64 is a good move?
15:13:11 <geekosaur> should be, you'll just have to use ghcup or a bindist from the link I posted
15:13:21 <geekosaur> we recommend ghcup anyway
15:14:35 <geekosaur> the ghc ecosystem moves pretty fast (you'll note a 9.4.1 prerelease is also present at the link), so waiting for distros to catch up is usually a bad move anyway
15:14:55 <geekosaur> even rolling release distros usually need some time to sort out new releases
15:15:12 <maerwald[m]> I think the latest GHCs are missing armv7 bindists though
15:15:31 <maerwald[m]> https://downloads.haskell.org/~ghc/9.2.3/
15:15:39 <maerwald[m]> Seems so
15:15:49 <telser> I think that depends on your use case. I know some industry users are on 8.6.5 currently and no rush to update.
15:15:56 × Haskelytic quits (~Haskelyti@118.179.211.17) (Ping timeout: 252 seconds)
15:16:05 <geekosaur> sure, and much of the ecosystem is still sticking to 8.10.7
15:16:35 zebrag joins (~chris@user/zebrag)
15:16:35 <geekosaur> there's some discussion going on about having ghc lts releases for folks who don't like rollercoasters
15:17:51 <alexhandy2> is anything known about haskell for riscv?
15:18:02 <geekosaur> main problem being we'd need lts maintainers because the ghc dev crew's overworked enough already
15:18:04 × alexhandy2 quits (~trace@user/trace) (Read error: Connection reset by peer)
15:18:23 alexhandy joins (~trace@user/trace)
15:19:37 <telser> I suspect llvm backend probably is at least minimally usable. Seem to recall seeing an issue on ghc tracker around that.
15:20:07 × chele_ quits (~chele@user/chele) (Remote host closed the connection)
15:20:22 <geekosaur> I just checked the issue tracker and someone is definitelyt working on risc-v support
15:20:41 <geekosaur> https://gitlab.haskell.org/groups/ghc/-/issues/?search=risc-v&sort=created_date&state=opened
15:20:45 coot joins (~coot@213.134.190.95)
15:22:23 ArthurS is now known as arthur
15:23:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
15:23:55 <alexhandy> geekosaur, sounds great
15:25:57 <catern> hmm, annoying, if I run haskell-language-server and internally when it runs hie-bios that fails to run cabal, it doesn't print any error messages, it just assumes empty flags will suffice to compile the project
15:26:06 <catern> that's not very safe lol
15:27:15 <alexhandy> there is literature about learning haskell, but is there literature about typical functional code?
15:27:46 <alexhandy> in imperative code you are used to typical code programming ways
15:27:59 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
15:29:06 × arthur quits (~arthur@163.5.10.3) (Quit: arthur)
15:29:12 arthur joins (~arthur@163.5.10.3)
15:30:16 <alexhandy> I just do not want to learn long time to get used to functional paradigm
15:30:38 <alexhandy> so I think it should be best to read existing code
15:30:57 <alexhandy> right? yes!
15:31:03 <telser> Style varies quite a bit both with Haskell and other languages
15:31:23 <alexhandy> I just normally write imperative
15:31:31 <alexhandy> for decades
15:32:26 <alexhandy> I always found the haskell way fun, but never did much with haskell
15:33:23 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
15:34:30 × pleo quits (~pleo@user/pleo) (Ping timeout: 258 seconds)
15:35:13 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368) (Remote host closed the connection)
15:39:34 acidjnk joins (~acidjnk@p200300d0c7068b45256a07aefaa7dce4.dip0.t-ipconnect.de)
15:44:10 × arthur quits (~arthur@163.5.10.3) (Ping timeout: 240 seconds)
15:47:34 × kenran quits (~kenran@200116b82bfe76009675698051763dd9.dip.versatel-1u1.de) (Quit: WeeChat info:version)
15:58:09 × zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
16:01:07 vicfred joins (~vicfred@user/vicfred)
16:01:07 × ubert quits (~Thunderbi@2a02:8109:abc0:6434:6683:c4a9:3b6d:6651) (Remote host closed the connection)
16:02:10 mvk joins (~mvk@2607:fea8:5ce3:8500::4588)
16:02:30 pleo joins (~pleo@user/pleo)
16:09:47 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Read error: Connection reset by peer)
16:10:19 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
16:10:32 × acidjnk quits (~acidjnk@p200300d0c7068b45256a07aefaa7dce4.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
16:11:05 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
16:14:26 stackdroid18 joins (14094@user/stackdroid)
16:14:56 motherfsck joins (~motherfsc@user/motherfsck)
16:16:01 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 256 seconds)
16:17:37 machinedgod joins (~machinedg@66.244.246.252)
16:19:58 × coot quits (~coot@213.134.190.95) (Quit: coot)
16:21:00 raym joins (~raym@user/raym)
16:25:31 × tungki quits (~tungki@182.253.45.237) (Remote host closed the connection)
16:27:30 × alexhandy quits (~trace@user/trace) (Ping timeout: 240 seconds)
16:34:54 × MajorBiscuit quits (~MajorBisc@c-001-030-042.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5)
16:35:42 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:39:11 k8yun joins (~k8yun@user/k8yun)
16:40:18 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
16:41:12 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:43:36 × pleo quits (~pleo@user/pleo) (Ping timeout: 248 seconds)
16:48:57 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368)
16:52:45 pleo joins (~pleo@user/pleo)
16:54:54 neoatnebula joins (~neoatnebu@2409:4071:4d8f:ce27:ead8:44cb:83ba:d42f)
16:55:22 × Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 272 seconds)
16:55:26 × neoatnebula quits (~neoatnebu@2409:4071:4d8f:ce27:ead8:44cb:83ba:d42f) (Client Quit)
16:56:05 neoatnebula joins (~neoatnebu@2409:4071:4d8f:ce27:ead8:44cb:83ba:d42f)
16:57:57 × leeb quits (~leeb@KD106155004098.au-net.ne.jp) (Ping timeout: 256 seconds)
17:07:35 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
17:09:55 econo joins (uid147250@user/econo)
17:12:24 arthur joins (~arthur@78.196.67.166)
17:13:41 × arthur quits (~arthur@78.196.67.166) (Client Quit)
17:13:52 coot joins (~coot@213.134.190.95)
17:16:48 xcmw joins (~textual@c-73-79-213-46.hsd1.pa.comcast.net)
17:17:49 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:20:46 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
17:22:29 gmg joins (~user@user/gehmehgeh)
17:22:37 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:24:47 Kaiepi joins (~Kaiepi@156.34.47.253)
17:27:22 × neoatnebula quits (~neoatnebu@2409:4071:4d8f:ce27:ead8:44cb:83ba:d42f) (Quit: Client closed)
17:28:25 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:31:47 z joins (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net)
17:35:06 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
17:36:15 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
17:36:56 × z quits (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net) (Killed (NickServ (GHOST command used by Kirjava!~cake@user/kirjava)))
17:37:15 z joins (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net)
17:38:02 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
17:38:07 × z quits (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net) (Killed (NickServ (GHOST command used by Kirjava!~cake@user/kirjava)))
17:39:12 z joins (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net)
17:40:12 Tuplanolla joins (~Tuplanoll@91-159-68-181.elisa-laajakaista.fi)
17:43:10 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:46:41 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
17:48:19 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
17:49:32 × m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 244 seconds)
17:49:57 × Cupcakus quits (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net) (Ping timeout: 276 seconds)
17:51:14 m1dnight joins (~christoph@78-22-9-5.access.telenet.be)
17:53:02 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
17:56:53 jakalx parts (~jakalx@base.jakalx.net) ()
17:57:55 jakalx joins (~jakalx@base.jakalx.net)
18:02:33 tenniscp25 joins (~tenniscp2@2001:fb1:fd:64d5:7839:1037:411f:b650)
18:03:32 × tenniscp25 quits (~tenniscp2@2001:fb1:fd:64d5:7839:1037:411f:b650) (Client Quit)
18:04:12 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
18:13:44 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer)
18:19:47 liz joins (~liz@cpc84585-newc17-2-0-cust60.16-2.cable.virginm.net)
18:20:06 <unclechu> Hey, a question about servant-client. How could I see the built Request (e.g. to log it) of a client before evaluating it using runClientM?
18:21:11 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
18:22:35 × xcmw quits (~textual@c-73-79-213-46.hsd1.pa.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:26:10 cosimone joins (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
18:26:22 nate4 joins (~nate@98.45.169.16)
18:30:52 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds)
18:36:18 Timely_Ratio9567 joins (~Timely_Ra@2409:4050:db6:aa85:c7d7:c00d:7cf4:8f91)
18:40:49 × liz quits (~liz@cpc84585-newc17-2-0-cust60.16-2.cable.virginm.net) (Quit: Lost terminal)
18:42:16 × Timely_Ratio9567 quits (~Timely_Ra@2409:4050:db6:aa85:c7d7:c00d:7cf4:8f91) (Quit: Leaving)
18:42:55 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:44:19 liz joins (~liz@cpc84585-newc17-2-0-cust60.16-2.cable.virginm.net)
18:46:01 × cosimone quits (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Remote host closed the connection)
18:46:29 <tomsmeding> > fix (join (.) (1:) . join ((. tail) . zipWith (+)))
18:46:31 <lambdabot> [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17...
18:46:53 cosimone joins (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
18:50:44 tomekgrzesiak joins (~tomekgrze@109.206.198.75)
18:50:52 × tomekgrzesiak quits (~tomekgrze@109.206.198.75) (Client Quit)
18:53:19 <tomsmeding> > fix (zipWith (+) >>= ((id =<< (.)) (1:) .) . (. tail))
18:53:21 <lambdabot> [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17...
18:56:38 acidjnk joins (~acidjnk@p200300d0c7068b450c914120f4f505ee.dip0.t-ipconnect.de)
18:58:23 × pleo quits (~pleo@user/pleo) (Quit: quit)
18:59:42 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
19:02:56 Cupcakus joins (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net)
19:03:52 × kuribas quits (~user@ptr-17d51eors28p6gwk9l6.18120a2.ip6.access.telenet.be) (Ping timeout: 260 seconds)
19:06:25 glguy_ joins (x@libera/staff/glguy)
19:07:10 × glguy quits (x@libera/staff/glguy) (Read error: Connection reset by peer)
19:07:17 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:08:36 × brettgilio quits (~brettgili@virtlab.gq) (Ping timeout: 276 seconds)
19:10:35 <[Leary]> > fix (\l a b -> a:l b (a+b)) 0 1
19:10:37 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
19:11:14 <[Leary]> Much cuter, imo.
19:17:35 <int-e> > fix ((0:) . scanl (+) 1)
19:17:38 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
19:19:52 <int-e> @tell geekosaur A PR would probably be best because I won't get to it before next week in any case; as for admin commands... they should probably be a separate section (they aren't secret but most users won't be able to use them)
19:19:52 <lambdabot> Consider it noted.
19:20:14 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
19:20:40 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 258 seconds)
19:21:13 <geekosaur> they're already in a separate section, but I could see some reason to hide them given that I can think of ways to try to masquerade as an admin without some care
19:21:23 <geekosaur> not that I know who is an admin
19:22:48 Feuermagier_ joins (~Feuermagi@84.17.49.10)
19:22:58 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:23:03 × Feuermagier_ quits (~Feuermagi@84.17.49.10) (Remote host closed the connection)
19:25:11 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
19:25:27 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 260 seconds)
19:27:27 Feuermagier joins (~Feuermagi@user/feuermagier)
19:28:59 Feuermagier_ joins (~Feuermagi@84.17.49.10)
19:29:06 × Feuermagier_ quits (~Feuermagi@84.17.49.10) (Remote host closed the connection)
19:29:51 kuribas joins (~user@ptr-17d51eocoqvs7v5fptz.18120a2.ip6.access.telenet.be)
19:31:13 michalz joins (~michalz@185.246.204.105)
19:32:39 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 276 seconds)
19:33:11 Guest27 joins (~Guest27@2601:281:d47f:1590::2df)
19:37:09 Feuermagier joins (~Feuermagi@user/feuermagier)
19:41:03 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:41:22 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
19:42:15 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368) (Remote host closed the connection)
19:42:27 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
19:43:35 Topsi joins (~Topsi@dyndsl-095-033-088-230.ewe-ip-backbone.de)
19:45:31 machinedgod joins (~machinedg@S0106ac17c8c1d72e.cg.shawcable.net)
19:45:41 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
19:49:45 × tomboy64 quits (~tomboy64@user/tomboy64) (Quit: Off to see the wizard.)
19:51:43 tomboy64 joins (~tomboy64@user/tomboy64)
19:54:21 pleo joins (~pleo@user/pleo)
19:55:09 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:57:40 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:58:28 × coot quits (~coot@213.134.190.95) (Quit: coot)
19:58:43 glguy_ is now known as glguy
19:59:10 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
20:01:01 × aeka quits (~aeka@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
20:01:18 aeka joins (~aeka@user/hiruji)
20:01:33 × gdd quits (~gdd@2001:470:1f13:187:c211:ee4c:6eca:b634) (Remote host closed the connection)
20:07:47 Haskelytic joins (~Haskelyti@118.179.211.17)
20:12:13 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
20:14:24 × lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.5)
20:16:31 cjay- is now known as cjay
20:21:11 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Remote host closed the connection)
20:21:44 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
20:23:46 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:24:01 × alp quits (~alp@user/alp) (Ping timeout: 244 seconds)
20:26:52 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:27:20 zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
20:28:37 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
20:32:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:32:13 × takuan quits (~takuan@178.116.218.225) (Remote host closed the connection)
20:32:22 pavonia joins (~user@user/siracusa)
20:33:22 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:38:40 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:40:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:42:39 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368)
20:43:47 × Guest27 quits (~Guest27@2601:281:d47f:1590::2df) (Quit: Client closed)
20:45:10 jinsun__ joins (~jinsun@user/jinsun)
20:45:25 nate4 joins (~nate@98.45.169.16)
20:47:48 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368) (Ping timeout: 272 seconds)
20:48:12 alp joins (~alp@user/alp)
20:48:50 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 258 seconds)
20:52:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:52:35 × jinsun__ quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
20:53:16 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:56:39 jinsun joins (~jinsun@user/jinsun)
20:59:03 × vicfred quits (~vicfred@user/vicfred) (Remote host closed the connection)
20:59:22 vicfred joins (~vicfred@user/vicfred)
21:00:07 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
21:01:56 × arahael quits (~arahael@203.220.147.161) (Ping timeout: 246 seconds)
21:05:08 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:05:10 × Cupcakus quits (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
21:05:48 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
21:06:16 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
21:06:23 × michalz quits (~michalz@185.246.204.105) (Remote host closed the connection)
21:07:55 motherfsck joins (~motherfsc@user/motherfsck)
21:08:52 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
21:09:34 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
21:10:26 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
21:10:44 Feuermagier joins (~Feuermagi@user/feuermagier)
21:12:12 × machinedgod quits (~machinedg@S0106ac17c8c1d72e.cg.shawcable.net) (Ping timeout: 260 seconds)
21:15:17 arahael joins (~arahael@203.213.84.157)
21:16:49 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 258 seconds)
21:16:54 pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
21:29:06 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:29:38 × arahael quits (~arahael@203.213.84.157) (Ping timeout: 244 seconds)
21:32:14 machinedgod joins (~machinedg@66.244.246.252)
21:33:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
21:34:15 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368)
21:35:14 Feuermagier_ joins (~Feuermagi@213.149.82.60)
21:35:55 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
21:36:27 stiell joins (~stiell@gateway/tor-sasl/stiell)
21:37:15 × Feuermagier_ quits (~Feuermagi@213.149.82.60) (Client Quit)
21:38:00 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 248 seconds)
21:42:53 × tomgus1 quits (~tomgus1@90.218.25.145) (Ping timeout: 246 seconds)
21:44:16 arahael joins (~arahael@121-44-19-180.tpgi.com.au)
21:44:36 tomgus1 joins (~tomgus1@2a02:c7e:4229:d900:dea6:32ff:fe3d:d1a3)
21:46:09 gdd joins (~gdd@2001:470:1f13:187:49b9:231c:6a88:73db)
21:47:12 Feuermagier joins (~Feuermagi@user/feuermagier)
21:49:09 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds)
21:55:42 Guest27 joins (~Guest27@2601:281:d47f:1590::2df)
21:59:30 arthur joins (~arthur@78.196.67.166)
21:59:54 Feuermagier_ joins (~Feuermagi@84.17.49.10)
22:00:34 × Feuermagier quits (~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
22:02:04 Feuermagier joins (~Feuermagi@user/feuermagier)
22:02:56 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
22:03:56 Feuermagier joins (~Feuermagi@user/feuermagier)
22:04:23 × Feuermagier_ quits (~Feuermagi@84.17.49.10) (Read error: Connection reset by peer)
22:04:50 × Alex_test quits (~al_test@178.34.150.200) (Quit: ;-)
22:05:02 × Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Client closed)
22:05:18 × AlexZenon quits (~alzenon@178.34.150.200) (Quit: ;-)
22:05:29 × AlexNoo quits (~AlexNoo@178.34.150.200) (Quit: Leaving)
22:09:34 × adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
22:09:36 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:09:51 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368) (Remote host closed the connection)
22:09:53 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
22:11:30 × arahael quits (~arahael@121-44-19-180.tpgi.com.au) (Ping timeout: 240 seconds)
22:16:11 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368)
22:18:44 × lottaquestions quits (~nick@2607:fa49:5041:a200:617:f64b:a96:e051) (Ping timeout: 248 seconds)
22:19:16 × k8yun quits (~k8yun@user/k8yun) (Quit: Leaving)
22:20:08 azimut joins (~azimut@gateway/tor-sasl/azimut)
22:20:19 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
22:23:42 × arthur quits (~arthur@78.196.67.166) (Remote host closed the connection)
22:24:21 arahael joins (~arahael@118.211.187.178)
22:26:36 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:28:39 slack1256 joins (~slack1256@191.125.99.209)
22:30:12 quarkyalice joins (~textual@user/quarkyalice)
22:30:34 × noteness quits (~noteness@user/noteness) (Ping timeout: 240 seconds)
22:30:37 × Guest27 quits (~Guest27@2601:281:d47f:1590::2df) (Quit: Client closed)
22:31:27 noteness joins (~noteness@user/noteness)
22:31:30 alexhandy joins (~trace@user/trace)
22:32:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
22:32:09 <alexhandy> how is it, to rewrite an imperative program to haskell
22:32:24 <alexhandy> is this a good idea
22:32:56 × acidjnk quits (~acidjnk@p200300d0c7068b450c914120f4f505ee.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
22:33:55 <n3t> alexhandy: it depends on what is your goal. What is your goal?
22:38:46 × pleo quits (~pleo@user/pleo) (Quit: quit)
22:39:38 × quarkyalice quits (~textual@user/quarkyalice) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
22:42:01 × ashln quits (~ashln@98.38.236.123) (Ping timeout: 246 seconds)
22:43:11 ashln joins (~ashln@98.38.236.123)
22:46:23 Cupcakus joins (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net)
22:48:51 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
22:54:30 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 260 seconds)
22:54:57 × liz quits (~liz@cpc84585-newc17-2-0-cust60.16-2.cable.virginm.net) (Ping timeout: 256 seconds)
22:57:09 <geekosaur> alexhandy, certainly it's possible. you can even write it in an imperative manner. writing it in a more functional style depends to some extent on the language (there's typically a big difference between functional code in Haskell vs., say, Lisp) and to a great extent on exactly what you're doing
22:57:12 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
22:58:03 × kimjetwav quits (~user@2607:fea8:2340:da00:592f:dda3:fea6:1b4c) (Remote host closed the connection)
22:58:24 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
23:02:21 × Tuplanolla quits (~Tuplanoll@91-159-68-181.elisa-laajakaista.fi) (Quit: Leaving.)
23:10:12 liz joins (~liz@cpc84585-newc17-2-0-cust60.16-2.cable.virginm.net)
23:12:15 × meinside quits (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
23:17:57 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 258 seconds)
23:18:50 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
23:18:59 × zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
23:21:12 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
23:24:43 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 246 seconds)
23:25:22 × turlando quits (~turlando@user/turlando) (Ping timeout: 244 seconds)
23:27:13 <exarkun> The imperative program is almost certainly contorted into some unpleasant shape as a result of its focus on encoding the correct sequence of state mutations.
23:39:58 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368) (Remote host closed the connection)
23:46:39 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
23:46:47 Alleria joins (~AllahuAkb@DN2lk43bh.stanford.edu)
23:49:43 turlando joins (~turlando@93.51.40.51)
23:49:43 × turlando quits (~turlando@93.51.40.51) (Changing host)
23:49:43 turlando joins (~turlando@user/turlando)
23:51:08 alexhandy2 joins (~trace@user/trace)
23:52:50 × alexhandy quits (~trace@user/trace) (Ping timeout: 240 seconds)
23:52:58 × pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
23:53:39 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1834:2996:45d4:5368)
23:59:39 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)

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