Home liberachat/#haskell: Logs Calendar

Logs on 2022-08-12 (liberachat/#haskell)

00:00:59 moonsheep joins (~user@user/moonsheep)
00:01:01 × moonsheep quits (~user@user/moonsheep) (Client Quit)
00:01:34 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
00:02:59 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
00:05:16 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
00:10:01 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
00:10:06 ulvarref` joins (~user@188.124.56.153)
00:10:54 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
00:12:12 jmdaemon joins (~jmdaemon@user/jmdaemon)
00:13:37 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
00:13:54 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
00:14:06 × ulvarrefr quits (~user@188.124.56.153) (Ping timeout: 244 seconds)
00:15:28 × Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
00:16:03 Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
00:18:50 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
00:20:03 <Bulby[m]> how would I parse utf8... it has variable size and I only know length in bytes
00:20:12 azimut joins (~azimut@gateway/tor-sasl/azimut)
00:20:57 <geekosaur> are you sure you don't want Text.decodeUtf8?
00:21:49 <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)
00:23:04 <dsal> `decodeUtf8` *should* be deprecated, but if you're looking at that, you'll see the friends. :)
00:23:30 <dsal> Bulby[m]: What do you have that isn't UTF8 that you want to be UTF8?
00:24:18 <Bulby[m]> java utf8
00:24:29 <Bulby[m]> java does wacky things with DataInput and DataOutput
00:24:33 <geekosaur> uh, I think he means "what type"
00:24:33 <Bulby[m]> https://docs.oracle.com/javase/7/docs/api/java/io/DataInput.html
00:24:43 <Bulby[m]> oh
00:24:47 <geekosaur> String? ByteString?
00:24:48 <Bulby[m]> [Int8]
00:25:00 <Bulby[m]> i can also get a bytestring
00:25:07 <dsal> ByteString is a much saner place to start.
00:25:15 <geekosaur> ^
00:25:30 <dsal> decodeUtf8 is `decodeUtf8 :: ByteString -> Text`
00:25:30 <Bulby[m]> ok
00:25:44 <geekosaur> (also, Int8? not Word8?)
00:25:45 <Bulby[m]> oh let me look at that
00:25:54 <Bulby[m]> i'm tired
00:26:01 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
00:26:14 <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.
00:27:56 <Bulby[m]> https://hackage.haskell.org/package/text-2.0.1/docs/src/Data.Text.Encoding.html#decodeUtf8With2 awful
00:27:58 <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.
00:28:19 <Bulby[m]> yes but java is slightly painful in that it doesn't even use standard format
00:28:36 <Axman6> not sure what you mean
00:28:46 <Bulby[m]> https://docs.oracle.com/javase/7/docs/api/java/io/DataInput.html
00:28:48 <Bulby[m]> datainput
00:28:53 <Bulby[m]> not standard utf8
00:29:11 <Axman6> but perhaps you need a binary parser like attoparsec if there's more structure than just utf-8 encoded text
00:29:27 <dsal> You may just want `decodeUtf8Lenient :: ByteString -> Text`
00:29:41 <Bulby[m]> why would that work
00:30:06 <dsal> It's just a matter of what you want to do if you can't decode a UTF8 character.
00:30:41 <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.
00:30:42 <Bulby[m]> oh i already use decodeUtf8' which returns either
00:30:53 <dsal> Yeah, that's a good choice if you want to fail.
00:30:58 <Bulby[m]> so maybe the error is completely different place
00:30:59 <Axman6> ok that DataInput thing looks gross - you're going to need a parser to handle it properly
00:31:05 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
00:31:35 <Bulby[m]> so use a binary parser?
00:31:58 <Bulby[m]> i was using `Binary` package, do I use different package then hook it up to get
00:32:12 <c_wraith> wait, I don't see a case in the thing you linked to that a UTF-8 parser would handle incorrectly
00:32:20 × nicos quits (~nico@190.247.245.154) (Remote host closed the connection)
00:32:23 <Bulby[m]> hm
00:32:31 <c_wraith> like, the encoding of NUL it uses is weird, but not strictly wrong
00:32:32 <Bulby[m]> well I looked at a C# impl and it just ignored it
00:32:34 <Axman6> I would personally just use attoparsec, binary can be used but it's more aimed at serialising and deserialising haskell data types
00:32:42 <dsal> I've used attoparsec and attoparsec-binary for this sort of thing.
00:33:54 <Axman6> "readDouble(): Reads eight input bytes and returns a double value." Search for endian, no results found. this is a shitty format
00:33:55 <Bulby[m]> yeah binary errors with out of bytes, but it's so complex and I have no idea what to test
00:34:32 <Bulby[m]> and encoding will obviously work
00:36:54 <Bulby[m]> i need a simpler example
00:38:54 <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
00:39:14 <Axman6> attoparsec will tell you location info when it has a failure IIRC
00:39:40 <Axman6> the use of surrogate pairs sucks
00:41:05 <c_wraith> surrogate pairs is a restriction on writing the data, not parsing it.
00:41:25 <c_wraith> the NUL encoding is the only thing you need to check, but most UTF-8 parsers should handle it just fine
00:42:02 <Bulby[m]> yeah it would've complained otherwise
00:42:15 <Bulby[m]> it would've errored with text instead of no bytes left
00:42:37 <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
00:42:44 <Bulby[m]> if i had to guess I likely mixed up something else
00:43:34 <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
00:44:02 <Bulby[m]> awful, "getInt" not "getLong"
00:44:05 <Bulby[m]> i hate this
00:44:21 <Bulby[m]> i made a helper type to fix these kind of issues
00:44:22 <Bulby[m]> oh well
00:44:30 <Axman6> where are you looking?
00:44:45 <Bulby[m]> NBT data from minecraft, this is another part
00:44:50 <Bulby[m]> i messed up length on arrays
00:46:30 <Bulby[m]> vgo;ijfoijiohfg
00:46:31 <Bulby[m]> that fixed it
00:47:10 <Axman6> ah the classic vgo;ijfoijiohfg, always does the trick
00:47:55 <Bulby[m]> how fun
00:47:55 <Bulby[m]> wow this data is uh quite dense
00:47:55 <Bulby[m]> i'll look at it later
00:48:05 <jackdk> https://github.com/davidgarland/named-binary-tag Bulby[m] possibly relevant?
00:48:26 <Bulby[m]> https://github.com/jmc2obj/j-mc-2-obj/tree/master/src/org/jmc/NBT i've been referencing this
00:48:29 <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#utf8Length
00:48:48 × adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
00:49:03 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
00:49:15 <jackdk> my link is someone's haskell parser for it, to replace a defunct nbt package currently on hackage
00:53:05 × tcard__ quits (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
00:53:19 × vysn quits (~vysn@user/vysn) (Ping timeout: 268 seconds)
00:54:04 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-2cf3-e44c-3193-429d.res6.spectrum.com) (Remote host closed the connection)
00:54:30 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
00:56:00 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
00:56:35 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
00:57:42 phma_ joins (phma@2001:5b0:215d:c958:64bb:39ec:98ad:e7a1)
00:58:35 tcard joins (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp)
01:00:49 fjmorazan_ is now known as fjmorazan
01:01:18 × phma quits (~phma@host-67-44-208-161.hnremote.net) (Ping timeout: 268 seconds)
01:01:46 <Bulby[m]> wait an nbt lib exists
01:01:56 <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
01:02:01 <Axman6> yesd
01:02:04 <Axman6> yes*
01:03:11 <Bulby[m]> i do not want the joy
01:03:20 <Bulby[m]> altho i already half finished it :sob:
01:03:31 <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-control-locations
01:03:52 <Axman6> rule zero of writing code - see if someone else has done it for you first :P
01:04:17 <Bulby[m]> they don't do anything special with strings either
01:04:52 <Axman6> yeah looks like it just calls decodeUtf8 - I would be surprised if that matters much for most data
01:05:33 <Bulby[m]> oh well i already technically have it working 🤷
01:05:39 <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
01:06:05 <Bulby[m]> it will use surrogates right? i assume utf8 doesn't like that
01:06:27 <Axman6> I'm not sure what the text package does if you have surrogates
01:06:44 <maerwald[m]> Fail
01:06:50 <maerwald[m]> Or truncate
01:06:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
01:07:00 <Bulby[m]> fun
01:07:38 <maerwald[m]> Ah no, replacement char
01:07:55 <maerwald[m]> So you get nonsense out the other end
01:08:28 <maerwald[m]> Depends on which functions you use
01:10:16 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:42 <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
01:15:53 phma_ is now known as phma
01:15:56 <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.
01:16:24 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:16:24 <albet70> dminuoso , for example?
01:19:24 <jackdk> nomagno: do you have an example?
01:20:03 × kimjetwav quits (~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa) (Remote host closed the connection)
01:21:08 <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
01:21:27 <nomagno> But also stuff like case ... and then "OF"
01:21:37 <nomagno> Where did that "of" come from? Why is it there?
01:22:13 <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
01:23:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
01:23:20 × xff0x_ quits (~xff0x@2405:6580:b080:900:7393:ed71:26f2:b383) (Ping timeout: 244 seconds)
01:26:18 <geekosaur> sounds like you have a problem with the history of computer languages
01:26:19 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:27:00 <geekosaur> do you have the same problem with the shell's version? "case ... in"
01:28:02 <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
01:28:08 <nomagno> But yes I will find it akward
01:28:26 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
01:29:32 <geekosaur> anyway it comes from https://public.support.unisys.com/aseries/docs/clearpath-mcp-18.0/86000098-516/section-000026502.html (there will be an initial license click-through)
01:29:41 <geekosaur> ALGOL influenced a bunch of languages
01:31:18 <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
01:35:31 <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
01:36:12 lsrts^ joins (~lsrts@206.85.120.17)
01:36:46 <geekosaur> ADD 1 TO FOO GIVING BAR
01:37:27 <nomagno> Let's not get too carried away, indeed :$
01:48:10 <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.
01:48:12 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds)
01:48:31 <monochrom> But what's so special about English? Why English? Why not Japanese for example?
01:48:33 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
01:48:38 <monochrom> This exposes your bias.
01:49:02 <monochrom> In Hungarian, English is the awkward one.
01:49:43 <texasmynsted> Yesterday I found DBFunctor and Julius. So interesting. Anybody here using it?
01:49:46 <texasmynsted> https://github.com/nkarag/haskell-DBFunctor#readme
01:52:52 ec joins (~ec@gateway/tor-sasl/ec)
01:53:33 Sgeo joins (~Sgeo@user/sgeo)
01:55:35 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 268 seconds)
01:57:24 kimjetwav joins (~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa)
01:57:31 xff0x_ joins (~xff0x@2405:6580:b080:900:d617:1bf4:887a:1487)
01:59:16 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:00:05 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:00:27 nate4 joins (~nate@98.45.169.16)
02:01:14 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
02:01:51 azimut joins (~azimut@gateway/tor-sasl/azimut)
02:04:01 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:04:01 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:04:01 wroathe joins (~wroathe@user/wroathe)
02:04:47 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
02:05:12 ec joins (~ec@gateway/tor-sasl/ec)
02:07:25 TonyStone joins (~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com)
02:11:45 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
02:13:49 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:13:49 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:13:49 finn_elija is now known as FinnElija
02:14:19 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
02:16:42 × funsafe_ quits (~funsafe@2601:1c1:4200:9ac:84cb:185c:2a3c:c92c) (Quit: funsafe_)
02:17:17 fserucas_ joins (~fserucas@46.50.4.22)
02:17:20 img joins (~img@user/img)
02:18:54 jmorris joins (uid537181@id-537181.uxbridge.irccloud.com)
02:18:56 × img quits (~img@user/img) (Client Quit)
02:19:09 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com) (Ping timeout: 244 seconds)
02:20:10 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
02:20:14 × fserucas quits (~fserucas@83.223.227.123) (Ping timeout: 268 seconds)
02:21:27 jmd_ joins (~jmdaemon@user/jmdaemon)
02:21:47 img joins (~img@user/img)
02:22:04 × kimjetwav quits (~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa) (Remote host closed the connection)
02:22:23 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
02:23:06 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:23:37 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:24:32 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
02:24:40 kimjetwav joins (~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa)
02:24:58 <hmw[at]> geekosaur: Pascal is nice too
02:26:47 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
02:27:58 <monochrom> Are you referring to "begin" and "end"? :)
02:30:05 × td_ quits (~td@94.134.91.58) (Ping timeout: 252 seconds)
02:32:06 td_ joins (~td@muedsl-82-207-238-237.citykom.de)
02:32:25 <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.
02:32:52 jmdaemon joins (~jmdaemon@user/jmdaemon)
02:33:36 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
02:33:38 <hmw[at]> While program_running do check_for_input(); Heheheh
02:33:48 matthewmosior joins (~matthewmo@173.170.253.91)
02:35:01 <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".
02:35:34 <monochrom> At that point "then" is just another punctuation.
02:35:45 <hmw[at]> Surely true
02:35:50 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:36:12 <hmw[at]> I recently patches an old Delphi program and it was not as pretty as I remembered it to be
02:36:15 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:36:26 <hmw[at]> But some lines were proper English
02:36:28 TonyStone joins (~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com)
02:38:08 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
02:45:25 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:45:55 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:48:47 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
02:50:34 matthewmosior joins (~matthewmo@173.170.253.91)
02:54:49 × mmhat quits (~mmh@p200300f1c706f76bee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
02:55:25 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com) (Ping timeout: 268 seconds)
02:55:46 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
02:57:10 zaquest joins (~notzaques@5.130.79.72)
02:58:50 <texasmynsted> proper English is not ideal for math either
02:59:03 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
03:00:02 × haasn quits (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
03:01:21 haasn joins (~nand@haasn.dev)
03:02:21 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
03:02:49 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:03:49 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
03:03:49 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
03:05:08 maroloccio joins (~marolocci@62.98.94.196)
03:05:50 × jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
03:05:52 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
03:06:10 <dsal> nomagno: what would you call Maybe?
03:08:00 TonyStone joins (~TonyStone@2603-7080-8607-c36a-1069-803a-a882-c346.res6.spectrum.com)
03:15:32 <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.
03:19:43 <hippoid> applescript looks like english. i find it out totally unreadable
03:19:54 <dsal> applescript is harder to write than to read. heh
03:20:19 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
03:23:50 iqubic joins (~iqubic@2601:602:9502:c70:821e:5947:9a04:74d9)
03:23:53 iqubic parts (~iqubic@2601:602:9502:c70:821e:5947:9a04:74d9) ()
03:29:17 mixfix41 joins (~sdenynine@user/mixfix41)
03:32:07 frost joins (~frost@user/frost)
03:32:25 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
03:32:29 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
03:37:19 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
03:41:19 × maroloccio quits (~marolocci@62.98.94.196) (Quit: WeeChat 3.6)
03:43:20 × Hash quits (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net) (Remote host closed the connection)
03:46:14 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:50:56 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:53:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
03:55:00 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
03:55:48 Hash joins (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net)
04:01:20 <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
04:02:14 <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
04:03:04 <Axman6> I remember being fairly excited about F-Script back in the day https://en.wikipedia.org/wiki/F-Script_(programming_language)
04:04:13 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
04:06:36 matthewmosior joins (~matthewmo@173.170.253.91)
04:08:43 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
04:09:36 vglfr joins (~vglfr@37.73.5.81)
04:17:29 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
04:29:15 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
04:37:36 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
04:38:02 chexum joins (~quassel@gateway/tor-sasl/chexum)
04:38:08 × jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
04:51:01 coot joins (~coot@213.134.176.158)
04:53:06 obabo joins (~obabo@20014C4C1C5409000000000000001000.catv.pool.telekom.hu)
04:53:18 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
04:53:49 × vglfr quits (~vglfr@37.73.5.81) (Ping timeout: 268 seconds)
04:57:51 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
05:01:40 × hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
05:01:54 hrberg joins (~quassel@171.79-160-161.customer.lyse.net)
05:08:01 <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).
05:09:03 <sclv> Clinton[m]: every time you update it gives you the command to pin it to a fixed timestamp :-)
05:09:26 <sclv> and you can drop it at the top of a project file to set it for the whole project
05:09:37 <sclv> its the —index-state arg
05:10:55 <Clinton[m]> ah perfect thank you for pointing out what should have been obvious to me but wasn't :)
05:11:06 <Clinton[m]> that'll do the job!
05:13:01 <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`?
05:13:15 <Clinton[m]> reading from: https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=index-state
05:14:37 <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
05:15:40 <sclv> oh and index-state doesn’t protect against solver drift between cabal versions, which is rare but possible
05:24:18 <maerwald[m]> sclv: there are some cli arguments that influence solver too
05:24:26 <maerwald[m]> Not just flags
05:24:34 <maerwald[m]> I think
05:24:38 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
05:25:17 <maerwald[m]> Freeze file usually works not so well across OSes
05:25:31 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
05:26:10 <sclv> sure. but i consider running with options that are supposed to influence solver as deliberately circumventing reproduction so not relevant ;-)
05:26:42 <sclv> re freeze files yeah you need one per os/arch
05:27:39 jackdk takes a drink from his "use nix for literally everything" mug :-)
05:27:43 <maerwald[m]> sclv: the new ones can have conditionals though
05:27:57 <maerwald[m]> How much do they support again?
05:27:58 × phma quits (phma@2001:5b0:215d:c958:64bb:39ec:98ad:e7a1) (Read error: Connection reset by peer)
05:28:12 <maerwald[m]> jackdk: don't choke on it
05:28:37 <jackdk> maerwald[m]: copied wilco
05:28:39 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
05:28:53 phma joins (phma@2001:5b0:211c:4d8:11d:2b38:21ca:1643)
05:30:39 <sclv> conditions can case on compiler version, os, arch. but the freeze cmd won’t solve across variations and generate with conditions for you :-)
05:31:37 <sclv> wilco uses nix for everything?? or they just have the mug?
05:34:30 <jackdk> wilco = "will comply"
05:37:24 matthewmosior joins (~matthewmo@173.170.253.91)
05:40:07 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
05:40:07 × noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds)
05:47:23 × califax quits (~califax@user/califx) (Remote host closed the connection)
05:49:21 califax joins (~califax@user/califx)
05:50:03 × inversed quits (~inversed@90.209.137.56) (Ping timeout: 268 seconds)
05:52:21 zxx7529 joins (~Thunderbi@user/zxx7529)
05:54:20 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
05:54:59 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
05:55:46 kenran joins (~kenran@p200300df770eae00ab4ca66d3d83f79e.dip0.t-ipconnect.de)
05:57:51 inversed joins (~inversed@90.209.137.56)
05:59:00 <Clinton[m]> sclv: we've got Nix set up for the important stuff so close enough should be good enough
05:59:09 <Clinton[m]> sclv: thanks for all the help!
06:00:25 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
06:07:56 ChaiTRex joins (~ChaiTRex@user/chaitrex)
06:08:02 noteness joins (~noteness@user/noteness)
06:09:33 nilradical joins (~nilradica@user/naso)
06:11:23 pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl)
06:12:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
06:13:17 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:18:07 × echoreply quits (~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
06:19:00 echoreply joins (~echoreply@45.32.163.16)
06:23:26 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
06:24:02 × califax quits (~califax@user/califx) (Read error: Connection reset by peer)
06:24:22 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
06:24:30 califax joins (~califax@user/califx)
06:24:42 × califax quits (~califax@user/califx) (Remote host closed the connection)
06:25:04 califax joins (~califax@user/califx)
06:39:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
06:40:23 × califax quits (~califax@user/califx) (Remote host closed the connection)
06:40:23 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
06:40:23 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
06:40:24 acidjnk joins (~acidjnk@p5dd87aad.dip0.t-ipconnect.de)
06:40:44 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:40:49 califax joins (~califax@user/califx)
06:40:54 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
06:41:10 ec joins (~ec@gateway/tor-sasl/ec)
06:43:30 king_gs joins (~Thunderbi@2806:103e:29:da31:dbd5:c070:5d09:91ef)
06:43:53 × king_gs quits (~Thunderbi@2806:103e:29:da31:dbd5:c070:5d09:91ef) (Client Quit)
06:47:03 michalz joins (~michalz@185.246.204.73)
06:50:20 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
06:50:48 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
06:52:21 matthewmosior joins (~matthewmo@173.170.253.91)
06:53:06 lortabac joins (~lortabac@2a01:e0a:541:b8f0:faf9:d24c:386e:41db)
06:53:13 chomwitt joins (~chomwitt@2a02:587:dc15:5e00:e515:c8d5:9938:b1b6)
06:53:31 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
06:53:50 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
06:55:06 × shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit)
06:56:53 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
06:58:13 ddellacosta joins (~ddellacos@143.244.47.77)
07:01:11 nate4 joins (~nate@98.45.169.16)
07:03:56 × chomwitt quits (~chomwitt@2a02:587:dc15:5e00:e515:c8d5:9938:b1b6) (Ping timeout: 268 seconds)
07:05:24 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:06:22 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
07:08:13 × ddellacosta quits (~ddellacos@143.244.47.77) (Ping timeout: 268 seconds)
07:08:23 × luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 252 seconds)
07:09:38 ddellacosta joins (~ddellacos@143.244.47.100)
07:09:59 matthewmosior joins (~matthewmo@173.170.253.91)
07:18:26 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:19:39 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
07:24:17 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:24:46 <qrpnxz> if my program is printing <<loop>> is that the compiler detecting the loop, or the runtime?
07:29:48 × mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 268 seconds)
07:29:58 <[exa]> usually ghci can relatively easily see that a thunk evaluates precisely to itself, at which point it says it's a loop
07:30:20 <[exa]> so yeah I'd say it's more of a runtime check.
07:30:52 <qrpnxz> hard to debug, not sure where to look :(
07:31:38 <[exa]> statistically probable guess: do you use `let`s in a do notation?
07:31:47 <qrpnxz> oh, it was probably caused by my incesant variable shadowing
07:32:12 <qrpnxz> [exa]: generally? yes. In this program, i think not even once actually
07:32:18 <qrpnxz> maybe in a couple of places
07:32:43 <[exa]> doing let x = ...... x .... in `do` notation is a pretty common source of loops
07:33:07 <[exa]> and people usually don't see the error because in the context they don't expect the let to be recursive
07:33:19 <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
07:34:06 <[exa]> anyway if the code piece isn't big feel free to pastebin
07:34:34 <qrpnxz> it's a lot :)
07:36:09 <[exa]> btw try -fbreak-on-exception ( https://stackoverflow.com/a/5341615/1043097 )
07:37:07 <qrpnxz> oooo, thanks!
07:38:42 jgeerds joins (~jgeerds@55d46bad.access.ecotel.net)
07:39:06 × coot quits (~coot@213.134.176.158) (Quit: coot)
07:45:10 <qrpnxz> program just hangs with 0% CPU usage on GHCi 😢
07:53:28 mikoto-chan joins (~mikoto-ch@164.5.249.78)
07:55:04 vysn joins (~vysn@user/vysn)
07:57:16 kuribas joins (~user@ptr-17d51ep53yh2tjb64h5.18120a2.ip6.access.telenet.be)
07:57:28 dcoutts joins (~duncan@host86-153-135-126.range86-153.btcentralplus.com)
08:00:08 × dcoutts_ quits (~duncan@host86-153-135-126.range86-153.btcentralplus.com) (Ping timeout: 244 seconds)
08:02:18 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:03:08 dcoutts_ joins (~duncan@host86-153-135-126.range86-153.btcentralplus.com)
08:05:49 × dcoutts quits (~duncan@host86-153-135-126.range86-153.btcentralplus.com) (Ping timeout: 244 seconds)
08:06:51 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:faf9:d24c:386e:41db) (Ping timeout: 244 seconds)
08:07:16 vglfr joins (~vglfr@37.73.5.81)
08:07:29 lortabac joins (~lortabac@2a01:e0a:541:b8f0:5ebd:3f23:ea49:1bd8)
08:07:42 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
08:08:29 ec joins (~ec@gateway/tor-sasl/ec)
08:11:53 <albet70> could foldl1 be defined with list comprehension?
08:12:50 <c_wraith> could it? what do list comprehensions desugar into?
08:15:40 ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net)
08:16:10 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
08:16:38 <qrpnxz> ohhh, i think an infinite data structure is getting forced in my code :((
08:17:07 <c_wraith> that should produce <<loop>>
08:17:12 <c_wraith> err. should *not*
08:17:36 <qrpnxz> why not? makes sense
08:17:58 <c_wraith> <<loop>> specifically means that ghc has found that in order to scrutinize a value, it must know the result of doing so
08:18:25 <c_wraith> that's almost never true of infinite structures
08:18:26 <qrpnxz> i think it's a recursive infinite data structure
08:19:08 <qrpnxz> i've no idea why it would try to force the whole thing tho 🤔
08:19:17 coot joins (~coot@213.134.176.158)
08:19:18 <c_wraith> If there's ever a constructor guarding the recursion, it won't produce <<loop>>
08:20:17 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
08:23:03 mc47 joins (~mc47@xmonad/TheMC47)
08:33:49 matthewmosior joins (~matthewmo@173.170.253.91)
08:36:09 CiaoSen joins (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
08:39:32 <qrpnxz> found the problem. I have a chain like `a = b <*> a` but my (<*>) is not lazy on the right side :(( sad
08:40:13 <dminuoso> Even if it was lazy, you'd still have that problem
08:40:42 <dminuoso> Or possibly, anyway.
08:41:06 <[exa]> except for very special cases where b==Nothing or b==[] or so
08:41:15 <[exa]> what is it supposed to do btw?
08:42:27 <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
08:44:02 <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
08:45:02 × mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 268 seconds)
08:47:40 × pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 244 seconds)
08:51:09 nattiestnate joins (~nate@180.243.14.16)
08:51:18 × nattiestnate quits (~nate@180.243.14.16) (Client Quit)
08:51:58 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
08:56:05 Psybur joins (~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
08:56:42 × chronon quits (~chronon@user/chronon) (Quit: leaving)
08:57:24 × chimp_ quits (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 268 seconds)
08:57:29 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:59:35 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
09:00:02 jpds joins (~jpds@gateway/tor-sasl/jpds)
09:00:21 × entheogenesis[m4 quits (~entheogen@2001:470:69fc:105::1:e7c4) (Quit: You have been kicked for being idle)
09:02:09 × vysn quits (~vysn@user/vysn) (Ping timeout: 244 seconds)
09:08:01 yvan-sraka joins (~yvan-srak@105.67.135.250)
09:08:33 chele joins (~chele@user/chele)
09:11:28 <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
09:11:46 <tomsmeding> for <*>, less often, because the effects tend to be evaluated at the same time
09:12:12 <tomsmeding> this makes no sense
09:12:19 <tomsmeding> qrpnxz: ignore what I wrote, it's nonsense
09:13:18 <tomsmeding> proof: a <*> b = a >>= \x -> b >>= \y -> return (x y)
09:14:01 × ddellacosta quits (~ddellacos@143.244.47.100) (Ping timeout: 268 seconds)
09:15:35 <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
09:15:57 ddellacosta joins (~ddellacos@86.106.121.183)
09:16:21 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 252 seconds)
09:17:48 <qrpnxz> so it's valid what you are pointing out :)
09:18:56 <qrpnxz> and perahps doing (<*>) = ap would be the proper thing to do in this case, and have another function that does the strict thing
09:19:10 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
09:19:43 <tomsmeding> usually implementing (<*>) specially has the potential to give _more_ performance, because you have more information about the structure of the computation
09:19:50 <tomsmeding> interesting that it is the other way round for you :)(
09:19:52 <tomsmeding> * :)
09:20:53 noteness joins (~noteness@user/noteness)
09:21:25 × ddellacosta quits (~ddellacos@86.106.121.183) (Ping timeout: 268 seconds)
09:21:48 chronon joins (~chronon@user/chronon)
09:22:00 benin0 joins (~benin@183.82.31.108)
09:25:14 <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
09:25:15 <qrpnxz> to do (<*>) = ap and see what the benchmarks say.
09:29:26 <qrpnxz> eh, no loop, but the performance is utterly garbage. So bad i want to remove the instances.
09:30:47 <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"
09:32:51 ski joins (~ski@ext-1-308.eduroam.chalmers.se)
09:32:54 × yvan-sraka quits (~yvan-srak@105.67.135.250) (Ping timeout: 252 seconds)
09:36:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
09:37:40 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:40:03 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:43:12 mmhat joins (~mmh@p200300f1c706f761ee086bfffe095315.dip0.t-ipconnect.de)
09:44:44 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
09:47:45 × m1dnight_ quits (~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.6)
09:48:25 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
09:48:58 ec joins (~ec@gateway/tor-sasl/ec)
09:50:58 matthewmosior joins (~matthewmo@173.170.253.91)
09:51:50 Everything joins (~Everythin@37.115.210.35)
09:51:56 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:52:25 × lsrts^ quits (~lsrts@206.85.120.17) (Remote host closed the connection)
09:52:28 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:55:21 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
09:56:48 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
09:56:56 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds)
10:00:29 luffy joins (~chenqisu1@183.217.201.23)
10:03:33 × fserucas_ quits (~fserucas@46.50.4.22) (Quit: Leaving)
10:04:16 chomwitt joins (~chomwitt@2a02:587:dc15:5e00:38ea:666e:63fd:fbc3)
10:06:57 <qrpnxz> ByteStrings mconcat very fast! at least much faster than going through Builder. Good to know
10:07:40 × vglfr quits (~vglfr@37.73.5.81) (Ping timeout: 268 seconds)
10:08:31 matthewmosior joins (~matthewmo@173.170.253.91)
10:09:20 <maerwald[m]> qrpnxz: lazy?
10:09:34 <qrpnxz> strict ByteString
10:10:03 <maerwald[m]> It's O(n)
10:10:50 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
10:10:50 <qrpnxz> as expected
10:13:04 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
10:14:36 × CiaoSen quits (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
10:15:04 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
10:15:28 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:17:10 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
10:17:16 pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl)
10:23:07 × chomwitt quits (~chomwitt@2a02:587:dc15:5e00:38ea:666e:63fd:fbc3) (Ping timeout: 268 seconds)
10:23:10 vglfr joins (~vglfr@37.73.5.81)
10:24:08 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:24:25 <zzz> can we do something like `module A hiding (a, b) where ...` ?
10:25:43 <dminuoso> zzz: No.
10:25:56 <zzz> ok
10:27:32 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:28:51 <dminuoso> qrpnxz: Builders give you constant concatenation, mind you.
10:30:35 <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
10:30:51 × haskl quits (~haskl@user/haskl) (Read error: Connection reset by peer)
10:31:50 <qrpnxz> so basically `mconcat . foldr (:) []` vs `toStrict . toLazyBytestring . foldr ((<>) BB.bytestring) mempty`
10:31:52 <dminuoso> I guess it still depends on the actual numbers involved.
10:32:42 Jade1 joins (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de)
10:33:10 haskl joins (~haskl@user/haskl)
10:33:55 king_gs joins (~Thunderbi@2806:103e:29:da31:cbac:d5de:e706:b041)
10:33:55 × king_gs quits (~Thunderbi@2806:103e:29:da31:cbac:d5de:e706:b041) (Client Quit)
10:34:40 vysn joins (~vysn@user/vysn)
10:35:25 × acidjnk quits (~acidjnk@p5dd87aad.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
10:35:27 × jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
10:36:22 <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
10:39:16 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
10:40:09 ec joins (~ec@gateway/tor-sasl/ec)
10:41:51 × nilradical quits (~nilradica@user/naso) ()
10:43:44 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:5ebd:3f23:ea49:1bd8) (Ping timeout: 255 seconds)
10:44:42 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
10:46:54 <dminuoso> Oh you mean they were already coming in reverse?
10:47:56 <dminuoso> That is, per chunk in forward order, but chunks in reverse order?
10:50:13 × vglfr quits (~vglfr@37.73.5.81) (Ping timeout: 268 seconds)
10:51:57 <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
10:52:08 <qrpnxz> dminuoso:
10:53:12 <qrpnxz> and i don't know, if you wanted to use the builder multiple times, I think Builder should definitely be better?
10:54:09 <qrpnxz> and i think Builder is also made so that it can write directly to a Handle as well
10:54:38 <dminuoso> Be sure to measure memory behavior in the comparison as well.
10:55:29 × frost quits (~frost@user/frost) (Quit: Client closed)
10:55:58 <zzz> if i keep a key pressed for some time, gloss throws a sequence of up and down keypress events
10:56:05 <zzz> is this expected behaviour?
10:56:16 <dminuoso> The builder drivers have some careful logic with regard to allocation strategies
10:56:18 × pie_ quits (~pie_bnc@user/pie/x-2818909) (Ping timeout: 240 seconds)
10:57:08 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
10:57:12 <qrpnxz> zzz: it makes sense for a text buffer :) maybe it's configurable?
10:58:06 <dminuoso> zzz: That sounds unexpected given the gloss interface
10:58:23 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
10:58:48 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
11:00:15 lortabac joins (~lortabac@2a01:e0a:541:b8f0:5e5a:edaf:8ebd:d4fc)
11:01:13 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
11:02:33 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
11:02:41 nate4 joins (~nate@98.45.169.16)
11:04:38 pie_ joins (~pie_bnc@user/pie/x-2818909)
11:05:22 × xnbya2 quits (~xnbya@2a01:4f8:c17:cbdd::1) (Quit: quit)
11:05:30 xnbya joins (~xnbya@2a01:4f8:c17:cbdd::1)
11:07:27 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
11:13:27 nicos joins (~nico@190.247.245.154)
11:16:19 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
11:17:57 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Read error: Connection reset by peer)
11:18:24 alternateved joins (~user@staticline-31-183-149-36.toya.net.pl)
11:18:59 × Alex_test quits (~al_test@178.34.151.166) (Quit: ;-)
11:19:03 × AlexZenon quits (~alzenon@178.34.151.166) (Quit: ;-)
11:19:12 × AlexNoo quits (~AlexNoo@178.34.151.166) (Quit: Leaving)
11:21:03 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds)
11:21:35 jgeerds joins (~jgeerds@55d46bad.access.ecotel.net)
11:22:02 dsrt^ joins (~dsrt@206.85.120.17)
11:23:35 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
11:24:33 AlexZenon joins (~alzenon@178.34.151.166)
11:24:34 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:24:39 AlexNoo joins (~AlexNoo@178.34.151.166)
11:26:17 Alex_test joins (~al_test@178.34.151.166)
11:28:04 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
11:28:04 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Client Quit)
11:29:08 × pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
11:30:38 vglfr joins (~vglfr@37.73.5.81)
11:36:13 pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl)
11:38:13 <zzz> yeah i'm finding it weird
11:38:59 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
11:40:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:40:18 × Jade1 quits (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de) (Quit: Client closed)
11:40:38 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
11:41:00 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Read error: Connection reset by peer)
11:42:39 × pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
11:43:08 × pie_ quits (~pie_bnc@user/pie/x-2818909) ()
11:43:29 pie_ joins (~pie_bnc@user/pie/x-2818909)
11:43:36 Jade1 joins (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de)
11:44:28 chomwitt joins (~chomwitt@2a02:587:dc15:5e00:454b:92f1:2a92:b402)
11:45:11 pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl)
11:46:55 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
11:47:55 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
11:50:11 × darchitect1 quits (~darchitec@2a00:23c6:3584:df01:81a:29c9:cfd8:abaa) (Ping timeout: 268 seconds)
11:50:24 Guest|18 joins (~Guest|18@p5ddb3d05.dip0.t-ipconnect.de)
11:51:38 × Guest|18 quits (~Guest|18@p5ddb3d05.dip0.t-ipconnect.de) (Client Quit)
11:53:43 <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
11:53:47 <zzz> subscribe
11:54:21 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
11:54:33 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:55:43 × nicos quits (~nico@190.247.245.154) (Remote host closed the connection)
11:59:19 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
11:59:57 nicos joins (~nico@190.247.245.154)
12:03:33 × vglfr quits (~vglfr@37.73.5.81) (Ping timeout: 252 seconds)
12:04:47 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
12:04:54 × Jade1 quits (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de) (Quit: Client closed)
12:06:03 noteness joins (~noteness@user/noteness)
12:06:19 <hpc> zzz: check out rank 2 types, if you want to wrinkle your brain :D
12:07:27 × mixfix41 quits (~sdenynine@user/mixfix41) (Ping timeout: 268 seconds)
12:09:48 <fgaz> maerwald: good idea, generating platform independent freeze files
12:11:24 benin04 joins (~benin@2401:4900:2325:5674:b133:d14b:76b3:3d8)
12:13:37 × benin0 quits (~benin@183.82.31.108) (Ping timeout: 268 seconds)
12:13:37 benin04 is now known as benin0
12:14:38 dunj3_ is now known as dunj3
12:15:48 cyphase joins (~cyphase@user/cyphase)
12:17:10 benin04 joins (~benin@183.82.178.4)
12:18:14 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
12:18:24 × pie_ quits (~pie_bnc@user/pie/x-2818909) ()
12:19:01 pie_ joins (~pie_bnc@user/pie/x-2818909)
12:19:31 talismanick joins (~talismani@2601:200:c100:3850::dd64)
12:19:32 × benin0 quits (~benin@2401:4900:2325:5674:b133:d14b:76b3:3d8) (Ping timeout: 255 seconds)
12:19:32 benin04 is now known as benin0
12:20:35 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
12:20:53 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
12:28:19 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
12:30:03 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
12:33:26 matthewmosior joins (~matthewmo@173.170.253.91)
12:43:09 × chomwitt quits (~chomwitt@2a02:587:dc15:5e00:454b:92f1:2a92:b402) (Remote host closed the connection)
12:43:28 chomwitt joins (~chomwitt@2a02:587:dc15:5e00:41c2:c97c:1364:63b1)
12:44:00 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:45:01 nilradical joins (~nilradica@user/naso)
12:45:35 <nilradical> is there a library that can do basic plots inside the terminal
12:45:42 <ski> existential types, not rank-2, is what'd help in the above situation
12:46:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
12:46:08 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
12:46:08 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
12:46:08 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
12:46:08 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
12:46:08 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
12:46:08 × califax quits (~califax@user/califx) (Write error: Broken pipe)
12:46:08 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
12:46:31 noteness joins (~noteness@user/noteness)
12:46:36 <ski> (but yes, rank-2 is kinda related)
12:46:38 stiell joins (~stiell@gateway/tor-sasl/stiell)
12:46:39 califax joins (~califax@user/califx)
12:46:39 jpds joins (~jpds@gateway/tor-sasl/jpds)
12:46:43 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
12:47:10 ChaiTRex joins (~ChaiTRex@user/chaitrex)
12:47:14 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:49:01 Tuplanolla joins (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi)
12:49:07 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
12:54:49 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
12:55:05 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
12:55:23 <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)`
12:55:31 × Alex_test quits (~al_test@178.34.151.166) (Quit: ;-)
12:55:57 × AlexZenon quits (~alzenon@178.34.151.166) (Quit: ;-)
12:55:59 × luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 252 seconds)
12:56:08 <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?
12:56:34 jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
12:56:39 × AlexNoo quits (~AlexNoo@178.34.151.166) (Quit: Leaving)
12:57:09 <nilradical> ok found this, soo cool https://github.com/weeezes/plot
12:58:17 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
12:58:56 <sm> nilradical: if it's any good, please let us know
12:59:38 azimut joins (~azimut@gateway/tor-sasl/azimut)
13:02:48 × jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
13:03:46 <chreekat> I hope to have more excuses to learn how to use https://www.visidata.org/ and https://ggplot2.tidyverse.org/
13:05:31 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:05:38 matthewmosior joins (~matthewmo@173.170.253.91)
13:06:42 <zzz> hpc: oh im familiar with all that. just felt like sharing this surprisingly common think that happens when i'm mindlessly coding
13:08:27 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:09:31 × kenran quits (~kenran@p200300df770eae00ab4ca66d3d83f79e.dip0.t-ipconnect.de) (Quit: WeeChat info:version)
13:09:43 ski . o O ( `[a,b] :: [exists x. Show x *> x]',`show :: (exists a. Show a *> a) -> String' )
13:10:38 califax joins (~califax@user/califx)
13:10:50 × dsrt^ quits (~dsrt@206.85.120.17) (Ping timeout: 255 seconds)
13:10:51 <byorgey> zzz: yeah, that's happened to me too
13:15:00 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
13:15:16 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
13:15:30 × alternateved quits (~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
13:20:08 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 268 seconds)
13:20:09 <qrpnxz> i'm gonna get to flex an effect system today! After the third transformer on the stack, it just makes sense 😄
13:20:28 AlexNoo joins (~AlexNoo@178.34.151.166)
13:20:29 AlexZenon joins (~alzenon@178.34.151.166)
13:24:50 cyphase joins (~cyphase@user/cyphase)
13:24:59 <maerwald[m]> qrpnxz: transformers are awful, yes. But so are effects systems. Everything leaks implementation details
13:25:50 <qrpnxz> the three best ones i have seen, all good really, are `effectful`, `cleff`, and `freer-simple`
13:26:10 <qrpnxz> since i want most performance possible i'm gonna use effectful for this thing
13:31:56 Alex_test joins (~al_test@178.34.151.166)
13:33:17 dcoutts joins (~duncan@host86-153-135-25.range86-153.btcentralplus.com)
13:33:31 × zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529)
13:34:56 × dcoutts_ quits (~duncan@host86-153-135-126.range86-153.btcentralplus.com) (Ping timeout: 244 seconds)
13:38:59 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:41:23 jakalx parts (~jakalx@base.jakalx.net) ()
13:42:31 × kuribas quits (~user@ptr-17d51ep53yh2tjb64h5.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
13:42:59 jakalx joins (~jakalx@base.jakalx.net)
13:46:30 <qrpnxz> haskell language server when it works: 😍, when it doesnt: 😭
13:48:07 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
13:49:05 nilradical joins (~nilradica@user/naso)
13:49:22 × nilradical quits (~nilradica@user/naso) (Client Quit)
13:49:37 Sgeo joins (~Sgeo@user/sgeo)
13:52:00 <dminuoso> The "best" effect system I have seen so far is Javas checked exceptions.
13:52:27 <dminuoso> It has some serious issues, but I think if we had that in Haskell, I'd be more than happy.
13:53:21 matthewmosior joins (~matthewmo@173.170.253.91)
13:54:42 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:5e5a:edaf:8ebd:d4fc) (Quit: WeeChat 2.8)
13:54:46 vpan joins (~0@212.117.1.172)
13:55:33 <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?
13:55:38 <qrpnxz> dminuoso:
13:56:33 <dminuoso> qrpnxz: Yes, and that's part of what I like about it.
13:57:33 <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
13:57:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
13:58:09 matthewmosior joins (~matthewmo@173.170.253.91)
13:59:38 <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.
14:01:35 <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
14:02:12 <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".
14:02:41 <dminuoso> In case of pretty much all haskell effect systems its usually obscure type unification errors, more often than not involving fundeps
14:03:29 <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.
14:03:36 × califax quits (~califax@user/califx) (Remote host closed the connection)
14:04:00 califax joins (~califax@user/califx)
14:05:16 <dminuoso> If you start doing type magic, you pretty much cant get around using tyfams or fundeps
14:05:26 <dminuoso> You arrive at them very quickly.
14:05:56 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds)
14:06:56 <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.
14:08:39 <qrpnxz> "There is no handler for 'Error String' in the context" not bad
14:08:44 <qrpnxz> that's the error i got
14:09:03 <dminuoso> Yes, we can introduce custom type errors
14:09:38 <[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 )
14:09:38 <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
14:10:34 <[exa]> (it's inspired by "Recovering Purity
14:10:34 <qrpnxz> one way to get crazy errors is you didn't annotate enough, that can happen effect system or not though.
14:10:37 <[exa]> with Comonads and Capabilities")
14:10:44 <[exa]> (uh whoops sorry for the linebreak)
14:10:58 <dminuoso> qrpnxz: "You didn't annotate enough" is just an euphemism for "You're holding it wrong"
14:11:15 <dminuoso> If your phone requires me to hold it in a particular way to work, its a bad phone.
14:11:20 <qrpnxz> and holding it wrong is good? lol
14:11:31 <qrpnxz> every phone requires that
14:11:50 <qrpnxz> very difficult to use a phone with the screen the wrong way for example
14:12:06 <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.
14:12:11 <[exa]> qrpnxz: define "use" tho. :]
14:12:24 <qrpnxz> :)
14:12:29 <dminuoso> The reception problems would occur when holding it in very normal ways.
14:12:34 <dminuoso> Anyway
14: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 :/
14:13:04 <dminuoso> qrpnxz: If I have to annotate code a very special way to get useful diagnostics, that really harms the user experience.
14:13:11 <dminuoso> I should get useful diagnostics whenever possible
14:13:41 <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.
14:13:55 nate4 joins (~nate@98.45.169.16)
14:13:58 <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 :/
14:14:00 <dminuoso> Yes
14:14:06 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
14:14:11 <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
14:14:12 <dminuoso> And it shouldnt be hard for an implementation to find out "Hey you're not catching exception Y"
14:14:39 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
14:14:43 <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.
14:14:53 <qrpnxz> i mean, it's not, the error i got says pretty much exactly that "No handler for error"
14:14:57 <qrpnxz> can't get clearer honestly
14:15:20 <dminuoso> qrpnxz: Can you guarantee this will always trigger? :-)
14:15:31 vglfr joins (~vglfr@93.170.4.33)
14:15:45 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
14:15:47 <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
14:16:24 <qrpnxz> GHC's not gonna go like "guess i'll unsafecoerce here". It's gonna error.
14:16:50 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
14:17:22 <dminuoso> qrpnxz: So there's a lot of really strange bugs with these custom errors
14:18:17 <dminuoso> Check this for instance https://github.com/well-typed/optics/issues/334#issuecomment-670976630
14:18:34 <dminuoso> Or https://github.com/well-typed/optics/issues/308
14:19:18 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
14:19:23 <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.
14:19:54 × chomwitt quits (~chomwitt@2a02:587:dc15:5e00:41c2:c97c:1364:63b1) (Ping timeout: 264 seconds)
14:20:01 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
14:20:03 <zzz> hey byorgey, hows swarm going?
14:20:30 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 268 seconds)
14:20:43 <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.
14:20:54 vglfr joins (~vglfr@145.224.94.75)
14:21:29 <dminuoso> Lens is the pinnacle of poor diagnostics here. :p
14:22:04 <qrpnxz> lol
14:23:35 <qrpnxz> sigh, HLS just refusing to acknowledge my build-depends rn :(
14:24:14 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:24:42 dsrt^ joins (~dsrt@206.85.120.17)
14:25:42 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
14:25:58 <qrpnxz> ugh, i just remembered why this happens. Fixed :)
14:26:01 <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))
14:26:05 <dminuoso> Is this a valid optic?
14:26:16 <dminuoso> Could you tell what I did to produce this optic?
14:26:20 <qrpnxz> at first glance i say no
14:26:48 <xsarnik> Hi, does anyone know of a good monospace programming font that has extensive support for unicode characters?
14:26:57 <qrpnxz> optics look like (p a (f b) -> p s (f t))
14:27:03 <qrpnxz> van laarhoven do anyway
14:27:15 <dminuoso> van laarhoven look even differently
14:27:43 <dminuoso> What you're talking about is this hybrid van laarhoven/profunctor that lens uses
14:28:04 <dminuoso> qrpnxz: But really, if you look closely that type above *is* such a type
14:28:11 <qrpnxz> call it what you like :), but that's the shape of lens library optic
14:28:25 <qrpnxz> um it's not tho, your thing is f (p _ _)
14:28:53 nattiestnate joins (~nate@180.243.14.16)
14:29:51 <dminuoso> Ah fair I guess
14:30:12 razetime joins (~quassel@117.254.35.133)
14:30:47 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:32:31 <qrpnxz> > "Settable f, Contravariant f"
14:32:33 <lambdabot> "Settable f, Contravariant f"
14:32:37 <qrpnxz> did you just type something at random? lol
14:36:26 × coot quits (~coot@213.134.176.158) (Quit: coot)
14:38:43 <dminuoso> qrpnxz: (Profunctor p, Contravariant f, Bifunctor p, Functor f) => p s (f s) -> p s (f s)
14:38:50 <dminuoso> qrpnxz: Here, what about this one?
14:38:54 <[exa]> xsarnik: JuliaMono has crazy unicode coverage
14:38:54 <dminuoso> Is this a legit thing?
14:38:58 × ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Read error: Connection reset by peer)
14:40:46 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
14:41:10 <xsarnik> [exa]: thanks, will take a look
14:46:38 <qrpnxz> dminuoso: review maybe? Not familiar with that type
14:46:51 <qrpnxz> that's why i use the type synonyms :)
14:47:36 <qrpnxz> it's close to a review. Review is Choice, Bifunctor, Settable
14:48:56 <qrpnxz> I don't think that matches any class of optic in lens library
14:52:45 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
14:52:45 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
14:52:45 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
14:52:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
14:52:46 shriekingnoise joins (~shrieking@186.137.167.202)
14:53:16 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
14:53:19 jpds joins (~jpds@gateway/tor-sasl/jpds)
14:53:20 ChaiTRex joins (~ChaiTRex@user/chaitrex)
14:53:20 azimut joins (~azimut@gateway/tor-sasl/azimut)
14:55:39 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
14:59:53 chomwitt joins (~chomwitt@2a02:587:dc15:5e00:8ebc:7ad0:4cb3:bd5d)
15:01:19 cheater joins (~Username@user/cheater)
15:01:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
15:02:47 <dminuoso> xsarnik: Any particular sets of interest?
15:03:06 pmarg joins (~pmarg@2a01:799:159f:9b00:d32f:f01e:75a5:8790)
15:04:25 × pmarg quits (~pmarg@2a01:799:159f:9b00:d32f:f01e:75a5:8790) (Remote host closed the connection)
15:05:45 adziahel[m] joins (~adziahelm@2001:470:69fc:105::b4d)
15:06:10 <xsarnik> dminuoso: Sets, as in kinds of characters?
15:06:29 <dminuoso> Sure
15:07:20 <xsarnik> Well, mainly math characters (greek letters, blackboard bold, callighraphics, operators, arrows, ...)
15:10:24 abraham joins (~abraham@159.89.183.132)
15:13:50 matthewmosior joins (~matthewmo@173.170.253.91)
15:14:08 × Inst quits (~Inst@2601:6c4:4080:3f80:60a2:552d:5c38:7396) (Ping timeout: 244 seconds)
15:14:10 × dsrt^ quits (~dsrt@206.85.120.17) (Ping timeout: 268 seconds)
15:17:37 <ski> xsarnik : maybe the one that's suggested with the Emacs mode for Agda
15:18:10 <dminuoso> xsarnik: https://fsd.it/pragmatapro/All_chars.txt
15:18:13 <dminuoso> Would that fit your bill?
15:18:27 <dminuoso> I'm quite fond of that font.
15:18:59 × razetime quits (~quassel@117.254.35.133) (Ping timeout: 252 seconds)
15:19:55 dsrt^ joins (~dsrt@206.85.120.17)
15:20:39 <dminuoso> It does have the categories of characters you asked for, and it comes in monospace variants. Ligatures are included ontop too.
15:21:03 <xsarnik> Looks nice
15:21:55 <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
15:22:13 <dminuoso> xsarnik: Check out the main page then https://fsd.it/shop/fonts/pragmatapro/ - it even has some Agda presentation.
15:22:33 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
15:22:35 <dminuoso> For pricing, if you can wait there's usually a big black friday discount.
15:22:53 jpds joins (~jpds@gateway/tor-sasl/jpds)
15:24:08 waldo joins (~waldo@user/waldo)
15:25:46 <dminuoso> (Unless you're fine with just a singular font family)
15:26:03 kenran joins (~kenran@200116b82b4f89006bf34d939d61f5dc.dip.versatel-1u1.de)
15:26:32 razetime joins (~quassel@117.193.5.47)
15:26:35 <xsarnik> I will remember it. If it’s discounted, I might consider it. Looks very pretty
15:27:11 × vysn quits (~vysn@user/vysn) (Ping timeout: 255 seconds)
15:29:11 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:31:14 × dsrt^ quits (~dsrt@206.85.120.17) (Ping timeout: 255 seconds)
15:31:21 × kenran quits (~kenran@200116b82b4f89006bf34d939d61f5dc.dip.versatel-1u1.de) (Quit: WeeChat info:version)
15:33:05 dsrt^ joins (~dsrt@206.85.120.17)
15:35:03 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
15:35:04 mimmy joins (~mimmy@107.173.69.236)
15:35:20 × waldo quits (~waldo@user/waldo) (Ping timeout: 255 seconds)
15:38:01 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:38:50 × dsrt^ quits (~dsrt@206.85.120.17) (Ping timeout: 268 seconds)
15:39:57 waldo joins (~waldo@user/waldo)
15:44:24 × vpan quits (~0@212.117.1.172) (Quit: Leaving.)
15:48:33 moonsheep joins (~user@user/moonsheep)
15:49:12 <moonsheep> Is there a way to print a stack trace with the profiler (like +RTS -xc) but only on uncaught exceptions?
15:49:25 × mimmy quits (~mimmy@107.173.69.236) (Ping timeout: 252 seconds)
15:49:42 <geekosaur> no
15:50:09 <moonsheep> Ah shit. So is there a way to filter them so it only prints one specific type of exception?
15:50:35 <geekosaur> also no
15:50:43 <moonsheep> Alright thanks
15:50:57 <moonsheep> I have no clue how I am supposed to debug this then
15:51:16 <moonsheep> I guess I'll try making a minimal example and ask you gguys
15:52:45 × abraham quits (~abraham@159.89.183.132) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:54:46 × califax quits (~califax@user/califx) (Remote host closed the connection)
15:56:12 califax joins (~califax@user/califx)
15:57:52 coot joins (~coot@213.134.176.158)
15:59:45 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:04:12 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: Connection reset by peer)
16:04:34 abraham joins (~abraham@159.89.183.132)
16:08:36 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:09:19 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
16:11:13 <moonsheep> Oh wait I just realized I mixed up my TChans. Don't get your variables mixed up kids
16:17:27 mimmy joins (~mimmy@107.175.102.210)
16:20:40 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:22:16 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
16:22:39 × benin0 quits (~benin@183.82.178.4) (Quit: The Lounge - https://thelounge.chat)
16:23:15 × mimmy quits (~mimmy@107.175.102.210) (Ping timeout: 268 seconds)
16:24:29 × waldo quits (~waldo@user/waldo) (Ping timeout: 268 seconds)
16:26:06 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:26:28 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
16:26:47 chexum joins (~quassel@gateway/tor-sasl/chexum)
16:27:30 jakalx parts (~jakalx@base.jakalx.net) ()
16:34:39 notzmv joins (~zmv@user/notzmv)
16:35:15 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
16:35:47 mimmy joins (~mimmy@64.44.118.51)
16:40:59 Solid joins (~slot@xmonad/slotThe)
16:43:16 × moonsheep quits (~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
16:45:35 jakalx joins (~jakalx@base.jakalx.net)
16:46:36 yvan-sraka joins (~yvan-srak@105.67.135.250)
16:47:16 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
16:48:32 × cawfee quits (~root@2406:3003:2077:2758::babe) (Ping timeout: 268 seconds)
16:50:19 mikoto-chan joins (~mikoto-ch@164.5.249.78)
16:51:16 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds)
16:54:16 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:54:55 cawfee joins (~root@2406:3003:2077:2758::babe)
16:55:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
16:57:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:59:40 × abraham quits (~abraham@159.89.183.132) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:00:22 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:03:26 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:03:41 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:04:21 abraham joins (~abraham@159.89.183.132)
17:05:41 matthewmosior joins (~matthewmo@173.170.253.91)
17:10:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:11:11 mimmy_ joins (~mimmy@66-46-12-74.dedicated.allstream.net)
17:11:55 × mimmy quits (~mimmy@64.44.118.51) (Ping timeout: 252 seconds)
17:11:58 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
17:14:21 waldo joins (~waldo@user/waldo)
17:15:03 × abraham quits (~abraham@159.89.183.132) (Quit: Textual IRC Client: www.textualapp.com)
17:16:08 econo joins (uid147250@user/econo)
17:19:20 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
17:22:11 × razetime quits (~quassel@117.193.5.47) (Ping timeout: 252 seconds)
17:28:18 zebrag joins (~chris@user/zebrag)
17:29:54 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:31:42 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
17:32:10 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
17:45:00 ddellacosta joins (~ddellacos@89.45.224.144)
17:45:16 × yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection)
17:45:17 × troydm quits (~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)
17:46:15 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
17:46:25 zxx7529 joins (~Thunderbi@user/zxx7529)
17:47:05 × Psybur quits (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 268 seconds)
17:50:19 × kimjetwav quits (~user@2607:fea8:235e:b600:3b09:c412:8c94:9daa) (Remote host closed the connection)
17:50:23 × coot quits (~coot@213.134.176.158) (Quit: coot)
17:52:39 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:00:03 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:02:53 × Vajb quits (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
18:03:13 gmg joins (~user@user/gehmehgeh)
18:03:23 Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
18:04:21 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
18:05:00 × vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 268 seconds)
18:08:03 × talismanick quits (~talismani@2601:200:c100:3850::dd64) (Read error: Connection reset by peer)
18:08:32 famubu joins (~famubu@user/famubu)
18:08:44 chexum_ joins (~quassel@gateway/tor-sasl/chexum)
18:09:54 <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?
18:10:06 <famubu> Saw this: https://hackage.haskell.org/package/groups-0.5.3/docs/Data-Group.html#t:Group but wasn't sure
18:10:37 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:11:45 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
18:11:50 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 268 seconds)
18:11:51 Lord_of_Life_ is now known as Lord_of_Life
18:15:25 nate4 joins (~nate@98.45.169.16)
18:16:03 mimmy joins (~mimmy@86.48.15.70)
18:18:04 × mimmy_ quits (~mimmy@66-46-12-74.dedicated.allstream.net) (Ping timeout: 268 seconds)
18:20:30 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds)
18:21:25 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: Textual IRC Client: www.textualapp.com)
18:23:50 × waldo quits (~waldo@user/waldo) (Quit: quit)
18:24:14 alternateved joins (~user@staticline-31-183-149-36.toya.net.pl)
18:24:34 × chexum_ quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
18:28:37 chexum joins (~quassel@gateway/tor-sasl/chexum)
18:37:57 king_gs joins (~Thunderbi@2806:103e:29:da7a:ec19:6e2f:5f72:ff44)
18:42:24 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:44:05 famubu[m] joins (~famubumat@2001:470:69fc:105::1081)
18:44:28 famubu will remain via matrix account
18:44:31 × famubu quits (~famubu@user/famubu) (Quit: leaving)
18:45:23 <geekosaur> might be a question to ask on reddit
18:46:50 <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
18:49:22 × nicos quits (~nico@190.247.245.154) (Ping timeout: 268 seconds)
18:51:30 Hemmo joins (~IceChat95@85-76-110-229-nat.elisa-mobile.fi)
18:52:28 <qrpnxz> effectful working like a charm. Bit faster than the transformer stack i was using plus now have dynamic dispatch on the effect.
18:55:28 ddellaco1 joins (~ddellacos@86.106.121.170)
18:56:24 <qrpnxz> speaking of, looks like 2.0.0.0 just just uploaded right now
18:56:29 × ddellacosta quits (~ddellacos@89.45.224.144) (Ping timeout: 255 seconds)
18:57:41 Milan joins (~Milan@46.245.109.54)
18:58:42 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
18:59:00 × king_gs quits (~Thunderbi@2806:103e:29:da7a:ec19:6e2f:5f72:ff44) (Remote host closed the connection)
18:59:18 Vajb joins (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
18:59:18 king_gs joins (~Thunderbi@2806:103e:29:da7a:ec19:6e2f:5f72:ff44)
19:02:39 × zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 252 seconds)
19:02:49 <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.
19:02:49 <Hemmo> (There's about 70 lines of code)
19:02:49 <Hemmo> https://paste.tomsmeding.com/CU9vwvGg
19:03:53 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
19:04:35 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
19:06:14 <monochrom> loop could have been easily [Task] -> IO (), and use sites could have been easily "loop taskList" instead of "loop $ return taskList".
19:06:18 pmarg joins (~pmarg@2a01:799:159f:9b00:d32f:f01e:75a5:8790)
19:06:23 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:07:02 <monochrom> removeTop = tail :)
19:07:49 <qrpnxz> Hemmo: toTaskList can just be map toTask strList, no case analysis needed
19:08:56 <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)
19:09:01 <ski> er
19:09:02 <ski> Hemmo ^
19:09:31 <monochrom> "zipWith joinTuples" does both your "map joinTuple" and "zip".
19:10:07 <ski> i would probably make `loop' and `doCommand' local to `main' (although for testing it might be nice to have them at top-level)
19:10:08 <monochrom> Although, I wouldn't mind it either way.
19:10:51 vglfr joins (~vglfr@145.224.94.75)
19:12:37 <ski> base case of `toTaskList' is redundant
19:12:55 × ddellaco1 quits (~ddellacos@86.106.121.170) (Ping timeout: 252 seconds)
19:12:56 <ski> i guess i would also prefer to not use `case' in `doCommand'
19:13:23 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
19:13:58 <ski> oh, base case of `printTasks' is also useless
19:16:03 <monochrom> I use "case" in my versions of doCommand :)
19:16:06 <ski> (personally i'd also remove all the `$'s, using proper brackets instead)
19:16:11 <monochrom> Either that or a dictionary...
19:16:35 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
19:16:46 ski looks at Hemmo
19:17:14 <monochrom> I literally have "args <- getArgs; case args of {"--help" : _ -> ... ; "list" : xs -> ...}
19:17:19 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:17:45 <ski> that's fine
19:18:24 ski idly ponders the `--free'
19:18:40 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:19:15 <monochrom> We malloc'ed the task list, so we need to free it at the end. :)
19:19:29 <Hemmo> Ahaha thanks guys! I'm going through your suggestions and learning all I can
19:19:34 <ski> Hemmo : do you want the most recently added task first ?
19:19:56 <monochrom> I would say yes. :)
19:20:01 <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 =)
19:20:57 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:21:11 <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? :)
19:21:36 <monochrom> Oh "this page intentionally left blank".
19:21:47 <ski> so you have a work stack, not a work queue ?
19:22:11 <monochrom> I should do that more in my code. 60 blanks lines and "this page intentionally blank".
19:22:33 <monochrom> I have a procrastination stack. What is work? >:)
19:22:35 <ski> also start adding form feeds, while you're at it
19:24:05 ski . o O ( .. when you're procrastinating your procrastination )
19:24:12 × cheater quits (~Username@user/cheater) (Read error: Connection reset by peer)
19:25:49 kaol_ is now known as kaol
19:26:10 × Milan quits (~Milan@46.245.109.54) (Quit: Client closed)
19:26:23 <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?
19:26:38 <ski> no, you misunderstand
19:26:49 alp_ joins (~alp@user/alp)
19:26:58 <ski> doCommand "a" tasks = do
19:27:01 <ski> task <- getLine
19:27:08 <ski> putStrLn "Task added!"
19:27:19 <ski> loop (addTask task tasks)
19:27:29 <ski> doCommand "r" tasks = do
19:27:31 <ski> ...
19:27:33 <ski> ...
19:27:45 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
19:28:09 <monochrom> Oh, that.
19:28:14 cheater joins (~Username@user/cheater)
19:28:15 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:29:41 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:29:45 <Hemmo> Ahh that's cool.
19:32:06 <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 ;)
19:32:58 <monochrom> You could use Data.Sequence.
19:33:00 <Hemmo> So yes... Procrastination stack or "to be done eventually"
19:33:06 <Hemmo> ;)
19:33:20 × mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 255 seconds)
19:33:48 pavonia joins (~user@user/siracusa)
19:34:05 <Hemmo> On a side note, does anyone actually use Haskell professionally?
19:34:26 <Rembane_> Hemmo: Yes.
19:39:31 vysn joins (~vysn@user/vysn)
19:45:33 <kaol> I'm on a vacation from one and I'm taking a break by coding some C++. Dogs meow and so on.
19:46:51 <monochrom> Too tired of Haskell? Need some lambda that actually has side effects? :)
19:47:37 <monochrom> And a usable templating language for a change? >:)
19:47:42 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
19:48:11 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:50:05 <Hemmo> There's something attractive about this language, or paradigm in general.
19:56:14 × vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 244 seconds)
19:57:41 <Hemmo> ski: What do you mean making loop and doCommand local to main?
19:57:49 × pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
19:58:08 vglfr joins (~vglfr@145.224.94.75)
20:01:58 Everything joins (~Everythin@37.115.210.35)
20:03:11 <Everything> Hi all. Noob here. What are some short snippets collections in a manner of rosettacode.org?
20:03:31 <Rembane_> Haskell is on rosettacode I believe
20:04:04 <Everything> Rembane_: yes, but intermixed with everything else
20:05:32 mastarija joins (~mastarija@2a05:4f46:e03:6000:20af:4cb5:fc31:abbc)
20:05:50 <ski> Hemmo : putting them inside of a `where' attached to the definition of `main'
20:07:08 <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?
20:08:13 <ski> `loop' is a rather generic name .. usually it doesn't make too much sense to have it at top-level
20:09:30 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:09:32 <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"
20:09:57 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer)
20:10:04 <ski> .. presumably nothing else than `main',`loop',`doCommand' will ever need to refer to `loop' and `doCommand'
20:10:04 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
20:10:05 × califax quits (~califax@user/califx) (Remote host closed the connection)
20:10:05 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
20:10:05 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
20:10:05 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
20:10:05 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer)
20:10:27 ddellaco1 joins (~ddellacos@143.244.47.90)
20:10:31 noteness joins (~noteness@user/noteness)
20:10:33 califax joins (~califax@user/califx)
20:10:38 chexum joins (~quassel@gateway/tor-sasl/chexum)
20:10:55 gmg joins (~user@user/gehmehgeh)
20:11:09 <Hemmo> Ski: Thanks! This makes sense!
20:11:56 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
20:12:29 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 255 seconds)
20:12:34 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
20:12:53 <ski> (oh, also redundant brackets in `printChoices' .. perhaps you could also use `concat' or `intercalate' or something there)
20:13:09 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
20:13:24 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
20:14:24 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
20:14:48 acidjnk joins (~acidjnk@p200300d6e7137a17909a7d6537cea7ce.dip0.t-ipconnect.de)
20:16:52 cyphase joins (~cyphase@user/cyphase)
20:19:40 × Hemmo quits (~IceChat95@85-76-110-229-nat.elisa-mobile.fi) (Quit: Some folks are wise, and some otherwise.)
20:24:20 × mimmy quits (~mimmy@86.48.15.70) (Ping timeout: 268 seconds)
20:25:04 mimmy joins (~mimmy@86.48.15.68)
20:31:01 × vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 252 seconds)
20:31:14 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
20:31:14 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
20:31:28 vglfr joins (~vglfr@145.224.94.75)
20:32:02 pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl)
20:32:33 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
20:32:49 chexum joins (~quassel@gateway/tor-sasl/chexum)
20:33:10 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:35:45 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:38:41 Pickchea joins (~private@user/pickchea)
20:40:29 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:44:48 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 244 seconds)
20:52:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:52:32 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
20:54:47 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
20:59:17 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
21:00:48 × califax quits (~califax@user/califx) (Ping timeout: 268 seconds)
21:01:06 × bliminse quits (~bliminse@user/bliminse) (Quit: leaving)
21:01:06 califax joins (~califax@user/califx)
21:01:33 matthewmosior joins (~matthewmo@173.170.253.91)
21:02:34 × pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
21:03:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:03:14 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
21:05:04 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
21:05:38 ec joins (~ec@gateway/tor-sasl/ec)
21:06:02 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
21:08:13 matthewmosior joins (~matthewmo@173.170.253.91)
21:08:45 × Pickchea quits (~private@user/pickchea) (Ping timeout: 268 seconds)
21:11:37 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
21:13:03 × mimmy quits (~mimmy@86.48.15.68) (Ping timeout: 268 seconds)
21:13:04 × ulvarref` quits (~user@188.124.56.153) (Ping timeout: 268 seconds)
21:15:17 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 244 seconds)
21:16:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:17:05 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
21:17:58 cyphase joins (~cyphase@user/cyphase)
21:18:07 jpds joins (~jpds@gateway/tor-sasl/jpds)
21:18:36 geekosaur joins (~geekosaur@xmonad/geekosaur)
21:19:51 nicos joins (~nico@190.247.245.154)
21:20:58 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
21:21:41 jpds joins (~jpds@gateway/tor-sasl/jpds)
21:24:11 × ddellaco1 quits (~ddellacos@143.244.47.90) (Ping timeout: 268 seconds)
21:24:17 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:26:17 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
21:27:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
21:30:21 × vysn quits (~vysn@user/vysn) (Ping timeout: 268 seconds)
21:30:25 × zebrag quits (~chris@user/zebrag) (Ping timeout: 252 seconds)
21:30:43 zebrag joins (~chris@user/zebrag)
21:33:23 mimmy joins (~mimmy@86.48.15.70)
21:33:35 × mimmy quits (~mimmy@86.48.15.70) (Client Quit)
21:34:38 nosewings joins (~ngpc@cpe-76-186-194-45.tx.res.rr.com)
21:35:24 × chomwitt quits (~chomwitt@2a02:587:dc15:5e00:8ebc:7ad0:4cb3:bd5d) (Ping timeout: 268 seconds)
21:36:11 matthewmosior joins (~matthewmo@173.170.253.91)
21:38:59 × king_gs quits (~Thunderbi@2806:103e:29:da7a:ec19:6e2f:5f72:ff44) (Ping timeout: 268 seconds)
21:42:56 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
21:43:49 bliminse joins (~bliminse@user/bliminse)
21:44:35 × noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds)
21:46:11 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
21:53:31 × pmarg quits (~pmarg@2a01:799:159f:9b00:d32f:f01e:75a5:8790) (Ping timeout: 244 seconds)
21:55:42 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
21:58:38 off^ joins (~off@206.85.120.17)
21:58:39 matthewmosior joins (~matthewmo@173.170.253.91)
21:59:06 Psybur joins (~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
21:59:54 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:00:24 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:03:44 king_gs joins (~Thunderbi@187.201.216.244)
22:05:55 × acidjnk quits (~acidjnk@p200300d6e7137a17909a7d6537cea7ce.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
22:07:31 × king_gs quits (~Thunderbi@187.201.216.244) (Client Quit)
22:08:36 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:13:12 pmarg joins (~pmarg@224.80-203-5.customer.lyse.net)
22:15:08 pmarg parts (~pmarg@224.80-203-5.customer.lyse.net) ()
22:16:57 nate4 joins (~nate@98.45.169.16)
22:21:45 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
22:24:17 yvan-sraka joins (~yvan-srak@105.67.135.250)
22:26:23 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
22:26:26 × nicos quits (~nico@190.247.245.154) (Ping timeout: 268 seconds)
22:29:37 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
22:32:43 nicos joins (~nico@186.141.200.155)
22:35:29 × michalz quits (~michalz@185.246.204.73) (Remote host closed the connection)
22:37:09 × nicos quits (~nico@186.141.200.155) (Ping timeout: 252 seconds)
22:37:17 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:37:42 noteness joins (~noteness@user/noteness)
22:40:36 king_gs joins (~Thunderbi@2806:103e:29:da7a:1909:1570:14f1:22f)
22:42:41 Everything joins (~Everythin@37.115.210.35)
22:43:25 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
22:43:25 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
22:43:26 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
22:43:26 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
22:43:43 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
22:44:02 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:44:07 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
22:45:06 mrmr1 joins (~mrmr@user/mrmr)
22:46:19 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
22:46:19 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
22:46:19 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
22:46:47 chexum joins (~quassel@gateway/tor-sasl/chexum)
22:46:56 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:47:00 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
22:47:03 × mrmr quits (~mrmr@user/mrmr) (Ping timeout: 252 seconds)
22:47:03 mrmr1 is now known as mrmr
22:47:05 gmg joins (~user@user/gehmehgeh)
22:48:29 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:54:57 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
22:55:27 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
22:56:21 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:58:01 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
22:59:39 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
22:59:53 × alp_ quits (~alp@user/alp) (Ping timeout: 252 seconds)
23:00:29 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
23:00:31 × king_gs quits (~Thunderbi@2806:103e:29:da7a:1909:1570:14f1:22f) (Remote host closed the connection)
23:00:49 king_gs joins (~Thunderbi@2806:103e:29:da7a:1909:1570:14f1:22f)
23:03:19 luffy joins (~chenqisu1@183.217.201.23)
23:03:20 × hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
23:10:57 kimjetwav joins (~user@2607:fea8:235e:b600:10e5:8f0a:fe7a:2725)
23:12:16 dcoutts_ joins (~duncan@host86-153-135-25.range86-153.btcentralplus.com)
23:13:35 matthewmosior joins (~matthewmo@173.170.253.91)
23:14:21 geekosaur joins (~geekosaur@xmonad/geekosaur)
23:16:28 × noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds)
23:18:34 × yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection)
23:22:29 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
23:23:05 nicos joins (~nico@186.143.199.156)
23:23:49 geekosaur joins (~geekosaur@xmonad/geekosaur)
23:23:59 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
23:25:11 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:28:09 justsomeguy joins (~justsomeg@user/justsomeguy)
23:30:31 × alternateved quits (~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
23:30:56 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
23:33:12 Core6565 joins (~nico@186.143.136.251)
23:34:53 × nicos quits (~nico@186.143.199.156) (Ping timeout: 268 seconds)
23:39:03 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
23:42:03 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:43:40 matthewmosior joins (~matthewmo@173.170.253.91)
23:45:14 mikoto-chan joins (~mikoto-ch@164.5.249.78)
23:45:27 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
23:47:18 × mastarija quits (~mastarija@2a05:4f46:e03:6000:20af:4cb5:fc31:abbc) (Quit: Leaving)
23:51:57 × vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 252 seconds)
23:54:17 nicos joins (~nico@190.247.245.154)
23:54:17 × Core6565 quits (~nico@186.143.136.251) (Read error: Connection reset by peer)
23:57:27 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
23:59:30 o-90 joins (~o-90@gateway/tor-sasl/o-90)

All times are in UTC on 2022-08-12.