2022/08/10

2022-08-10 00:00:29 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 00:02:10 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.6)
2022-08-10 00:03:06 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-08-10 00:08:29 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2022-08-10 00:10:04 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-10 00:10:48 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 00:14:32 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-10 00:16:52 +0200coot(~coot@213.134.176.158)
2022-08-10 00:17:12 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-08-10 00:17:28 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-10 00:18:01 +0200coot(~coot@213.134.176.158) (Remote host closed the connection)
2022-08-10 00:18:07 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-08-10 00:18:38 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-08-10 00:19:33 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-08-10 00:19:37 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-08-10 00:22:22 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
2022-08-10 00:32:18 +0200ystael_(~ystael@user/ystael) (Ping timeout: 240 seconds)
2022-08-10 00:32:44 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-08-10 00:37:55 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 00:38:29 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
2022-08-10 00:53:23 +0200Tuplanolla(~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Quit: Leaving.)
2022-08-10 00:58:10 +0200alp_(~alp@user/alp) (Ping timeout: 268 seconds)
2022-08-10 01:03:43 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-08-10 01:05:35 +0200 <phma> What needs to be in a repo to be ready to upload to Hackage?
2022-08-10 01:06:53 +0200 <hpc> a cabal file, and technically that's pretty much it :P
2022-08-10 01:07:58 +0200 <geekosaur> last I checked cabal insisted on a LICENSE file. cabal check will tell you what you need
2022-08-10 01:09:22 +0200 <hpc> you might want to build docs locally and make sure they look right
2022-08-10 01:10:36 +0200 <EvanR> nah, just yolo upload the package, wait (?) months for docs to build. See they are wrong, and do a fixup
2022-08-10 01:10:47 +0200 <EvanR> which doesn't require a new release
2022-08-10 01:11:31 +0200 <phma> is there a stack check?
2022-08-10 01:14:51 +0200geekosaurhas no idea
2022-08-10 01:14:57 +0200luffy(~chenqisu1@183.217.201.23)
2022-08-10 01:18:38 +0200 <geekosaur> my guess is that, just as cabal sdist runs a check first, stack sdist does whatever checks are needed first
2022-08-10 01:20:20 +0200slack1256(~slack1256@wsip-184-177-0-226.no.no.cox.net) (Ping timeout: 268 seconds)
2022-08-10 01:29:12 +0200acidjnk_new(~acidjnk@p200300d6e705866691d881defe97b1cb.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-08-10 01:30:22 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-10 01:36:47 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 01:44:23 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
2022-08-10 01:44:25 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-10 01:50:27 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-10 01:50:28 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-10 01:50:28 +0200wroathe(~wroathe@user/wroathe)
2022-08-10 01:55:55 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 02:00:27 +0200KaipeiKaiepi
2022-08-10 02:00:49 +0200 <dsal> I don't hate hedgehog, but it does feel like it was written by someone who didn't use Haskell all that much. Or at least, did weird things.
2022-08-10 02:00:55 +0200 <dsal> I just used `tripping` which is `tripping :: (MonadTest m, Applicative f, Show b, Show (f a), Eq (f a), HasCallStack) => a -> (a -> b) -> (b -> f a) -> m ()`
2022-08-10 02:01:11 +0200 <dsal> Putting the thing you're testing as the first argument is kind of hostile.
2022-08-10 02:02:00 +0200 <DigitalKiwi> aren't all arguments the first
2022-08-10 02:02:15 +0200 <dsal> heh
2022-08-10 02:02:34 +0200 <DigitalKiwi> unless it's the color of the shed
2022-08-10 02:02:55 +0200 <DigitalKiwi> ...or maybe that argument just never ended
2022-08-10 02:03:31 +0200 <dsal> This is the difference between `forAll genThing >>= \aThing -> tripping aThing printThing parseThing` and `forAll genThing >>= tripping printThing parseThing`
2022-08-10 02:03:49 +0200 <EvanR> no you're right, you put the variable with "highest frequency" last
2022-08-10 02:04:41 +0200 <EvanR> to take advantage of partialing
2022-08-10 02:05:01 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 02:05:15 +0200 <EvanR> sometimes it's a toss up and you're screwed, but it's not as bad as OOP binary operators
2022-08-10 02:05:21 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-08-10 02:05:35 +0200 <hpc> oh man, don't even get me started on python's ','.join(list)
2022-08-10 02:05:51 +0200 <dsal> Yeah. This case is pretty clear. The thing you want to test is the output of the generator and the input of the tester thing.
2022-08-10 02:06:14 +0200 <EvanR> didn't even think of that
2022-08-10 02:06:23 +0200 <EvanR> I mean DUH
2022-08-10 02:06:37 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-08-10 02:07:10 +0200 <dsal> It usually does its job well, but it's just weird to use sometimes.
2022-08-10 02:08:03 +0200 <EvanR> hpc, put anything that accepts a bool somewhere in the signature under the Bool class xD
2022-08-10 02:08:10 +0200 <DigitalKiwi> goodbye hedgehog hello porcupine
2022-08-10 02:08:54 +0200 <DigitalKiwi> oooh moonrat
2022-08-10 02:09:34 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 02:10:57 +0200cyanide3dinner(~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d) (Remote host closed the connection)
2022-08-10 02:11:24 +0200Sgeo(~Sgeo@user/sgeo)
2022-08-10 02:12:38 +0200 <DigitalKiwi> til hedgehog and porcupine aren't even in the same order
2022-08-10 02:12:43 +0200 <DigitalKiwi> but i learned of moonrats
2022-08-10 02:12:57 +0200 <EvanR> sounds like something out of D&D
2022-08-10 02:13:08 +0200 <dsal> See, sometimes complaining yields good results.
2022-08-10 02:14:22 +0200 <hpc> EvanR: like they're the preferred food of owlbears? :D
2022-08-10 02:14:28 +0200nilradical(~nilradica@user/naso)
2022-08-10 02:16:39 +0200 <DigitalKiwi> https://en.wikipedia.org/wiki/Gymnure
2022-08-10 02:18:01 +0200 <DigitalKiwi> rats and porcupines are more closely related than porcupines and hedgehogs lol
2022-08-10 02:19:11 +0200 <DigitalKiwi> moonrats look like rodents of unusual size
2022-08-10 02:20:09 +0200 <DigitalKiwi> but are not rodents
2022-08-10 02:20:19 +0200 <DigitalKiwi> this has been a taxonomy lesson i'm on topic you see
2022-08-10 02:20:45 +0200 <hpc> everyone knows haskell talk belongs in -offtopic anyway :D
2022-08-10 02:20:59 +0200 <geekosaur> monochrom's not gate in action 🙂
2022-08-10 02:22:39 +0200aliosablack(~chomwitt@2a02:587:dc15:5e00:ea1e:e5c0:de8:53e2) (Ping timeout: 268 seconds)
2022-08-10 02:23:28 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 02:24:49 +0200 <DigitalKiwi> https://github.com/jacobstanley?tab=repositories&q=&type=source&language=&sort= i would say a few of these classify as weird things aye lol
2022-08-10 02:27:05 +0200 <DigitalKiwi> https://github.com/jacobstanley/cthulhu
2022-08-10 02:28:46 +0200 <DigitalKiwi> what's a smart http
2022-08-10 02:28:47 +0200 <DigitalKiwi> https://github.com/jacobstanley/mothership
2022-08-10 02:32:35 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-08-10 02:33:35 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-08-10 02:44:42 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds)
2022-08-10 02:49:00 +0200king_gs(~Thunderbi@187.201.102.80)
2022-08-10 02:51:41 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-10 02:53:58 +0200mmhat(~mmh@p200300f1c72ee96aee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
2022-08-10 03:00:52 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-10 03:02:21 +0200xff0x_(~xff0x@2405:6580:b080:900:9f22:be61:9bf8:3a54) (Ping timeout: 255 seconds)
2022-08-10 03:07:02 +0200Colere(~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds)
2022-08-10 03:07:17 +0200lsrts^(~lsrts@206.85.120.17)
2022-08-10 03:07:39 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-08-10 03:09:18 +0200Colere(~colere@about/linux/staff/sauvin)
2022-08-10 03:10:07 +0200jargon(~jargon@184.101.168.117)
2022-08-10 03:10:21 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds)
2022-08-10 03:11:06 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-08-10 03:11:21 +0200king_gs(~Thunderbi@187.201.102.80) (Ping timeout: 268 seconds)
2022-08-10 03:14:01 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 03:16:44 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-08-10 03:17:14 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-08-10 03:17:43 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-10 03:18:45 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-10 03:21:10 +0200 <qrpnxz> name of the game: get rid of unboxed integers. Enemy numbers one: lifted polymorphism. Solution: chunking?
2022-08-10 03:21:26 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-08-10 03:21:50 +0200lsrts^(~lsrts@206.85.120.17) (Ping timeout: 268 seconds)
2022-08-10 03:22:00 +0200 <qrpnxz> rid of boxed integers rather
2022-08-10 03:22:06 +0200 <qrpnxz> ugh
2022-08-10 03:22:09 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-08-10 03:22:30 +0200 <qrpnxz> hard to get the performance i want
2022-08-10 03:27:58 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 03:31:07 +0200king_gs(~Thunderbi@187.201.102.80)
2022-08-10 03:31:26 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-10 03:32:42 +0200 <EvanR> enemy numbers
2022-08-10 03:33:35 +0200 <DigitalKiwi> cope
2022-08-10 03:34:45 +0200 <geekosaur> if integers is `Integer`s then you have bigger problems than boxing
2022-08-10 03:34:49 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds)
2022-08-10 03:34:57 +0200lsrts^(~lsrts@206.85.120.17)
2022-08-10 03:35:09 +0200 <zzz> word
2022-08-10 03:35:23 +0200 <DigitalKiwi> "who're your enemies?" "numbers" "that's a lot" "how many you suppose?" "well, all of them"
2022-08-10 03:35:36 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-08-10 03:36:01 +0200 <DigitalKiwi> imaginary enemies
2022-08-10 03:36:15 +0200 <geekosaur> complex enemies
2022-08-10 03:36:25 +0200 <DigitalKiwi> irrational enemies
2022-08-10 03:36:27 +0200 <zzz> surreal enemies
2022-08-10 03:36:32 +0200lsrts^(~lsrts@206.85.120.17) (Remote host closed the connection)
2022-08-10 03:37:34 +0200 <DigitalKiwi> sea enemies
2022-08-10 03:37:45 +0200 <DigitalKiwi> https://en.wikipedia.org/wiki/Sea_anemone :)
2022-08-10 03:39:05 +0200EvanR(~EvanR@user/evanr) (Quit: Leaving)
2022-08-10 03:40:05 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 03:43:13 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-08-10 03:43:54 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-08-10 03:44:41 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-10 03:44:42 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-10 03:44:42 +0200wroathe(~wroathe@user/wroathe)
2022-08-10 03:48:21 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds)
2022-08-10 03:51:38 +0200dcoutts_(~duncan@host86-167-206-78.range86-167.btcentralplus.com)
2022-08-10 03:51:44 +0200king_gs(~Thunderbi@187.201.102.80) (Read error: Connection reset by peer)
2022-08-10 03:52:16 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 03:53:52 +0200king_gs(~Thunderbi@187.201.102.80)
2022-08-10 03:53:59 +0200dcoutts(~duncan@host86-184-129-193.range86-184.btcentralplus.com) (Ping timeout: 252 seconds)
2022-08-10 03:56:57 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 03:57:38 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 03:59:18 +0200zaquest(~notzaques@5.130.79.72)
2022-08-10 04:06:16 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-08-10 04:06:27 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-08-10 04:06:49 +0200JimL(~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 252 seconds)
2022-08-10 04:07:17 +0200vysn(~vysn@user/vysn)
2022-08-10 04:09:23 +0200 <qrpnxz> OH YEAH BABY. it's all about that chunking. From dozens of gigabytes of memory and several minutes, to 1.3 seconds and exactly the amount of memory i expect
2022-08-10 04:10:20 +0200 <Axman6> what're you working on?
2022-08-10 04:12:42 +0200king_gs(~Thunderbi@187.201.102.80) (Read error: Connection reset by peer)
2022-08-10 04:12:53 +0200king_gs1(~Thunderbi@2806:103e:29:da31:dbd5:c070:5d09:91ef)
2022-08-10 04:13:20 +0200 <qrpnxz> a project i'm working on needs a library for some protocol, so i'm implementing that, but I wanted a streaming parser, so i went on a side-quest for like weeks investigating streaming in haskell. Honestly still not sure exactly what i'm gonna go for, but at least i'm getting an idea of the general principles needed to not have it be dog crap slow.
2022-08-10 04:15:11 +0200king_gs1king_gs
2022-08-10 04:16:09 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-08-10 04:16:09 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-08-10 04:16:09 +0200finn_elijaFinnElija
2022-08-10 04:17:37 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-08-10 04:19:45 +0200GoldsteinQ(~goldstein@goldstein.rs)
2022-08-10 04:23:33 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2022-08-10 04:27:03 +0200cheater(~Username@user/cheater)
2022-08-10 04:28:24 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-10 04:28:53 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-10 04:33:23 +0200td_(~td@94.134.91.254) (Ping timeout: 268 seconds)
2022-08-10 04:34:19 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 252 seconds)
2022-08-10 04:34:40 +0200td_(~td@muedsl-82-207-238-185.citykom.de)
2022-08-10 04:37:16 +0200nate4(~nate@98.45.169.16)
2022-08-10 04:46:46 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 04:48:43 +0200Guest92(~Guest92@2607:fea8:fca0:7efd:6604:7838:c1ec:5a0a)
2022-08-10 04:49:07 +0200 <Guest92> @unmtl MaybeT (State String) a
2022-08-10 04:49:07 +0200 <lambdabot> String -> (Maybe a, String)
2022-08-10 04:49:20 +0200 <Guest92> @unmtl StateT String Maybe a
2022-08-10 04:49:20 +0200 <lambdabot> String -> Maybe (a, String)
2022-08-10 04:52:17 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-10 04:52:30 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2022-08-10 04:53:11 +0200nilradical(~nilradica@user/naso)
2022-08-10 04:54:15 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-10 04:54:38 +0200nilradical(~nilradica@user/naso)
2022-08-10 04:56:11 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-10 04:56:46 +0200 <qrpnxz> yeah, the fact some transformers actually transform backwards, is eyebrow raising
2022-08-10 05:01:22 +0200Guest92(~Guest92@2607:fea8:fca0:7efd:6604:7838:c1ec:5a0a) (Quit: Client closed)
2022-08-10 05:01:34 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-08-10 05:20:31 +0200pgib(~textual@173.38.117.69) (Ping timeout: 252 seconds)
2022-08-10 05:21:14 +0200EsoAlgo(~EsoAlgo@129.146.136.145) (Ping timeout: 244 seconds)
2022-08-10 05:23:05 +0200foul_owl(~kerry@23.82.194.108) (Ping timeout: 252 seconds)
2022-08-10 05:28:25 +0200foul_owl(~kerry@174-21-65-36.tukw.qwest.net)
2022-08-10 05:29:30 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-08-10 05:29:58 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-08-10 05:32:02 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.5)
2022-08-10 05:32:24 +0200vysn(~vysn@user/vysn)
2022-08-10 05:32:35 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 255 seconds)
2022-08-10 05:32:41 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-10 05:33:13 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-10 05:33:13 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-10 05:33:13 +0200wroathe(~wroathe@user/wroathe)
2022-08-10 05:33:15 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
2022-08-10 05:34:49 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-08-10 05:35:19 +0200mbuf(~Shakthi@122.165.55.71)
2022-08-10 05:36:02 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2022-08-10 05:36:12 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
2022-08-10 05:36:17 +0200vglfr(~vglfr@37.73.110.255) (Ping timeout: 252 seconds)
2022-08-10 05:36:25 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2022-08-10 05:38:11 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-08-10 05:39:25 +0200vglfr(~vglfr@37.73.110.255)
2022-08-10 05:40:31 +0200nate4(~nate@98.45.169.16)
2022-08-10 05:40:40 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 05:43:02 +0200foul_owl(~kerry@174-21-65-36.tukw.qwest.net) (Ping timeout: 268 seconds)
2022-08-10 05:43:23 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
2022-08-10 05:44:09 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-08-10 05:44:43 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-08-10 05:45:05 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
2022-08-10 05:46:19 +0200Lumia(~Lumia@c-24-34-172-110.hsd1.ma.comcast.net)
2022-08-10 05:49:14 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-10 05:49:35 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2022-08-10 05:54:08 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-10 05:55:33 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-10 05:55:33 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-10 05:55:34 +0200wroathe(~wroathe@user/wroathe)
2022-08-10 05:56:38 +0200foul_owl(~kerry@23.82.194.107)
2022-08-10 05:58:26 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 06:00:06 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.5)
2022-08-10 06:00:22 +0200vysn(~vysn@user/vysn)
2022-08-10 06:00:43 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 06:01:26 +0200 <Axman6> I don't think it's accurate to say they transform backwards, there's only really one way most transformers can be defined, and the composition of them gives different monads depending on the order - like above, the former will tell you what the state was when things fail, but the latter won't (IMO the latter is probably more useful, but the former is probably more common)
2022-08-10 06:02:10 +0200 <Axman6> actually, ignore that last bit
2022-08-10 06:03:40 +0200king_gs(~Thunderbi@2806:103e:29:da31:dbd5:c070:5d09:91ef) (Quit: king_gs)
2022-08-10 06:04:21 +0200 <texasmynsted> Anybody have this book? https://mmhaskell.com/ebooks
2022-08-10 06:06:09 +0200 <texasmynsted> "Haskell Data Structures: In Depth" I am curious about what 9 data structures this would have. I am kind of a sucker for good pedagogy... I guess I could just shell out the $10 and find out.
2022-08-10 06:06:32 +0200 <Axman6> Never heard of it. It's a shame it doesn't tell you more about the content
2022-08-10 06:06:47 +0200 <texasmynsted> yeah
2022-08-10 06:07:16 +0200 <texasmynsted> from this source https://mmhaskell.com/
2022-08-10 06:07:44 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-08-10 06:10:24 +0200 <texasmynsted> I can't even think of 9 haskell data structures.
2022-08-10 06:10:43 +0200 <texasmynsted> Type classes, but not data structures
2022-08-10 06:11:50 +0200 <Axman6> List, Map, HashMap, Seq, DList, Vector, (MVector)... I would expect at least these to be covered
2022-08-10 06:12:13 +0200 <Axman6> I'm assuming Maybe and Either are too trivial to really consider data structures
2022-08-10 06:12:17 +0200 <Axman6> maybe IntMap?
2022-08-10 06:12:42 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 06:13:04 +0200 <Axman6> but the differences between (Hash|Int|)Map are relatively small, mostly relating to asymtotics, and a few unique features of their APIs
2022-08-10 06:14:12 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-08-10 06:14:22 +0200 <texasmynsted> List, Map, Seq, Set, Vector,
2022-08-10 06:14:29 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-08-10 06:14:39 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 06:15:11 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
2022-08-10 06:15:22 +0200 <texasmynsted> Right HashMap and Map feels like two variations of the same data structure
2022-08-10 06:15:33 +0200 <Axman6> yeah I forgot Set, that's important too
2022-08-10 06:15:52 +0200 <Axman6> eh, not really, they're quite different in implementation and performance
2022-08-10 06:16:38 +0200 <texasmynsted> Trie
2022-08-10 06:17:36 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-08-10 06:17:46 +0200 <Axman6> I wrote a ternary trie package years ago, stuck it on hackage, then forgot about it - then one day I saw it referenced in a paper comparing tree like data strucutres, and mine ended up being the fastest for many operations. One of the closest things to having a proper academic reference
2022-08-10 06:18:55 +0200 <Axman6> I came up with a neat encoding scheme for the Binary instance which represented whether a sub tree was a leaf or not in the tag byte. It did a good job compressing dictionaries of words
2022-08-10 06:18:56 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 06:20:02 +0200 <texasmynsted> Nice!
2022-08-10 06:20:28 +0200 <texasmynsted> Okay, I gave in and got the book.
2022-08-10 06:20:49 +0200 <Axman6> what're the structures? If the book's any good I'd considering giving them come money too
2022-08-10 06:21:17 +0200 <dsal> https://mmhaskell.com/blog/2022/8/1/data-structures-heap
2022-08-10 06:21:22 +0200 <dsal> I've been following the blog.
2022-08-10 06:21:23 +0200 <texasmynsted> List, Set, Map, Hash Set, Hash Map, Array, Vector, Sequence, Heap
2022-08-10 06:22:10 +0200 <texasmynsted> well, I should have read through the site/blog. Heh
2022-08-10 06:22:42 +0200 <Axman6> heh - oh well, it's nice to have it contained
2022-08-10 06:22:50 +0200 <dsal> In a container of some sort.
2022-08-10 06:23:01 +0200 <Axman6> and it's good to support people in the community
2022-08-10 06:23:55 +0200 <dsal> Yeah. I've just used all of these things. The Hash ones are a bit weird and I've not used them on purpose.
2022-08-10 06:24:01 +0200 <dsal> Actually, I don't think I've used Heap for anything.
2022-08-10 06:24:11 +0200 <dsal> But "how to write a functional queue" is a fun exercise.
2022-08-10 06:24:19 +0200 <Axman6> HashMap is probably the one I've used most, after list
2022-08-10 06:24:28 +0200 <dsal> Really? Why HashMap?
2022-08-10 06:24:39 +0200 <dsal> That's significantly more characters than Map.
2022-08-10 06:24:56 +0200 <Axman6> faster and more space efficient than Map
2022-08-10 06:25:28 +0200 <dsal> Hmm... I guess that's not mattered to me. It might be helpful in my mqtt broker.
2022-08-10 06:25:48 +0200 <texasmynsted> I would say this is worth the $10.
2022-08-10 06:28:38 +0200 <Axman6> Generally if I'm just inserting and looking things up by key, I'll opt for HashMap, but sometimes you want to get things out in a consistent/predictable order, and then Data.Map is more useful
2022-08-10 06:28:43 +0200luffy(~chenqisu1@183.217.201.23) (Ping timeout: 252 seconds)
2022-08-10 06:29:16 +0200 <dsal> Map seems more "out of the box"
2022-08-10 06:32:49 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 06:36:01 +0200 <jackdk> I pretty much always use Map, because you can do elegant constructions my mconcatting singleton maps and HashMap does not like that one bit
2022-08-10 06:38:09 +0200nate4(~nate@98.45.169.16)
2022-08-10 06:42:53 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-10 06:45:32 +0200Lumia(~Lumia@c-24-34-172-110.hsd1.ma.comcast.net) (Quit: ,-)
2022-08-10 06:46:19 +0200 <texasmynsted> I would have liked to see structural recursion, structural induction, etc described in the book but it is very short.
2022-08-10 06:48:16 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 06:51:26 +0200king_gs(~Thunderbi@2806:103e:29:da31:e286:1b8a:479f:b023)
2022-08-10 06:52:30 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de)
2022-08-10 06:53:22 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-08-10 06:53:58 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-08-10 06:55:43 +0200kazaf(~kazaf@94.180.63.53)
2022-08-10 07:00:40 +0200kazaf(~kazaf@94.180.63.53) (Ping timeout: 252 seconds)
2022-08-10 07:03:49 +0200son0p(~ff@181.136.122.143) (Ping timeout: 268 seconds)
2022-08-10 07:04:46 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 07:05:05 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-10 07:05:27 +0200vglfr(~vglfr@37.73.110.255) (Read error: Connection reset by peer)
2022-08-10 07:05:39 +0200vglfr(~vglfr@37.73.110.255)
2022-08-10 07:05:43 +0200tvandinther(~tvandinth@2406:e002:6ca2:2b01:e95b:28f0:b5e8:ed97)
2022-08-10 07:07:51 +0200 <tvandinther> Hey everyone, quick question. A common pattern I get in code is checking that several conditions are met. I know about using `all` or `any` but I'm struggling to apply things in the right way to simplify an expression such as:
2022-08-10 07:07:52 +0200 <tvandinther> `a `cond1` b && a `cond2` b`
2022-08-10 07:07:52 +0200 <tvandinther> How would you simplify this so that the conditions can be sequenced?
2022-08-10 07:08:54 +0200 <Axman6> all (\p -> p a b) [cond1, cond2]?
2022-08-10 07:09:13 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 244 seconds)
2022-08-10 07:09:23 +0200 <Axman6> @pl all (\p -> p a b) -- don't do this, I'm just curious
2022-08-10 07:09:23 +0200 <lambdabot> all (flip ($ a) b)
2022-08-10 07:10:19 +0200 <Axman6> though generally I find that using boolean functions is almost always a code smell - generally you're gating access to something, and for that, Maybe or Either are substantially better options
2022-08-10 07:10:40 +0200 <tvandinther> oh right, the use of the lambda makes that obvious. I was trying to use `$`
2022-08-10 07:10:50 +0200 <Axman6> This feels lrelated to the "parse, don't validate" mantra: https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
2022-08-10 07:10:50 +0200 <tvandinther> the lambda is certainly the clearer option
2022-08-10 07:11:26 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-10 07:11:28 +0200 <tvandinther> The use case is checking that a tuple has both values >=
2022-08-10 07:11:33 +0200 <Axman6> I'd highly recommend you read that article if you haven't seen it
2022-08-10 07:11:38 +0200 <tvandinther> come to think of it, theres probably a cleaner way to write that
2022-08-10 07:12:12 +0200nilradical(~nilradica@user/naso)
2022-08-10 07:12:44 +0200 <tvandinther> Thanks, I'll give that article a read too
2022-08-10 07:15:34 +0200vglfr(~vglfr@37.73.110.255) (Ping timeout: 268 seconds)
2022-08-10 07:16:32 +0200Lumia(~Lumia@c-24-34-172-110.hsd1.ma.comcast.net)
2022-08-10 07:17:16 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-10 07:17:30 +0200nilradical(~nilradica@user/naso)
2022-08-10 07:17:53 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 07:19:39 +0200 <tvandinther> Is there a built-in which maps values of 2 zipped pairs?
2022-08-10 07:19:51 +0200 <tvandinther> Or even to zip 2 pairs?
2022-08-10 07:22:24 +0200 <Axman6> possibly in some of the arrow combinators
2022-08-10 07:22:31 +0200 <Axman6> :t (&&&)
2022-08-10 07:22:32 +0200 <lambdabot> Arrow a => a b c -> a b c' -> a b (c, c')
2022-08-10 07:22:34 +0200 <Axman6> :t (***)
2022-08-10 07:22:36 +0200 <lambdabot> Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
2022-08-10 07:22:46 +0200 <Axman6> not quite
2022-08-10 07:23:29 +0200 <Axman6> writing the function of type (a -> b -> c) -> (a,a) -> (b,b) -> (c,c) is pretty trivial though
2022-08-10 07:23:36 +0200 <Axman6> @djinn (a -> b -> c) -> (a,a) -> (b,b) -> (c,c)
2022-08-10 07:23:36 +0200 <lambdabot> f a (b, _) (c, _) = (a b c, a b c)
2022-08-10 07:23:57 +0200Axman6glares at djinn
2022-08-10 07:25:10 +0200 <Axman6> there's only like 8 implementation of functions with that type, not sure why djinn decided on that one, I thought it preferred to opt for using all inputs if possible
2022-08-10 07:29:20 +0200 <tvandinther> Where does it search? I tried that signature in hoogle and found nothing
2022-08-10 07:31:11 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-10 07:31:31 +0200 <Axman6> it doesn't search, djinn writes functions for you
2022-08-10 07:31:38 +0200 <Axman6> @hoogle (a -> b -> c) -> (a,a) -> (b,b) -> (c,c)
2022-08-10 07:31:39 +0200 <lambdabot> No results found
2022-08-10 07:31:44 +0200 <tvandinther> ah I see
2022-08-10 07:36:04 +0200Lumia(~Lumia@c-24-34-172-110.hsd1.ma.comcast.net) (Quit: ,-)
2022-08-10 07:36:05 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 07:39:11 +0200king_gs(~Thunderbi@2806:103e:29:da31:e286:1b8a:479f:b023) (Ping timeout: 244 seconds)
2022-08-10 07:39:42 +0200 <tvandinther> I keep going around in circles due to my lack of understanding. Main question is, would you simplify this expression, and if so how would you do it?
2022-08-10 07:39:43 +0200 <tvandinther> `snd p1 >= snd p2 && fst p1 <= fst p2`
2022-08-10 07:41:05 +0200 <Axman6> (\(x1,y1) (x2,y2) -> y1 >= y2 && x1 <= x2) p1 p2?
2022-08-10 07:41:09 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-10 07:41:15 +0200 <Axman6> on can be useful here too
2022-08-10 07:41:30 +0200 <Axman6> :t (<=) `on` snd
2022-08-10 07:41:32 +0200 <lambdabot> Ord a1 => (a2, a1) -> (a2, a1) -> Bool
2022-08-10 07:41:45 +0200 <chreekat> tvandinther: I probably wouldn't, it's pretty damn simple 😃
2022-08-10 07:41:49 +0200nilradical(~nilradica@user/naso)
2022-08-10 07:42:21 +0200 <Axman6> if you know you're going to use both fst and snd, then just use a pattern match and name the elements
2022-08-10 07:44:18 +0200 <Clinton[m]> This is a bit of a mix of a Haskell/Nix/VScode question, but does anyone know how to get VSCode to automagically run `nix-develop` on `flake.nix` whenever I load a project and have that as my environment. I know I can manually run `nix-develop` and then `code` inside that shell but I was hoping for a way to VSCode to just detect that.
2022-08-10 07:44:54 +0200coot(~coot@213.134.176.158)
2022-08-10 07:46:10 +0200 <tvandinther> True, pattern matching or just not simplifying seem to be the answers here. Thank you.
2022-08-10 07:46:20 +0200coot(~coot@213.134.176.158) (Client Quit)
2022-08-10 07:46:47 +0200abraham(~abraham@159.89.183.132)
2022-08-10 07:47:01 +0200nilradical(~nilradica@user/naso) (Ping timeout: 268 seconds)
2022-08-10 07:47:59 +0200coot(~coot@213.134.176.158)
2022-08-10 07:48:09 +0200 <Axman6> Clinton[m]: I don't know much about nix develop, but I assume it sets up the nix environment, including things like env vars? if so, it would be pretty hard from nix develop run from within VSCode to affect the environment of vs code; I think the cd foo; nix develop; code . options is probably the simplest
2022-08-10 07:50:32 +0200 <Lears> You could also use an alias or a wrapper script which looks for a flake.nix and does this for you.
2022-08-10 07:51:30 +0200bilegeek(~bilegeek@2600:1008:b029:dafd:1c14:3295:e11b:5339)
2022-08-10 07:52:16 +0200ubert(~Thunderbi@77.119.164.0.wireless.dyn.drei.com)
2022-08-10 07:52:22 +0200 <Axman6> alias code!="cd $1; nix develop; code ."
2022-08-10 07:56:52 +0200king_gs(~Thunderbi@187.201.102.80)
2022-08-10 08:04:10 +0200abraham(~abraham@159.89.183.132) (Quit: Textual IRC Client: www.textualapp.com)
2022-08-10 08:04:26 +0200 <jackdk> I think there's a plugin that does that but I don't use vscode
2022-08-10 08:04:47 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-08-10 08:04:58 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 08:05:14 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2022-08-10 08:05:23 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 08:05:30 +0200 <Axman6> Nix Environment Selector: Allows switch environment for Visual Studio Code and extensions based on Nix config file." does that sound right?
2022-08-10 08:06:08 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-08-10 08:06:23 +0200 <Axman6> actually, the Haskell example in the docs for that look pretty neat.
2022-08-10 08:07:10 +0200 <Axman6> I was just reading Tweag's post on how they'd like to improve Nix, and the linked thread about marketing the system (which was a surprising dumpster fire of a discussion intially)
2022-08-10 08:09:09 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 244 seconds)
2022-08-10 08:10:05 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 08:12:39 +0200poscat0x04(~poscat@114.245.109.158) (Quit: Bye)
2022-08-10 08:13:44 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-10 08:14:58 +0200poscat(~poscat@2408:8206:4822:7201:ea07:2224:d420:ae5c)
2022-08-10 08:20:41 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 08:22:07 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 08:25:13 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-08-10 08:28:36 +0200MajorBiscuit(~MajorBisc@c-001-013-051.client.tudelft.eduvpn.nl)
2022-08-10 08:28:59 +0200 <chreekat> Axman6: link?
2022-08-10 08:29:47 +0200 <Axman6> https://www.tweag.io/blog/2022-08-04-tweag-and-nix-future/
2022-08-10 08:30:43 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-08-10 08:31:06 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-08-10 08:31:23 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds)
2022-08-10 08:32:47 +0200`2jt(~jtomas@56.red-88-17-82.dynamicip.rima-tde.net)
2022-08-10 08:34:04 +0200gdown(~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
2022-08-10 08:34:13 +0200michalz(~michalz@185.246.204.90)
2022-08-10 08:35:37 +0200king_gs(~Thunderbi@187.201.102.80) (Read error: Connection reset by peer)
2022-08-10 08:37:14 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-08-10 08:38:31 +0200king_gs(~Thunderbi@187.201.102.80)
2022-08-10 08:46:52 +0200gff(~gff@user/gff) (Ping timeout: 268 seconds)
2022-08-10 08:48:37 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-08-10 08:48:46 +0200gff(~gff@user/gff)
2022-08-10 08:49:06 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-08-10 08:50:33 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-08-10 08:52:43 +0200nate4(~nate@98.45.169.16)
2022-08-10 08:57:56 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-10 08:57:56 +0200king_gs(~Thunderbi@187.201.102.80) (Read error: Connection reset by peer)
2022-08-10 08:57:57 +0200king_gs1(~Thunderbi@2806:103e:29:da31:a193:85fc:208c:eefb)
2022-08-10 08:58:14 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:9857:ce5d:2e2a:a7ef)
2022-08-10 08:59:41 +0200gmg(~user@user/gehmehgeh)
2022-08-10 09:00:16 +0200king_gs1king_gs
2022-08-10 09:04:39 +0200pmarg(~pmarg@2a01:799:159f:9b00:b695:8801:9ef8:8462)
2022-08-10 09:06:17 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
2022-08-10 09:06:58 +0200zxx7529(~Thunderbi@user/zxx7529) (Quit: zxx7529)
2022-08-10 09:09:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-10 09:10:28 +0200mmhat(~mmh@p200300f1c706f70aee086bfffe095315.dip0.t-ipconnect.de)
2022-08-10 09:13:52 +0200son0p(~ff@181.136.122.143)
2022-08-10 09:16:48 +0200cfricke(~cfricke@user/cfricke)
2022-08-10 09:18:00 +0200chele(~chele@user/chele)
2022-08-10 09:19:21 +0200chimp_(~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
2022-08-10 09:20:41 +0200Psybur(~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 252 seconds)
2022-08-10 09:23:26 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net)
2022-08-10 09:25:05 +0200frost(~frost@user/frost)
2022-08-10 09:26:08 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 244 seconds)
2022-08-10 09:26:30 +0200tristanC(~tristanC@user/tristanc) (Ping timeout: 264 seconds)
2022-08-10 09:27:02 +0200totte(~totte@h-82-196-112-155.A166.priv.bahnhof.se) (Ping timeout: 268 seconds)
2022-08-10 09:31:39 +0200aliosablack(~chomwitt@2a02:587:dc15:5e00:d0f9:9fe4:8717:f94d)
2022-08-10 09:34:53 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-08-10 09:35:21 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
2022-08-10 09:37:27 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-08-10 09:39:34 +0200king_gs(~Thunderbi@2806:103e:29:da31:a193:85fc:208c:eefb) (Ping timeout: 244 seconds)
2022-08-10 09:40:46 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 09:43:09 +0200acidjnk_new(~acidjnk@p200300d6e70586140960cfbfc54cf807.dip0.t-ipconnect.de)
2022-08-10 09:43:45 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-10 09:47:57 +0200mc47(~mc47@xmonad/TheMC47)
2022-08-10 09:48:40 +0200yvan-sraka(~yvan-srak@105.67.135.250)
2022-08-10 09:53:30 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 09:54:57 +0200cheater(~Username@user/cheater)
2022-08-10 09:56:31 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de) (Remote host closed the connection)
2022-08-10 09:58:22 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-08-10 09:59:31 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net)
2022-08-10 10:05:18 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2022-08-10 10:07:00 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-08-10 10:07:17 +0200yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection)
2022-08-10 10:07:56 +0200yahb2(~yahb2@static.56.27.47.78.clients.your-server.de)
2022-08-10 10:09:40 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 10:12:51 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-08-10 10:13:20 +0200tristanC(~tristanC@user/tristanc)
2022-08-10 10:14:13 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-08-10 10:15:31 +0200kraftwerk28_(~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in)
2022-08-10 10:16:34 +0200kraftwerk28(~kraftwerk@178.62.210.83)
2022-08-10 10:18:55 +0200ccntrq(~Thunderbi@172.209.94.92.rev.sfr.net)
2022-08-10 10:29:49 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:9857:ce5d:2e2a:a7ef) (Ping timeout: 268 seconds)
2022-08-10 10:30:26 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:298e:42c7:d203:46f0)
2022-08-10 10:33:35 +0200AlexNoo_(~AlexNoo@178.34.151.166)
2022-08-10 10:33:46 +0200AlexNoo(~AlexNoo@178.34.151.166) (Read error: Connection reset by peer)
2022-08-10 10:36:20 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 10:37:03 +0200ubert1(~Thunderbi@178.165.202.57.wireless.dyn.drei.com)
2022-08-10 10:38:03 +0200ubert(~Thunderbi@77.119.164.0.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2022-08-10 10:38:03 +0200ubert1ubert
2022-08-10 10:42:18 +0200pmarg_(~pmarg@138.199.6.238)
2022-08-10 10:44:47 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-08-10 10:45:14 +0200pmarg(~pmarg@2a01:799:159f:9b00:b695:8801:9ef8:8462) (Ping timeout: 268 seconds)
2022-08-10 10:45:17 +0200pmarg_pmarg
2022-08-10 10:48:47 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 10:52:27 +0200ardell(~ardell@user/ardell)
2022-08-10 10:56:30 +0200irfan(~irfan@user/irfan)
2022-08-10 10:58:31 +0200kuribas(~user@silversquare.silversquare.eu)
2022-08-10 10:58:50 +0200mmhat(~mmh@p200300f1c706f70aee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-08-10 11:00:09 +0200disco-dave[m](~disco-dav@2001:470:69fc:105::2:1892) (Quit: You have been kicked for being idle)
2022-08-10 11:00:54 +0200jakalx(~jakalx@base.jakalx.net)
2022-08-10 11:06:12 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
2022-08-10 11:07:16 +0200tvandinther(~tvandinth@2406:e002:6ca2:2b01:e95b:28f0:b5e8:ed97) (Quit: Client closed)
2022-08-10 11:10:29 +0200mmhat(~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de)
2022-08-10 11:11:20 +0200luffy(~chenqisu1@183.217.201.23)
2022-08-10 11:13:56 +0200luffy(~chenqisu1@183.217.201.23) (Max SendQ exceeded)
2022-08-10 11:14:25 +0200luffy(~chenqisu1@183.217.201.23)
2022-08-10 11:16:16 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-08-10 11:16:23 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-10 11:18:18 +0200luffy(~chenqisu1@183.217.201.23) (Client Quit)
2022-08-10 11:18:38 +0200acidjnk_new(~acidjnk@p200300d6e70586140960cfbfc54cf807.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-08-10 11:18:38 +0200luffy(~chenqisu1@183.217.201.23)
2022-08-10 11:19:26 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-08-10 11:23:28 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl)
2022-08-10 11:29:33 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-08-10 11:44:39 +0200alp_(~alp@user/alp)
2022-08-10 11:45:18 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.5)
2022-08-10 11:45:35 +0200vysn(~vysn@user/vysn)
2022-08-10 11:50:17 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
2022-08-10 11:50:36 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-10 11:50:40 +0200vglfr(~vglfr@88.155.13.114)
2022-08-10 11:53:54 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 11:55:09 +0200monadplus[m]1(~arnauabel@2001:470:69fc:105::2:6085)
2022-08-10 11:57:09 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 12:01:39 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 244 seconds)
2022-08-10 12:03:29 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
2022-08-10 12:05:11 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-10 12:05:41 +0200marquis_1ndras(~marquis_a@124-150-76-210.tpgi.com.au) (Ping timeout: 252 seconds)
2022-08-10 12:06:27 +0200acidjnk_new(~acidjnk@p200300d6e705861481a7f77b2ce6d239.dip0.t-ipconnect.de)
2022-08-10 12:07:37 +0200coot(~coot@213.134.176.158)
2022-08-10 12:07:58 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 12:11:30 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 12:11:50 +0200bilegeek(~bilegeek@2600:1008:b029:dafd:1c14:3295:e11b:5339) (Quit: Leaving)
2022-08-10 12:12:25 +0200marquis_andras(~marquis_a@27-32-245-27.tpgi.com.au)
2022-08-10 12:12:58 +0200luffy(~chenqisu1@183.217.201.23) (Quit: Leaving)
2022-08-10 12:15:24 +0200yvan-sraka(~yvan-srak@105.67.135.250) (Remote host closed the connection)
2022-08-10 12:15:57 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-08-10 12:16:36 +0200notzmv(~zmv@user/notzmv)
2022-08-10 12:18:31 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it)
2022-08-10 12:19:14 +0200nilradical(~nilradica@user/naso)
2022-08-10 12:19:16 +0200luffy(~chenqisu1@183.217.201.23)
2022-08-10 12:20:12 +0200kuribas(~user@silversquare.silversquare.eu) (Ping timeout: 268 seconds)
2022-08-10 12:20:47 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
2022-08-10 12:25:59 +0200kuribas(~user@silversquare.silversquare.eu)
2022-08-10 12:27:38 +0200ph88(~ph88@tmo-116-33.customers.d1-online.com)
2022-08-10 12:29:16 +0200 <kuribas> How rare is it to see rigor in companies? I hear the claim over and over that real world data is not rigorous, but most of the time it looks to me that it's just sloppy coding or modelling.
2022-08-10 12:30:15 +0200 <kuribas> Even when dealing with unexpected data, you need to apply rigor to get predidtable results.
2022-08-10 12:35:31 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-08-10 12:35:33 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-10 12:38:22 +0200 <chreekat> kuribas : Depends wildly on industry. I don't know what it means for data to be rigorous. I suppose you mean rigorous about ensuring data quality? In the context of transforming data coming from external sources?
2022-08-10 12:38:35 +0200img(~img@user/img)
2022-08-10 12:38:42 +0200 <kritzefitz> kuribas: I think one relevant aspect, is that a lot of practice-oriented code has to adapt to requirements that change over time. Making changes to a code base in a sloppy way is often cheaper in the short term than rigorously redefining your models to fit the new requirements.
2022-08-10 12:41:48 +0200 <chreekat> Or put another way, the model of any real world problem is time dependent, and also depends and past and future versions of itself, and modeling all that rigorously is a development I would watch with much interest
2022-08-10 12:45:02 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
2022-08-10 12:47:38 +0200darchitect1(~darchitec@2a00:23c6:3584:df01:7ab:2377:4825:f9a) (Ping timeout: 244 seconds)
2022-08-10 12:49:07 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.5)
2022-08-10 12:49:22 +0200vysn(~vysn@user/vysn)
2022-08-10 12:51:27 +0200yvan-sraka(~yvan-srak@105.67.135.250)
2022-08-10 12:52:13 +0200vysn(~vysn@user/vysn) (Client Quit)
2022-08-10 12:52:39 +0200vysn(~vysn@user/vysn)
2022-08-10 12:52:48 +0200geranim0(~geranim0@modemcable062.79-202-24.mc.videotron.ca)
2022-08-10 12:53:00 +0200bob(~geranim0@modemcable062.79-202-24.mc.videotron.ca)
2022-08-10 12:54:13 +0200nate4(~nate@98.45.169.16)
2022-08-10 12:54:29 +0200BanUtama(~blake.rai@user/BanUtama) (Quit: leaving)
2022-08-10 12:55:19 +0200alp_(~alp@user/alp) (Ping timeout: 268 seconds)
2022-08-10 12:58:24 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
2022-08-10 12:59:40 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-10 13:00:50 +0200CiaoSen(~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-08-10 13:00:51 +0200vysn(~vysn@user/vysn) (Ping timeout: 255 seconds)
2022-08-10 13:00:51 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-10 13:01:02 +0200CiaoSen(~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Client Quit)
2022-08-10 13:01:28 +0200kenran(~kenran@ip-037-024-119-190.um08.pools.vodafone-ip.de)
2022-08-10 13:01:31 +0200glguy(x@libera/staff/glguy) (Read error: Connection reset by peer)
2022-08-10 13:02:35 +0200glguy(x@libera/staff/glguy)
2022-08-10 13:03:43 +0200 <maerwald[m]> Rigor? Who's that
2022-08-10 13:04:55 +0200 <maerwald[m]> Think he died in a car accident. Hit by a Bus.
2022-08-10 13:06:11 +0200 <tdammers> I'm pretty sure all this is coming from clojure apologists
2022-08-10 13:06:36 +0200 <tdammers> real-world code is never 100% rigorous, but that doesn't mean rigor should go out the window entirely
2022-08-10 13:07:59 +0200 <absentia> who needs rigor
2022-08-10 13:08:14 +0200 <absentia> ship the code, get a raise, promotion, change of title
2022-08-10 13:08:15 +0200 <tdammers> there's a difference between making conscious and informed choices about where to be rigorous and where not, and just winging it and writing code in a reactive, ad-hoc fashion
2022-08-10 13:08:27 +0200 <absentia> leave the firm for another pay bump and title inflation
2022-08-10 13:08:40 +0200 <absentia> and let the next guy figure out the edge cases
2022-08-10 13:08:53 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 268 seconds)
2022-08-10 13:09:03 +0200 <tdammers> ^ that's also extremely common, and an almost inevitable consequence of the "paid labor" situation
2022-08-10 13:09:46 +0200 <tdammers> as with anything, once you start paying people for doing it, the quality goes from "giving it your very best" to "enough, and not a bit more"
2022-08-10 13:09:53 +0200 <maerwald[m]> I think most of industry issues come from those "star programmers". They get the company up and running and then leave. And nevnr receive any feedback about their decisions. So they stay in their bubble
2022-08-10 13:10:09 +0200 <tdammers> nah
2022-08-10 13:10:14 +0200 <absentia> yeah
2022-08-10 13:10:32 +0200 <maerwald[m]> It's not poor coders
2022-08-10 13:10:43 +0200 <tdammers> I mean, that happens, but most of the industry is not companies that have just outgrown their early startup phase
2022-08-10 13:10:45 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
2022-08-10 13:11:04 +0200 <tdammers> you are right that it's not usually the coders though
2022-08-10 13:11:08 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 13:11:09 +0200 <tdammers> or at least, not all of them
2022-08-10 13:11:55 +0200 <tdammers> but it's really really easy to mess up a team of perfectly fine developers without any rockstars, and it happens all the time
2022-08-10 13:13:28 +0200 <tdammers> give them overly specific tasks, but withhold key information about the operation; set unrealistic deadlines; change course and redefine the domain terminology every week; fill the backlog with vaguely-defined "issues" that are really more like a layman's fever dream; bury them in meetings and memos and "urgent" tickets
2022-08-10 13:13:31 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-08-10 13:13:40 +0200 <tdammers> and, if in doubt, raise the pressure
2022-08-10 13:14:13 +0200 <tdammers> sooner or later, they will start taking shortcuts, check in code that they know isn't right, and once the technical debt starts piling up, it tends to get worse and worse
2022-08-10 13:15:21 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-08-10 13:15:23 +0200 <maerwald[m]> Never worked anywhere, where sloppy code was the problem. It was always design decisions early in the startup phase, that were impossible to revert
2022-08-10 13:15:38 +0200 <maerwald[m]> And those are always the rockstars
2022-08-10 13:16:19 +0200 <tdammers> IME, it's more often unreasonable managers than rockstar devs who come up with those decisions
2022-08-10 13:16:20 +0200gmg(~user@user/gehmehgeh)
2022-08-10 13:17:01 +0200 <maerwald[m]> Yeah sure, whoever makes the decisions
2022-08-10 13:17:17 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl)
2022-08-10 13:17:20 +0200 <maerwald[m]> The problem is how to get feedback for those
2022-08-10 13:17:30 +0200 <maerwald[m]> Many of them manifest after years, when the original decision makers are long gone
2022-08-10 13:17:56 +0200 <tdammers> and those decisions wouldn't be so bad if the code were kept in a state where they can be undone / changed
2022-08-10 13:18:00 +0200 <tdammers> but that never happens
2022-08-10 13:18:24 +0200 <tdammers> it's not outright *sloppy* code, it's just that nobody goes the extra mile to make the code truly orthogonal and refactorable
2022-08-10 13:19:29 +0200 <tdammers> another problem is that about 80% of the developer population, and 99.99% of the management population, are stuck in a "make it work" mindset, where code is considered "done" when it has been shown to produce the desired results at least once, in very specific circumstances.
2022-08-10 13:19:40 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-08-10 13:19:56 +0200 <maerwald[m]> Hehe
2022-08-10 13:21:04 +0200 <maerwald[m]> It's only done when it was used during s moon landing :p
2022-08-10 13:21:05 +0200 <maerwald[m]> Liko curl
2022-08-10 13:21:34 +0200 <tdammers> didn't one of the Apollo computer systems fail during the first Moon landing?
2022-08-10 13:23:34 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 13:23:49 +0200 <maerwald[m]> That's why it's better to quit programming and just... dunno, open a pub
2022-08-10 13:23:54 +0200xff0x_(~xff0x@2405:6580:b080:900:7393:ed71:26f2:b383)
2022-08-10 13:24:33 +0200darchitect1(~darchitec@2a00:23c6:3584:df01:9f23:d492:30c1:6303)
2022-08-10 13:25:33 +0200 <arahael> tdammers: Absolutely correct.
2022-08-10 13:26:29 +0200 <maerwald[m]> "It's only done when it was used during a successful moon landing" ;)
2022-08-10 13:28:15 +0200 <arahael> maerwald[m]: I was thinking this morning that maybe I should run a cafe. :)
2022-08-10 13:28:27 +0200 <arahael> Cafe dude looked happy./
2022-08-10 13:28:58 +0200 <tdammers> the landing was still a success, despite the failure
2022-08-10 13:29:19 +0200 <tdammers> and of course the failure wasn't a programming error, but an oversight in the overall system design
2022-08-10 13:29:42 +0200 <maerwald[m]> arahael: if you provide decaffeinated matcha, then sure
2022-08-10 13:30:25 +0200 <arahael> maerwald[m]: No, I'd provide espresso. And only espresso. :)
2022-08-10 13:30:38 +0200 <maerwald[m]> tdammers: who knows, maybe the landing was a success because of the crash :p
2022-08-10 13:32:03 +0200poscat(~poscat@2408:8206:4822:7201:ea07:2224:d420:ae5c) (Quit: Bye)
2022-08-10 13:33:33 +0200raym(~raym@user/raym) (Remote host closed the connection)
2022-08-10 13:34:12 +0200 <jackdk> The star programmers I'm most in awe of are the ones who pull theory out of a hat to achieve seemingly-impossible things
2022-08-10 13:37:06 +0200 <maerwald[m]> They provide a lot of value by being explorers, but I'd never want them to build the system for my startup that decides whether my tech stack is gonna be well thought through for the future
2022-08-10 13:37:31 +0200raym(~raym@user/raym)
2022-08-10 13:38:07 +0200CiaoSen(~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-08-10 13:38:59 +0200 <maerwald[m]> Would rather hire a 60 years old java programmer who has looked into the abyss many times
2022-08-10 13:39:48 +0200Batzy(~quassel@user/batzy) (Quit: No Ping reply in 180 seconds.)
2022-08-10 13:41:13 +0200Batzy(~quassel@user/batzy)
2022-08-10 13:42:11 +0200pmarg(~pmarg@138.199.6.238) (Ping timeout: 268 seconds)
2022-08-10 13:44:46 +0200aliosablack(~chomwitt@2a02:587:dc15:5e00:d0f9:9fe4:8717:f94d) (Quit: Leaving)
2022-08-10 13:51:02 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-10 13:52:04 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:d0f9:9fe4:8717:f94d)
2022-08-10 13:55:01 +0200yvan-sraka(~yvan-srak@105.67.135.250) (Remote host closed the connection)
2022-08-10 13:55:20 +0200yvan-sraka(~yvan-srak@105.67.135.250)
2022-08-10 13:57:53 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-08-10 13:57:58 +0200ubert(~Thunderbi@178.165.202.57.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2022-08-10 13:58:02 +0200coot(~coot@213.134.176.158)
2022-08-10 13:58:08 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-08-10 13:58:18 +0200ubert(~Thunderbi@178.165.202.57.wireless.dyn.drei.com)
2022-08-10 13:58:46 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-08-10 14:02:43 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
2022-08-10 14:04:44 +0200 <kuribas> tdammers: "it's not outright *sloppy* code, it's just that nobody goes the extra mile to make the code truly orthogonal and refactorable" => this
2022-08-10 14:06:34 +0200 <kuribas> tdammers: and write documentation about tricky bits, important domain specific issues.
2022-08-10 14:07:40 +0200elkcl_(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
2022-08-10 14:09:21 +0200elkcl(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 268 seconds)
2022-08-10 14:09:22 +0200elkcl_elkcl
2022-08-10 14:11:00 +0200 <kuribas> tdammers: algorithms, architecture
2022-08-10 14:12:32 +0200 <maerwald> documentation is harder than coding
2022-08-10 14:12:44 +0200 <kuribas> but more important
2022-08-10 14:12:46 +0200 <maerwald> it requires you to actually understand something
2022-08-10 14:13:47 +0200 <lortabac> in my experience most problems arise because people underestimate complexity
2022-08-10 14:14:11 +0200 <maerwald> lortabac: of the domain or of their decisions? ;)
2022-08-10 14:14:17 +0200 <lortabac> the human brain is bad at understanding measures that grow exponentially
2022-08-10 14:14:18 +0200 <maerwald> IME, usually the latter
2022-08-10 14:14:44 +0200 <lortabac> we tend to sum the complexity of the various features, instead of multiplying
2022-08-10 14:15:37 +0200 <merijn> maerwald: Yes
2022-08-10 14:15:42 +0200 <maerwald> you're making a good argument against composition ;p
2022-08-10 14:16:29 +0200 <maerwald> everything comes back to unix principles... even functional programming (which didn't exist back then)
2022-08-10 14:17:01 +0200 <maerwald> composition is unmanagable if you don't follow those principles
2022-08-10 14:17:53 +0200 <lortabac> composition is bad, composability is good :)
2022-08-10 14:19:38 +0200 <carbolymer> lortabac: what's bad about composition?
2022-08-10 14:20:27 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-08-10 14:21:26 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-10 14:22:28 +0200 <lortabac> in the context of what we were discussing... the composition of multiple features increases the overall complexity
2022-08-10 14:23:12 +0200 <lortabac> but the composability of the individual components allows you to reason on a single component at a time
2022-08-10 14:23:39 +0200koz_(~koz@121.99.240.58) (Ping timeout: 268 seconds)
2022-08-10 14:26:09 +0200 <carbolymer> lortabac: you should abstract complexity away while composing, so you can make composition good again
2022-08-10 14:27:13 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 252 seconds)
2022-08-10 14:27:43 +0200koz(~koz@121.99.240.58)
2022-08-10 14:29:19 +0200ph88^(~ph88@tmo-116-33.customers.d1-online.com)
2022-08-10 14:30:17 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-10 14:30:56 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-10 14:31:28 +0200nilradical(~nilradica@user/naso)
2022-08-10 14:33:05 +0200ph88(~ph88@tmo-116-33.customers.d1-online.com) (Ping timeout: 252 seconds)
2022-08-10 14:35:37 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 14:35:39 +0200vglfr(~vglfr@88.155.13.114) (Ping timeout: 252 seconds)
2022-08-10 14:37:05 +0200poscat(~poscat@2408:8206:4820:6423:32a0:bd91:4668:caff)
2022-08-10 14:37:43 +0200nilradical(~nilradica@user/naso) (Ping timeout: 268 seconds)
2022-08-10 14:42:26 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-10 14:43:23 +0200nilradical(~nilradica@user/naso)
2022-08-10 14:45:05 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-08-10 14:45:48 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-08-10 14:50:57 +0200stef204(~stef204@user/stef204)
2022-08-10 14:52:01 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
2022-08-10 14:56:57 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-10 14:57:01 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-08-10 14:57:29 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 14:58:25 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-10 14:58:59 +0200vglfr(~vglfr@88.155.13.114)
2022-08-10 14:59:21 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 15:07:26 +0200bliminse(~bliminse@user/bliminse) (Ping timeout: 268 seconds)
2022-08-10 15:08:33 +0200luffy(~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds)
2022-08-10 15:08:58 +0200 <tdammers> what's even harder than writing documentation is writing code that doesn't need documentation
2022-08-10 15:09:01 +0200bliminse(~bliminse@user/bliminse)
2022-08-10 15:09:14 +0200 <tdammers> in part because a lot of code that we think is self-explanatory is, in fact, not
2022-08-10 15:13:16 +0200nate4(~nate@98.45.169.16)
2022-08-10 15:14:34 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 15:15:43 +0200poscat(~poscat@2408:8206:4820:6423:32a0:bd91:4668:caff) (Quit: Bye)
2022-08-10 15:17:22 +0200biberu\(~biberu@user/biberu)
2022-08-10 15:18:23 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-10 15:19:01 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
2022-08-10 15:20:51 +0200biberu(~biberu@user/biberu) (Ping timeout: 268 seconds)
2022-08-10 15:20:52 +0200biberu\biberu
2022-08-10 15:21:43 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-10 15:22:10 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-08-10 15:22:16 +0200yvan-sraka(~yvan-srak@105.67.135.250) (Remote host closed the connection)
2022-08-10 15:23:52 +0200nilradical(~nilradica@user/naso)
2022-08-10 15:25:07 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-08-10 15:27:33 +0200ccntrq(~Thunderbi@172.209.94.92.rev.sfr.net) (Remote host closed the connection)
2022-08-10 15:28:17 +0200nilradical(~nilradica@user/naso) (Ping timeout: 268 seconds)
2022-08-10 15:28:53 +0200poscat(~poscat@2408:8206:4820:6705:6404:b732:d928:1540)
2022-08-10 15:29:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-08-10 15:30:52 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-10 15:31:15 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-08-10 15:35:06 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
2022-08-10 15:36:59 +0200acidjnk_new(~acidjnk@p200300d6e705861481a7f77b2ce6d239.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-08-10 15:38:03 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-10 15:40:17 +0200jespada(~jespada@186.158.236.52)
2022-08-10 15:44:57 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-10 15:45:07 +0200mikoto-chan(~mikoto-ch@85-76-34-254-nat.elisa-mobile.fi)
2022-08-10 15:46:07 +0200nilradical(~nilradica@user/naso)
2022-08-10 15:47:46 +0200stef204(~stef204@user/stef204) (Quit: WeeChat 3.6)
2022-08-10 15:49:59 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2022-08-10 15:50:07 +0200ystael(~ystael@user/ystael)
2022-08-10 15:53:16 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-10 15:53:16 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-10 15:53:17 +0200wroathe(~wroathe@user/wroathe)
2022-08-10 15:53:28 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 15:54:45 +0200nattiestnate(~nate@180.243.14.16)
2022-08-10 15:56:58 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-10 15:57:44 +0200stef204(~stef204@user/stef204)
2022-08-10 15:58:05 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 255 seconds)
2022-08-10 15:59:05 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-08-10 15:59:53 +0200ardell(~ardell@user/ardell) (Quit: Leaving)
2022-08-10 16:01:36 +0200 <carbolymer> tdammers: It happened to me quite often, when I'm on the interview ( as a interviewee) and I ask the team, "are you writing documentation?" the answer is "we're writing self-documenting code HEHE"
2022-08-10 16:02:44 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-10 16:04:03 +0200nattiestnate(~nate@180.243.14.16) (Quit: WeeChat 3.6)
2022-08-10 16:07:45 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-10 16:09:16 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-10 16:10:26 +0200`2jt(~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) (Quit: Leaving)
2022-08-10 16:11:02 +0200mc47(~mc47@xmonad/TheMC47)
2022-08-10 16:11:26 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-08-10 16:13:53 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-08-10 16:15:16 +0200vglfr(~vglfr@88.155.13.114) (Ping timeout: 268 seconds)
2022-08-10 16:15:36 +0200vglfr(~vglfr@88.155.13.114)
2022-08-10 16:18:35 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-10 16:20:07 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-08-10 16:26:07 +0200nilradical(~nilradica@user/naso)
2022-08-10 16:26:21 +0200nilradical(~nilradica@user/naso) (Client Quit)
2022-08-10 16:27:19 +0200kenran(~kenran@ip-037-024-119-190.um08.pools.vodafone-ip.de) (Quit: WeeChat info:version)
2022-08-10 16:28:47 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-08-10 16:30:08 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-08-10 16:32:37 +0200jakalx(~jakalx@base.jakalx.net)
2022-08-10 16:32:43 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-10 16:36:07 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-08-10 16:37:58 +0200CiaoSen(~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-08-10 16:37:59 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
2022-08-10 16:38:17 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-08-10 16:39:29 +0200mvk(~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 255 seconds)
2022-08-10 16:41:27 +0200slack1256(~slack1256@wsip-184-177-0-226.no.no.cox.net)
2022-08-10 16:46:00 +0200 <maerwald[m]> Even if code is self explanatory, that doesn't make documentation unnecessary
2022-08-10 16:46:39 +0200 <maerwald[m]> Because now you're telling me to read the whole function body instead of reading rendered haddock comments?
2022-08-10 16:46:47 +0200 <maerwald[m]> Nah, I'll use another library, thanks
2022-08-10 16:47:17 +0200ph88^(~ph88@tmo-116-33.customers.d1-online.com) (Ping timeout: 252 seconds)
2022-08-10 16:47:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-08-10 16:48:16 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
2022-08-10 16:48:58 +0200 <kuribas> carbolymer: that response annoys me so much
2022-08-10 16:49:24 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 16:49:28 +0200 <maerwald[m]> The problem is really you can't write good documentation without a reviewer
2022-08-10 16:50:20 +0200 <kuribas> carbolymer: that comment implies two things, the code is so good you don't need documentation (it likely isn't), if you cannot understand the code from looking at it, you probably are not smart enough, or don't put enough effort (also false).
2022-08-10 16:50:39 +0200ph88^(~ph88@2a01:598:b005:8de0:a1cd:2b13:e4bf:7905)
2022-08-10 16:50:52 +0200 <carbolymer> kuribas: yeah, red flag right there
2022-08-10 16:50:59 +0200 <maerwald[m]> Red flag, find another company, unless they pay really well
2022-08-10 16:51:23 +0200 <carbolymer> maerwald[m]: life is about compromises ;)
2022-08-10 16:51:38 +0200 <kuribas> good luck finding a company which documents everything.
2022-08-10 16:51:43 +0200 <maerwald[m]> I'll ignore 2 red flags when the bucks are right
2022-08-10 16:52:08 +0200 <carbolymer> kuribas: ^
2022-08-10 16:52:13 +0200 <maerwald[m]> Except toxic culture
2022-08-10 16:52:30 +0200 <carbolymer> maerwald[m]: too bad that the toxic culture shows only after you're few months in
2022-08-10 16:52:32 +0200 <maerwald[m]> But that's hard to figure out in an interview
2022-08-10 16:52:39 +0200 <maerwald[m]> Yeah
2022-08-10 16:53:04 +0200 <maerwald[m]> And sometimes the coding itself is really nice
2022-08-10 16:54:21 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-10 16:54:49 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 16:56:12 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-10 16:56:35 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 16:56:35 +0200ph88^(~ph88@2a01:598:b005:8de0:a1cd:2b13:e4bf:7905) (Ping timeout: 268 seconds)
2022-08-10 16:56:56 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-08-10 16:56:59 +0200nate4(~nate@98.45.169.16)
2022-08-10 16:59:47 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-08-10 17:00:21 +0200tomku(~tomku@user/tomku) (Read error: Connection reset by peer)
2022-08-10 17:00:23 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:298e:42c7:d203:46f0) (Quit: WeeChat 2.8)
2022-08-10 17:01:58 +0200 <tdammers> "Documentation" is kind of an umbrella term, too.
2022-08-10 17:01:59 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-10 17:01:59 +0200kuribas(~user@silversquare.silversquare.eu) (Ping timeout: 268 seconds)
2022-08-10 17:03:16 +0200 <tdammers> what you do and do not need depends on the use case - you want your elevator pitch / executive summary, a 'getting started' guide, an explanation of key concepts, a set of 'how do I...' guides, a reference guide, and inline explanations that tell the reader why things are the way they are, and what else they need to read in order to make sense of the source code.
2022-08-10 17:03:21 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-10 17:03:25 +0200tomku(~tomku@user/tomku)
2022-08-10 17:03:53 +0200 <tdammers> we call all these "documentation", and that often leads to people mixing them up, and writing "getting started" guides in the source code, or moving the "why" explanations to external media like a wiki
2022-08-10 17:04:39 +0200lsrts^(~lsrts@206.85.120.17)
2022-08-10 17:11:35 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-10 17:13:23 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 17:13:41 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-10 17:13:48 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 17:15:19 +0200jespada(~jespada@186.158.236.52) (Read error: Connection reset by peer)
2022-08-10 17:16:01 +0200jespada(~jespada@2803:9800:9842:8ca9:c034:74:da3:46b7)
2022-08-10 17:17:21 +0200AlexZenon(~alzenon@178.34.151.166) (Ping timeout: 252 seconds)
2022-08-10 17:17:21 +0200Alex_test(~al_test@178.34.151.166) (Ping timeout: 252 seconds)
2022-08-10 17:17:50 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-10 17:18:11 +0200califax(~califax@user/califx)
2022-08-10 17:18:33 +0200Alex_test(~al_test@178.34.151.166)
2022-08-10 17:19:15 +0200AlexZenon(~alzenon@178.34.151.166)
2022-08-10 17:19:24 +0200notzmv(~zmv@user/notzmv)
2022-08-10 17:20:36 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-08-10 17:22:09 +0200 <[exa]> tdammers: tldr: transferring ideas is hard
2022-08-10 17:25:40 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-10 17:29:03 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
2022-08-10 17:33:00 +0200krjt(~krjst@2604:a880:800:c1::16b:8001) (Quit: bye)
2022-08-10 17:34:07 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-10 17:34:25 +0200krjst(~krjst@2604:a880:800:c1::16b:8001)
2022-08-10 17:35:08 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-08-10 17:36:27 +0200mmhat(~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
2022-08-10 17:41:15 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-08-10 17:42:02 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-10 17:42:10 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 17:46:16 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 17:46:19 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2022-08-10 17:47:13 +0200 <merijn> Transferring ideas is easy
2022-08-10 17:47:23 +0200 <merijn> as long as my medium gets to be "ad hoc rants"
2022-08-10 17:47:48 +0200 <merijn> It's the writing down of ideas that's tricky :p
2022-08-10 17:48:17 +0200 <carbolymer> yeah, those random turds in the middle of meeting are very effective
2022-08-10 17:51:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-08-10 17:52:16 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.6)
2022-08-10 17:53:49 +0200vglfr(~vglfr@88.155.13.114) (Ping timeout: 268 seconds)
2022-08-10 17:57:17 +0200nilradical(~nilradica@user/naso)
2022-08-10 17:58:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-10 17:59:19 +0200 <nilradical> in my code i have a common pattern: `Set.fromList [ f x y | x <- Set.toList s, y <- Set.toList s]` . i think with set-monad (https://hackage.haskell.org/package/set-monad) i can simplify this to `[ f x y | x <- y, s <- s]` , but does this have package incur a significant performance impact?
2022-08-10 17:59:44 +0200 <nilradical> `[ f x y | x <- s, y <- s]`
2022-08-10 17:59:56 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:00:13 +0200darchitect1(~darchitec@2a00:23c6:3584:df01:9f23:d492:30c1:6303) (Ping timeout: 244 seconds)
2022-08-10 18:03:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 18:04:16 +0200 <merijn> nilradical: I mean, the monad's gonna have exactly the same performance, so it shouldn't
2022-08-10 18:04:20 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 18:04:40 +0200zxx7529(~Thunderbi@user/zxx7529) (Quit: zxx7529)
2022-08-10 18:06:22 +0200 <nilradical> i remember reading somewhere that it had bad performance but didn't udnerstand the reason and when it applies
2022-08-10 18:06:58 +0200 <merijn> nilradical: The bad performance is basically "you have to deserialise to lists, do the operation, then rebuild a set
2022-08-10 18:07:01 +0200 <merijn> "
2022-08-10 18:07:04 +0200 <merijn> So it's not super efficient
2022-08-10 18:07:35 +0200mikoto-chan(~mikoto-ch@85-76-34-254-nat.elisa-mobile.fi) (Ping timeout: 252 seconds)
2022-08-10 18:07:38 +0200 <nilradical> ok, but since i'm doing that anyway it should make no difference for me. cool thanks
2022-08-10 18:07:41 +0200 <merijn> nilradical: otoh, you could wrap the original "ugly" list comprehension into a function and just use that and avoid the dependency?
2022-08-10 18:08:13 +0200 <nilradical> in general the arity of `f` is unknown
2022-08-10 18:08:19 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-08-10 18:09:32 +0200 <nilradical> and the values will not be drawn from the same set. e.g. it could be [ f x y z | x <- a, y <- b, z <- c ] . would it still be possible ?
2022-08-10 18:09:52 +0200kazaf(~kazaf@94.180.63.53)
2022-08-10 18:10:24 +0200 <nilradical> in other words, just general set comprehensions
2022-08-10 18:10:37 +0200 <nilradical> i think set-monad is good for me as long as it is compatible with relude
2022-08-10 18:12:48 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-10 18:13:32 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 18:13:43 +0200noteness(~noteness@user/noteness)
2022-08-10 18:14:40 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-08-10 18:14:40 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-10 18:15:09 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-10 18:15:31 +0200noteness(~noteness@user/noteness)
2022-08-10 18:15:43 +0200mbuf(~Shakthi@122.165.55.71) (Quit: Leaving)
2022-08-10 18:20:04 +0200mcglk_(~mcglk@131.191.49.120) (Quit: (zzz))
2022-08-10 18:22:04 +0200kazaf(~kazaf@94.180.63.53) (Remote host closed the connection)
2022-08-10 18:22:12 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 18:22:24 +0200kazaf(~kazaf@94.180.63.53)
2022-08-10 18:25:00 +0200econo(uid147250@user/econo)
2022-08-10 18:25:25 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:26:21 +0200ph88(~ph88@sonicwall.snp-ag.com)
2022-08-10 18:26:48 +0200mcglk(~mcglk@131.191.49.120)
2022-08-10 18:26:58 +0200ph88^(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:27:46 +0200ph88^(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:27:48 +0200kazaf(~kazaf@94.180.63.53) (Ping timeout: 252 seconds)
2022-08-10 18:28:33 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 18:28:36 +0200ph88^(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:28:40 +0200ph88^(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:29:20 +0200ph88^(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:29:50 +0200 <Guillaum[m]> I'm having a difficult time deriving "Data" instance for a GADT, see here: https://gist.github.com/guibou/84333621ff0e6f9374b8c46eb5f14345. Is that something fundamentaly impossible or is there a solution?
2022-08-10 18:29:59 +0200ph88^(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:30:26 +0200mcglk(~mcglk@131.191.49.120) (Client Quit)
2022-08-10 18:30:40 +0200ph88^(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:31:12 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-08-10 18:31:18 +0200ph88(~ph88@sonicwall.snp-ag.com) (Ping timeout: 264 seconds)
2022-08-10 18:32:15 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-08-10 18:33:12 +0200ph88^(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:33:41 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-08-10 18:33:42 +0200ph88^(~ph88@sonicwall.snp-ag.com)
2022-08-10 18:36:10 +0200ph88_(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:38:13 +0200ph88_(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:40:04 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:40:39 +0200ph88^(~ph88@sonicwall.snp-ag.com) (Ping timeout: 268 seconds)
2022-08-10 18:41:08 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:41:55 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:41:59 +0200nilradical(~nilradica@user/naso) ()
2022-08-10 18:42:01 +0200bliminse(~bliminse@user/bliminse) (Quit: leaving)
2022-08-10 18:42:03 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:43:25 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:43:41 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:45:28 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:46:05 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-08-10 18:46:48 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:47:19 +0200 <lyxia> You might be able to write an instance by hand but that depends on what you are trying to do. That doesn't look like something GHC can derive for you.
2022-08-10 18:47:35 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-08-10 18:48:05 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
2022-08-10 18:48:59 +0200acidjnk_new(~acidjnk@p200300d6e705861494ef1a886018f36c.dip0.t-ipconnect.de)
2022-08-10 18:49:31 +0200ph88(~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
2022-08-10 18:49:56 +0200bender(~bender@105.235.135.236)
2022-08-10 18:50:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-10 18:50:37 +0200ph88(~ph88@sonicwall.snp-ag.com)
2022-08-10 18:52:01 +0200ph88^(~ph88@sonicwall.snp-ag.com)
2022-08-10 18:54:09 +0200bender(~bender@105.235.135.236) (Ping timeout: 252 seconds)
2022-08-10 18:54:27 +0200 <Guillaum[m]> lyxia: Thank you. I'm trying to write the instance by hand, but I'm stuck in the middle of the gunfold implementation and I'm having a similar issue. I'm a bit lost with the type signature of the function of the Data class ;) If by chance you know a good resource which may explain that, I'll be more than happy. Otherwise, I'm continuing my experimentation.
2022-08-10 18:54:53 +0200ph88(~ph88@sonicwall.snp-ag.com) (Ping timeout: 252 seconds)
2022-08-10 18:56:15 +0200bender(~bender@105.235.135.236)
2022-08-10 18:57:20 +0200ph88^(~ph88@sonicwall.snp-ag.com) (Ping timeout: 268 seconds)
2022-08-10 19:00:50 +0200bender(~bender@105.235.135.236) (Ping timeout: 255 seconds)
2022-08-10 19:01:32 +0200bender(~bender@105.235.135.236)
2022-08-10 19:02:50 +0200vglfr(~vglfr@88.155.13.114)
2022-08-10 19:03:19 +0200bender(~bender@105.235.135.236) (Read error: Connection reset by peer)
2022-08-10 19:05:51 +0200vglfr(~vglfr@88.155.13.114) (Read error: Connection reset by peer)
2022-08-10 19:06:02 +0200bender(~bender@105.235.135.236)
2022-08-10 19:10:04 +0200 <lyxia> Guillaum[m]: one idea is to first use the Typeable constraint to pattern-match on the index, and then each branch behaves as if the type is a single-constructor type, and you can get the code for that by copy-pasting the output of -ddump-deriv when deriving Data for a normal single-constructor type
2022-08-10 19:10:32 +0200vglfr(~vglfr@88.155.13.114)
2022-08-10 19:10:54 +0200bender(~bender@105.235.135.236) (Ping timeout: 268 seconds)
2022-08-10 19:11:09 +0200 <Guillaum[m]> lyxia: THANK you ;) I actually incrementally comes to similar conclusion and I was able to write an working instance, except for the implementation of gunfold, but I won't need it. So my instance is not "complete", but it's enough for my needs.
2022-08-10 19:12:04 +0200 <Guillaum[m]> If someone is interested, for reference: https://gist.github.com/guibou/84333621ff0e6f9374b8c46eb5f14345#file-gadtsdatamanual-hs-L17-L25 Thank you.
2022-08-10 19:12:05 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-10 19:13:13 +0200 <lyxia> hah
2022-08-10 19:13:54 +0200 <lyxia> yeah it's easier if you're only consuming the GADT
2022-08-10 19:15:13 +0200vglfr(~vglfr@88.155.13.114) (Ping timeout: 268 seconds)
2022-08-10 19:15:20 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
2022-08-10 19:17:13 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 19:18:19 +0200Jade1(~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de)
2022-08-10 19:19:14 +0200vglfr(~vglfr@88.155.13.114)
2022-08-10 19:23:53 +0200vglfr(~vglfr@88.155.13.114) (Read error: Connection reset by peer)
2022-08-10 19:24:06 +0200seriously(~seriously@2001:1c06:1b1d:6f00:efd2:b7b6:20af:5f73)
2022-08-10 19:26:34 +0200vglfr(~vglfr@88.155.13.82)
2022-08-10 19:26:38 +0200Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2022-08-10 19:27:13 +0200Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2022-08-10 19:31:24 +0200 <seriously>  its me from last night/morning... still on the same problem. https://paste.tomsmeding.com/UrdyEmSb.
2022-08-10 19:32:23 +0200 <seriously> going to retry reframing my question... how does one add 2 functions that take a map and return an integer
2022-08-10 19:32:48 +0200 <seriously> if there is no map given
2022-08-10 19:33:26 +0200Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2022-08-10 19:33:38 +0200Alex_test(~al_test@178.34.151.166) (Ping timeout: 255 seconds)
2022-08-10 19:34:10 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net)
2022-08-10 19:34:31 +0200Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2022-08-10 19:34:42 +0200 <seriously> my instincts are telling me to pattern match on the functions ... so something like: add (\x -> y) (\z -> t) = ....
2022-08-10 19:34:45 +0200 <tomsmeding> seriously: but there is a map given, right?
2022-08-10 19:34:49 +0200 <tomsmeding> you cannot pattern match on functions
2022-08-10 19:34:57 +0200AlexZenon(~alzenon@178.34.151.166) (Ping timeout: 268 seconds)
2022-08-10 19:35:01 +0200f-a(f2a@f2a.jujube.ircnow.org)
2022-08-10 19:35:35 +0200 <f-a> simple question: I got a very deeply nested error and want to know the callstack. I solved by sprinkling `trace` but I guess that is the dumb way
2022-08-10 19:37:10 +0200 <tomsmeding> f-a: if all the functions on the way have a HasCallStack constraint, then you get a stack trace on `error`
2022-08-10 19:37:17 +0200 <tomsmeding> downside is that _all_ functions on the way need to have that constreaint
2022-08-10 19:37:44 +0200Alex_test(~al_test@178.34.151.166)
2022-08-10 19:37:57 +0200 <seriously> add :: (M.Map String Integer -> Maybe Integer) -> (M.Map String Integer -> Maybe Integer) -> (M.Map String Integer -> Maybe Integer)
2022-08-10 19:38:16 +0200 <tomsmeding> seriously: that function takes three arguments; what are their types?
2022-08-10 19:38:30 +0200 <f-a> tomsmeding: iirc there was a +RTS option to auto add those (with --enble-profiling)?
2022-08-10 19:38:55 +0200AlexZenon(~alzenon@178.34.151.166)
2022-08-10 19:38:56 +0200 <tomsmeding> f-a: ah yes, if you `cabal run --enable-profiling -- +RTS -p`
2022-08-10 19:39:04 +0200 <seriously> there types are a function that takes a map and returns a Maybe Integer
2022-08-10 19:39:07 +0200 <tomsmeding> maybe +RTS -xc, I don't remember
2022-08-10 19:39:23 +0200 <geekosaur> it's not quite the same thing as HasCallstack
2022-08-10 19:39:29 +0200 <tomsmeding> seriously: that's the first two arguments, what about the third one?
2022-08-10 19:39:43 +0200 <geekosaur> but it does use profiling information to provide a call stack on exception
2022-08-10 19:40:03 +0200 <f-a> -p or -xc? Well I’ll try both
2022-08-10 19:40:11 +0200 <seriously> The same thing no? a function that takes a map and returns maybe integer?
2022-08-10 19:40:50 +0200 <seriously> its straight forward if the type is Bool or Integer or String
2022-08-10 19:40:58 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 19:41:05 +0200son0p(~ff@181.136.122.143) (Ping timeout: 268 seconds)
2022-08-10 19:41:13 +0200 <tomsmeding> seriously: a -> (b -> (c -> (d -> e))) means exactly the same as a -> b -> c -> d -> e
2022-08-10 19:41:29 +0200 <tomsmeding> returning a function is the same as taking another argument
2022-08-10 19:41:31 +0200 <geekosaur> +RTS -xc prints a backtrace on exception if the program is compiled with profiling
2022-08-10 19:42:01 +0200 <geekosaur> (it does not require you to enable profiling at runtime, just that the profiling information be there to build a backtrace from)
2022-08-10 19:43:18 +0200Jade1(~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de) (Quit: Client closed)
2022-08-10 19:44:26 +0200 <f-a> geekosaur: may I upload a .tar.gz, because *not* all calls are afaics present
2022-08-10 19:44:29 +0200son0p(~ff@181.136.122.143)
2022-08-10 19:45:24 +0200 <geekosaur> hm. the profiling-based stack trace does differ from the one you get with HasCallStack
2022-08-10 19:45:53 +0200 <f-a> http://www.ariis.it/link/t/prova-0.1.0.0.tar.gz in this simple two file project, I do not see functions being called in main if I cabal run prova --enable-profiling -- +RTS -xc
2022-08-10 19:45:57 +0200 <f-a> so maybe I am doing something wrong
2022-08-10 19:46:04 +0200 <geekosaur> in particular I think the profiling one goes by what forces evaluation while HasCallStack records the actual evaluation trace
2022-08-10 19:46:21 +0200seriously(~seriously@2001:1c06:1b1d:6f00:efd2:b7b6:20af:5f73) (Quit: Client closed)
2022-08-10 19:46:31 +0200 <geekosaur> but requires that alll functions in the trace be annotated to work since it's actually an implicit variable
2022-08-10 19:46:31 +0200seriously(~seriously@2001:1c06:1b1d:6f00:efd2:b7b6:20af:5f73)
2022-08-10 19:46:41 +0200vglfr(~vglfr@88.155.13.82) (Ping timeout: 255 seconds)
2022-08-10 19:46:55 +0200vglfr(~vglfr@88.155.13.82)
2022-08-10 19:47:09 +0200 <f-a> argh, so say I were working on ghc, I would have to annotate a large portion of the codebase just to diagnose how I reached some specific error?
2022-08-10 19:47:15 +0200 <f-a> depressing :P
2022-08-10 19:47:16 +0200 <geekosaur> yep
2022-08-10 19:47:29 +0200 <geekosaur> we're still kinda in the stone age wrt debugging
2022-08-10 19:47:58 +0200 <geekosaur> it's commonly requested that there be a way to have ghc annotate all functions itself
2022-08-10 19:48:04 +0200 <f-a> well, so +RTS -xc is our best bet for now?
2022-08-10 19:48:06 +0200 <geekosaur> no idea if it's been formally proposed yet
2022-08-10 19:48:10 +0200 <geekosaur> yes
2022-08-10 19:48:17 +0200 <f-a> (also, -xc or -xc -p?)
2022-08-10 19:48:31 +0200 <geekosaur> hm, there's also a third way to get a backtrace that has its own shortcomings and abilities
2022-08-10 19:48:46 +0200 <geekosaur> -p is unnecessary unless you also want to profile
2022-08-10 19:49:27 +0200Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2022-08-10 19:50:31 +0200Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2022-08-10 19:50:54 +0200 <geekosaur> ah, right, dwarf support provides another backtrace mechanism but it can't be used with exceptions unless you set a breakpoint in whatever mangled name `error` becomes
2022-08-10 19:51:15 +0200 <seriously> so add :: M.Map String Integer -> (Maybe Integer -> (M.Map  ..... tomsmeding
2022-08-10 19:51:20 +0200 <geekosaur> and has to be enabled within the ghc build, which iirc it is not in currently released versions
2022-08-10 19:52:01 +0200neceve(~quassel@2.26.93.14)
2022-08-10 19:52:02 +0200 <f-a> thanks geekosaur , still marginally better than what I did today (putting putStrLn and pray)
2022-08-10 19:52:05 +0200Midjak(~Midjak@82.66.147.146)
2022-08-10 19:52:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-10 19:53:06 +0200vglfr(~vglfr@88.155.13.82) (Read error: Connection reset by peer)
2022-08-10 19:53:11 +0200vysn(~vysn@user/vysn)
2022-08-10 19:53:12 +0200 <seriously> so using, "add f" would give me access to the first map tomsmeding
2022-08-10 19:53:14 +0200vglfr(~vglfr@88.155.13.82)
2022-08-10 19:54:02 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
2022-08-10 19:54:34 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 19:56:11 +0200 <monochrom> I use Debug.Trace. More importantly, I think in terms of a "work backwards" model, unlike most people. Working backwards work great for imperative eager languages too, I once solved a mystery in someone else's C program that way.
2022-08-10 19:56:20 +0200 <tomsmeding> seriously: note, (a -> b) -> c is _not_ the same as a -> b -> c
2022-08-10 19:56:24 +0200 <tomsmeding> (->) is right-associative
2022-08-10 19:57:18 +0200zebrag(~chris@user/zebrag)
2022-08-10 19:59:08 +0200 <monochrom> (Lest you cite that there are great debuggers for C: No, I merely used printf.)
2022-08-10 19:59:15 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-10 20:00:26 +0200 <seriously> let me know if my head is in the right place... your suggesting that due to currying and partial function application, theres a way to extract the Map from add :: (M.Map String Integer -> Maybe Integer) -> (M.Map String Integer -> Maybe Integer) -> (M.Map String Integer -> Maybe Integer)
2022-08-10 20:00:38 +0200 <seriously> tomsmeding
2022-08-10 20:01:04 +0200 <seriously> you said earlier that this function takes 3 arguments
2022-08-10 20:01:43 +0200 <seriously> im not following that
2022-08-10 20:02:05 +0200MajorBiscuit(~MajorBisc@c-001-013-051.client.tudelft.eduvpn.nl) (Ping timeout: 268 seconds)
2022-08-10 20:02:17 +0200mmhat(~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de)
2022-08-10 20:02:34 +0200 <tomsmeding> seriously: let's look at a simpler example first
2022-08-10 20:02:35 +0200 <tomsmeding> :t const
2022-08-10 20:02:36 +0200 <lambdabot> a -> b -> a
2022-08-10 20:02:47 +0200 <tomsmeding> :t const 3
2022-08-10 20:02:49 +0200 <lambdabot> Num a => b -> a
2022-08-10 20:02:53 +0200AlexNoo_AlexNoo
2022-08-10 20:03:12 +0200 <tomsmeding> so when applied to one argument of type 'a', 'const' gets type 'b -> a'
2022-08-10 20:03:19 +0200 <tomsmeding> so clearly, const :: a -> (b -> a), right?
2022-08-10 20:03:20 +0200vglfr(~vglfr@88.155.13.82) (Read error: Connection reset by peer)
2022-08-10 20:03:26 +0200 <tomsmeding> :t const :: a -> (b -> a)
2022-08-10 20:03:27 +0200 <lambdabot> a -> b -> a
2022-08-10 20:03:28 +0200 <seriously> right
2022-08-10 20:03:39 +0200 <tomsmeding> a -> (b -> a) and a -> b -> a are the same thing
2022-08-10 20:03:45 +0200 <seriously> right
2022-08-10 20:03:56 +0200 <tomsmeding> just like (a - b) - c and a - b - c are the same thing
2022-08-10 20:04:02 +0200vglfr(~vglfr@88.155.13.82)
2022-08-10 20:04:04 +0200 <tomsmeding> but a - (b - c) is something completely different
2022-08-10 20:04:12 +0200 <tomsmeding> (-) is left-associative
2022-08-10 20:04:25 +0200 <tomsmeding> (->) is right-associative: you have the same parenthesisation behaviour, but the other way around
2022-08-10 20:04:26 +0200vglfr(~vglfr@88.155.13.82) (Read error: Connection reset by peer)
2022-08-10 20:04:35 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de)
2022-08-10 20:04:37 +0200 <tomsmeding> a -> b -> c is the same as a -> (b -> c); this is currying
2022-08-10 20:04:38 +0200vglfr(~vglfr@88.155.13.82)
2022-08-10 20:04:52 +0200 <tomsmeding> but (a -> b) -> c is something different: this is a function that takes an argument of type (a -> b)
2022-08-10 20:05:05 +0200 <tomsmeding> does that makes sense?
2022-08-10 20:05:06 +0200vglfr(~vglfr@88.155.13.82) (Read error: Connection reset by peer)
2022-08-10 20:05:15 +0200vglfr(~vglfr@88.155.13.82)
2022-08-10 20:06:10 +0200 <seriously> yeah makes sense ... I dont have the intuition for it but it makes sense in the sense of (-) (*) (`div`)
2022-08-10 20:06:25 +0200 <tomsmeding> for (-) it makes sense? good
2022-08-10 20:06:36 +0200vglfr(~vglfr@88.155.13.82) (Read error: Connection reset by peer)
2022-08-10 20:06:38 +0200 <tomsmeding> the intuition for (->) should come from the fact that partial application is a thing
2022-08-10 20:07:02 +0200 <tomsmeding> in haskell, a function that takes three arguments is precisely the same as a function that takes one argument (the first one), and returns a _function_ that takes the remaining two arguments
2022-08-10 20:07:23 +0200 <tomsmeding> add :: (map -> mint) -> (map -> mint) -> (map -> mint) -- I shortened the types a bit
2022-08-10 20:07:25 +0200vglfr(~vglfr@88.155.13.82)
2022-08-10 20:07:36 +0200 <tomsmeding> this type has one set of redundant parentheses -- which one?
2022-08-10 20:08:35 +0200 <seriously> the last one... so (map -> mint) -> (map -> mint) -> map -> mint
2022-08-10 20:08:47 +0200 <tomsmeding> indeed!
2022-08-10 20:08:54 +0200 <tomsmeding> so how many arguments does add take?
2022-08-10 20:08:55 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de) (Client Quit)
2022-08-10 20:09:17 +0200 <seriously> 3 so... add f g map
2022-08-10 20:09:21 +0200 <tomsmeding> yep!
2022-08-10 20:09:28 +0200 <tomsmeding> now it's your turn again :)
2022-08-10 20:09:31 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-08-10 20:09:43 +0200 <seriously> =D =D (y)
2022-08-10 20:09:47 +0200 <seriously> thanks!!!
2022-08-10 20:10:18 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.6)
2022-08-10 20:10:25 +0200 <tomsmeding> seriously: by the way, there is a "normal" arithmetic operator that is also right-associative, just like (->): exponentiation (^)
2022-08-10 20:10:42 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-08-10 20:10:47 +0200Lord_of_Life_Lord_of_Life
2022-08-10 20:10:51 +0200 <tomsmeding> a ^ b ^ c is the same as a ^ (b ^ c), and is different from (a ^ b) ^ c, which is a ^ (b * c)
2022-08-10 20:11:04 +0200 <tomsmeding> but +-*/ are left-associative
2022-08-10 20:11:35 +0200 <seriously> even + ?
2022-08-10 20:11:52 +0200 <tomsmeding> well for (+) and (*) it doesn't matter really :p
2022-08-10 20:11:56 +0200 <seriously> isnt 3 + (1 + 2) the same as (3 +1) + 2
2022-08-10 20:11:58 +0200 <tomsmeding> yeah
2022-08-10 20:12:00 +0200 <seriously> ok ok sorry
2022-08-10 20:12:14 +0200 <tomsmeding> well, I mean, it _is_ left-associative
2022-08-10 20:12:20 +0200 <tomsmeding> it's just _also_ right-associative :D
2022-08-10 20:12:24 +0200 <seriously> i think doing some pemdas training might help me
2022-08-10 20:12:27 +0200 <tomsmeding> (we say: (+) is _associative_)
2022-08-10 20:12:34 +0200 <seriously> havent done it inover 15 years
2022-08-10 20:12:38 +0200 <tomsmeding> (it's also _commutative_: a + b == b + a)
2022-08-10 20:12:51 +0200 <seriously> ok i see
2022-08-10 20:13:01 +0200 <tomsmeding> (->) is definitely _not_ commutative though :p
2022-08-10 20:13:14 +0200 <tomsmeding> if it were, we'd have an interesting situation on our hands
2022-08-10 20:15:15 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-10 20:15:29 +0200slack1256(~slack1256@wsip-184-177-0-226.no.no.cox.net) (Ping timeout: 255 seconds)
2022-08-10 20:15:37 +0200mmhat(~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
2022-08-10 20:16:12 +0200califax(~califax@user/califx)
2022-08-10 20:18:26 +0200 <monochrom> Nooooo! If (->) were commutative, everything would be trivialized!
2022-08-10 20:19:03 +0200 <monochrom> Right? https://xkcd.com/816/ applies. :)
2022-08-10 20:20:05 +0200 <dolio> That's why you need ⅋.
2022-08-10 20:20:28 +0200 <darkling> Ah, but does that proof use the axiom of choice? :)
2022-08-10 20:22:26 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-08-10 20:28:09 +0200notzmv(~zmv@user/notzmv)
2022-08-10 20:32:53 +0200vglfr(~vglfr@88.155.13.82) (Ping timeout: 268 seconds)
2022-08-10 20:33:08 +0200mmhat(~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de)
2022-08-10 20:35:30 +0200Inst(~Inst@2601:6c4:4080:3f80:9130:6712:37bc:57ff)
2022-08-10 20:36:52 +0200seriously(~seriously@2001:1c06:1b1d:6f00:efd2:b7b6:20af:5f73) (Ping timeout: 252 seconds)
2022-08-10 20:38:36 +0200irfan(~irfan@user/irfan) (Quit: leaving)
2022-08-10 20:44:48 +0200pavonia(~user@user/siracusa)
2022-08-10 20:48:57 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-08-10 20:52:59 +0200phma_(~phma@host-67-44-208-154.hnremote.net)
2022-08-10 20:54:24 +0200king_gs(~Thunderbi@2806:103e:29:da31:7fc4:b440:75b4:b884)
2022-08-10 20:54:26 +0200doelie(~tom@c-73-17-195-134.hsd1.me.comcast.net) (Remote host closed the connection)
2022-08-10 20:54:29 +0200phma(~phma@host-67-44-208-1.hnremote.net) (Read error: Connection reset by peer)
2022-08-10 20:54:37 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl)
2022-08-10 20:56:10 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net)
2022-08-10 20:56:53 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 20:57:15 +0200king_gs1(~Thunderbi@2806:103e:29:da31:6295:18ed:9b2f:858f)
2022-08-10 20:57:30 +0200phma_phma
2022-08-10 20:58:39 +0200nate4(~nate@98.45.169.16)
2022-08-10 20:58:47 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 20:59:33 +0200king_gs(~Thunderbi@2806:103e:29:da31:7fc4:b440:75b4:b884) (Ping timeout: 268 seconds)
2022-08-10 20:59:33 +0200king_gs1king_gs
2022-08-10 20:59:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 21:00:07 +0200cyanide3dinner(~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d)
2022-08-10 21:00:38 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-10 21:00:39 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
2022-08-10 21:00:54 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-10 21:01:00 +0200coot(~coot@213.134.176.158)
2022-08-10 21:01:18 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-08-10 21:02:18 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-08-10 21:02:56 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
2022-08-10 21:03:11 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 21:03:43 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-10 21:04:02 +0200vglfr(~vglfr@88.155.13.82)
2022-08-10 21:05:38 +0200the_ironic_curta(~Thunderbi@94.140.9.171)
2022-08-10 21:06:37 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-10 21:07:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-10 21:08:37 +0200joo-_(~joo-_@fsf/member/joo--) (Remote host closed the connection)
2022-08-10 21:15:06 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
2022-08-10 21:19:02 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-08-10 21:19:15 +0200 <seydar> I'm trying to get ruby and haskell to talk to each other using unix sockets: https://paste.tomsmeding.com/62Qx9jev
2022-08-10 21:19:56 +0200 <seydar> unfortunately, they both just... hang. and then when I ^C the haskell client, the ruby server then prints everything and complains of a broken pipe when it tries to write back.
2022-08-10 21:20:02 +0200 <seydar> are unix sockets secretly only one-way?
2022-08-10 21:20:19 +0200 <Bulby[m]> lazyness?
2022-08-10 21:20:20 +0200 <seydar> also, unix sockets are *in-memory*, right?
2022-08-10 21:20:31 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 21:21:17 +0200 <geekosaur> yes
2022-08-10 21:21:25 +0200yvan-sraka(~yvan-srak@105.67.135.250)
2022-08-10 21:21:40 +0200 <Bulby[m]> if something doesn't work until you ^C the haskell client perhaps it's lazyness
2022-08-10 21:21:42 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Remote host closed the connection)
2022-08-10 21:21:53 +0200 <geekosaur> or buffering?
2022-08-10 21:21:59 +0200 <Bulby[m]> yes
2022-08-10 21:22:00 +0200 <Bulby[m]> more likely
2022-08-10 21:22:09 +0200 <darkling> If it were pipes, my money would defintely be on buffering.
2022-08-10 21:22:29 +0200 <darkling> Sockets, I'm not so sure about. I haven't played with them so much.
2022-08-10 21:22:54 +0200 <geekosaur> (note that buffering is language agnostic, so you may also have to check buffering on the Ruby side)
2022-08-10 21:23:01 +0200 <Bulby[m]> sorry i haven't written haskell in a while
2022-08-10 21:24:03 +0200 <geekosaur> the haskell side is using raw socket operations so buffering shouldn't matter. but neither will lines, or "packet" boundaries since it's a stream socket
2022-08-10 21:24:31 +0200 <seydar> okay, so this is definitely the right medium i'm looking to explore
2022-08-10 21:24:36 +0200 <seydar> but why does it hate me
2022-08-10 21:24:43 +0200 <darkling> I'd be much more inclined to believe there are buffering issues if it's a stream socket than a datagram socket.
2022-08-10 21:25:04 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-08-10 21:25:10 +0200 <geekosaur> actually both sides appear to be using raw send and recv operations
2022-08-10 21:25:23 +0200 <geekosaur> so no buffering unless it's the printing the result part
2022-08-10 21:26:26 +0200 <seydar> i'm willing to bet monopoly money that it's waiting until the write side is closed before reading
2022-08-10 21:26:39 +0200 <seydar> because if i close the ruby server first, then the haskell program does its read
2022-08-10 21:27:40 +0200 <seydar> although that's pipe logic, not socket logic
2022-08-10 21:27:52 +0200 <geekosaur> `recv sock 1024` will actually wait for 1024 bytes, because it's a stream
2022-08-10 21:27:55 +0200vysn(~vysn@user/vysn) (Ping timeout: 268 seconds)
2022-08-10 21:28:17 +0200 <geekosaur> you probably want to make it a Handle and use hGetSome or similar
2022-08-10 21:28:55 +0200 <seydar> ooooh, so if i just do recv 4 bytes, i might see my program complete
2022-08-10 21:29:18 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-08-10 21:29:42 +0200 <geekosaur> yes
2022-08-10 21:29:56 +0200 <seydar> welp. that didn't quite do it either.
2022-08-10 21:30:07 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2022-08-10 21:31:43 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Quit: leaving)
2022-08-10 21:32:11 +0200kmein(~weechat@user/kmein)
2022-08-10 21:33:01 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-10 21:33:07 +0200yvan-sraka(~yvan-srak@105.67.135.250) (Remote host closed the connection)
2022-08-10 21:33:26 +0200yvan-sraka(~yvan-srak@105.67.135.250)
2022-08-10 21:35:46 +0200 <geekosaur[m]> What did it do?
2022-08-10 21:41:14 +0200bliminse(~bliminse@user/bliminse)
2022-08-10 21:42:50 +0200dd1(~ddellacos@86.106.121.209)
2022-08-10 21:46:54 +0200 <dd1> anyone know what this is about? Am I missing something? https://paste.tomsmeding.com/YuI3ZqA5
2022-08-10 21:48:00 +0200f-a(f2a@f2a.jujube.ircnow.org) ()
2022-08-10 21:48:07 +0200 <geekosaur> :set NoStarIsType
2022-08-10 21:48:10 +0200 <geekosaur> I think
2022-08-10 21:48:11 +0200codaraxis(~codaraxis@user/codaraxis)
2022-08-10 21:49:23 +0200neceve(~quassel@2.26.93.14) (Ping timeout: 268 seconds)
2022-08-10 21:50:26 +0200 <dd1> geekosaur: yes that was it! So I guess a name collision in some sense? I'm just learning about TypeLits so this is all new to me...
2022-08-10 21:50:33 +0200 <geekosaur> yes
2022-08-10 21:50:45 +0200 <geekosaur> * meaning Type (that is, a concrete type) is historical
2022-08-10 21:50:52 +0200 <geekosaur> :k <aybe
2022-08-10 21:50:53 +0200 <lambdabot> error: Operator applied to too few arguments: <
2022-08-10 21:50:54 +0200 <geekosaur> er
2022-08-10 21:50:55 +0200dd1ddellacosta
2022-08-10 21:50:58 +0200 <geekosaur> :k Maybe
2022-08-10 21:50:59 +0200 <lambdabot> * -> *
2022-08-10 21:51:10 +0200 <geekosaur> that's the use of * it's expecting
2022-08-10 21:51:25 +0200 <geekosaur> if you set NoStarIsType then * is freed to be a type operator
2022-08-10 21:51:54 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2022-08-10 21:52:15 +0200 <ddellacosta> geekosaur: gotcha, makes sense--thanks
2022-08-10 21:53:33 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-10 21:54:21 +0200cyanide3dinner(~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d) (Remote host closed the connection)
2022-08-10 21:57:13 +0200noteness(~noteness@user/noteness) (Excess Flood)
2022-08-10 21:57:25 +0200the_ironic_curta(~Thunderbi@94.140.9.171) (Remote host closed the connection)
2022-08-10 21:58:15 +0200noteness(~noteness@user/noteness)
2022-08-10 22:00:25 +0200ubert(~Thunderbi@178.165.202.57.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2022-08-10 22:02:00 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-08-10 22:06:28 +0200slack1256(~slack1256@wsip-184-177-0-226.no.no.cox.net)
2022-08-10 22:16:01 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 268 seconds)
2022-08-10 22:17:45 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net)
2022-08-10 22:18:09 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-08-10 22:19:04 +0200dos__^^(~user@user/dos/x-1723657) (Ping timeout: 244 seconds)
2022-08-10 22:22:39 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 268 seconds)
2022-08-10 22:24:55 +0200jese(~nikola@109-93-165-248.dynamic.isp.telekom.rs)
2022-08-10 22:25:14 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-10 22:25:48 +0200ddellacosta(~ddellacos@86.106.121.209) (Ping timeout: 268 seconds)
2022-08-10 22:25:50 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-10 22:26:41 +0200biberu(~biberu@user/biberu)
2022-08-10 22:27:15 +0200yvan-sraka(~yvan-srak@105.67.135.250) (Remote host closed the connection)
2022-08-10 22:28:40 +0200 <Bulby[m]> binary isn't giving me a good call stack
2022-08-10 22:28:42 +0200 <Bulby[m]> it just says out of bytes
2022-08-10 22:28:43 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net)
2022-08-10 22:28:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-10 22:29:57 +0200d34df00d(~d34df00d@2600:1700:8c60:3a10::46)
2022-08-10 22:30:37 +0200 <d34df00d> Hi!
2022-08-10 22:30:49 +0200 <d34df00d> I want to make something in Haskell that'd run in a browser and, moreover, render some graphs. I never did either of that, so what are some good libraries/toolchains/etc?
2022-08-10 22:35:36 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 22:37:08 +0200 <dmj`> d34df00d: https://github.com/dmjio/miso
2022-08-10 22:37:19 +0200jese(~nikola@109-93-165-248.dynamic.isp.telekom.rs) (Quit: leaving)
2022-08-10 22:37:32 +0200 <d34df00d> Yay thanks!
2022-08-10 22:37:55 +0200 <d34df00d> dmj: is dmjio the same as dmj the you?
2022-08-10 22:38:24 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-08-10 22:38:45 +0200 <dmj`> d34df00d: yea, sorry, shameless plug
2022-08-10 22:39:14 +0200 <d34df00d> Nah, on the contrary, that's good! More sense in asking questions here :]
2022-08-10 22:39:33 +0200 <dmj`> in that case, check this out: https://2048.haskell-miso.org/
2022-08-10 22:39:49 +0200alp_(~alp@user/alp)
2022-08-10 22:41:27 +0200 <tomsmeding> having never before seen ghcjs output code, https://2048.haskell-miso.org/all.js is a wild ride for the curious
2022-08-10 22:42:49 +0200 <d34df00d> dmj: looks pretty neat!
2022-08-10 22:43:24 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 22:43:39 +0200 <d34df00d> tomsmeding: I've seen a benchmark of some languages compiling to js, and ghcjs was, well… this explains that. Idris was on top tho.
2022-08-10 22:43:48 +0200 <d34df00d> although Idris has way less libraries :(
2022-08-10 22:44:35 +0200 <tomsmeding> I'm not surprised; V8 is unlikely to optimise for the code patterns that result when you try to compile a _lazy_ language to JS
2022-08-10 22:45:27 +0200 <dmj`> yea, well the STG machine (along with all the primops and RTS functionality) implemented in JS, is gonna be pretty hefty. But at least the JS output is optimized for the google closure compiler
2022-08-10 22:45:52 +0200mmhat(~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
2022-08-10 22:48:14 +0200 <merijn> tomsmeding: LLVM all over again xD
2022-08-10 22:48:40 +0200 <merijn> d34df00d: Keep in mind that ghcjs is *A LOT* more than "compiling haskell to JS"
2022-08-10 22:48:54 +0200 <merijn> d34df00d: ghcjs was a full port of GHC *plus it's RTS* to JS
2022-08-10 22:49:00 +0200 <dmj`> If we inlined the eval function, defunctionalized the STG, and did some whole program analysis passes we could ameliorate almost all overhead from laziness and have very small js payloads.
2022-08-10 22:49:12 +0200 <merijn> d34df00d: Which means it implements lightweight threading, complex timers, etc.
2022-08-10 22:49:20 +0200 <d34df00d> Oh.
2022-08-10 22:49:29 +0200 <d34df00d> green threads is something I haven't thought about as a consequence of compiling to js.
2022-08-10 22:49:33 +0200 <d34df00d> for one
2022-08-10 22:49:44 +0200 <merijn> d34df00d: Literally anything, except C FFI (and even some of that...) *everything* of GHC worked
2022-08-10 22:49:48 +0200 <Rembane_> d34df00d: Have you checked out Purescript?
2022-08-10 22:50:03 +0200 <merijn> d34df00d: If you are willing to drop a bunch of stuff like that, then you can get MUCH faster code
2022-08-10 22:50:04 +0200 <darkling> Still waiting for someone to produce a BEAM runtime in a browser. :)
2022-08-10 22:50:09 +0200 <d34df00d> Rembane_: tbh I don't want to learn a new language rn. I wanted to switch away from agda and get something
2022-08-10 22:50:14 +0200 <d34df00d> actually done that'd actually run.
2022-08-10 22:50:46 +0200 <d34df00d> Although from what I've see purescript looks pretty cool!
2022-08-10 22:50:52 +0200 <d34df00d> Native row polymorphism and all that.
2022-08-10 22:51:26 +0200 <darkling> I kind of sidled in here from Elm...
2022-08-10 22:51:36 +0200 <Rembane_> d34df00d: Fair enough.
2022-08-10 22:54:03 +0200king_gs(~Thunderbi@2806:103e:29:da31:6295:18ed:9b2f:858f) (Quit: king_gs)
2022-08-10 23:02:05 +0200mvk(~mvk@2607:fea8:5ce3:8500::a1ec)
2022-08-10 23:04:08 +0200 <dmj`> d34df00d: ghcjs gives you all of hackage too :)
2022-08-10 23:04:11 +0200 <dmj`> "all"
2022-08-10 23:09:47 +0200 <walt> purescript is a way more reasonable choice if the goal is to run stuff in the browser, imo
2022-08-10 23:10:14 +0200waltggVGc
2022-08-10 23:10:17 +0200 <geekosaur> unless you actually need the power of ghc
2022-08-10 23:10:32 +0200 <geekosaur> (but how often do you actually need that?)
2022-08-10 23:14:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-10 23:15:17 +0200mikoto-chan(~mikoto-ch@85-76-19-206-nat.elisa-mobile.fi)
2022-08-10 23:15:55 +0200mmhat(~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de)
2022-08-10 23:16:29 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-08-10 23:19:33 +0200 <dmj`> rescript looks cool, could use that
2022-08-10 23:20:55 +0200absentia(~absentia@user/absentia) (K-Lined)
2022-08-10 23:22:57 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-10 23:23:22 +0200ec(~ec@gateway/tor-sasl/ec)
2022-08-10 23:23:28 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-10 23:23:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-10 23:29:05 +0200ph88(~ph88@ltea-178-013-121-150.pools.arcor-ip.net)
2022-08-10 23:30:30 +0200pgib(~textual@173.38.117.83)
2022-08-10 23:31:26 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it)
2022-08-10 23:31:45 +0200acidjnk_new(~acidjnk@p200300d6e705861494ef1a886018f36c.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-08-10 23:36:18 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-08-10 23:40:27 +0200michalz(~michalz@185.246.204.90) (Remote host closed the connection)
2022-08-10 23:42:11 +0200moonsheep(~user@user/moonsheep)
2022-08-10 23:42:42 +0200acidjnk_new(~acidjnk@p200300d6e7058614083d03ca0d10755f.dip0.t-ipconnect.de)
2022-08-10 23:46:21 +0200 <zzz> what's the reasoning behind doing stuff like this?: https://hackage.haskell.org/package/gloss-1.7.5.2/docs/src/Graphics-Gloss-Data-Picture.html#pictures
2022-08-10 23:46:59 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-10 23:47:42 +0200 <zzz> functiom = Constructor
2022-08-10 23:48:46 +0200 <dmj`> zzz: smart constructor
2022-08-10 23:48:57 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-08-10 23:50:13 +0200mikoto-chan(~mikoto-ch@85-76-19-206-nat.elisa-mobile.fi) (Ping timeout: 268 seconds)
2022-08-10 23:50:42 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-10 23:51:01 +0200 <[exa]> zzz: if you only export the function, you 1] make sure the user isn't tempted to patternmatch 2] you can change the data representation in later versions without breaking it for everyone
2022-08-10 23:52:45 +0200 <zzz> hmm... gloss not only exports it but also doesn't perform any "smart" checks
2022-08-10 23:55:10 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-10 23:58:59 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)