2022/08/12

2022-08-12 00:01:20 +0200dcoutts(~duncan@host86-167-206-78.range86-167.btcentralplus.com) (Ping timeout: 244 seconds)
2022-08-12 00:02:43 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-08-12 00:03:43 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
2022-08-12 00:04:53 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 00:04:55 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 00:05:17 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 00:07:57 +0200yvan-sraka(~yvan-srak@105.67.135.250) (Remote host closed the connection)
2022-08-12 00:09:19 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de) (Remote host closed the connection)
2022-08-12 00:12:36 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-12 00:13:02 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-08-12 00:13:42 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-12 00:14:20 +0200noteness(~noteness@user/noteness)
2022-08-12 00:15:25 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 260 seconds)
2022-08-12 00:15:27 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:671f:736d:4d41:28c3) (Ping timeout: 268 seconds)
2022-08-12 00:15:30 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 268 seconds)
2022-08-12 00:15:30 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2022-08-12 00:15:41 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-08-12 00:16:17 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
2022-08-12 00:16:44 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
2022-08-12 00:17:39 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-08-12 00:17:53 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 00:18:12 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-08-12 00:18:25 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-08-12 00:23:02 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.6)
2022-08-12 00:24:49 +0200nate4(~nate@98.45.169.16)
2022-08-12 00:29:36 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-12 00:35:42 +0200Midjak(~Midjak@82.66.147.146)
2022-08-12 00:36:16 +0200michalz(~michalz@185.246.204.69) (Remote host closed the connection)
2022-08-12 00:38:21 +0200k`(~user@2605:a601:a60d:5400:55e6:a9b6:adcd:beaa) (Ping timeout: 255 seconds)
2022-08-12 00:38:28 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 00:39:53 +0200pavonia(~user@user/siracusa)
2022-08-12 00:50:36 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 00:51:09 +0200 <Axman6> toby: nice work on such a minimal reproduction of the bug
2022-08-12 00:52:30 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-08-12 00:53:02 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
2022-08-12 00:53:31 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 00:57:14 +0200valhardt(~parsival@209.141.195.79)
2022-08-12 00:58:18 +0200valhardt(~parsival@209.141.195.79) (Client Quit)
2022-08-12 00:59:12 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 00:59:40 +0200Kaiepi(~Kaiepi@142.68.249.28) (Read error: Connection reset by peer)
2022-08-12 01:01:18 +0200acidjnk(~acidjnk@p200300d6e70586290c6dd2639c811ffe.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-08-12 01:02:54 +0200slac96944(~slack1256@2607:fb90:c6b:3cba:8eb0:bff6:9960:78c9)
2022-08-12 01:03:03 +0200slac96944(~slack1256@2607:fb90:c6b:3cba:8eb0:bff6:9960:78c9) (Remote host closed the connection)
2022-08-12 01:05:24 +0200slack1256(~slack1256@wsip-184-177-0-226.no.no.cox.net) (Ping timeout: 268 seconds)
2022-08-12 01:06:51 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-08-12 01:06:57 +0200luffy(~chenqisu1@183.217.201.23)
2022-08-12 01:17:06 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 01:21:58 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-08-12 01:22:31 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-12 01:22:31 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-12 01:22:32 +0200wroathe(~wroathe@user/wroathe)
2022-08-12 01:26:31 +0200nicos(~nico@190.247.245.154)
2022-08-12 01:31:16 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-08-12 01:32:49 +0200Patternm1ster(~georg@li1192-118.members.linode.com) (Quit: leaving)
2022-08-12 01:33:42 +0200kimjetwav(~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa)
2022-08-12 01:34:24 +0200Patternmaster(~georg@user/Patternmaster)
2022-08-12 01:34:46 +0200 <toby> Axman6: thanks, although a large degree of luck was involved
2022-08-12 01:45:54 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-12 01:45:54 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-12 01:45:54 +0200wroathe(~wroathe@user/wroathe)
2022-08-12 01:49:47 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-08-12 01:50:27 +0200darchitect1(~darchitec@2a00:23c6:3584:df01:81a:29c9:cfd8:abaa)
2022-08-12 01:51:00 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 01:53:02 +0200sudden(~cat@user/sudden) (Ping timeout: 255 seconds)
2022-08-12 01:53:58 +0200sudden(~cat@user/sudden)
2022-08-12 01:58:08 +0200Kaiepi(~Kaiepi@142.68.249.28)
2022-08-12 01:58:30 +0200Tuplanolla(~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Quit: Leaving.)
2022-08-12 01:59:15 +0200jargon(~jargon@184.101.168.117)
2022-08-12 02:00:59 +0200moonsheep(~user@user/moonsheep)
2022-08-12 02:01:01 +0200moonsheep(~user@user/moonsheep) (Client Quit)
2022-08-12 02:01:34 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
2022-08-12 02:02:59 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-08-12 02:05:16 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 02:10:01 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-08-12 02:10:06 +0200ulvarref`(~user@188.124.56.153)
2022-08-12 02:10:54 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
2022-08-12 02:12:12 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-08-12 02:13:37 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2022-08-12 02:13:54 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
2022-08-12 02:14:06 +0200ulvarrefr(~user@188.124.56.153) (Ping timeout: 244 seconds)
2022-08-12 02:15:28 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
2022-08-12 02:16:03 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-08-12 02:18:50 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-08-12 02:20:03 +0200 <Bulby[m]> how would I parse utf8... it has variable size and I only know length in bytes
2022-08-12 02:20:12 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-12 02:20:57 +0200 <geekosaur> are you sure you don't want Text.decodeUtf8?
2022-08-12 02:21:49 +0200 <geekosaur> there's also the utf8-string package but that's generally the wrong choice, especially if you're coming from ByteString (which is what decodeUtf8 works with)
2022-08-12 02:23:04 +0200 <dsal> `decodeUtf8` *should* be deprecated, but if you're looking at that, you'll see the friends. :)
2022-08-12 02:23:30 +0200 <dsal> Bulby[m]: What do you have that isn't UTF8 that you want to be UTF8?
2022-08-12 02:24:18 +0200 <Bulby[m]> java utf8
2022-08-12 02:24:29 +0200 <Bulby[m]> java does wacky things with DataInput and DataOutput
2022-08-12 02:24:33 +0200 <geekosaur> uh, I think he means "what type"
2022-08-12 02:24:33 +0200 <Bulby[m]> https://docs.oracle.com/javase/7/docs/api/java/io/DataInput.html
2022-08-12 02:24:43 +0200 <Bulby[m]> oh
2022-08-12 02:24:47 +0200 <geekosaur> String? ByteString?
2022-08-12 02:24:48 +0200 <Bulby[m]> [Int8]
2022-08-12 02:25:00 +0200 <Bulby[m]> i can also get a bytestring
2022-08-12 02:25:07 +0200 <dsal> ByteString is a much saner place to start.
2022-08-12 02:25:15 +0200 <geekosaur> ^
2022-08-12 02:25:30 +0200 <dsal> decodeUtf8 is `decodeUtf8 :: ByteString -> Text`
2022-08-12 02:25:30 +0200 <Bulby[m]> ok
2022-08-12 02:25:44 +0200 <geekosaur> (also, Int8? not Word8?)
2022-08-12 02:25:45 +0200 <Bulby[m]> oh let me look at that
2022-08-12 02:25:54 +0200 <Bulby[m]> i'm tired
2022-08-12 02:26:01 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 02:26:14 +0200 <dsal> Yeah, the `Int8` thing would need some fixups to be `Word8`, but that makes sense in Java since it doesn't have the equivalent.
2022-08-12 02:27:56 +0200 <Bulby[m]> https://hackage.haskell.org/package/text-2.0.1/docs/src/Data.Text.Encoding.html#decodeUtf8With2 awful
2022-08-12 02:27:58 +0200 <Axman6> Bulby[m]: in case it wasn't clear, the text package's internal representation is utf-8 these days, and pasing from a ByteString is mostly a matter of validating and then wrapping the underlying bytes IIRC.
2022-08-12 02:28:19 +0200 <Bulby[m]> yes but java is slightly painful in that it doesn't even use standard format
2022-08-12 02:28:36 +0200 <Axman6> not sure what you mean
2022-08-12 02:28:46 +0200 <Bulby[m]> https://docs.oracle.com/javase/7/docs/api/java/io/DataInput.html
2022-08-12 02:28:48 +0200 <Bulby[m]> datainput
2022-08-12 02:28:53 +0200 <Bulby[m]> not standard utf8
2022-08-12 02:29:11 +0200 <Axman6> but perhaps you need a binary parser like attoparsec if there's more structure than just utf-8 encoded text
2022-08-12 02:29:27 +0200 <dsal> You may just want `decodeUtf8Lenient :: ByteString -> Text`
2022-08-12 02:29:41 +0200 <Bulby[m]> why would that work
2022-08-12 02:30:06 +0200 <dsal> It's just a matter of what you want to do if you can't decode a UTF8 character.
2022-08-12 02:30:41 +0200 <dsal> But starting from attoparsec makes sense. I'm not familiar with this format, but I'm familiar with parsing junk, so it's the first thing I'd reach for here.
2022-08-12 02:30:42 +0200 <Bulby[m]> oh i already use decodeUtf8' which returns either
2022-08-12 02:30:53 +0200 <dsal> Yeah, that's a good choice if you want to fail.
2022-08-12 02:30:58 +0200 <Bulby[m]> so maybe the error is completely different place
2022-08-12 02:30:59 +0200 <Axman6> ok that DataInput thing looks gross - you're going to need a parser to handle it properly
2022-08-12 02:31:05 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 02:31:35 +0200 <Bulby[m]> so use a binary parser?
2022-08-12 02:31:58 +0200 <Bulby[m]> i was using `Binary` package, do I use different package then hook it up to get
2022-08-12 02:32:12 +0200 <c_wraith> wait, I don't see a case in the thing you linked to that a UTF-8 parser would handle incorrectly
2022-08-12 02:32:20 +0200nicos(~nico@190.247.245.154) (Remote host closed the connection)
2022-08-12 02:32:23 +0200 <Bulby[m]> hm
2022-08-12 02:32:31 +0200 <c_wraith> like, the encoding of NUL it uses is weird, but not strictly wrong
2022-08-12 02:32:32 +0200 <Bulby[m]> well I looked at a C# impl and it just ignored it
2022-08-12 02:32:34 +0200 <Axman6> I would personally just use attoparsec, binary can be used but it's more aimed at serialising and deserialising haskell data types
2022-08-12 02:32:42 +0200 <dsal> I've used attoparsec and attoparsec-binary for this sort of thing.
2022-08-12 02:33:54 +0200 <Axman6> "readDouble(): Reads eight input bytes and returns a double value." Search for endian, no results found. this is a shitty format
2022-08-12 02:33:55 +0200 <Bulby[m]> yeah binary errors with out of bytes, but it's so complex and I have no idea what to test
2022-08-12 02:34:32 +0200 <Bulby[m]> and encoding will obviously work
2022-08-12 02:36:54 +0200 <Bulby[m]> i need a simpler example
2022-08-12 02:38:54 +0200 <Axman6> I think the easiest thing to do would be to write a parser for parsing this modified utf-8 - then you can embed that into a parser that also supports the other formats shown like doubles and bools
2022-08-12 02:39:14 +0200 <Axman6> attoparsec will tell you location info when it has a failure IIRC
2022-08-12 02:39:40 +0200 <Axman6> the use of surrogate pairs sucks
2022-08-12 02:41:05 +0200 <c_wraith> surrogate pairs is a restriction on writing the data, not parsing it.
2022-08-12 02:41:25 +0200 <c_wraith> the NUL encoding is the only thing you need to check, but most UTF-8 parsers should handle it just fine
2022-08-12 02:42:02 +0200 <Bulby[m]> yeah it would've complained otherwise
2022-08-12 02:42:15 +0200 <Bulby[m]> it would've errored with text instead of no bytes left
2022-08-12 02:42:37 +0200 <c_wraith> It's not how the spec says to encode NUL, but NUL is the result of decoding those bytes according to the UTF-8 decoding spec
2022-08-12 02:42:44 +0200 <Bulby[m]> if i had to guess I likely mixed up something else
2022-08-12 02:43:34 +0200 <c_wraith> You'd need a UTF-8 parser that checked that everything was encoded using the minimal possible string of bytes if you wanted to find something that objected to it
2022-08-12 02:44:02 +0200 <Bulby[m]> awful, "getInt" not "getLong"
2022-08-12 02:44:05 +0200 <Bulby[m]> i hate this
2022-08-12 02:44:21 +0200 <Bulby[m]> i made a helper type to fix these kind of issues
2022-08-12 02:44:22 +0200 <Bulby[m]> oh well
2022-08-12 02:44:30 +0200 <Axman6> where are you looking?
2022-08-12 02:44:45 +0200 <Bulby[m]> NBT data from minecraft, this is another part
2022-08-12 02:44:50 +0200 <Bulby[m]> i messed up length on arrays
2022-08-12 02:46:30 +0200 <Bulby[m]> vgo;ijfoijiohfg
2022-08-12 02:46:31 +0200 <Bulby[m]> that fixed it
2022-08-12 02:47:10 +0200 <Axman6> ah the classic vgo;ijfoijiohfg, always does the trick
2022-08-12 02:47:55 +0200 <Bulby[m]> how fun
2022-08-12 02:47:55 +0200 <Bulby[m]> wow this data is uh quite dense
2022-08-12 02:47:55 +0200 <Bulby[m]> i'll look at it later
2022-08-12 02:48:05 +0200 <jackdk> https://github.com/davidgarland/named-binary-tag Bulby[m] possibly relevant?
2022-08-12 02:48:26 +0200 <Bulby[m]> https://github.com/jmc2obj/j-mc-2-obj/tree/master/src/org/jmc/NBT i've been referencing this
2022-08-12 02:48:29 +0200 <Axman6> ha, I was looking at the source code for text to see it's decoder, and came across my name =) https://hackage.haskell.org/package/text-2.0.1/docs/src/Data.Text.Internal.Encoding.Utf8.html#utf8…
2022-08-12 02:48:48 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-08-12 02:49:03 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-08-12 02:49:15 +0200 <jackdk> my link is someone's haskell parser for it, to replace a defunct nbt package currently on hackage
2022-08-12 02:53:05 +0200tcard__(~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2022-08-12 02:53:19 +0200vysn(~vysn@user/vysn) (Ping timeout: 268 seconds)
2022-08-12 02:54:04 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-2cf3-e44c-3193-429d.res6.spectrum.com) (Remote host closed the connection)
2022-08-12 02:54:30 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 02:56:00 +0200TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
2022-08-12 02:56:35 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-08-12 02:57:42 +0200phma_(phma@2001:5b0:215d:c958:64bb:39ec:98ad:e7a1)
2022-08-12 02:58:35 +0200tcard(~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp)
2022-08-12 03:00:49 +0200fjmorazan_fjmorazan
2022-08-12 03:01:18 +0200phma(~phma@host-67-44-208-161.hnremote.net) (Ping timeout: 268 seconds)
2022-08-12 03:01:46 +0200 <Bulby[m]> wait an nbt lib exists
2022-08-12 03:01:56 +0200 <Axman6> that haskell package looks like it's the right way to go if that's what you're trying to decode Bulby[m], unless you really want the joy of implementing a binary parser for something that's really lose to something that already exists but is annoyingly different enough to need to rewrite everything
2022-08-12 03:02:01 +0200 <Axman6> yesd
2022-08-12 03:02:04 +0200 <Axman6> yes*
2022-08-12 03:03:11 +0200 <Bulby[m]> i do not want the joy
2022-08-12 03:03:20 +0200 <Bulby[m]> altho i already half finished it :sob:
2022-08-12 03:03:31 +0200 <jackdk> yeah looks like it's not on hackage yet, but you could reference it using a `source-repository-package` stanza in a `cabal.project` file: https://cabal.readthedocs.io/en/latest/cabal-project.html#specifying-packages-from-remote-version-…
2022-08-12 03:03:52 +0200 <Axman6> rule zero of writing code - see if someone else has done it for you first :P
2022-08-12 03:04:17 +0200 <Bulby[m]> they don't do anything special with strings either
2022-08-12 03:04:52 +0200 <Axman6> yeah looks like it just calls decodeUtf8 - I would be surprised if that matters much for most data
2022-08-12 03:05:33 +0200 <Bulby[m]> oh well i already technically have it working 🤷
2022-08-12 03:05:39 +0200 <Axman6> unless you're sure that you're going to be reading strings that either need to contain nulls or that require four byte encodings for codepoints
2022-08-12 03:06:05 +0200 <Bulby[m]> it will use surrogates right? i assume utf8 doesn't like that
2022-08-12 03:06:27 +0200 <Axman6> I'm not sure what the text package does if you have surrogates
2022-08-12 03:06:44 +0200 <maerwald[m]> Fail
2022-08-12 03:06:50 +0200 <maerwald[m]> Or truncate
2022-08-12 03:06:51 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-08-12 03:07:00 +0200 <Bulby[m]> fun
2022-08-12 03:07:38 +0200 <maerwald[m]> Ah no, replacement char
2022-08-12 03:07:55 +0200 <maerwald[m]> So you get nonsense out the other end
2022-08-12 03:08:28 +0200 <maerwald[m]> Depends on which functions you use
2022-08-12 03:10:16 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-08-12 03:11:42 +0200 <Axman6> it's _probably_ not going to matter unless you're getting data from chinese speakers - it would be good to update that package to actually support the encoding oproperly though, might be worth adding an issue
2022-08-12 03:15:53 +0200phma_phma
2022-08-12 03:15:56 +0200 <nomagno> Is there any logic to how Haskell names things? Just pretty much all default names seem unintuitive to me, but I guess you can only find so many simple, unambiguous, fitting words for complex CS concepts and types.
2022-08-12 03:16:24 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-08-12 03:16:24 +0200 <albet70> dminuoso , for example?
2022-08-12 03:19:24 +0200 <jackdk> nomagno: do you have an example?
2022-08-12 03:20:03 +0200kimjetwav(~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa) (Remote host closed the connection)
2022-08-12 03:21:08 +0200 <nomagno> Simplest I can think of is Maybe - Just - Nothing, like, it seems extremely akward to read "Maybe Integer", or "Just foo". And this naming for options is the de facto standard now in many languages, to worsen matters
2022-08-12 03:21:27 +0200 <nomagno> But also stuff like case ... and then "OF"
2022-08-12 03:21:37 +0200 <nomagno> Where did that "of" come from? Why is it there?
2022-08-12 03:22:13 +0200 <nomagno> The default syntax and types are filled with broken English like this. It's not a major issue, but I just find it akward
2022-08-12 03:23:17 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-08-12 03:23:20 +0200xff0x_(~xff0x@2405:6580:b080:900:7393:ed71:26f2:b383) (Ping timeout: 244 seconds)
2022-08-12 03:26:18 +0200 <geekosaur> sounds like you have a problem with the history of computer languages
2022-08-12 03:26:19 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 03:27:00 +0200 <geekosaur> do you have the same problem with the shell's version? "case ... in"
2022-08-12 03:28:02 +0200 <nomagno> I don't use the sh case statement much, but admittedly that's because I keep forgetting it exists, not because of the syntax :P
2022-08-12 03:28:08 +0200 <nomagno> But yes I will find it akward
2022-08-12 03:28:26 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 03:29:32 +0200 <geekosaur> anyway it comes from https://public.support.unisys.com/aseries/docs/clearpath-mcp-18.0/86000098-516/section-000026502.h… (there will be an initial license click-through)
2022-08-12 03:29:41 +0200 <geekosaur> ALGOL influenced a bunch of languages
2022-08-12 03:31:18 +0200 <nomagno> Well to be fair "else" is just a bunch of nonsense and I don't have a problem with it, so you're right
2022-08-12 03:35:31 +0200 <geekosaur> and if you want programming in "English" the closest you get is COBOL. there's a reason nobody uses it any more except corporations with huge investments in it
2022-08-12 03:36:12 +0200lsrts^(~lsrts@206.85.120.17)
2022-08-12 03:36:46 +0200 <geekosaur> ADD 1 TO FOO GIVING BAR
2022-08-12 03:37:27 +0200 <nomagno> Let's not get too carried away, indeed :$
2022-08-12 03:48:10 +0200 <monochrom> SML would have you write "datatype 'a Option = None | Some of 'a". I suppose you'll find it "natural" because "Some of int" and "int option" read like English.
2022-08-12 03:48:12 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds)
2022-08-12 03:48:31 +0200 <monochrom> But what's so special about English? Why English? Why not Japanese for example?
2022-08-12 03:48:33 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-12 03:48:38 +0200 <monochrom> This exposes your bias.
2022-08-12 03:49:02 +0200 <monochrom> In Hungarian, English is the awkward one.
2022-08-12 03:49:43 +0200 <texasmynsted> Yesterday I found DBFunctor and Julius. So interesting. Anybody here using it?
2022-08-12 03:49:46 +0200 <texasmynsted> https://github.com/nkarag/haskell-DBFunctor#readme
2022-08-12 03:52:52 +0200ec(~ec@gateway/tor-sasl/ec)
2022-08-12 03:53:33 +0200Sgeo(~Sgeo@user/sgeo)
2022-08-12 03:55:35 +0200TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 268 seconds)
2022-08-12 03:57:24 +0200kimjetwav(~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa)
2022-08-12 03:57:31 +0200xff0x_(~xff0x@2405:6580:b080:900:d617:1bf4:887a:1487)
2022-08-12 03:59:16 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 04:00:05 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 04:00:27 +0200nate4(~nate@98.45.169.16)
2022-08-12 04:01:14 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2022-08-12 04:01:51 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-12 04:04:01 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-12 04:04:01 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-12 04:04:01 +0200wroathe(~wroathe@user/wroathe)
2022-08-12 04:04:47 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-08-12 04:05:12 +0200ec(~ec@gateway/tor-sasl/ec)
2022-08-12 04:07:25 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com)
2022-08-12 04:11:45 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
2022-08-12 04:13:49 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-08-12 04:13:49 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 04:13:49 +0200finn_elijaFinnElija
2022-08-12 04:14:19 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-08-12 04:16:42 +0200funsafe_(~funsafe@2601:1c1:4200:9ac:84cb:185c:2a3c:c92c) (Quit: funsafe_)
2022-08-12 04:17:17 +0200fserucas_(~fserucas@46.50.4.22)
2022-08-12 04:17:20 +0200img(~img@user/img)
2022-08-12 04:18:54 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-08-12 04:18:56 +0200img(~img@user/img) (Client Quit)
2022-08-12 04:19:09 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com) (Ping timeout: 244 seconds)
2022-08-12 04:20:10 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-12 04:20:14 +0200fserucas(~fserucas@83.223.227.123) (Ping timeout: 268 seconds)
2022-08-12 04:21:27 +0200jmd_(~jmdaemon@user/jmdaemon)
2022-08-12 04:21:47 +0200img(~img@user/img)
2022-08-12 04:22:04 +0200kimjetwav(~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa) (Remote host closed the connection)
2022-08-12 04:22:23 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2022-08-12 04:23:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 04:23:37 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 04:24:32 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 04:24:40 +0200kimjetwav(~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa)
2022-08-12 04:24:58 +0200 <hmw[at]> geekosaur: Pascal is nice too
2022-08-12 04:26:47 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-08-12 04:27:58 +0200 <monochrom> Are you referring to "begin" and "end"? :)
2022-08-12 04:30:05 +0200td_(~td@94.134.91.58) (Ping timeout: 252 seconds)
2022-08-12 04:32:06 +0200td_(~td@muedsl-82-207-238-237.citykom.de)
2022-08-12 04:32:25 +0200 <hmw[at]> More like the "then" keyword. I remember having fun trying to make my code look like English. Still do, when feasible with other languages.
2022-08-12 04:32:52 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-08-12 04:33:36 +0200jmd_(~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
2022-08-12 04:33:38 +0200 <hmw[at]> While program_running do check_for_input(); Heheheh
2022-08-12 04:33:48 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 04:35:01 +0200 <monochrom> To make it easier to write a parser, you want either C's "if (expr) stmt" or "if expr then stmt", certainly not "if expr stmt".
2022-08-12 04:35:34 +0200 <monochrom> At that point "then" is just another punctuation.
2022-08-12 04:35:45 +0200 <hmw[at]> Surely true
2022-08-12 04:35:50 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 04:36:12 +0200 <hmw[at]> I recently patches an old Delphi program and it was not as pretty as I remembered it to be
2022-08-12 04:36:15 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 04:36:26 +0200 <hmw[at]> But some lines were proper English
2022-08-12 04:36:28 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com)
2022-08-12 04:38:08 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 04:45:25 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 04:45:55 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 04:48:47 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
2022-08-12 04:50:34 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 04:54:49 +0200mmhat(~mmh@p200300f1c706f76bee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
2022-08-12 04:55:25 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com) (Ping timeout: 268 seconds)
2022-08-12 04:55:46 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-08-12 04:57:10 +0200zaquest(~notzaques@5.130.79.72)
2022-08-12 04:58:50 +0200 <texasmynsted> proper English is not ideal for math either
2022-08-12 04:59:03 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-08-12 05:00:02 +0200haasn(~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2022-08-12 05:01:21 +0200haasn(~nand@haasn.dev)
2022-08-12 05:02:21 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 05:02:49 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 05:03:49 +0200nate4(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-08-12 05:03:49 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-08-12 05:05:08 +0200maroloccio(~marolocci@62.98.94.196)
2022-08-12 05:05:50 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-08-12 05:05:52 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-08-12 05:06:10 +0200 <dsal> nomagno: what would you call Maybe?
2022-08-12 05:08:00 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com)
2022-08-12 05:15:32 +0200 <monochrom> I think it was not so much about "Maybe" but about "TypeConstructor TypeParameter" vs "TypeConstructor of TypeParameter" or otherwise making it look like English.
2022-08-12 05:19:43 +0200 <hippoid> applescript looks like english. i find it out totally unreadable
2022-08-12 05:19:54 +0200 <dsal> applescript is harder to write than to read. heh
2022-08-12 05:20:19 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
2022-08-12 05:23:50 +0200iqubic(~iqubic@2601:602:9502:c70:821e:5947:9a04:74d9)
2022-08-12 05:23:53 +0200iqubic(~iqubic@2601:602:9502:c70:821e:5947:9a04:74d9) ()
2022-08-12 05:29:17 +0200mixfix41(~sdenynine@user/mixfix41)
2022-08-12 05:32:07 +0200frost(~frost@user/frost)
2022-08-12 05:32:25 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-08-12 05:32:29 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-12 05:37:19 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-08-12 05:41:19 +0200maroloccio(~marolocci@62.98.94.196) (Quit: WeeChat 3.6)
2022-08-12 05:43:20 +0200Hash(~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net) (Remote host closed the connection)
2022-08-12 05:46:14 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-08-12 05:50:56 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-12 05:53:41 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-12 05:55:00 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 05:55:48 +0200Hash(~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net)
2022-08-12 06:01:20 +0200 <Axman6> in Daml they've added a "with" syntax for record construction, which works quite like record wildcards, but they bind tightly enough to the constructor that braces are unnecessary. Like sendRequest SomeRequest with\n foo \n bar = a + b\n baz = False
2022-08-12 06:02:14 +0200 <Axman6> hippoid: agreed - I reied to write AppleScript back in the day and I could never make any sense of it, there always seemed to be some extra syntax needed for anything you wanted to do. I probably never managed to do anything more than a five line script
2022-08-12 06:03:04 +0200 <Axman6> I remember being fairly excited about F-Script back in the day https://en.wikipedia.org/wiki/F-Script_(programming_language)
2022-08-12 06:04:13 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-12 06:06:36 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 06:08:43 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
2022-08-12 06:09:36 +0200vglfr(~vglfr@37.73.5.81)
2022-08-12 06:17:29 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-08-12 06:29:15 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-08-12 06:37:36 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-08-12 06:38:02 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-08-12 06:38:08 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-08-12 06:51:01 +0200coot(~coot@213.134.176.158)
2022-08-12 06:53:06 +0200obabo(~obabo@20014C4C1C5409000000000000001000.catv.pool.telekom.hu)
2022-08-12 06:53:18 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-12 06:53:49 +0200vglfr(~vglfr@37.73.5.81) (Ping timeout: 268 seconds)
2022-08-12 06:57:51 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
2022-08-12 07:01:40 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-08-12 07:01:54 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-08-12 07:08:01 +0200 <Clinton[m]> Is there anyway I can "pin" cabal to a particular snapshot of `cabal update`? I know the answer is probably "use nix", and we are, but we've got a few bits and bobs that we haven't converted to nix (which are more utilities rather than our actual product we put through CI).
2022-08-12 07:09:03 +0200 <sclv> Clinton[m]: every time you update it gives you the command to pin it to a fixed timestamp :-)
2022-08-12 07:09:26 +0200 <sclv> and you can drop it at the top of a project file to set it for the whole project
2022-08-12 07:09:37 +0200 <sclv> its the —index-state arg
2022-08-12 07:10:55 +0200 <Clinton[m]> ah perfect thank you for pointing out what should have been obvious to me but wasn't :)
2022-08-12 07:11:06 +0200 <Clinton[m]> that'll do the job!
2022-08-12 07:13:01 +0200 <Clinton[m]> sclv: if I do that, why do I need freeze files also? Won't the build be the same each time if one uses the same `index-state`?
2022-08-12 07:13:15 +0200 <Clinton[m]> reading from: https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=index-state
2022-08-12 07:14:37 +0200 <sclv> indeed. many people consider it sufficient on its own. freeze files do capture flags as well, so using both together is the Most Solid. but either on their own is 99% there
2022-08-12 07:15:40 +0200 <sclv> oh and index-state doesn’t protect against solver drift between cabal versions, which is rare but possible
2022-08-12 07:24:18 +0200 <maerwald[m]> sclv: there are some cli arguments that influence solver too
2022-08-12 07:24:26 +0200 <maerwald[m]> Not just flags
2022-08-12 07:24:34 +0200 <maerwald[m]> I think
2022-08-12 07:24:38 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 07:25:17 +0200 <maerwald[m]> Freeze file usually works not so well across OSes
2022-08-12 07:25:31 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 07:26:10 +0200 <sclv> sure. but i consider running with options that are supposed to influence solver as deliberately circumventing reproduction so not relevant ;-)
2022-08-12 07:26:42 +0200 <sclv> re freeze files yeah you need one per os/arch
2022-08-12 07:27:39 +0200jackdktakes a drink from his "use nix for literally everything" mug :-)
2022-08-12 07:27:43 +0200 <maerwald[m]> sclv: the new ones can have conditionals though
2022-08-12 07:27:57 +0200 <maerwald[m]> How much do they support again?
2022-08-12 07:27:58 +0200phma(phma@2001:5b0:215d:c958:64bb:39ec:98ad:e7a1) (Read error: Connection reset by peer)
2022-08-12 07:28:12 +0200 <maerwald[m]> jackdk: don't choke on it
2022-08-12 07:28:37 +0200 <jackdk> maerwald[m]: copied wilco
2022-08-12 07:28:39 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-08-12 07:28:53 +0200phma(phma@2001:5b0:211c:4d8:11d:2b38:21ca:1643)
2022-08-12 07:30:39 +0200 <sclv> conditions can case on compiler version, os, arch. but the freeze cmd won’t solve across variations and generate with conditions for you :-)
2022-08-12 07:31:37 +0200 <sclv> wilco uses nix for everything?? or they just have the mug?
2022-08-12 07:34:30 +0200 <jackdk> wilco = "will comply"
2022-08-12 07:37:24 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 07:40:07 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
2022-08-12 07:40:07 +0200noteness(~noteness@user/noteness) (Ping timeout: 268 seconds)
2022-08-12 07:47:23 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-12 07:49:21 +0200califax(~califax@user/califx)
2022-08-12 07:50:03 +0200inversed(~inversed@90.209.137.56) (Ping timeout: 268 seconds)
2022-08-12 07:52:21 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-12 07:54:20 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 07:54:59 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 07:55:46 +0200kenran(~kenran@p200300df770eae00ab4ca66d3d83f79e.dip0.t-ipconnect.de)
2022-08-12 07:57:51 +0200inversed(~inversed@90.209.137.56)
2022-08-12 07:59:00 +0200 <Clinton[m]> sclv: we've got Nix set up for the important stuff so close enough should be good enough
2022-08-12 07:59:09 +0200 <Clinton[m]> sclv: thanks for all the help!
2022-08-12 08:00:25 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 08:07:56 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-08-12 08:08:02 +0200noteness(~noteness@user/noteness)
2022-08-12 08:09:33 +0200nilradical(~nilradica@user/naso)
2022-08-12 08:11:23 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl)
2022-08-12 08:12:08 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-08-12 08:13:17 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-12 08:18:07 +0200echoreply(~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
2022-08-12 08:19:00 +0200echoreply(~echoreply@45.32.163.16)
2022-08-12 08:23:26 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 08:24:02 +0200califax(~califax@user/califx) (Read error: Connection reset by peer)
2022-08-12 08:24:22 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 08:24:30 +0200califax(~califax@user/califx)
2022-08-12 08:24:42 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-12 08:25:04 +0200califax(~califax@user/califx)
2022-08-12 08:39:32 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-12 08:40:23 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-12 08:40:23 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-08-12 08:40:23 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
2022-08-12 08:40:24 +0200acidjnk(~acidjnk@p5dd87aad.dip0.t-ipconnect.de)
2022-08-12 08:40:44 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-08-12 08:40:49 +0200califax(~califax@user/califx)
2022-08-12 08:40:54 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 08:41:10 +0200ec(~ec@gateway/tor-sasl/ec)
2022-08-12 08:43:30 +0200king_gs(~Thunderbi@2806:103e:29:da31:dbd5:c070:5d09:91ef)
2022-08-12 08:43:53 +0200king_gs(~Thunderbi@2806:103e:29:da31:dbd5:c070:5d09:91ef) (Client Quit)
2022-08-12 08:47:03 +0200michalz(~michalz@185.246.204.73)
2022-08-12 08:50:20 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-08-12 08:50:48 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-08-12 08:52:21 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 08:53:06 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:faf9:d24c:386e:41db)
2022-08-12 08:53:13 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:e515:c8d5:9938:b1b6)
2022-08-12 08:53:31 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-08-12 08:53:50 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-08-12 08:55:06 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-08-12 08:56:53 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 08:58:13 +0200ddellacosta(~ddellacos@143.244.47.77)
2022-08-12 09:01:11 +0200nate4(~nate@98.45.169.16)
2022-08-12 09:03:56 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:e515:c8d5:9938:b1b6) (Ping timeout: 268 seconds)
2022-08-12 09:05:24 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 09:06:22 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-12 09:08:13 +0200ddellacosta(~ddellacos@143.244.47.77) (Ping timeout: 268 seconds)
2022-08-12 09:08:23 +0200luffy(~chenqisu1@183.217.201.23) (Ping timeout: 252 seconds)
2022-08-12 09:09:38 +0200ddellacosta(~ddellacos@143.244.47.100)
2022-08-12 09:09:59 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 09:18:26 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 09:19:39 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
2022-08-12 09:24:17 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-08-12 09:24:46 +0200 <qrpnxz> if my program is printing <<loop>> is that the compiler detecting the loop, or the runtime?
2022-08-12 09:29:48 +0200mikoto-chan(~mikoto-ch@164.5.249.78) (Ping timeout: 268 seconds)
2022-08-12 09:29:58 +0200 <[exa]> usually ghci can relatively easily see that a thunk evaluates precisely to itself, at which point it says it's a loop
2022-08-12 09:30:20 +0200 <[exa]> so yeah I'd say it's more of a runtime check.
2022-08-12 09:30:52 +0200 <qrpnxz> hard to debug, not sure where to look :(
2022-08-12 09:31:38 +0200 <[exa]> statistically probable guess: do you use `let`s in a do notation?
2022-08-12 09:31:47 +0200 <qrpnxz> oh, it was probably caused by my incesant variable shadowing
2022-08-12 09:32:12 +0200 <qrpnxz> [exa]: generally? yes. In this program, i think not even once actually
2022-08-12 09:32:18 +0200 <qrpnxz> maybe in a couple of places
2022-08-12 09:32:43 +0200 <[exa]> doing let x = ...... x .... in `do` notation is a pretty common source of loops
2022-08-12 09:33:07 +0200 <[exa]> and people usually don't see the error because in the context they don't expect the let to be recursive
2022-08-12 09:33:19 +0200 <qrpnxz> yeah, i do think i probably shadowed a variable somewhere and did a loop like that. Not in a let precisely, but basically just like that
2022-08-12 09:34:06 +0200 <[exa]> anyway if the code piece isn't big feel free to pastebin
2022-08-12 09:34:34 +0200 <qrpnxz> it's a lot :)
2022-08-12 09:36:09 +0200 <[exa]> btw try -fbreak-on-exception ( https://stackoverflow.com/a/5341615/1043097 )
2022-08-12 09:37:07 +0200 <qrpnxz> oooo, thanks!
2022-08-12 09:38:42 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net)
2022-08-12 09:39:06 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-12 09:45:10 +0200 <qrpnxz> program just hangs with 0% CPU usage on GHCi 😢
2022-08-12 09:53:28 +0200mikoto-chan(~mikoto-ch@164.5.249.78)
2022-08-12 09:55:04 +0200vysn(~vysn@user/vysn)
2022-08-12 09:57:16 +0200kuribas(~user@ptr-17d51ep53yh2tjb64h5.18120a2.ip6.access.telenet.be)
2022-08-12 09:57:28 +0200dcoutts(~duncan@host86-153-135-126.range86-153.btcentralplus.com)
2022-08-12 10:00:08 +0200dcoutts_(~duncan@host86-153-135-126.range86-153.btcentralplus.com) (Ping timeout: 244 seconds)
2022-08-12 10:02:18 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 10:03:08 +0200dcoutts_(~duncan@host86-153-135-126.range86-153.btcentralplus.com)
2022-08-12 10:05:49 +0200dcoutts(~duncan@host86-153-135-126.range86-153.btcentralplus.com) (Ping timeout: 244 seconds)
2022-08-12 10:06:51 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:faf9:d24c:386e:41db) (Ping timeout: 244 seconds)
2022-08-12 10:07:16 +0200vglfr(~vglfr@37.73.5.81)
2022-08-12 10:07:29 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:5ebd:3f23:ea49:1bd8)
2022-08-12 10:07:42 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-08-12 10:08:29 +0200ec(~ec@gateway/tor-sasl/ec)
2022-08-12 10:11:53 +0200 <albet70> could foldl1 be defined with list comprehension?
2022-08-12 10:12:50 +0200 <c_wraith> could it? what do list comprehensions desugar into?
2022-08-12 10:15:40 +0200ccntrq(~Thunderbi@172.209.94.92.rev.sfr.net)
2022-08-12 10:16:10 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-08-12 10:16:38 +0200 <qrpnxz> ohhh, i think an infinite data structure is getting forced in my code :((
2022-08-12 10:17:07 +0200 <c_wraith> that should produce <<loop>>
2022-08-12 10:17:12 +0200 <c_wraith> err. should *not*
2022-08-12 10:17:36 +0200 <qrpnxz> why not? makes sense
2022-08-12 10:17:58 +0200 <c_wraith> <<loop>> specifically means that ghc has found that in order to scrutinize a value, it must know the result of doing so
2022-08-12 10:18:25 +0200 <c_wraith> that's almost never true of infinite structures
2022-08-12 10:18:26 +0200 <qrpnxz> i think it's a recursive infinite data structure
2022-08-12 10:19:08 +0200 <qrpnxz> i've no idea why it would try to force the whole thing tho 🤔
2022-08-12 10:19:17 +0200coot(~coot@213.134.176.158)
2022-08-12 10:19:18 +0200 <c_wraith> If there's ever a constructor guarding the recursion, it won't produce <<loop>>
2022-08-12 10:20:17 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-12 10:23:03 +0200mc47(~mc47@xmonad/TheMC47)
2022-08-12 10:33:49 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 10:36:09 +0200CiaoSen(~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-08-12 10:39:32 +0200 <qrpnxz> found the problem. I have a chain like `a = b <*> a` but my (<*>) is not lazy on the right side :(( sad
2022-08-12 10:40:13 +0200 <dminuoso> Even if it was lazy, you'd still have that problem
2022-08-12 10:40:42 +0200 <dminuoso> Or possibly, anyway.
2022-08-12 10:41:06 +0200 <[exa]> except for very special cases where b==Nothing or b==[] or so
2022-08-12 10:41:15 +0200 <[exa]> what is it supposed to do btw?
2022-08-12 10:42:27 +0200 <qrpnxz> dminuoso: i meant that for (<*>) to produce it need to deconstruct the right side, but it can't because the right side need to also deconstruct it's right side and so on
2022-08-12 10:44:02 +0200 <qrpnxz> [exa]: it's for a stream monad transformer. One change i made this worked totally fine, but i lost stream fusion. Changed the data type back and now (<*>) and >>= have rather undesirable properties
2022-08-12 10:45:02 +0200mikoto-chan(~mikoto-ch@164.5.249.78) (Ping timeout: 268 seconds)
2022-08-12 10:47:40 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 244 seconds)
2022-08-12 10:51:09 +0200nattiestnate(~nate@180.243.14.16)
2022-08-12 10:51:18 +0200nattiestnate(~nate@180.243.14.16) (Client Quit)
2022-08-12 10:51:58 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-12 10:56:05 +0200Psybur(~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
2022-08-12 10:56:42 +0200chronon(~chronon@user/chronon) (Quit: leaving)
2022-08-12 10:57:24 +0200chimp_(~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 268 seconds)
2022-08-12 10:57:29 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-08-12 10:59:35 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 11:00:02 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 11:00:21 +0200entheogenesis[m4(~entheogen@2001:470:69fc:105::1:e7c4) (Quit: You have been kicked for being idle)
2022-08-12 11:02:09 +0200vysn(~vysn@user/vysn) (Ping timeout: 244 seconds)
2022-08-12 11:08:01 +0200yvan-sraka(~yvan-srak@105.67.135.250)
2022-08-12 11:08:33 +0200chele(~chele@user/chele)
2022-08-12 11:11:28 +0200 <tomsmeding> qrpnxz: this is probably not helpful, but usually >>= can refer to its own result on its right-hand side, because of the explicit sequencing involved
2022-08-12 11:11:46 +0200 <tomsmeding> for <*>, less often, because the effects tend to be evaluated at the same time
2022-08-12 11:12:12 +0200 <tomsmeding> this makes no sense
2022-08-12 11:12:19 +0200 <tomsmeding> qrpnxz: ignore what I wrote, it's nonsense
2022-08-12 11:13:18 +0200 <tomsmeding> proof: a <*> b = a >>= \x -> b >>= \y -> return (x y)
2022-08-12 11:14:01 +0200ddellacosta(~ddellacos@143.244.47.100) (Ping timeout: 268 seconds)
2022-08-12 11:15:35 +0200 <qrpnxz> i could add laziness, but it would kill fusion. Indeed my (>>=) loses fusion on the continuation stream. If i did (<*>) = ap (what you demonstrated) indeed it would fix the laziness problem
2022-08-12 11:15:57 +0200ddellacosta(~ddellacos@86.106.121.183)
2022-08-12 11:16:21 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 252 seconds)
2022-08-12 11:17:48 +0200 <qrpnxz> so it's valid what you are pointing out :)
2022-08-12 11:18:56 +0200 <qrpnxz> and perahps doing (<*>) = ap would be the proper thing to do in this case, and have another function that does the strict thing
2022-08-12 11:19:10 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-12 11:19:43 +0200 <tomsmeding> usually implementing (<*>) specially has the potential to give _more_ performance, because you have more information about the structure of the computation
2022-08-12 11:19:50 +0200 <tomsmeding> interesting that it is the other way round for you :)(
2022-08-12 11:19:52 +0200 <tomsmeding> * :)
2022-08-12 11:20:53 +0200noteness(~noteness@user/noteness)
2022-08-12 11:21:25 +0200ddellacosta(~ddellacos@86.106.121.183) (Ping timeout: 268 seconds)
2022-08-12 11:21:48 +0200chronon(~chronon@user/chronon)
2022-08-12 11:22:00 +0200benin0(~benin@183.82.31.108)
2022-08-12 11:25:14 +0200 <qrpnxz> indeed lol. And there is some posibility it wouldn't lose fusion afterall. Where i was losing fusion is when the stepper function was totally dynamic and could be replaced any time, but with the monad instance, even though i have to pass the stepper around, the stepper remains fixed on every iteration of that branch, so there's some possibility that GHC could still be favorable to that. I'm going
2022-08-12 11:25:15 +0200 <qrpnxz> to do (<*>) = ap and see what the benchmarks say.
2022-08-12 11:29:26 +0200 <qrpnxz> eh, no loop, but the performance is utterly garbage. So bad i want to remove the instances.
2022-08-12 11:30:47 +0200 <qrpnxz> well, they still might be useful, so i just need to note that they should be super avoided at least. "`s = yield a >> s` considered harmful"
2022-08-12 11:32:51 +0200ski(~ski@ext-1-308.eduroam.chalmers.se)
2022-08-12 11:32:54 +0200yvan-sraka(~yvan-srak@105.67.135.250) (Ping timeout: 252 seconds)
2022-08-12 11:36:11 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 11:37:40 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-08-12 11:40:03 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 11:43:12 +0200mmhat(~mmh@p200300f1c706f761ee086bfffe095315.dip0.t-ipconnect.de)
2022-08-12 11:44:44 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2022-08-12 11:47:45 +0200m1dnight_(~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.6)
2022-08-12 11:48:25 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-08-12 11:48:58 +0200ec(~ec@gateway/tor-sasl/ec)
2022-08-12 11:50:58 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 11:51:50 +0200Everything(~Everythin@37.115.210.35)
2022-08-12 11:51:56 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-08-12 11:52:25 +0200lsrts^(~lsrts@206.85.120.17) (Remote host closed the connection)
2022-08-12 11:52:28 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 11:55:21 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-12 11:56:48 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-08-12 11:56:56 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds)
2022-08-12 12:00:29 +0200luffy(~chenqisu1@183.217.201.23)
2022-08-12 12:03:33 +0200fserucas_(~fserucas@46.50.4.22) (Quit: Leaving)
2022-08-12 12:04:16 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:38ea:666e:63fd:fbc3)
2022-08-12 12:06:57 +0200 <qrpnxz> ByteStrings mconcat very fast! at least much faster than going through Builder. Good to know
2022-08-12 12:07:40 +0200vglfr(~vglfr@37.73.5.81) (Ping timeout: 268 seconds)
2022-08-12 12:08:31 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 12:09:20 +0200 <maerwald[m]> qrpnxz: lazy?
2022-08-12 12:09:34 +0200 <qrpnxz> strict ByteString
2022-08-12 12:10:03 +0200 <maerwald[m]> It's O(n)
2022-08-12 12:10:50 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 12:10:50 +0200 <qrpnxz> as expected
2022-08-12 12:13:04 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 12:14:36 +0200CiaoSen(~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-08-12 12:15:04 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-08-12 12:15:28 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-08-12 12:17:10 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 12:17:16 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl)
2022-08-12 12:23:07 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:38ea:666e:63fd:fbc3) (Ping timeout: 268 seconds)
2022-08-12 12:23:10 +0200vglfr(~vglfr@37.73.5.81)
2022-08-12 12:24:08 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 12:24:25 +0200 <zzz> can we do something like `module A hiding (a, b) where ...` ?
2022-08-12 12:25:43 +0200 <dminuoso> zzz: No.
2022-08-12 12:25:56 +0200 <zzz> ok
2022-08-12 12:27:32 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 12:28:51 +0200 <dminuoso> qrpnxz: Builders give you constant concatenation, mind you.
2022-08-12 12:30:35 +0200 <qrpnxz> oh yeah builders are great, but i just cut a benchmark time in half by going directly stream -> [bytestring] -> bytestring rather than stream stream -> builder -> bytestring
2022-08-12 12:30:51 +0200haskl(~haskl@user/haskl) (Read error: Connection reset by peer)
2022-08-12 12:31:50 +0200 <qrpnxz> so basically `mconcat . foldr (:) []` vs `toStrict . toLazyBytestring . foldr ((<>) BB.bytestring) mempty`
2022-08-12 12:31:52 +0200 <dminuoso> I guess it still depends on the actual numbers involved.
2022-08-12 12:32:42 +0200Jade1(~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de)
2022-08-12 12:33:10 +0200haskl(~haskl@user/haskl)
2022-08-12 12:33:55 +0200king_gs(~Thunderbi@2806:103e:29:da31:cbac:d5de:e706:b041)
2022-08-12 12:33:55 +0200king_gs(~Thunderbi@2806:103e:29:da31:cbac:d5de:e706:b041) (Client Quit)
2022-08-12 12:34:40 +0200vysn(~vysn@user/vysn)
2022-08-12 12:35:25 +0200acidjnk(~acidjnk@p5dd87aad.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-08-12 12:35:27 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
2022-08-12 12:36:22 +0200 <qrpnxz> for this usecase builder ended up just being overhead since all my strings were already coming in as a stream, if i had been needing to append to the end, perhaps builder would have been better. Though i also wonder if a simple `mconcat . reverse` or Seq wouldn't be better in that case too
2022-08-12 12:39:16 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-08-12 12:40:09 +0200ec(~ec@gateway/tor-sasl/ec)
2022-08-12 12:41:51 +0200nilradical(~nilradica@user/naso) ()
2022-08-12 12:43:44 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:5ebd:3f23:ea49:1bd8) (Ping timeout: 255 seconds)
2022-08-12 12:44:42 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 12:46:54 +0200 <dminuoso> Oh you mean they were already coming in reverse?
2022-08-12 12:47:56 +0200 <dminuoso> That is, per chunk in forward order, but chunks in reverse order?
2022-08-12 12:50:13 +0200vglfr(~vglfr@37.73.5.81) (Ping timeout: 268 seconds)
2022-08-12 12:51:57 +0200 <qrpnxz> no they weren't coming in reverse in the stream, but i'm saying in the case you wanted to build a bytestring by appending, you'd consider using Builder, but i wonder if it would not be just a good to build it in reverse and then hit it with `mconcat . reverse` at the end
2022-08-12 12:52:08 +0200 <qrpnxz> dminuoso:
2022-08-12 12:53:12 +0200 <qrpnxz> and i don't know, if you wanted to use the builder multiple times, I think Builder should definitely be better?
2022-08-12 12:54:09 +0200 <qrpnxz> and i think Builder is also made so that it can write directly to a Handle as well
2022-08-12 12:54:38 +0200 <dminuoso> Be sure to measure memory behavior in the comparison as well.
2022-08-12 12:55:29 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-08-12 12:55:58 +0200 <zzz> if i keep a key pressed for some time, gloss throws a sequence of up and down keypress events
2022-08-12 12:56:05 +0200 <zzz> is this expected behaviour?
2022-08-12 12:56:16 +0200 <dminuoso> The builder drivers have some careful logic with regard to allocation strategies
2022-08-12 12:56:18 +0200pie_(~pie_bnc@user/pie/x-2818909) (Ping timeout: 240 seconds)
2022-08-12 12:57:08 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 12:57:12 +0200 <qrpnxz> zzz: it makes sense for a text buffer :) maybe it's configurable?
2022-08-12 12:58:06 +0200 <dminuoso> zzz: That sounds unexpected given the gloss interface
2022-08-12 12:58:23 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 12:58:48 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 13:00:15 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:5e5a:edaf:8ebd:d4fc)
2022-08-12 13:01:13 +0200m1dnight(~christoph@78-22-0-121.access.telenet.be)
2022-08-12 13:02:33 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 13:02:41 +0200nate4(~nate@98.45.169.16)
2022-08-12 13:04:38 +0200pie_(~pie_bnc@user/pie/x-2818909)
2022-08-12 13:05:22 +0200xnbya2(~xnbya@2a01:4f8:c17:cbdd::1) (Quit: quit)
2022-08-12 13:05:30 +0200xnbya(~xnbya@2a01:4f8:c17:cbdd::1)
2022-08-12 13:07:27 +0200nate4(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-08-12 13:13:27 +0200nicos(~nico@190.247.245.154)
2022-08-12 13:16:19 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-08-12 13:17:57 +0200m1dnight(~christoph@78-22-0-121.access.telenet.be) (Read error: Connection reset by peer)
2022-08-12 13:18:24 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl)
2022-08-12 13:18:59 +0200Alex_test(~al_test@178.34.151.166) (Quit: ;-)
2022-08-12 13:19:03 +0200AlexZenon(~alzenon@178.34.151.166) (Quit: ;-)
2022-08-12 13:19:12 +0200AlexNoo(~AlexNoo@178.34.151.166) (Quit: Leaving)
2022-08-12 13:21:03 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds)
2022-08-12 13:21:35 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net)
2022-08-12 13:22:02 +0200dsrt^(~dsrt@206.85.120.17)
2022-08-12 13:23:35 +0200m1dnight(~christoph@78-22-0-121.access.telenet.be)
2022-08-12 13:24:33 +0200AlexZenon(~alzenon@178.34.151.166)
2022-08-12 13:24:34 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 13:24:39 +0200AlexNoo(~AlexNoo@178.34.151.166)
2022-08-12 13:26:17 +0200Alex_test(~al_test@178.34.151.166)
2022-08-12 13:28:04 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-08-12 13:28:04 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Client Quit)
2022-08-12 13:29:08 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
2022-08-12 13:30:38 +0200vglfr(~vglfr@37.73.5.81)
2022-08-12 13:36:13 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl)
2022-08-12 13:38:13 +0200 <zzz> yeah i'm finding it weird
2022-08-12 13:38:59 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-08-12 13:40:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 13:40:18 +0200Jade1(~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de) (Quit: Client closed)
2022-08-12 13:40:38 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-08-12 13:41:00 +0200m1dnight(~christoph@78-22-0-121.access.telenet.be) (Read error: Connection reset by peer)
2022-08-12 13:42:39 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2022-08-12 13:43:08 +0200pie_(~pie_bnc@user/pie/x-2818909) ()
2022-08-12 13:43:29 +0200pie_(~pie_bnc@user/pie/x-2818909)
2022-08-12 13:43:36 +0200Jade1(~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de)
2022-08-12 13:44:28 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:454b:92f1:2a92:b402)
2022-08-12 13:45:11 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl)
2022-08-12 13:46:55 +0200m1dnight(~christoph@78-22-0-121.access.telenet.be)
2022-08-12 13:47:55 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 13:50:11 +0200darchitect1(~darchitec@2a00:23c6:3584:df01:81a:29c9:cfd8:abaa) (Ping timeout: 268 seconds)
2022-08-12 13:50:24 +0200Guest|18(~Guest|18@p5ddb3d05.dip0.t-ipconnect.de)
2022-08-12 13:51:38 +0200Guest|18(~Guest|18@p5ddb3d05.dip0.t-ipconnect.de) (Client Quit)
2022-08-12 13:53:43 +0200 <zzz> fun. intuitively `[show a,show b] === map show [a,b]` but the second one may not typecheck if a and b have different types. i keep tripping over it, felt like sharing
2022-08-12 13:53:47 +0200 <zzz> subscribe
2022-08-12 13:54:21 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-12 13:54:33 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 13:55:43 +0200nicos(~nico@190.247.245.154) (Remote host closed the connection)
2022-08-12 13:59:19 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-08-12 13:59:57 +0200nicos(~nico@190.247.245.154)
2022-08-12 14:03:33 +0200vglfr(~vglfr@37.73.5.81) (Ping timeout: 252 seconds)
2022-08-12 14:04:47 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-12 14:04:54 +0200Jade1(~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de) (Quit: Client closed)
2022-08-12 14:06:03 +0200noteness(~noteness@user/noteness)
2022-08-12 14:06:19 +0200 <hpc> zzz: check out rank 2 types, if you want to wrinkle your brain :D
2022-08-12 14:07:27 +0200mixfix41(~sdenynine@user/mixfix41) (Ping timeout: 268 seconds)
2022-08-12 14:09:48 +0200 <fgaz> maerwald: good idea, generating platform independent freeze files
2022-08-12 14:11:24 +0200benin04(~benin@2401:4900:2325:5674:b133:d14b:76b3:3d8)
2022-08-12 14:13:37 +0200benin0(~benin@183.82.31.108) (Ping timeout: 268 seconds)
2022-08-12 14:13:37 +0200benin04benin0
2022-08-12 14:14:38 +0200dunj3_dunj3
2022-08-12 14:15:48 +0200cyphase(~cyphase@user/cyphase)
2022-08-12 14:17:10 +0200benin04(~benin@183.82.178.4)
2022-08-12 14:18:14 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-08-12 14:18:24 +0200pie_(~pie_bnc@user/pie/x-2818909) ()
2022-08-12 14:19:01 +0200pie_(~pie_bnc@user/pie/x-2818909)
2022-08-12 14:19:31 +0200talismanick(~talismani@2601:200:c100:3850::dd64)
2022-08-12 14:19:32 +0200benin0(~benin@2401:4900:2325:5674:b133:d14b:76b3:3d8) (Ping timeout: 255 seconds)
2022-08-12 14:19:32 +0200benin04benin0
2022-08-12 14:20:35 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 14:20:53 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 14:28:19 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-08-12 14:30:03 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-08-12 14:33:26 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 14:43:09 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:454b:92f1:2a92:b402) (Remote host closed the connection)
2022-08-12 14:43:28 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:41c2:c97c:1364:63b1)
2022-08-12 14:44:00 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-08-12 14:45:01 +0200nilradical(~nilradica@user/naso)
2022-08-12 14:45:35 +0200 <nilradical> is there a library that can do basic plots inside the terminal
2022-08-12 14:45:42 +0200 <ski> existential types, not rank-2, is what'd help in the above situation
2022-08-12 14:46:08 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-08-12 14:46:08 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 14:46:08 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-12 14:46:08 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-08-12 14:46:08 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-08-12 14:46:08 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 14:46:08 +0200califax(~califax@user/califx) (Write error: Broken pipe)
2022-08-12 14:46:08 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-08-12 14:46:31 +0200noteness(~noteness@user/noteness)
2022-08-12 14:46:36 +0200 <ski> (but yes, rank-2 is kinda related)
2022-08-12 14:46:38 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2022-08-12 14:46:39 +0200califax(~califax@user/califx)
2022-08-12 14:46:39 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 14:46:43 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 14:47:10 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-08-12 14:47:14 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-12 14:49:01 +0200Tuplanolla(~Tuplanoll@91-159-69-12.elisa-laajakaista.fi)
2022-08-12 14:49:07 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-08-12 14:54:49 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
2022-08-12 14:55:05 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2022-08-12 14:55:23 +0200 <dminuoso> Im building a trie of domain names (according to their labels), where realistically most nodes will have relatively few children. Right now Im using `data DomTrie = DomTrie Bool (M.Map Label DomTrie)`
2022-08-12 14:55:31 +0200Alex_test(~al_test@178.34.151.166) (Quit: ;-)
2022-08-12 14:55:57 +0200AlexZenon(~alzenon@178.34.151.166) (Quit: ;-)
2022-08-12 14:55:59 +0200luffy(~chenqisu1@183.217.201.23) (Ping timeout: 252 seconds)
2022-08-12 14:56:08 +0200 <dminuoso> Im wondering, is the Map overkill if, most of the time, there's only less than 5 children? Is there a better way to encode this?
2022-08-12 14:56:34 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-08-12 14:56:39 +0200AlexNoo(~AlexNoo@178.34.151.166) (Quit: Leaving)
2022-08-12 14:57:09 +0200 <nilradical> ok found this, soo cool https://github.com/weeezes/plot
2022-08-12 14:58:17 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 14:58:56 +0200 <sm> nilradical: if it's any good, please let us know
2022-08-12 14:59:38 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-12 15:02:48 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
2022-08-12 15:03:46 +0200 <chreekat> I hope to have more excuses to learn how to use https://www.visidata.org/ and https://ggplot2.tidyverse.org/
2022-08-12 15:05:31 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-12 15:05:38 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 15:06:42 +0200 <zzz> hpc: oh im familiar with all that. just felt like sharing this surprisingly common think that happens when i'm mindlessly coding
2022-08-12 15:08:27 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-12 15:09:31 +0200kenran(~kenran@p200300df770eae00ab4ca66d3d83f79e.dip0.t-ipconnect.de) (Quit: WeeChat info:version)
2022-08-12 15:09:43 +0200ski. o O ( `[a,b] :: [exists x. Show x *> x]',`show :: (exists a. Show a *> a) -> String' )
2022-08-12 15:10:38 +0200califax(~califax@user/califx)
2022-08-12 15:10:50 +0200dsrt^(~dsrt@206.85.120.17) (Ping timeout: 255 seconds)
2022-08-12 15:10:51 +0200 <byorgey> zzz: yeah, that's happened to me too
2022-08-12 15:15:00 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-08-12 15:15:16 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-08-12 15:15:30 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
2022-08-12 15:20:08 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 268 seconds)
2022-08-12 15:20:09 +0200 <qrpnxz> i'm gonna get to flex an effect system today! After the third transformer on the stack, it just makes sense 😄
2022-08-12 15:20:28 +0200AlexNoo(~AlexNoo@178.34.151.166)
2022-08-12 15:20:29 +0200AlexZenon(~alzenon@178.34.151.166)
2022-08-12 15:24:50 +0200cyphase(~cyphase@user/cyphase)
2022-08-12 15:24:59 +0200 <maerwald[m]> qrpnxz: transformers are awful, yes. But so are effects systems. Everything leaks implementation details
2022-08-12 15:25:50 +0200 <qrpnxz> the three best ones i have seen, all good really, are `effectful`, `cleff`, and `freer-simple`
2022-08-12 15:26:10 +0200 <qrpnxz> since i want most performance possible i'm gonna use effectful for this thing
2022-08-12 15:31:56 +0200Alex_test(~al_test@178.34.151.166)
2022-08-12 15:33:17 +0200dcoutts(~duncan@host86-153-135-25.range86-153.btcentralplus.com)
2022-08-12 15:33:31 +0200zxx7529(~Thunderbi@user/zxx7529) (Quit: zxx7529)
2022-08-12 15:34:56 +0200dcoutts_(~duncan@host86-153-135-126.range86-153.btcentralplus.com) (Ping timeout: 244 seconds)
2022-08-12 15:38:59 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-12 15:41:23 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-08-12 15:42:31 +0200kuribas(~user@ptr-17d51ep53yh2tjb64h5.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2022-08-12 15:42:59 +0200jakalx(~jakalx@base.jakalx.net)
2022-08-12 15:46:30 +0200 <qrpnxz> haskell language server when it works: 😍, when it doesnt: 😭
2022-08-12 15:48:07 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-12 15:49:05 +0200nilradical(~nilradica@user/naso)
2022-08-12 15:49:22 +0200nilradical(~nilradica@user/naso) (Client Quit)
2022-08-12 15:49:37 +0200Sgeo(~Sgeo@user/sgeo)
2022-08-12 15:52:00 +0200 <dminuoso> The "best" effect system I have seen so far is Javas checked exceptions.
2022-08-12 15:52:27 +0200 <dminuoso> It has some serious issues, but I think if we had that in Haskell, I'd be more than happy.
2022-08-12 15:53:21 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 15:54:42 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:5e5a:edaf:8ebd:d4fc) (Quit: WeeChat 2.8)
2022-08-12 15:54:46 +0200vpan(~0@212.117.1.172)
2022-08-12 15:55:33 +0200 <qrpnxz> that sounds like a particular effect rather than an effect system. And you can do checked exceptions with haskell effect systems. All of the effect systems i mentioned have an effect like `Error`. Functions that throw errors will be marked as using the effect `Error E` for some error type E. You handle the error completely by just running the effect. Neat, huh?
2022-08-12 15:55:38 +0200 <qrpnxz> dminuoso:
2022-08-12 15:56:33 +0200 <dminuoso> qrpnxz: Yes, and that's part of what I like about it.
2022-08-12 15:57:33 +0200 <dminuoso> It's not bolted onto the type system, I dont ever have to worry about how whether A+B is the same as B+A, I get quality diagnostics from my compiler that tells me exactly what went wrong when you violate some rule
2022-08-12 15:57:41 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-12 15:58:09 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 15:59:38 +0200 <dminuoso> All these effect systems you mentioned try to be extra clever by bolting some obscure logic into the type system one way or another. It complicated communication, it interferes with tooling, it ruins legigble diagnostics, it introduces harsh hurdles for less experienced programmers coming to your project.
2022-08-12 16:01:35 +0200 <qrpnxz> mmm, i'm not sure what you mean. If you don't handle an effect, it tells, same why java would tell you if you didn't handle an exception? Sure, you have to know the library to work with it like one has to know java to work with that
2022-08-12 16:02:12 +0200 <dminuoso> In case of checked exceptions being part of the language, the implementation can simply tell you "X can throw Y, but you're not catching Y".
2022-08-12 16:02:41 +0200 <dminuoso> In case of pretty much all haskell effect systems its usually obscure type unification errors, more often than not involving fundeps
2022-08-12 16:03:29 +0200 <qrpnxz> none of the three i mentioned use fundeps afaik, that's an mtl thing. Let me see if i can whip up a short example and see what errors it gives.
2022-08-12 16:03:36 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-12 16:04:00 +0200califax(~califax@user/califx)
2022-08-12 16:05:16 +0200 <dminuoso> If you start doing type magic, you pretty much cant get around using tyfams or fundeps
2022-08-12 16:05:26 +0200 <dminuoso> You arrive at them very quickly.
2022-08-12 16:05:56 +0200mvk(~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds)
2022-08-12 16:06:56 +0200 <dminuoso> freer-simple uses them in a couple places for instance. Anyway, the point is, you end up using their machinery - and at some point the type checker will run. What you conceive as "the system ensures that XYZ holds", XYZ is usually just some invariance that holds *if* type checking succeeds.
2022-08-12 16:08:39 +0200 <qrpnxz> "There is no handler for 'Error String' in the context" not bad
2022-08-12 16:08:44 +0200 <qrpnxz> that's the error i got
2022-08-12 16:09:03 +0200 <dminuoso> Yes, we can introduce custom type errors
2022-08-12 16:09:38 +0200 <[exa]> dminuoso: there are pretty nice typesystems for the checked-exceptions-style stuff compatible with FP and the haskell typechecking way (e.g. one friend did this: https://github.com/jiribenes/cocobolo )
2022-08-12 16:09:38 +0200 <dminuoso> But its not bullet proof, Ive seen this in optics for years now. In general the diagnotics are good, but you often end up in edge cases with extremely bizarre type errors
2022-08-12 16:10:34 +0200 <[exa]> (it's inspired by "Recovering Purity
2022-08-12 16:10:34 +0200 <qrpnxz> one way to get crazy errors is you didn't annotate enough, that can happen effect system or not though.
2022-08-12 16:10:37 +0200 <[exa]> with Comonads and Capabilities")
2022-08-12 16:10:44 +0200 <[exa]> (uh whoops sorry for the linebreak)
2022-08-12 16:10:58 +0200 <dminuoso> qrpnxz: "You didn't annotate enough" is just an euphemism for "You're holding it wrong"
2022-08-12 16:11:15 +0200 <dminuoso> If your phone requires me to hold it in a particular way to work, its a bad phone.
2022-08-12 16:11:20 +0200 <qrpnxz> and holding it wrong is good? lol
2022-08-12 16:11:31 +0200 <qrpnxz> every phone requires that
2022-08-12 16:11:50 +0200 <qrpnxz> very difficult to use a phone with the screen the wrong way for example
2022-08-12 16:12:06 +0200 <dminuoso> qrpnxz: Its a reference to the iPhone 4 which had such reception problem to the point of getting no signal at all unless you held it in very strange ways.
2022-08-12 16:12:11 +0200 <[exa]> qrpnxz: define "use" tho. :]
2022-08-12 16:12:24 +0200 <qrpnxz> :)
2022-08-12 16:12:29 +0200 <dminuoso> The reception problems would occur when holding it in very normal ways.
2022-08-12 16:12:34 +0200 <dminuoso> Anyway
2022-08-12 16:12:52 +0200 <qrpnxz> annotating type is not like magic though, it's just explicitly putting what you already know it is, but very difficult for the compiler to figure out :/
2022-08-12 16:13:04 +0200 <dminuoso> qrpnxz: If I have to annotate code a very special way to get useful diagnostics, that really harms the user experience.
2022-08-12 16:13:11 +0200 <dminuoso> I should get useful diagnostics whenever possible
2022-08-12 16:13:41 +0200 <dminuoso> The reason you dont get useful diagnostics in most type wizardry programs is because bolting things into a turing complete type system is certainly possible, but not necessarily the best thing to do.
2022-08-12 16:13:55 +0200nate4(~nate@98.45.169.16)
2022-08-12 16:13:58 +0200 <dminuoso> │16:12:52 qrpnxz | annotating type is not like magic though, it's just explicitly putting what you already know it is, but very difficult for the compiler to figure out :/
2022-08-12 16:14:00 +0200 <dminuoso> Yes
2022-08-12 16:14:06 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-08-12 16:14:11 +0200 <qrpnxz> the thing is that the experience is improved already above average by already almost never annotating. with haskell sometimes you can't get away with it and you have to annotate, but this isn't like the end of the world, this is just what you have to do in every other static typed language without inference
2022-08-12 16:14:12 +0200 <dminuoso> And it shouldnt be hard for an implementation to find out "Hey you're not catching exception Y"
2022-08-12 16:14:39 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 16:14:43 +0200 <dminuoso> It's one of the reasons I dont use lens anymore, I dont want to deal with "no instance" errors when I miscompose and eliminate.
2022-08-12 16:14:53 +0200 <qrpnxz> i mean, it's not, the error i got says pretty much exactly that "No handler for error"
2022-08-12 16:14:57 +0200 <qrpnxz> can't get clearer honestly
2022-08-12 16:15:20 +0200 <dminuoso> qrpnxz: Can you guarantee this will always trigger? :-)
2022-08-12 16:15:31 +0200vglfr(~vglfr@93.170.4.33)
2022-08-12 16:15:45 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 16:15:47 +0200 <qrpnxz> yes, the compiler has no idea how to handle your error for you, so it must error if you don't handler it. It's a type error
2022-08-12 16:16:24 +0200 <qrpnxz> GHC's not gonna go like "guess i'll unsafecoerce here". It's gonna error.
2022-08-12 16:16:50 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-08-12 16:17:22 +0200 <dminuoso> qrpnxz: So there's a lot of really strange bugs with these custom errors
2022-08-12 16:18:17 +0200 <dminuoso> Check this for instance https://github.com/well-typed/optics/issues/334#issuecomment-670976630
2022-08-12 16:18:34 +0200 <dminuoso> Or https://github.com/well-typed/optics/issues/308
2022-08-12 16:19:18 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-08-12 16:19:23 +0200 <dminuoso> If such things would be implemented as a separate type system directly in the compiler, I think we'd be in a better place.
2022-08-12 16:19:54 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:41c2:c97c:1364:63b1) (Ping timeout: 264 seconds)
2022-08-12 16:20:01 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
2022-08-12 16:20:03 +0200 <zzz> hey byorgey, hows swarm going?
2022-08-12 16:20:30 +0200vglfr(~vglfr@93.170.4.33) (Ping timeout: 268 seconds)
2022-08-12 16:20:43 +0200 <qrpnxz> ok? i don't mean to deny that bad errors exist. Mostly talking about these effect libraries and in particular exceptions, i find that the experience is good. I don't use optics personally, i use lens, so i'm not really familiar with the issues you have linked.
2022-08-12 16:20:54 +0200vglfr(~vglfr@145.224.94.75)
2022-08-12 16:21:29 +0200 <dminuoso> Lens is the pinnacle of poor diagnostics here. :p
2022-08-12 16:22:04 +0200 <qrpnxz> lol
2022-08-12 16:23:35 +0200 <qrpnxz> sigh, HLS just refusing to acknowledge my build-depends rn :(
2022-08-12 16:24:14 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 16:24:42 +0200dsrt^(~dsrt@206.85.120.17)
2022-08-12 16:25:42 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-08-12 16:25:58 +0200 <qrpnxz> ugh, i just remembered why this happens. Fixed :)
2022-08-12 16:26:01 +0200 <dminuoso> qrpnxz: (Settable f, Num (f (a1, a2)), Profunctor p, Contravariant f, Functor (p (a1, a2))) => p a2 (f a2) -> f (p (a1, a2) (a1, a2))
2022-08-12 16:26:05 +0200 <dminuoso> Is this a valid optic?
2022-08-12 16:26:16 +0200 <dminuoso> Could you tell what I did to produce this optic?
2022-08-12 16:26:20 +0200 <qrpnxz> at first glance i say no
2022-08-12 16:26:48 +0200 <xsarnik> Hi, does anyone know of a good monospace programming font that has extensive support for unicode characters?
2022-08-12 16:26:57 +0200 <qrpnxz> optics look like (p a (f b) -> p s (f t))
2022-08-12 16:27:03 +0200 <qrpnxz> van laarhoven do anyway
2022-08-12 16:27:15 +0200 <dminuoso> van laarhoven look even differently
2022-08-12 16:27:43 +0200 <dminuoso> What you're talking about is this hybrid van laarhoven/profunctor that lens uses
2022-08-12 16:28:04 +0200 <dminuoso> qrpnxz: But really, if you look closely that type above *is* such a type
2022-08-12 16:28:11 +0200 <qrpnxz> call it what you like :), but that's the shape of lens library optic
2022-08-12 16:28:25 +0200 <qrpnxz> um it's not tho, your thing is f (p _ _)
2022-08-12 16:28:53 +0200nattiestnate(~nate@180.243.14.16)
2022-08-12 16:29:51 +0200 <dminuoso> Ah fair I guess
2022-08-12 16:30:12 +0200razetime(~quassel@117.254.35.133)
2022-08-12 16:30:47 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 16:32:31 +0200 <qrpnxz> > "Settable f, Contravariant f"
2022-08-12 16:32:33 +0200 <lambdabot> "Settable f, Contravariant f"
2022-08-12 16:32:37 +0200 <qrpnxz> did you just type something at random? lol
2022-08-12 16:36:26 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-12 16:38:43 +0200 <dminuoso> qrpnxz: (Profunctor p, Contravariant f, Bifunctor p, Functor f) => p s (f s) -> p s (f s)
2022-08-12 16:38:50 +0200 <dminuoso> qrpnxz: Here, what about this one?
2022-08-12 16:38:54 +0200 <[exa]> xsarnik: JuliaMono has crazy unicode coverage
2022-08-12 16:38:54 +0200 <dminuoso> Is this a legit thing?
2022-08-12 16:38:58 +0200ccntrq(~Thunderbi@172.209.94.92.rev.sfr.net) (Read error: Connection reset by peer)
2022-08-12 16:40:46 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-08-12 16:41:10 +0200 <xsarnik> [exa]: thanks, will take a look
2022-08-12 16:46:38 +0200 <qrpnxz> dminuoso: review maybe? Not familiar with that type
2022-08-12 16:46:51 +0200 <qrpnxz> that's why i use the type synonyms :)
2022-08-12 16:47:36 +0200 <qrpnxz> it's close to a review. Review is Choice, Bifunctor, Settable
2022-08-12 16:48:56 +0200 <qrpnxz> I don't think that matches any class of optic in lens library
2022-08-12 16:52:45 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 16:52:45 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-08-12 16:52:45 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 16:52:46 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-08-12 16:52:46 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-08-12 16:53:16 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 16:53:19 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 16:53:20 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-08-12 16:53:20 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-12 16:55:39 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2022-08-12 16:59:53 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:8ebc:7ad0:4cb3:bd5d)
2022-08-12 17:01:19 +0200cheater(~Username@user/cheater)
2022-08-12 17:01:32 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 17:02:47 +0200 <dminuoso> xsarnik: Any particular sets of interest?
2022-08-12 17:03:06 +0200pmarg(~pmarg@2a01:799:159f:9b00:d32f:f01e:75a5:8790)
2022-08-12 17:04:25 +0200pmarg(~pmarg@2a01:799:159f:9b00:d32f:f01e:75a5:8790) (Remote host closed the connection)
2022-08-12 17:05:45 +0200adziahel[m](~adziahelm@2001:470:69fc:105::b4d)
2022-08-12 17:06:10 +0200 <xsarnik> dminuoso: Sets, as in kinds of characters?
2022-08-12 17:06:29 +0200 <dminuoso> Sure
2022-08-12 17:07:20 +0200 <xsarnik> Well, mainly math characters (greek letters, blackboard bold, callighraphics, operators, arrows, ...)
2022-08-12 17:10:24 +0200abraham(~abraham@159.89.183.132)
2022-08-12 17:13:50 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 17:14:08 +0200Inst(~Inst@2601:6c4:4080:3f80:60a2:552d:5c38:7396) (Ping timeout: 244 seconds)
2022-08-12 17:14:10 +0200dsrt^(~dsrt@206.85.120.17) (Ping timeout: 268 seconds)
2022-08-12 17:17:37 +0200 <ski> xsarnik : maybe the one that's suggested with the Emacs mode for Agda
2022-08-12 17:18:10 +0200 <dminuoso> xsarnik: https://fsd.it/pragmatapro/All_chars.txt
2022-08-12 17:18:13 +0200 <dminuoso> Would that fit your bill?
2022-08-12 17:18:27 +0200 <dminuoso> I'm quite fond of that font.
2022-08-12 17:18:59 +0200razetime(~quassel@117.254.35.133) (Ping timeout: 252 seconds)
2022-08-12 17:19:55 +0200dsrt^(~dsrt@206.85.120.17)
2022-08-12 17:20:39 +0200 <dminuoso> It does have the categories of characters you asked for, and it comes in monospace variants. Ligatures are included ontop too.
2022-08-12 17:21:03 +0200 <xsarnik> Looks nice
2022-08-12 17:21:55 +0200 <xsarnik> ski: Actually, agda mode is something that inspired this question. Although I am not sure there is any suggested font… I certainly haven’t seen such suggestion in documentation
2022-08-12 17:22:13 +0200 <dminuoso> xsarnik: Check out the main page then https://fsd.it/shop/fonts/pragmatapro/ - it even has some Agda presentation.
2022-08-12 17:22:33 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 17:22:35 +0200 <dminuoso> For pricing, if you can wait there's usually a big black friday discount.
2022-08-12 17:22:53 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 17:24:08 +0200waldo(~waldo@user/waldo)
2022-08-12 17:25:46 +0200 <dminuoso> (Unless you're fine with just a singular font family)
2022-08-12 17:26:03 +0200kenran(~kenran@200116b82b4f89006bf34d939d61f5dc.dip.versatel-1u1.de)
2022-08-12 17:26:32 +0200razetime(~quassel@117.193.5.47)
2022-08-12 17:26:35 +0200 <xsarnik> I will remember it. If it’s discounted, I might consider it. Looks very pretty
2022-08-12 17:27:11 +0200vysn(~vysn@user/vysn) (Ping timeout: 255 seconds)
2022-08-12 17:29:11 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 17:31:14 +0200dsrt^(~dsrt@206.85.120.17) (Ping timeout: 255 seconds)
2022-08-12 17:31:21 +0200kenran(~kenran@200116b82b4f89006bf34d939d61f5dc.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-08-12 17:33:05 +0200dsrt^(~dsrt@206.85.120.17)
2022-08-12 17:35:03 +0200mvk(~mvk@2607:fea8:5ce3:8500::a1ec)
2022-08-12 17:35:04 +0200mimmy(~mimmy@107.173.69.236)
2022-08-12 17:35:20 +0200waldo(~waldo@user/waldo) (Ping timeout: 255 seconds)
2022-08-12 17:38:01 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-08-12 17:38:50 +0200dsrt^(~dsrt@206.85.120.17) (Ping timeout: 268 seconds)
2022-08-12 17:39:57 +0200waldo(~waldo@user/waldo)
2022-08-12 17:44:24 +0200vpan(~0@212.117.1.172) (Quit: Leaving.)
2022-08-12 17:48:33 +0200moonsheep(~user@user/moonsheep)
2022-08-12 17:49:12 +0200 <moonsheep> Is there a way to print a stack trace with the profiler (like +RTS -xc) but only on uncaught exceptions?
2022-08-12 17:49:25 +0200mimmy(~mimmy@107.173.69.236) (Ping timeout: 252 seconds)
2022-08-12 17:49:42 +0200 <geekosaur> no
2022-08-12 17:50:09 +0200 <moonsheep> Ah shit. So is there a way to filter them so it only prints one specific type of exception?
2022-08-12 17:50:35 +0200 <geekosaur> also no
2022-08-12 17:50:43 +0200 <moonsheep> Alright thanks
2022-08-12 17:50:57 +0200 <moonsheep> I have no clue how I am supposed to debug this then
2022-08-12 17:51:16 +0200 <moonsheep> I guess I'll try making a minimal example and ask you gguys
2022-08-12 17:52:45 +0200abraham(~abraham@159.89.183.132) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-08-12 17:54:46 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-12 17:56:12 +0200califax(~califax@user/califx)
2022-08-12 17:57:52 +0200coot(~coot@213.134.176.158)
2022-08-12 17:59:45 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-12 18:04:12 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: Connection reset by peer)
2022-08-12 18:04:34 +0200abraham(~abraham@159.89.183.132)
2022-08-12 18:08:36 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-08-12 18:09:19 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-08-12 18:11:13 +0200 <moonsheep> Oh wait I just realized I mixed up my TChans. Don't get your variables mixed up kids
2022-08-12 18:17:27 +0200mimmy(~mimmy@107.175.102.210)
2022-08-12 18:20:40 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 18:22:16 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2022-08-12 18:22:39 +0200benin0(~benin@183.82.178.4) (Quit: The Lounge - https://thelounge.chat)
2022-08-12 18:23:15 +0200mimmy(~mimmy@107.175.102.210) (Ping timeout: 268 seconds)
2022-08-12 18:24:29 +0200waldo(~waldo@user/waldo) (Ping timeout: 268 seconds)
2022-08-12 18:26:06 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-08-12 18:26:28 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-08-12 18:26:47 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-08-12 18:27:30 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-08-12 18:34:39 +0200notzmv(~zmv@user/notzmv)
2022-08-12 18:35:15 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-12 18:35:47 +0200mimmy(~mimmy@64.44.118.51)
2022-08-12 18:40:59 +0200Solid(~slot@xmonad/slotThe)
2022-08-12 18:43:16 +0200moonsheep(~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-08-12 18:45:35 +0200jakalx(~jakalx@base.jakalx.net)
2022-08-12 18:46:36 +0200yvan-sraka(~yvan-srak@105.67.135.250)
2022-08-12 18:47:16 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-08-12 18:48:32 +0200cawfee(~root@2406:3003:2077:2758::babe) (Ping timeout: 268 seconds)
2022-08-12 18:50:19 +0200mikoto-chan(~mikoto-ch@164.5.249.78)
2022-08-12 18:51:16 +0200mvk(~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds)
2022-08-12 18:54:16 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 18:54:55 +0200cawfee(~root@2406:3003:2077:2758::babe)
2022-08-12 18:55:22 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2022-08-12 18:57:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 18:59:40 +0200abraham(~abraham@159.89.183.132) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-08-12 19:00:22 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 19:03:26 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-12 19:03:41 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 19:04:21 +0200abraham(~abraham@159.89.183.132)
2022-08-12 19:05:41 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 19:10:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 19:11:11 +0200mimmy_(~mimmy@66-46-12-74.dedicated.allstream.net)
2022-08-12 19:11:55 +0200mimmy(~mimmy@64.44.118.51) (Ping timeout: 252 seconds)
2022-08-12 19:11:58 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-08-12 19:14:21 +0200waldo(~waldo@user/waldo)
2022-08-12 19:15:03 +0200abraham(~abraham@159.89.183.132) (Quit: Textual IRC Client: www.textualapp.com)
2022-08-12 19:16:08 +0200econo(uid147250@user/econo)
2022-08-12 19:19:20 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-08-12 19:22:11 +0200razetime(~quassel@117.193.5.47) (Ping timeout: 252 seconds)
2022-08-12 19:28:18 +0200zebrag(~chris@user/zebrag)
2022-08-12 19:29:54 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-12 19:31:42 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 19:32:10 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 19:45:00 +0200ddellacosta(~ddellacos@89.45.224.144)
2022-08-12 19:45:16 +0200yvan-sraka(~yvan-srak@105.67.135.250) (Remote host closed the connection)
2022-08-12 19:45:17 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2022-08-12 19:46:15 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-08-12 19:46:25 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-12 19:47:05 +0200Psybur(~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 268 seconds)
2022-08-12 19:50:19 +0200kimjetwav(~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa) (Remote host closed the connection)
2022-08-12 19:50:23 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-12 19:52:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 20:00:03 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 20:02:53 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
2022-08-12 20:03:13 +0200gmg(~user@user/gehmehgeh)
2022-08-12 20:03:23 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-08-12 20:04:21 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-08-12 20:05:00 +0200vglfr(~vglfr@145.224.94.75) (Ping timeout: 268 seconds)
2022-08-12 20:08:03 +0200talismanick(~talismani@2601:200:c100:3850::dd64) (Read error: Connection reset by peer)
2022-08-12 20:08:32 +0200famubu(~famubu@user/famubu)
2022-08-12 20:08:44 +0200chexum_(~quassel@gateway/tor-sasl/chexum)
2022-08-12 20:09:54 +0200 <famubu> A random question: Can we use haskell to computations related to group theory? Was learning group theory in a math course. Can we use haskell to try out example in it? Like rubik group?
2022-08-12 20:10:06 +0200 <famubu> Saw this: https://hackage.haskell.org/package/groups-0.5.3/docs/Data-Group.html#t:Group but wasn't sure
2022-08-12 20:10:37 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-08-12 20:11:45 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-08-12 20:11:50 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 268 seconds)
2022-08-12 20:11:51 +0200Lord_of_Life_Lord_of_Life
2022-08-12 20:15:25 +0200nate4(~nate@98.45.169.16)
2022-08-12 20:16:03 +0200mimmy(~mimmy@86.48.15.70)
2022-08-12 20:18:04 +0200mimmy_(~mimmy@66-46-12-74.dedicated.allstream.net) (Ping timeout: 268 seconds)
2022-08-12 20:20:30 +0200nate4(~nate@98.45.169.16) (Ping timeout: 264 seconds)
2022-08-12 20:21:25 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: Textual IRC Client: www.textualapp.com)
2022-08-12 20:23:50 +0200waldo(~waldo@user/waldo) (Quit: quit)
2022-08-12 20:24:14 +0200alternateved(~user@staticline-31-183-149-36.toya.net.pl)
2022-08-12 20:24:34 +0200chexum_(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2022-08-12 20:28:37 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-08-12 20:37:57 +0200king_gs(~Thunderbi@2806:103e:29:da7a:ec19:6e2f:5f72:ff44)
2022-08-12 20:42:24 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 20:44:05 +0200famubu[m](~famubumat@2001:470:69fc:105::1081)
2022-08-12 20:44:28 +0200famubuwill remain via matrix account
2022-08-12 20:44:31 +0200famubu(~famubu@user/famubu) (Quit: leaving)
2022-08-12 20:45:23 +0200 <geekosaur> might be a question to ask on reddit
2022-08-12 20:46:50 +0200 <sclv> we've cut over all outgoing haskell.org mail now (hackage, discourse, mailinglists, etc) we think to all relay through our newer postfix host. if there's any new problems with delivery etc let me know
2022-08-12 20:49:22 +0200nicos(~nico@190.247.245.154) (Ping timeout: 268 seconds)
2022-08-12 20:51:30 +0200Hemmo(~IceChat95@85-76-110-229-nat.elisa-mobile.fi)
2022-08-12 20:52:28 +0200 <qrpnxz> effectful working like a charm. Bit faster than the transformer stack i was using plus now have dynamic dispatch on the effect.
2022-08-12 20:55:28 +0200ddellaco1(~ddellacos@86.106.121.170)
2022-08-12 20:56:24 +0200 <qrpnxz> speaking of, looks like 2.0.0.0 just just uploaded right now
2022-08-12 20:56:29 +0200ddellacosta(~ddellacos@89.45.224.144) (Ping timeout: 255 seconds)
2022-08-12 20:57:41 +0200Milan(~Milan@46.245.109.54)
2022-08-12 20:58:42 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-08-12 20:59:00 +0200king_gs(~Thunderbi@2806:103e:29:da7a:ec19:6e2f:5f72:ff44) (Remote host closed the connection)
2022-08-12 20:59:18 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
2022-08-12 20:59:18 +0200king_gs(~Thunderbi@2806:103e:29:da7a:ec19:6e2f:5f72:ff44)
2022-08-12 21:02:39 +0200zxx7529(~Thunderbi@user/zxx7529) (Ping timeout: 252 seconds)
2022-08-12 21:02:49 +0200 <Hemmo> Maybe not the right place, if so please tell me! But I was hoping to maybe get some feedback on this tiny to do list app I made. I struggled quite a bit with the whole IO of Haskell and was wondering if perhaps there is an easier way to do what I did! Any comments would be highly appreciated.
2022-08-12 21:02:49 +0200 <Hemmo> (There's about 70 lines of code)
2022-08-12 21:02:49 +0200 <Hemmo> https://paste.tomsmeding.com/CU9vwvGg
2022-08-12 21:03:53 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 21:04:35 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 21:06:14 +0200 <monochrom> loop could have been easily [Task] -> IO (), and use sites could have been easily "loop taskList" instead of "loop $ return taskList".
2022-08-12 21:06:18 +0200pmarg(~pmarg@2a01:799:159f:9b00:d32f:f01e:75a5:8790)
2022-08-12 21:06:23 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 21:07:02 +0200 <monochrom> removeTop = tail :)
2022-08-12 21:07:49 +0200 <qrpnxz> Hemmo: toTaskList can just be map toTask strList, no case analysis needed
2022-08-12 21:08:56 +0200 <ski> monochrom : you only ever call `loop' with a parameter of shape `return (...)'. so change it to `loop :: [Task] -> ...', and remove those `return's, since they're useless (and indicate a greater generality/capability than you're actually using, so is misleading, unless you actually intend to possibly make use of such in the future)
2022-08-12 21:09:01 +0200 <ski> er
2022-08-12 21:09:02 +0200 <ski> Hemmo ^
2022-08-12 21:09:31 +0200 <monochrom> "zipWith joinTuples" does both your "map joinTuple" and "zip".
2022-08-12 21:10:07 +0200 <ski> i would probably make `loop' and `doCommand' local to `main' (although for testing it might be nice to have them at top-level)
2022-08-12 21:10:08 +0200 <monochrom> Although, I wouldn't mind it either way.
2022-08-12 21:10:51 +0200vglfr(~vglfr@145.224.94.75)
2022-08-12 21:12:37 +0200 <ski> base case of `toTaskList' is redundant
2022-08-12 21:12:55 +0200ddellaco1(~ddellacos@86.106.121.170) (Ping timeout: 252 seconds)
2022-08-12 21:12:56 +0200 <ski> i guess i would also prefer to not use `case' in `doCommand'
2022-08-12 21:13:23 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-08-12 21:13:58 +0200 <ski> oh, base case of `printTasks' is also useless
2022-08-12 21:16:03 +0200 <monochrom> I use "case" in my versions of doCommand :)
2022-08-12 21:16:06 +0200 <ski> (personally i'd also remove all the `$'s, using proper brackets instead)
2022-08-12 21:16:11 +0200 <monochrom> Either that or a dictionary...
2022-08-12 21:16:35 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2022-08-12 21:16:46 +0200skilooks at Hemmo
2022-08-12 21:17:14 +0200 <monochrom> I literally have "args <- getArgs; case args of {"--help" : _ -> ... ; "list" : xs -> ...}
2022-08-12 21:17:19 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-12 21:17:45 +0200 <ski> that's fine
2022-08-12 21:18:24 +0200skiidly ponders the `--free'
2022-08-12 21:18:40 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 21:19:15 +0200 <monochrom> We malloc'ed the task list, so we need to free it at the end. :)
2022-08-12 21:19:29 +0200 <Hemmo> Ahaha thanks guys! I'm going through your suggestions and learning all I can
2022-08-12 21:19:34 +0200 <ski> Hemmo : do you want the most recently added task first ?
2022-08-12 21:19:56 +0200 <monochrom> I would say yes. :)
2022-08-12 21:20:01 +0200 <Hemmo> Ahah also, "free" was simply commented because I wanted some free space between the last function and the bottom so I can scroll it further down =)
2022-08-12 21:20:57 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 21:21:11 +0200 <monochrom> I need to make exams. That's on my TODO list. Oh something happens on IRC now. Let me put that on my TODO list too. At the forefront. Why else do you think I'm replying right now? :)
2022-08-12 21:21:36 +0200 <monochrom> Oh "this page intentionally left blank".
2022-08-12 21:21:47 +0200 <ski> so you have a work stack, not a work queue ?
2022-08-12 21:22:11 +0200 <monochrom> I should do that more in my code. 60 blanks lines and "this page intentionally blank".
2022-08-12 21:22:33 +0200 <monochrom> I have a procrastination stack. What is work? >:)
2022-08-12 21:22:35 +0200 <ski> also start adding form feeds, while you're at it
2022-08-12 21:24:05 +0200ski. o O ( .. when you're procrastinating your procrastination )
2022-08-12 21:24:12 +0200cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2022-08-12 21:25:49 +0200kaol_kaol
2022-08-12 21:26:10 +0200Milan(~Milan@46.245.109.54) (Quit: Client closed)
2022-08-12 21:26:23 +0200 <Hemmo> ski: why not to use case in doCommand? I debated whether to use a if-else-then structure, but figured case is more suitable?
2022-08-12 21:26:38 +0200 <ski> no, you misunderstand
2022-08-12 21:26:49 +0200alp_(~alp@user/alp)
2022-08-12 21:26:58 +0200 <ski> doCommand "a" tasks = do
2022-08-12 21:27:01 +0200 <ski> task <- getLine
2022-08-12 21:27:08 +0200 <ski> putStrLn "Task added!"
2022-08-12 21:27:19 +0200 <ski> loop (addTask task tasks)
2022-08-12 21:27:29 +0200 <ski> doCommand "r" tasks = do
2022-08-12 21:27:31 +0200 <ski> ...
2022-08-12 21:27:33 +0200 <ski> ...
2022-08-12 21:27:45 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 21:28:09 +0200 <monochrom> Oh, that.
2022-08-12 21:28:14 +0200cheater(~Username@user/cheater)
2022-08-12 21:28:15 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 21:29:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 21:29:45 +0200 <Hemmo> Ahh that's cool.
2022-08-12 21:32:06 +0200 <Hemmo> I was being clever by adding to the front of the list. That way when my to do list grows to nth million entry, I can add another entry instantly and not have to traverse the whole list ;)
2022-08-12 21:32:58 +0200 <monochrom> You could use Data.Sequence.
2022-08-12 21:33:00 +0200 <Hemmo> So yes... Procrastination stack or "to be done eventually"
2022-08-12 21:33:06 +0200 <Hemmo> ;)
2022-08-12 21:33:20 +0200mikoto-chan(~mikoto-ch@164.5.249.78) (Ping timeout: 255 seconds)
2022-08-12 21:33:48 +0200pavonia(~user@user/siracusa)
2022-08-12 21:34:05 +0200 <Hemmo> On a side note, does anyone actually use Haskell professionally?
2022-08-12 21:34:26 +0200 <Rembane_> Hemmo: Yes.
2022-08-12 21:39:31 +0200vysn(~vysn@user/vysn)
2022-08-12 21:45:33 +0200 <kaol> I'm on a vacation from one and I'm taking a break by coding some C++. Dogs meow and so on.
2022-08-12 21:46:51 +0200 <monochrom> Too tired of Haskell? Need some lambda that actually has side effects? :)
2022-08-12 21:47:37 +0200 <monochrom> And a usable templating language for a change? >:)
2022-08-12 21:47:42 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 21:48:11 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 21:50:05 +0200 <Hemmo> There's something attractive about this language, or paradigm in general.
2022-08-12 21:56:14 +0200vglfr(~vglfr@145.224.94.75) (Ping timeout: 244 seconds)
2022-08-12 21:57:41 +0200 <Hemmo> ski: What do you mean making loop and doCommand local to main?
2022-08-12 21:57:49 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
2022-08-12 21:58:08 +0200vglfr(~vglfr@145.224.94.75)
2022-08-12 22:01:58 +0200Everything(~Everythin@37.115.210.35)
2022-08-12 22:03:11 +0200 <Everything> Hi all. Noob here. What are some short snippets collections in a manner of rosettacode.org?
2022-08-12 22:03:31 +0200 <Rembane_> Haskell is on rosettacode I believe
2022-08-12 22:04:04 +0200 <Everything> Rembane_: yes, but intermixed with everything else
2022-08-12 22:05:32 +0200mastarija(~mastarija@2a05:4f46:e03:6000:20af:4cb5:fc31:abbc)
2022-08-12 22:05:50 +0200 <ski> Hemmo : putting them inside of a `where' attached to the definition of `main'
2022-08-12 22:07:08 +0200 <Hemmo> Ski: Mmk, what's the benefit in that although you mentioned for testing it may be easier that they're not a part of main?
2022-08-12 22:08:13 +0200 <ski> `loop' is a rather generic name .. usually it doesn't make too much sense to have it at top-level
2022-08-12 22:09:30 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-12 22:09:32 +0200 <ski> if you renamed it to `mainLoop', or `query' or something, i'd be more sympathetic to leaving it where it is. but one could also possibly argue for `doCommand' and `loop' being "internal details" of your "main loop"
2022-08-12 22:09:57 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer)
2022-08-12 22:10:04 +0200 <ski> .. presumably nothing else than `main',`loop',`doCommand' will ever need to refer to `loop' and `doCommand'
2022-08-12 22:10:04 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-08-12 22:10:05 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-08-12 22:10:05 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-12 22:10:05 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-12 22:10:05 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-08-12 22:10:05 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer)
2022-08-12 22:10:27 +0200ddellaco1(~ddellacos@143.244.47.90)
2022-08-12 22:10:31 +0200noteness(~noteness@user/noteness)
2022-08-12 22:10:33 +0200califax(~califax@user/califx)
2022-08-12 22:10:38 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-08-12 22:10:55 +0200gmg(~user@user/gehmehgeh)
2022-08-12 22:11:09 +0200 <Hemmo> Ski: Thanks! This makes sense!
2022-08-12 22:11:56 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-12 22:12:29 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 255 seconds)
2022-08-12 22:12:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-12 22:12:53 +0200 <ski> (oh, also redundant brackets in `printChoices' .. perhaps you could also use `concat' or `intercalate' or something there)
2022-08-12 22:13:09 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it)
2022-08-12 22:13:24 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-08-12 22:14:24 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-08-12 22:14:48 +0200acidjnk(~acidjnk@p200300d6e7137a17909a7d6537cea7ce.dip0.t-ipconnect.de)
2022-08-12 22:16:52 +0200cyphase(~cyphase@user/cyphase)
2022-08-12 22:19:40 +0200Hemmo(~IceChat95@85-76-110-229-nat.elisa-mobile.fi) (Quit: Some folks are wise, and some otherwise.)
2022-08-12 22:24:20 +0200mimmy(~mimmy@86.48.15.70) (Ping timeout: 268 seconds)
2022-08-12 22:25:04 +0200mimmy(~mimmy@86.48.15.68)
2022-08-12 22:31:01 +0200vglfr(~vglfr@145.224.94.75) (Ping timeout: 252 seconds)
2022-08-12 22:31:14 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-08-12 22:31:14 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-08-12 22:31:28 +0200vglfr(~vglfr@145.224.94.75)
2022-08-12 22:32:02 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl)
2022-08-12 22:32:33 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-12 22:32:49 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-08-12 22:33:10 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-12 22:35:45 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-08-12 22:38:41 +0200Pickchea(~private@user/pickchea)
2022-08-12 22:40:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 22:44:48 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 244 seconds)
2022-08-12 22:52:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 22:52:32 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
2022-08-12 22:54:47 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 22:59:17 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-08-12 23:00:48 +0200califax(~califax@user/califx) (Ping timeout: 268 seconds)
2022-08-12 23:01:06 +0200bliminse(~bliminse@user/bliminse) (Quit: leaving)
2022-08-12 23:01:06 +0200califax(~califax@user/califx)
2022-08-12 23:01:33 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 23:02:34 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
2022-08-12 23:03:13 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-12 23:03:14 +0200mvk(~mvk@2607:fea8:5ce3:8500::a1ec)
2022-08-12 23:05:04 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-08-12 23:05:38 +0200ec(~ec@gateway/tor-sasl/ec)
2022-08-12 23:06:02 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 23:08:13 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 23:08:45 +0200Pickchea(~private@user/pickchea) (Ping timeout: 268 seconds)
2022-08-12 23:11:37 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-08-12 23:13:03 +0200mimmy(~mimmy@86.48.15.68) (Ping timeout: 268 seconds)
2022-08-12 23:13:04 +0200ulvarref`(~user@188.124.56.153) (Ping timeout: 268 seconds)
2022-08-12 23:15:17 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 244 seconds)
2022-08-12 23:16:20 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-12 23:17:05 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 23:17:58 +0200cyphase(~cyphase@user/cyphase)
2022-08-12 23:18:07 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 23:18:36 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-08-12 23:19:51 +0200nicos(~nico@190.247.245.154)
2022-08-12 23:20:58 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-12 23:21:41 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-12 23:24:11 +0200ddellaco1(~ddellacos@143.244.47.90) (Ping timeout: 268 seconds)
2022-08-12 23:24:17 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-08-12 23:26:17 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-08-12 23:27:41 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-12 23:30:21 +0200vysn(~vysn@user/vysn) (Ping timeout: 268 seconds)
2022-08-12 23:30:25 +0200zebrag(~chris@user/zebrag) (Ping timeout: 252 seconds)
2022-08-12 23:30:43 +0200zebrag(~chris@user/zebrag)
2022-08-12 23:33:23 +0200mimmy(~mimmy@86.48.15.70)
2022-08-12 23:33:35 +0200mimmy(~mimmy@86.48.15.70) (Client Quit)
2022-08-12 23:34:38 +0200nosewings(~ngpc@cpe-76-186-194-45.tx.res.rr.com)
2022-08-12 23:35:24 +0200chomwitt(~chomwitt@2a02:587:dc15:5e00:8ebc:7ad0:4cb3:bd5d) (Ping timeout: 268 seconds)
2022-08-12 23:36:11 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 23:38:59 +0200king_gs(~Thunderbi@2806:103e:29:da7a:ec19:6e2f:5f72:ff44) (Ping timeout: 268 seconds)
2022-08-12 23:42:56 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-12 23:43:49 +0200bliminse(~bliminse@user/bliminse)
2022-08-12 23:44:35 +0200noteness(~noteness@user/noteness) (Ping timeout: 268 seconds)
2022-08-12 23:46:11 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-08-12 23:53:31 +0200pmarg(~pmarg@2a01:799:159f:9b00:d32f:f01e:75a5:8790) (Ping timeout: 244 seconds)
2022-08-12 23:55:42 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-08-12 23:58:38 +0200off^(~off@206.85.120.17)
2022-08-12 23:58:39 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-12 23:59:06 +0200Psybur(~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
2022-08-12 23:59:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)