2022/10/03

2022-10-03 00:01:30 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-10-03 00:02:17 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 00:02:21 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds)
2022-10-03 00:06:17 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-10-03 00:10:03 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
2022-10-03 00:13:23 +0200kdaishi(~Thunderbi@mobile-access-bceec1-62.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-10-03 00:13:54 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 00:14:05 +0200kdaishi(~Thunderbi@94.191.136.74.mobile.tre.se)
2022-10-03 00:14:48 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2022-10-03 00:22:14 +0200stackdroid18(~stackdroi@user/stackdroid)
2022-10-03 00:22:36 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2022-10-03 00:23:44 +0200acidjnk_new(~acidjnk@p54ad5adb.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2022-10-03 00:28:25 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-10-03 00:35:58 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:509f:aac5:1bc5:5910) (Remote host closed the connection)
2022-10-03 00:41:16 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-10-03 00:41:18 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:509f:aac5:1bc5:5910)
2022-10-03 00:42:29 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 00:43:47 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 00:45:04 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Read error: Connection reset by peer)
2022-10-03 00:46:56 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
2022-10-03 00:50:58 +0200nate4(~nate@98.45.169.16)
2022-10-03 00:51:36 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 00:53:21 +0200drlkf(~drlkf@chat.drlkf.net) (Quit: drlkf)
2022-10-03 00:53:39 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-10-03 00:54:11 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-10-03 00:55:36 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:baf8:17de:5af6:42e4) (Ping timeout: 264 seconds)
2022-10-03 00:59:10 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 00:59:11 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.)
2022-10-03 01:03:46 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 246 seconds)
2022-10-03 01:04:09 +0200gqplox(~textual@97e654ef.skybroadband.com)
2022-10-03 01:04:20 +0200 <gqplox> hello
2022-10-03 01:04:32 +0200 <geekosaur> hi
2022-10-03 01:04:44 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-10-03 01:04:59 +0200 <gqplox> i just started learning haskell, could you give a quick review of my program please?
2022-10-03 01:05:14 +0200 <geekosaur> @where paste
2022-10-03 01:05:15 +0200 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2022-10-03 01:05:34 +0200 <geekosaur> it's best not to paste code into the channel, it's hard to follow and harder to reference things
2022-10-03 01:06:25 +0200wonko(~wjc@2a0e:1c80:11::50)
2022-10-03 01:06:26 +0200 <gqplox> ok great thank you
2022-10-03 01:06:29 +0200 <gqplox> here is my paste
2022-10-03 01:06:32 +0200 <gqplox> https://paste.tomsmeding.com/ezI0M5WK
2022-10-03 01:06:44 +0200 <gqplox> i started this online course harvard cs50 where they each some c
2022-10-03 01:06:48 +0200 <ski> that is C, not Haskell
2022-10-03 01:06:51 +0200 <gqplox> i tried to convert the c program to haskell
2022-10-03 01:06:54 +0200 <gqplox> the second file is haskell
2022-10-03 01:07:03 +0200 <gqplox> i give for reference what im trying to do in first one
2022-10-03 01:07:04 +0200 <ski> hm, ok
2022-10-03 01:07:07 +0200 <gqplox> (sorry if it's not allowed)
2022-10-03 01:07:27 +0200 <jackdk> gqplox: welcome to #haskell. BTW, it is completely fine to ask your question as soon as you join.
2022-10-03 01:07:42 +0200 <ski> what if there's multiple adjacent spaces, for `count_words' ?
2022-10-03 01:07:50 +0200 <gqplox> great, thank you Jack i will keep this in mind
2022-10-03 01:08:17 +0200 <ski> (although i guess the C `count_words' does the same thing)
2022-10-03 01:08:21 +0200 <gqplox> in the problem statement for it they gave some assumptions so it is kind of allowed
2022-10-03 01:08:49 +0200 <gqplox> (i know it's not a very robust program but i just wanted to check quickly that i have the right kind of idea in haskell so far before)
2022-10-03 01:08:53 +0200 <ski> elem c ['!', '?', '.']
2022-10-03 01:08:56 +0200 <ski> could be written as
2022-10-03 01:09:10 +0200 <ski> c `elem` "!?."
2022-10-03 01:09:38 +0200 <gqplox> oh cool
2022-10-03 01:09:48 +0200 <gqplox> oh yeah because string is just array of chars so it's the same right?
2022-10-03 01:09:53 +0200 <jackdk> (asking straight-up means that you formulate your question clearly before asking, which can help you solve it. It also means that people who wouldn't answer "yes" to questions like "are you an expert at FOO?" might look at it and be able to help for other reasons.)
2022-10-03 01:10:00 +0200 <ski> is there a `typedef char *string;', in `cs50.h' ?
2022-10-03 01:10:29 +0200 <ski> s/array/list/, but yes
2022-10-03 01:10:41 +0200 <ski> (lists in Haskell are (single-)linked lists)
2022-10-03 01:10:42 +0200 <gqplox> yeah probably something like that, this is the second lecture and they introduce pointers/memory management in lecture 4 so the provided some helper things
2022-10-03 01:10:54 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-10-03 01:10:57 +0200 <gqplox> oh right yep thanks
2022-10-03 01:11:07 +0200 <jackdk> The common Haskell style uses camelCase instead of snake_case for function and variable names, so that looks a bit odd to me.
2022-10-03 01:11:13 +0200 <gqplox> ok thanks Jack, next time i'll ask right away
2022-10-03 01:11:14 +0200 <ski> yes
2022-10-03 01:11:21 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-03 01:11:25 +0200 <gqplox> Oh right yeah good point, ill change that now
2022-10-03 01:11:57 +0200 <probie> For count_words, you could also use the prelude function `words` (although that will differ in behaviour from your C implementation if there a multiple consecutive spaces
2022-10-03 01:12:11 +0200 <probie> > words "here are some words"
2022-10-03 01:12:13 +0200 <lambdabot> ["here","are","some","words"]
2022-10-03 01:12:21 +0200 <ski> brackets in `calculateColmanLiauIndex' (apart from the ones for `round') are redundant
2022-10-03 01:12:39 +0200 <probie> > length (words "here are some words")
2022-10-03 01:12:41 +0200 <lambdabot> 4
2022-10-03 01:13:31 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-03 01:14:12 +0200 <jackdk> I'd drop the prefix `calculate_` from `calculate_colman_liau_index`, since it feels like one of those "do nothing" words that turn up in function names. What is a function for, if not to perform calculations?
2022-10-03 01:14:22 +0200 <gqplox> ah nice i've removed the brackets thank you
2022-10-03 01:14:31 +0200 <ski> gqplox : better to use `puts' (or `fputs'), rather than `printf', in `print_reading_level', for the first two calls, since they're not doing formatted printing anyway
2022-10-03 01:15:19 +0200 <gqplox> oh cool i didn't even know about that haha
2022-10-03 01:15:19 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-10-03 01:15:21 +0200 <ski> `string get_string(string prompt);' is also in `cs50.h', i presume
2022-10-03 01:15:31 +0200 <gqplox> yep
2022-10-03 01:15:35 +0200 <gqplox> how do i reply on irc?
2022-10-03 01:15:44 +0200 <ski> (note : `puts' automatically adds a newline at the end. `fputs' doesn't)
2022-10-03 01:15:48 +0200 <ski> just reply
2022-10-03 01:16:12 +0200 <gqplox> when you and jack messaged i see it highlighted
2022-10-03 01:16:20 +0200 <ski> mention the nickname of the person you want to reply to (or reference), if you want. e.g. beginning the message with the nickname, followed by a comma or a colon, and the meat of the message
2022-10-03 01:16:26 +0200 <gqplox> ok cool
2022-10-03 01:16:33 +0200 <ski> that's because we mentioned your nickname
2022-10-03 01:16:49 +0200 <gqplox> jackdk: yes true thanks
2022-10-03 01:16:53 +0200 <gqplox> ah i see
2022-10-03 01:17:12 +0200 <gqplox> cool thank you very much guys for all the help
2022-10-03 01:17:15 +0200 <jackdk> As more of a software design point, I don't know if I'd ever get the arguments to `calculate_colman_liau_index` in the correct order. If you were up to modules in your course, I'd suggest making a separate module with a function `colmanLiauIndex :: String -> Int` and all the word/letter/sentence counting hidden inside
2022-10-03 01:17:17 +0200 <ski> (most IRC clients will highlight/alert the user, in case the chosen nickname is the first thing in the message. not as many will do it, if it occurs later in the message)
2022-10-03 01:18:09 +0200 <DigitalKiwi> i get notified for kiwi
2022-10-03 01:18:09 +0200 <jackdk> I should also add that everything overall is fairly tidy and split up well, and most of what I'm posting are nitpicks
2022-10-03 01:18:21 +0200 <gqplox> ah yes true, I agree that i should hide the implentation details
2022-10-03 01:18:22 +0200 <DigitalKiwi> because i want to know when people are talking about me and not only to me
2022-10-03 01:18:43 +0200 <ski> (and please don't add sigils (like prefixing with `@') to the nickname when referencing it. that would commonly stop the highlighting, in clients in general. also, `@' already meant something else on IRC .. channel operator)
2022-10-03 01:18:44 +0200 <jackdk> `print_grade` should probably get a rename, as it doesn't actually do any printing.
2022-10-03 01:18:48 +0200 <geekosaur> actually I've found those kind of menntions somewhat annoying
2022-10-03 01:18:53 +0200 <gqplox> im currently reading programming in hsakell by Graham Hutton
2022-10-03 01:19:09 +0200 <DigitalKiwi> ...which means i get notifications sometimes and they're talking about kiwi irc but w/e
2022-10-03 01:19:10 +0200 <gqplox> thank you ski for the advice
2022-10-03 01:19:20 +0200 <geekosaur> sometimes it's nice but often it's like "you pinged me at 3am for that?"
2022-10-03 01:19:25 +0200 <gqplox> so far i am on chapter 6
2022-10-03 01:19:28 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-03 01:19:28 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-03 01:19:28 +0200wroathe(~wroathe@user/wroathe)
2022-10-03 01:19:37 +0200 <gqplox> i guess modules and other things will come later
2022-10-03 01:19:37 +0200 <DigitalKiwi> 3am is when i'm awake!
2022-10-03 01:19:37 +0200 <ski> Hutton is nice
2022-10-03 01:19:50 +0200 <gqplox> yes i am finding it good so far
2022-10-03 01:20:15 +0200 <geekosaur> 3am is when everyone else in #xmonad is awake, it often seems 🙂
2022-10-03 01:20:50 +0200 <gqplox> by the way, are you guys using haskell professionally?
2022-10-03 01:21:10 +0200 <gqplox> so far it seems quite cool but i've only heard about it in an academic context
2022-10-03 01:21:51 +0200 <ski> gqplox : you can use `putStr' and `putStrLn' to actually print `String's (to standard output). there's also a `hFlush stdout' you could use, if you want to flush (when using line-buffering), before a newline (if you want to try to replicate `getString')
2022-10-03 01:21:59 +0200 <ski> and `getLine' will read a line for you
2022-10-03 01:22:09 +0200 <ski> @type putStr
2022-10-03 01:22:10 +0200 <lambdabot> String -> IO ()
2022-10-03 01:22:11 +0200 <ski> @type putStrLn
2022-10-03 01:22:12 +0200 <lambdabot> String -> IO ()
2022-10-03 01:22:14 +0200 <ski> @type getLine
2022-10-03 01:22:16 +0200 <lambdabot> IO String
2022-10-03 01:22:25 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c)
2022-10-03 01:22:32 +0200 <gqplox> ah cool nice
2022-10-03 01:23:00 +0200 <gqplox> i tried to search about it but it was talking about monads which i i haven't looked at yet
2022-10-03 01:23:07 +0200 <ski> `main' is declared as having type `IO ()' in Haskell (well, technically you could use any type in place of `()' .. but it's ignored anyway, so ..)
2022-10-03 01:23:36 +0200 <geekosaur> don't worry about them for now, worry about IO. (Monad means much less than you think)
2022-10-03 01:23:38 +0200 <gqplox> it's a bit embarrasing i don't know how to make a proper program yet lol, i just do ghci readability.hs
2022-10-03 01:23:51 +0200 <gqplox> but its quite cool
2022-10-03 01:23:57 +0200 <ski> @wiki Introduction to IO
2022-10-03 01:23:57 +0200 <lambdabot> https://wiki.haskell.org/Introduction_to_IO
2022-10-03 01:24:05 +0200 <ski> you could take a glance at that ^
2022-10-03 01:24:10 +0200 <gqplox> like i can do :e and write my changes and see how it works
2022-10-03 01:24:11 +0200 <geekosaur> @where IO.xhtml
2022-10-03 01:24:12 +0200 <lambdabot> I know nothing about io.xhtml.
2022-10-03 01:24:19 +0200 <geekosaur> @where iotut
2022-10-03 01:24:19 +0200 <lambdabot> https://www.vex.net/~trebla/haskell/IO.xhtml
2022-10-03 01:24:52 +0200 <ski> the interactor is nice to test out things, as you're writing them
2022-10-03 01:25:18 +0200 <gqplox> yeah it's really cool
2022-10-03 01:26:08 +0200 <gqplox> anyway guys I have to go now, thank you very much jack and ski for the help. very friendly introduction to irc :)
2022-10-03 01:26:16 +0200 <ski> feel free to come back later
2022-10-03 01:26:19 +0200 <gqplox> and i shall check out those links
2022-10-03 01:26:27 +0200 <gqplox> i will for sure hahah, i have lots more to learn
2022-10-03 01:26:28 +0200 <ski> to ask questions, or just lurk around, watching what people talk about
2022-10-03 01:26:47 +0200 <ski> also, sometimes the channel is a bit silent. just stick around
2022-10-03 01:26:48 +0200 <gqplox> yes seems like there are lots of knowledgeable people around
2022-10-03 01:27:00 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
2022-10-03 01:27:01 +0200 <ski> (you may have to wait to get a reply)
2022-10-03 01:28:25 +0200 <gqplox> ah right, guess i was lucky to get a quick reply today then :)
2022-10-03 01:28:29 +0200 <gqplox> alright goodbye
2022-10-03 01:28:30 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 01:28:42 +0200gqplox(~textual@97e654ef.skybroadband.com) (Quit: Textual IRC Client: www.textualapp.com)
2022-10-03 01:29:06 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
2022-10-03 01:29:35 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 01:31:40 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
2022-10-03 01:32:11 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 01:34:48 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
2022-10-03 01:36:12 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 01:40:35 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-10-03 01:41:34 +0200vorpuni(~pvorp@2001:861:3881:c690:a32a:b352:8166:ebb2) (Remote host closed the connection)
2022-10-03 01:47:20 +0200nate4(~nate@98.45.169.16)
2022-10-03 01:47:41 +0200doyougnu-(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 01:48:08 +0200texasmynsted(~texasmyns@99.96.221.112)
2022-10-03 01:48:19 +0200kdaishi(~Thunderbi@94.191.136.74.mobile.tre.se) (Ping timeout: 265 seconds)
2022-10-03 01:52:11 +0200nate4(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-10-03 01:52:52 +0200wonko(~wjc@2a0e:1c80:11::50) (Ping timeout: 268 seconds)
2022-10-03 01:53:04 +0200doyougnu-(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
2022-10-03 01:54:35 +0200stackdroid18(~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-10-03 01:58:13 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-03 02:01:43 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-10-03 02:04:03 +0200califax(~califax@user/califx)
2022-10-03 02:05:27 +0200doyougnu-(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 02:08:03 +0200Oiyqlk(~rscastilh@191-214-26-24.user.veloxzone.com.br) ()
2022-10-03 02:08:39 +0200doyougnu-(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
2022-10-03 02:09:34 +0200doyougnu-(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 02:11:57 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:509f:aac5:1bc5:5910) (Remote host closed the connection)
2022-10-03 02:15:10 +0200beteigeuze1(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
2022-10-03 02:15:56 +0200moonsheep(~user@user/moonsheep)
2022-10-03 02:16:21 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 265 seconds)
2022-10-03 02:16:49 +0200 <moonsheep> what's the best approach to get a cereal/binary-like Get/Put class that uses attoparsec for getting?
2022-10-03 02:16:50 +0200doyougnu-(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 265 seconds)
2022-10-03 02:16:54 +0200 <moonsheep> do I have to roll my own put monad?
2022-10-03 02:17:01 +0200beteigeuze(~Thunderbi@89.187.168.55) (Ping timeout: 260 seconds)
2022-10-03 02:17:02 +0200beteigeuze1beteigeuze
2022-10-03 02:17:34 +0200 <moonsheep> am I forced to do something like https://paste.tomsmeding.com/eFlfgbl9 ?
2022-10-03 02:18:11 +0200 <moonsheep> incremental parsing is critical, so I definitely want to use attoparsec
2022-10-03 02:20:22 +0200 <_73> When would you reccomend using a type alias vs a simple wrapper type? For example why might I prefer "data Foo = Foo String" vs "type Foo = String"?
2022-10-03 02:20:37 +0200 <jackdk> moonsheep: I generally recommend against serialisation typeclasses because I have often caused/debugged bugs where a change to a data type has silently broken parsing or printing. I also think they took root before the contravariant functor hierarchy became well-established. What goal do you have in mind for the typeclass here?
2022-10-03 02:21:19 +0200 <moonsheep> I have no idea what the "contravariant functor hierarchy" is, is it worth looking into?
2022-10-03 02:21:29 +0200 <moonsheep> my goal is to parse a TCP stream in real time
2022-10-03 02:21:55 +0200 <jackdk> _73: I almost always go for a `newtype` over a type alias, because it's caught so many bugs IME. A type alias only makes sense to me when I want to specifically expose the details of the type to whoever is interested.
2022-10-03 02:22:12 +0200 <ski> _73 : `newtype's can have instances
2022-10-03 02:22:17 +0200 <jackdk> also that
2022-10-03 02:22:26 +0200 <moonsheep> can't you use TypeSnonymInstances?
2022-10-03 02:22:26 +0200 <ski> (or `data')
2022-10-03 02:22:45 +0200 <ski> may still run into overlapping issues
2022-10-03 02:22:50 +0200 <moonsheep> true
2022-10-03 02:22:55 +0200 <moonsheep> saved my ass a few times thouggh
2022-10-03 02:23:07 +0200 <_73> Ok, right a newtype basically works like my "data Foo = Foo String" example but is optimized away, correct?
2022-10-03 02:23:09 +0200 <ski> restricted type synonyms (like in Hugs) would be nice to have in GHC
2022-10-03 02:23:21 +0200 <ski> _73 : more or less, yes
2022-10-03 02:23:33 +0200 <_73> Ok got it
2022-10-03 02:23:38 +0200 <jackdk> moonsheep: The contravariant hierarchy are the typeclasses that are dual to Functor/Applicative/Alternative. Instead of producing `a`s, they consume `a`s and can be an interesting way of specifying pretty-printers https://www.youtube.com/watch?v=IJ_bVVsQhvc if you are interested
2022-10-03 02:24:06 +0200 <moonsheep> huh, interesting
2022-10-03 02:24:19 +0200 <moonsheep> how are they relevant to serializing type classess though?
2022-10-03 02:24:30 +0200 <jackdk> moonsheep: If your goal is only to parse a TCP stream into a particular type, and you do not need to render out the same structure back into raw bytes, I would not worry about a serialisation typeclass and write a parser directly
2022-10-03 02:25:08 +0200 <moonsheep> oh yeah my bad, I do need to render out the same structure
2022-10-03 02:25:12 +0200 <moonsheep> it's a bidirectional thing
2022-10-03 02:25:16 +0200 <moonsheep> two clients communciating as equals
2022-10-03 02:26:20 +0200 <jackdk> moonsheep: I feel like the reason that serialisation typeclasses became popular in Haskell libraries is that there wasn't really a good story for printing to complement parsing (this is uninformed speculation). I find contravariant functors can be useful when describing encoders for larger data types.
2022-10-03 02:26:31 +0200codaraxis__(~codaraxis@user/codaraxis)
2022-10-03 02:26:33 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:509f:aac5:1bc5:5910)
2022-10-03 02:27:03 +0200 <moonsheep> hmm, will look into them thanks
2022-10-03 02:27:38 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 02:28:04 +0200 <jackdk> moonsheep: An alternative answer is "just write functions". If you have a function `toBytes :: YourType -> ByteStream m ()` (or whatever streaming library you prefer), and a parser `parseYourType :: Parser YourType`, you are basically done.
2022-10-03 02:28:24 +0200 <moonsheep> yeah I was fearing that answer :p
2022-10-03 02:28:33 +0200 <jackdk> moonsheep: why fearing?
2022-10-03 02:28:35 +0200 <moonsheep> I may actually end up doing that
2022-10-03 02:28:42 +0200 <moonsheep> jackdk: well, mostly for verbosity reasons
2022-10-03 02:29:05 +0200 <moonsheep> in my head it's nice for things to be separated and interfaced with with a consistent interface
2022-10-03 02:29:21 +0200 <moonsheep> instead of having to remember a whole bunch of names (even with a consistent naming scheme)
2022-10-03 02:29:29 +0200 <moonsheep> but oh well
2022-10-03 02:30:13 +0200codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 246 seconds)
2022-10-03 02:30:15 +0200 <jackdk> I should also point out that cereal at least has an incremental interface in Data.Serialize.Get
2022-10-03 02:30:32 +0200 <moonsheep> oh I didn't know that
2022-10-03 02:30:47 +0200 <moonsheep> I've already been sold on attoparsec though
2022-10-03 02:30:59 +0200 <jackdk> But attoparsec is also pretty great.
2022-10-03 02:31:19 +0200 <moonsheep> yeah, never noticed that sneaky `runGetPartial'
2022-10-03 02:31:57 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-03 02:32:47 +0200 <jackdk> The other thing you can mess around with is bundling the parser and prettyprinter together into a profunctor, but that does feel a bit unergonomic. I've been meaning to PR product-profunctors for a couple of years now :|
2022-10-03 02:33:31 +0200 <moonsheep> hmm that's an interesting idea
2022-10-03 02:34:23 +0200 <moonsheep> how does it feel "unergonomic"?
2022-10-03 02:35:16 +0200 <EvanR> it sounds like you aren't even trying to produce the parser and the unparser from the same code
2022-10-03 02:36:05 +0200 <jackdk> https://github.com/tomjaguarpaw/product-profunctors/pull/54#issuecomment-754205222 sort of things
2022-10-03 02:36:31 +0200 <moonsheep> so sort of missing the point of it entirely?
2022-10-03 02:36:35 +0200codaraxis___(~codaraxis@user/codaraxis)
2022-10-03 02:37:39 +0200Guest1698(~Guest1698@20.83.116.49) (Remote host closed the connection)
2022-10-03 02:38:06 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 02:38:18 +0200 <EvanR> if you are worried about verbosity and repeating yourself, then generating the parser and unparser from the same data structure thing sounds like a cromulent rabbit hole
2022-10-03 02:38:55 +0200Guest1698(~Guest1698@20.83.116.49)
2022-10-03 02:39:03 +0200 <moonsheep> yeah that's prolly worth looking into
2022-10-03 02:39:20 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 02:40:23 +0200codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
2022-10-03 02:41:51 +0200codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
2022-10-03 02:43:41 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 02:46:44 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 02:48:34 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-10-03 02:50:43 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2022-10-03 02:51:01 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 02:51:45 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-03 02:52:39 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 02:53:34 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2022-10-03 02:56:53 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 02:59:29 +0200nate4(~nate@98.45.169.16)
2022-10-03 03:06:06 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 03:07:50 +0200xff0x(~xff0x@2405:6580:b080:900:b7c1:3130:710b:2a7f) (Ping timeout: 244 seconds)
2022-10-03 03:08:37 +0200nate4(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-10-03 03:10:58 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 03:11:17 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2022-10-03 03:11:52 +0200Lycurgus(~juan@user/Lycurgus)
2022-10-03 03:12:22 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 03:18:10 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-10-03 03:20:24 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-10-03 03:20:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-03 03:20:49 +0200moonsheep(~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
2022-10-03 03:21:36 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 03:22:51 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-10-03 03:26:26 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 03:27:48 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 268 seconds)
2022-10-03 03:27:49 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 03:28:04 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2022-10-03 03:31:26 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-10-03 03:32:43 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 03:33:46 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 03:37:00 +0200berberman(~berberman@user/berberman) (Ping timeout: 268 seconds)
2022-10-03 03:38:19 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 03:39:39 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 03:40:45 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 250 seconds)
2022-10-03 03:43:14 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2022-10-03 03:45:43 +0200macabreelevenfingercrea
2022-10-03 03:45:52 +0200elevenfingercreabitterqueso
2022-10-03 03:47:41 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-10-03 03:50:43 +0200bitterqueso(~m@161.35.15.236) (Quit: The Lounge - https://thelounge.chat)
2022-10-03 03:51:28 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-10-03 03:52:55 +0200_73(~user@pool-173-76-236-42.bstnma.fios.verizon.net) (Remote host closed the connection)
2022-10-03 03:59:18 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 04:00:24 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
2022-10-03 04:06:04 +0200ddellacosta(~ddellacos@143.244.47.77) (Ping timeout: 265 seconds)
2022-10-03 04:07:42 +0200nate4(~nate@98.45.169.16)
2022-10-03 04:07:53 +0200ddellacosta(~ddellacos@89.45.224.218)
2022-10-03 04:08:28 +0200mixphix(~cigsender@99.208.33.70)
2022-10-03 04:10:11 +0200td_(~td@94.134.91.231) (Ping timeout: 260 seconds)
2022-10-03 04:11:52 +0200td_(~td@94.134.91.118)
2022-10-03 04:14:59 +0200nate4(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-10-03 04:24:03 +0200mmhat(~mmh@p200300f1c70623b9ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
2022-10-03 04:31:40 +0200mixphix(~cigsender@99.208.33.70) (Ping timeout: 246 seconds)
2022-10-03 04:36:26 +0200berberman(~berberman@user/berberman)
2022-10-03 04:39:54 +0200texasmynsted(~texasmyns@99.96.221.112) (Ping timeout: 265 seconds)
2022-10-03 04:41:38 +0200mixphix(~cigsender@99.208.33.70)
2022-10-03 04:43:32 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-10-03 04:44:54 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-10-03 04:45:47 +0200mixphix(~cigsender@99.208.33.70) (Ping timeout: 252 seconds)
2022-10-03 04:51:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-10-03 04:56:23 +0200[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-10-03 04:56:40 +0200[Leary](~Leary]@user/Leary/x-0910699)
2022-10-03 05:01:53 +0200mixphix(~cigsender@99.208.33.70)
2022-10-03 05:04:17 +0200fouine(~nobody@5.1.66.3)
2022-10-03 05:06:19 +0200mixphix(~cigsender@99.208.33.70) (Ping timeout: 252 seconds)
2022-10-03 05:15:25 +0200fouine(~nobody@5.1.66.3) (Ping timeout: 246 seconds)
2022-10-03 05:16:22 +0200fouine(~nobody@5.1.66.3)
2022-10-03 05:19:51 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-03 05:21:48 +0200causal(~user@50.35.83.177)
2022-10-03 05:22:00 +0200rembo10(~rembo10@main.remulis.com)
2022-10-03 05:31:58 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 05:35:32 +0200mixphix(~cigsender@174.91.129.69)
2022-10-03 05:37:07 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
2022-10-03 05:40:19 +0200mixphix(~cigsender@174.91.129.69) (Ping timeout: 265 seconds)
2022-10-03 05:41:41 +0200nate4(~nate@98.45.169.16)
2022-10-03 05:45:19 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-10-03 05:46:36 +0200nate4(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-10-03 05:55:30 +0200edrx(~Eduardo@2804:56c:d2d3:4800:cf7d:b421:4c3a:392e) (Killed buffer)
2022-10-03 06:01:44 +0200fouine(~nobody@5.1.66.3) (Quit: leaving)
2022-10-03 06:04:10 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-10-03 06:05:07 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-03 06:05:07 +0200ddellacosta(~ddellacos@89.45.224.218) (Ping timeout: 246 seconds)
2022-10-03 06:32:36 +0200bilegeek(~bilegeek@2600:1008:b018:1dfc:44e1:aaa5:595f:8e17)
2022-10-03 06:33:46 +0200mbuf(~Shakthi@49.204.130.86)
2022-10-03 06:34:31 +0200berberman(~berberman@user/berberman) (Ping timeout: 246 seconds)
2022-10-03 06:36:51 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 248 seconds)
2022-10-03 06:41:31 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 06:43:04 +0200mbuf(~Shakthi@49.204.130.86) (Remote host closed the connection)
2022-10-03 06:44:17 +0200mbuf(~Shakthi@49.204.130.86)
2022-10-03 06:46:03 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 06:47:09 +0200mbuf(~Shakthi@49.204.130.86) (Remote host closed the connection)
2022-10-03 06:49:51 +0200mbuf(~Shakthi@49.204.130.86)
2022-10-03 06:50:13 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 06:56:41 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
2022-10-03 06:58:25 +0200nate4(~nate@98.45.169.16)
2022-10-03 07:00:42 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 07:02:33 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-03 07:03:17 +0200nate4(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-10-03 07:06:51 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 07:11:42 +0200raym(~aritra@user/raym) (Quit: afk for a while)
2022-10-03 07:13:45 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-10-03 07:14:06 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-03 07:14:46 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-10-03 07:17:31 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 07:18:36 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:4be8:104:55e3:55fc)
2022-10-03 07:21:45 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 250 seconds)
2022-10-03 07:28:15 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 07:34:45 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-10-03 07:37:44 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-10-03 07:49:22 +0200 <Square> Is there some easy short hand for :: a -> (a -> b) -> (a,b) ?
2022-10-03 07:49:50 +0200 <Square> (or arguments flipped)
2022-10-03 07:51:16 +0200 <Square> would be neat in combination with point syntax
2022-10-03 07:53:15 +0200 <jackdk> @djinn a -> (a -> b) -> (a, b)
2022-10-03 07:53:16 +0200 <lambdabot> f a b = (a, b a)
2022-10-03 07:53:28 +0200 <jackdk> @pl \f a b -> (a, b a)
2022-10-03 07:53:29 +0200 <lambdabot> const (liftM2 (.) (,) (flip id))
2022-10-03 07:53:37 +0200 <dolio> :t ap (,)
2022-10-03 07:53:39 +0200 <lambdabot> (a1 -> a2) -> a1 -> (a1, a2)
2022-10-03 07:54:20 +0200 <Square> thanks guys
2022-10-03 07:56:05 +0200shapr(~user@68.54.166.125) (Ping timeout: 252 seconds)
2022-10-03 07:56:07 +0200 <EvanR> let easyShorthandRenameThisThough x f = (x, f x)
2022-10-03 07:56:11 +0200 <EvanR> in
2022-10-03 07:56:59 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
2022-10-03 07:57:48 +0200 <Square> yeah, probably better. Just thought it could be a common function lurking in base somewhere
2022-10-03 07:58:58 +0200 <EvanR> like I said when trying to learn music, there's only so many songs xD
2022-10-03 07:59:17 +0200 <EvanR> combinatorially speaking
2022-10-03 07:59:43 +0200 <EvanR> https://hackage.haskell.org/package/data-aviary
2022-10-03 08:02:04 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 08:02:39 +0200gmg(~user@user/gehmehgeh)
2022-10-03 08:03:02 +0200michalz(~michalz@185.246.207.197)
2022-10-03 08:04:24 +0200 <Square> EvanR, haha. I plead guilty
2022-10-03 08:04:41 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
2022-10-03 08:04:45 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Quit: king_gs)
2022-10-03 08:05:09 +0200 <jackdk> Square: it's `toSnd` in relude
2022-10-03 08:05:28 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Quit: xff0x)
2022-10-03 08:06:01 +0200 <Square> jackdk, hmm. I should look into alternate preludes one day.
2022-10-03 08:06:46 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 08:06:56 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-10-03 08:07:24 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2022-10-03 08:10:17 +0200 <jackdk> only if you're not writing libraries ;-)
2022-10-03 08:10:17 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 250 seconds)
2022-10-03 08:10:45 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
2022-10-03 08:11:18 +0200 <chreekat> > \ f -> id &&& f
2022-10-03 08:11:20 +0200 <lambdabot> error:
2022-10-03 08:11:20 +0200 <lambdabot> • No instance for (Typeable b0)
2022-10-03 08:11:20 +0200 <lambdabot> arising from a use of ‘show_M78487517099835316738’
2022-10-03 08:11:34 +0200 <chreekat> or :t or whatever :P
2022-10-03 08:12:50 +0200 <jackdk> :t (id &&&)
2022-10-03 08:12:52 +0200 <lambdabot> (b -> c') -> b -> (b, c')
2022-10-03 08:15:45 +0200 <chreekat> but EvanR's solution is best imo
2022-10-03 08:15:51 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 08:16:12 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-10-03 08:34:28 +0200berberman(~berberman@user/berberman)
2022-10-03 08:34:35 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-03 08:38:47 +0200 <ski> Square : `(id &&&)'
2022-10-03 08:39:16 +0200 <ski> (i sometimes call this `graph'. and `cograph = (||| id)')
2022-10-03 08:40:03 +0200 <Square> ski, thanks. Where is &&& defined?
2022-10-03 08:40:09 +0200 <ski> oh. chreekat already mentioned
2022-10-03 08:40:24 +0200edr(~edr@user/edr) (Quit: ZNC 1.6.5 - http://znc.in)
2022-10-03 08:40:31 +0200 <ski> well, `Control.Array'. or `Data.Profunctor'
2022-10-03 08:40:36 +0200 <Square> gotcha
2022-10-03 08:40:42 +0200 <ski> and `id' can be `Control.Category.id'
2022-10-03 08:41:11 +0200 <ski> (or `Control.Arrow.arr Prelude.id', if you prefer ..)
2022-10-03 08:41:31 +0200 <ski> er, s/Array/Arrow/
2022-10-03 08:41:45 +0200 <Square> There's many ways to do the same thing. =D
2022-10-03 08:44:04 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-10-03 08:44:49 +0200 <ski> @type (Control.Category.id &&&)
2022-10-03 08:44:51 +0200 <lambdabot> Arrow a => a c c' -> a c (c, c')
2022-10-03 08:44:52 +0200 <ski> @type (||| Control.Category.id)
2022-10-03 08:44:54 +0200 <lambdabot> ArrowChoice a => a b d -> a (Either b d) d
2022-10-03 08:49:12 +0200 <ski> `id &&& f' is the graph of `f', in the sense of the graph of a function. (being a subset (represented as a monomorphism) of the cartesian product of the domain and the codomain. iow, a relation between the domain and the codomain)
2022-10-03 08:51:54 +0200 <ski> `f ||| id' is the cograph of `f'. think of a table listing corresponding pairs of inputs and outputs of `f'. this is rendered as a quotient of (represented as an epimorphism from) the disjoint sum of the domain and the codomain. (a "corelation" between the domain and the codomain)
2022-10-03 08:56:45 +0200zeenk(~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63)
2022-10-03 08:57:34 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-10-03 09:00:07 +0200Inst(~Liam@172.109.205.98) (Read error: Connection reset by peer)
2022-10-03 09:01:39 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:3719:5feb:ad96:c94f)
2022-10-03 09:05:47 +0200k8yun__(~k8yun@user/k8yun)
2022-10-03 09:06:58 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds)
2022-10-03 09:07:38 +0200phma(phma@2001:5b0:212a:9038:ee27:41c9:caf6:d84c) (Read error: Connection reset by peer)
2022-10-03 09:07:40 +0200acidjnk_new(~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de)
2022-10-03 09:09:03 +0200k8yun_(~k8yun@user/k8yun) (Ping timeout: 252 seconds)
2022-10-03 09:09:25 +0200phma(phma@2001:5b0:211f:2ab8:24ce:9e74:707e:f3b4)
2022-10-03 09:10:05 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Ping timeout: 268 seconds)
2022-10-03 09:10:49 +0200k8yun__(~k8yun@user/k8yun) (Ping timeout: 268 seconds)
2022-10-03 09:14:10 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 09:16:13 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-03 09:18:19 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds)
2022-10-03 09:19:20 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-03 09:19:34 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-10-03 09:28:53 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 09:31:57 +0200jargon(~jargon@184.101.88.60) (Remote host closed the connection)
2022-10-03 09:38:01 +0200berberman(~berberman@user/berberman) (Ping timeout: 260 seconds)
2022-10-03 09:38:28 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 09:39:24 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 264 seconds)
2022-10-03 09:40:46 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-10-03 09:43:17 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-10-03 09:43:29 +0200bilegeek(~bilegeek@2600:1008:b018:1dfc:44e1:aaa5:595f:8e17) (Quit: Leaving)
2022-10-03 09:53:01 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-10-03 09:53:53 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net)
2022-10-03 09:54:31 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 09:55:21 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 09:55:56 +0200nschoe(~quassel@141.101.51.197)
2022-10-03 09:57:38 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-03 10:00:50 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-10-03 10:02:12 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-10-03 10:04:44 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 10:07:29 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
2022-10-03 10:08:14 +0200titibandit(~titibandi@xdsl-89-0-65-2.nc.de)
2022-10-03 10:10:44 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 10:14:01 +0200cyphase(~cyphase@user/cyphase)
2022-10-03 10:15:05 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 250 seconds)
2022-10-03 10:17:15 +0200frost(~frost@user/frost)
2022-10-03 10:17:29 +0200razetime(~quassel@117.193.7.104)
2022-10-03 10:36:05 +0200berberman(~berberman@user/berberman)
2022-10-03 10:41:05 +0200chimp_(~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
2022-10-03 10:43:00 +0200Psybur(~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 264 seconds)
2022-10-03 10:43:48 +0200waldo(~waldo@user/waldo)
2022-10-03 10:44:30 +0200MajorBiscuit(~MajorBisc@145.94.170.80)
2022-10-03 10:50:48 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:509f:aac5:1bc5:5910) (Remote host closed the connection)
2022-10-03 11:00:10 +0200sjanssen(~sjanssenm@2001:470:69fc:105::1:61d8) (Quit: You have been kicked for being idle)
2022-10-03 11:00:10 +0200nate4(~nate@98.45.169.16)
2022-10-03 11:00:21 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 11:02:36 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2022-10-03 11:04:56 +0200nate4(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-03 11:05:18 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-10-03 11:08:39 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Remote host closed the connection)
2022-10-03 11:08:52 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2022-10-03 11:09:04 +0200fef(~thedawn@user/thedawn)
2022-10-03 11:14:26 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-03 11:21:17 +0200aku_aku
2022-10-03 11:24:25 +0200waldo(~waldo@user/waldo) (Ping timeout: 268 seconds)
2022-10-03 11:25:14 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-10-03 11:32:45 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-03 11:34:50 +0200waldo(~waldo@user/waldo)
2022-10-03 11:44:37 +0200acidjnk_new(~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-10-03 11:51:18 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
2022-10-03 11:55:47 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Ping timeout: 248 seconds)
2022-10-03 11:56:24 +0200wonko(~wjc@2a0e:1c80:11::50)
2022-10-03 11:57:37 +0200xerox__xerox
2022-10-03 11:58:39 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
2022-10-03 11:58:46 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2022-10-03 12:09:21 +0200lys(lys@id-194105.uxbridge.irccloud.com)
2022-10-03 12:10:49 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-10-03 12:13:18 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 12:13:32 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-03 12:17:08 +0200acidjnk_new(~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de)
2022-10-03 12:17:51 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-10-03 12:24:55 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
2022-10-03 12:27:27 +0200berberman(~berberman@user/berberman) (Ping timeout: 268 seconds)
2022-10-03 12:38:39 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 12:39:32 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-03 12:42:38 +0200xeroxedi
2022-10-03 12:43:11 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 12:44:55 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-10-03 12:45:30 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2022-10-03 13:00:23 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-03 13:01:32 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 13:02:41 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-03 13:03:06 +0200lysrosalind
2022-10-03 13:03:24 +0200mmhat(~mmh@p200300f1c70623b9ee086bfffe095315.dip0.t-ipconnect.de)
2022-10-03 13:05:16 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 13:06:14 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-10-03 13:09:20 +0200kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 265 seconds)
2022-10-03 13:09:34 +0200rosalindlys
2022-10-03 13:12:11 +0200kritzefitz(~kritzefit@debian/kritzefitz)
2022-10-03 13:12:15 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
2022-10-03 13:14:09 +0200waldo(~waldo@user/waldo) (Quit: quit)
2022-10-03 13:25:06 +0200berberman(~berberman@user/berberman)
2022-10-03 13:26:30 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-10-03 13:27:27 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Quit: beteigeuze)
2022-10-03 13:27:43 +0200beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-10-03 13:28:56 +0200zaquest(~notzaques@5.130.79.72)
2022-10-03 13:34:58 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-10-03 13:39:23 +0200lyle(~lyle@104.246.145.85)
2022-10-03 13:40:06 +0200acidjnk_new(~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-10-03 13:50:40 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 13:52:46 +0200waldo(~waldo@user/waldo)
2022-10-03 13:53:17 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-03 13:55:15 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 248 seconds)
2022-10-03 13:56:11 +0200kdaishi(~Thunderbi@dyn3136-11.wlan.ic.ac.uk)
2022-10-03 14:00:13 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 14:00:34 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-03 14:00:45 +0200acidjnk_new(~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de)
2022-10-03 14:00:46 +0200lys(lys@id-194105.uxbridge.irccloud.com) (Quit: Song continued)
2022-10-03 14:02:37 +0200kdaishi(~Thunderbi@dyn3136-11.wlan.ic.ac.uk) (Quit: kdaishi)
2022-10-03 14:02:51 +0200kdaishi(~Thunderbi@dyn3136-11.wlan.ic.ac.uk)
2022-10-03 14:04:48 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 14:06:22 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2022-10-03 14:07:36 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 264 seconds)
2022-10-03 14:08:10 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-10-03 14:09:16 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
2022-10-03 14:09:59 +0200lys(lys@id-194105.uxbridge.irccloud.com)
2022-10-03 14:11:40 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 14:13:24 +0200titibandit(~titibandi@xdsl-89-0-65-2.nc.de) (Quit: Leaving.)
2022-10-03 14:14:46 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-10-03 14:16:13 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2022-10-03 14:19:14 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-03 14:19:20 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-10-03 14:20:48 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 14:22:18 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
2022-10-03 14:22:51 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-03 14:23:08 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
2022-10-03 14:23:36 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-03 14:23:48 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-10-03 14:23:52 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2022-10-03 14:25:07 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 250 seconds)
2022-10-03 14:27:10 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
2022-10-03 14:27:33 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2022-10-03 14:28:31 +0200berberman(~berberman@user/berberman) (Ping timeout: 260 seconds)
2022-10-03 14:28:35 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-10-03 14:31:31 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 14:43:05 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-03 14:48:01 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-10-03 14:53:37 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-03 14:57:41 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 14:58:23 +0200abiss27(~abiss27@user/abiss)
2022-10-03 14:59:09 +0200 <juri_> is anyone around who really knows their quickcheck? I'm looking for a way to perform statistical analysis of my tests that are failing due to math reasons. idealy, i'd like my property test to be able to return a string, along with the bool(result), and have all of these strings for the test run dumped.. somewhere.
2022-10-03 15:00:01 +0200razetime(~quassel@117.193.7.104) (Ping timeout: 265 seconds)
2022-10-03 15:00:14 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 15:00:19 +0200kdaishi(~Thunderbi@dyn3136-11.wlan.ic.ac.uk) (Ping timeout: 252 seconds)
2022-10-03 15:01:43 +0200nate4(~nate@98.45.169.16)
2022-10-03 15:03:58 +0200kdaishi(~Thunderbi@dyn3136-11.wlan.ic.ac.uk)
2022-10-03 15:05:15 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
2022-10-03 15:05:57 +0200lysrosalind
2022-10-03 15:06:26 +0200nate4(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-03 15:06:59 +0200kdaishi(~Thunderbi@dyn3136-11.wlan.ic.ac.uk) (Client Quit)
2022-10-03 15:07:07 +0200razetime(~quassel@117.193.0.127)
2022-10-03 15:07:18 +0200kdaishi(~Thunderbi@dyn3136-11.wlan.ic.ac.uk)
2022-10-03 15:07:39 +0200rosalindlys
2022-10-03 15:08:31 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-10-03 15:08:35 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
2022-10-03 15:08:59 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 15:09:21 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 15:10:37 +0200Midjak(~Midjak@82.66.147.146)
2022-10-03 15:17:48 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
2022-10-03 15:17:53 +0200moonsheep(~user@user/moonsheep)
2022-10-03 15:18:05 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-03 15:18:12 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-10-03 15:18:32 +0200 <moonsheep> what is my best bet if I want an encrypted ACID embedded database?
2022-10-03 15:18:40 +0200 <moonsheep> sqlite and acid-state both seem to use their own disk writing code
2022-10-03 15:18:46 +0200 <moonsheep> am I forced to roll my own?
2022-10-03 15:18:54 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 15:20:27 +0200 <dr_merijn> moonsheep: Definitely don't use acid-state
2022-10-03 15:20:39 +0200 <geekosaur> acid-state is misnamed
2022-10-03 15:20:40 +0200 <dr_merijn> moonsheep: FYI, you can implement custom backends for sqlite
2022-10-03 15:20:43 +0200 <geekosaur> at best
2022-10-03 15:21:08 +0200 <moonsheep> dr_merijn: you can?
2022-10-03 15:21:09 +0200 <dr_merijn> moonsheep: So you can probably implement an encrypted writer for sqlite and swap it in
2022-10-03 15:21:21 +0200 <moonsheep> I found an sqlite plugin for encryption but it seems to be prorpietary
2022-10-03 15:21:44 +0200 <moonsheep> this? https://sqlite.org/forum/forumpost/e80a4afe1b?t=c&unf
2022-10-03 15:22:03 +0200 <moonsheep> geekosaur: what's wrong with acid-state?
2022-10-03 15:22:04 +0200 <dr_merijn> moonsheep: https://sqlite.org/vfs.html
2022-10-03 15:22:05 +0200 <geekosaur> you may be doing it wrong anyway if this is still your chat platform. isn't the big thing end-to-end encryption, such that you would be storing encrypted blobs you don't have the key to?
2022-10-03 15:22:25 +0200 <moonsheep> no the encryption is for storing private keys and logs and stuff
2022-10-03 15:22:30 +0200 <moonsheep> nothing to do with the network stuff
2022-10-03 15:22:32 +0200 <dr_merijn> moonsheep: sqlite is implemented on top of a VFS (virtual filesystem), you can write your own (encrypted) VFS implementation and tell it to use that
2022-10-03 15:22:38 +0200 <moonsheep> oh good to know
2022-10-03 15:22:58 +0200 <dr_merijn> Someone implemented a HTTP range query based VFS to host SQLite db on github and run queries from sqlite running inside JS :p
2022-10-03 15:23:01 +0200 <geekosaur> dr_merijn and others know more about acid-state than I do, I just know it's not very ACID
2022-10-03 15:23:12 +0200 <moonsheep> dr_merijn: oh god damn
2022-10-03 15:23:16 +0200 <dr_merijn> I'm sure "encrypted filesystem interaction" is trivial in comparison
2022-10-03 15:23:24 +0200Topsi(~Topsi@dyndsl-095-033-018-041.ewe-ip-backbone.de)
2022-10-03 15:23:36 +0200 <dr_merijn> ACID state is very much not acid, yeah
2022-10-03 15:23:42 +0200 <moonsheep> why is that?
2022-10-03 15:24:07 +0200 <moonsheep> it claims to "get stronger ACID guarantees than most RDBMS offer"
2022-10-03 15:24:12 +0200 <moonsheep> is that just a filthy lie?
2022-10-03 15:24:29 +0200 <dr_merijn> There's multiple data corruption issues last time I checked
2022-10-03 15:24:50 +0200 <moonsheep> oh that's not good
2022-10-03 15:25:10 +0200 <moonsheep> is that a design flaw, or is the implementation just bad?
2022-10-03 15:25:58 +0200 <dr_merijn> I was very excited about it at first, but they don't really *seriously* test for robustness against corruption
2022-10-03 15:26:10 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds)
2022-10-03 15:26:18 +0200 <dr_merijn> So the implementation quality overall is just a bit meh and kinda optimistic
2022-10-03 15:26:33 +0200 <Athas> moonsheep: https://gist.github.com/parsonsmatt/6b747d3020c4a4ac43b6580b65392a23
2022-10-03 15:26:36 +0200 <moonsheep> oh alright, will keep that in mind
2022-10-03 15:26:41 +0200 <dr_merijn> i.e. it's acid, as long as "random power failures and random process kills aren't in your threat model"
2022-10-03 15:27:15 +0200 <moonsheep> I mean, almost anything is acid as long as those conditions hold
2022-10-03 15:27:34 +0200 <dr_merijn> ah, yeah, I was looking for the ticket linked in Athas' link
2022-10-03 15:27:51 +0200 <moonsheep> alright, acid-state is off-limits then
2022-10-03 15:28:19 +0200 <dr_merijn> moonsheep: Also, having extensively used SQLite for a while now, I just think that SQLite is just *wildly* underrated and my only regrets about sqlite are 1) going through persistent and 2) not using more of it and earlier in my project :p
2022-10-03 15:29:11 +0200 <dr_merijn> The documentation of SQLite is excellent, the extensibility is amazing, and overall it's just "best" for anything that's "embedded/single process database-y things"
2022-10-03 15:29:11 +0200 <moonsheep> ah I was planning to use beam instead of persistent
2022-10-03 15:29:16 +0200 <moonsheep> I have slightly more experience with it
2022-10-03 15:29:28 +0200 <moonsheep> dr_merijn: damn you sold me on sqlite
2022-10-03 15:29:28 +0200 <dr_merijn> moonsheep: tbh, I'd just go with sqlite-simple if I had to do things again
2022-10-03 15:29:39 +0200 <moonsheep> yeah that's fair
2022-10-03 15:29:49 +0200 <moonsheep> may do that actually
2022-10-03 15:30:01 +0200 <dr_merijn> I didn't because I wasn't very comfortable with SQL when I started
2022-10-03 15:30:17 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-03 15:30:25 +0200 <moonsheep> I think I'm more comfortable with SQL than beam's DSL so that should be fine hopefully
2022-10-03 15:30:48 +0200 <dr_merijn> moonsheep: sqlite also has the advantage that extending it with custom functions is pretty easy
2022-10-03 15:30:56 +0200 <moonsheep> yeah I was just reading about that
2022-10-03 15:31:15 +0200 <moonsheep> https://sqlite.org/vfs.html does that mean I'll have to implement a separate encrypted vfs for linux and windows?
2022-10-03 15:31:30 +0200 <dr_merijn> moonsheep: I wrote a bunch of custom aggregate functions for it, very pleasant experience overall
2022-10-03 15:31:42 +0200 <dr_merijn> moonsheep: Yeah, probably. But maybe someone has already done something like that
2022-10-03 15:31:44 +0200 <moonsheep> also I assume I'll have to do it in C instead of haskell right?
2022-10-03 15:31:54 +0200 <moonsheep> dr_merijn: yeah but it's prorpietary iirc
2022-10-03 15:32:05 +0200 <dr_merijn> moonsheep: I did it in C, but if you're comfortable with the Haskell FFI it should be simple enough to get it to call Haskell code too
2022-10-03 15:32:17 +0200 <moonsheep> ah alright
2022-10-03 15:33:33 +0200abiss27(~abiss27@user/abiss) (Quit: hasta la vista... tchau!)
2022-10-03 15:33:47 +0200 <dr_merijn> moonsheep: https://github.com/merijn/Belewitte/tree/master/benchmark-analysis/cbits https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/SQLiteExts.hs
2022-10-03 15:33:55 +0200 <moonsheep> cryptonite has a C interface right?
2022-10-03 15:33:58 +0200 <moonsheep> dr_merijn: oh thanks!
2022-10-03 15:34:10 +0200Lycurgus(~juan@user/Lycurgus)
2022-10-03 15:35:51 +0200 <dr_merijn> SQLite just calls a function pointer, so all you need is to foreign export whatever Haskell function with the right type into a pointer, which the GHC user guide has details on how to do, so should be easy enough
2022-10-03 15:36:18 +0200 <dr_merijn> Hell, even using arbitrary runtime closures should be relatively straightforward using dynamic_wrapper
2022-10-03 15:36:34 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-10-03 15:36:56 +0200 <moonsheep> right, thank you very much
2022-10-03 15:36:58 +0200lys(lys@id-194105.uxbridge.irccloud.com) (Quit: It feels like a song I know so well)
2022-10-03 15:40:58 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c)
2022-10-03 15:41:03 +0200nihilazo(~nihilazo@tilde.town)
2022-10-03 15:41:36 +0200 <nihilazo> hi, what is the current best way to make desktop GUI (I don't care if it's native widgets, webview based etc) in haskell that is screen reader accessible?
2022-10-03 15:42:48 +0200 <dr_merijn> tbh, might be easier to write the desktop GUI in something more "standard" with good frameworks and then call out to Haskell for logic, the Haskell GUI toolkits are still kinda rough
2022-10-03 15:43:47 +0200 <nihilazo> a k
2022-10-03 15:44:23 +0200 <nihilazo> that's unfortunate :(
2022-10-03 15:44:29 +0200kdaishi(~Thunderbi@dyn3136-11.wlan.ic.ac.uk) (Ping timeout: 265 seconds)
2022-10-03 15:46:17 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 15:47:05 +0200 <moonsheep> the base package file i/o functions are cross-platform right?
2022-10-03 15:47:08 +0200lys(lys@id-194105.uxbridge.irccloud.com)
2022-10-03 15:47:18 +0200 <moonsheep> if so I should be able to implement a vfs in haskell that's also cross-platform for free, is that right?
2022-10-03 15:47:42 +0200 <dr_merijn> Not if you wanna keep things ACID :)
2022-10-03 15:47:50 +0200 <moonsheep> oh right
2022-10-03 15:48:41 +0200 <geekosaur> ACID is hard
2022-10-03 15:49:16 +0200geekosaurgot out of the database business in the 90s and mostly doesn't miss it
2022-10-03 15:49:28 +0200ellensol_(~ellen@178-78-210-152.customers.ownit.se)
2022-10-03 15:49:50 +0200 <moonsheep> I just wonder if it's possible to intercept the data halfway through the vfs and the upper layers and just do encryption there, without having to worry about the specifics of file reading and writing
2022-10-03 15:49:54 +0200lys(lys@id-194105.uxbridge.irccloud.com) (Client Quit)
2022-10-03 15:50:14 +0200 <dr_merijn> What are you trying to encrypt?
2022-10-03 15:50:35 +0200 <moonsheep> mostly the chat logs and the user's private key
2022-10-03 15:50:39 +0200 <moonsheep> symmetrically
2022-10-03 15:50:50 +0200 <moonsheep> so that if the system is compromised the data can't be stolen
2022-10-03 15:51:09 +0200 <moonsheep> ideally you'd want to use full-disk encryption, but I can't guarantee users do
2022-10-03 15:51:15 +0200 <moonsheep> I certainly do
2022-10-03 15:51:27 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 268 seconds)
2022-10-03 15:51:31 +0200nihilazo(~nihilazo@tilde.town) (Leaving)
2022-10-03 15:52:00 +0200 <geekosaur> one thing you might keep in mind is that you need a key somewhere to encrypt/decrypt that data, so if the system is compromised they'll have both
2022-10-03 15:52:01 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 15:52:20 +0200 <moonsheep> geekosaur: yes that's called a password and ideally it's only in the user's head
2022-10-03 15:52:24 +0200 <moonsheep> the human is always the weakest link
2022-10-03 15:52:55 +0200 <moonsheep> the idea is to use a KDF to derive a key from that password and decrypt the chat logs and your primary private key
2022-10-03 15:53:07 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-10-03 15:53:09 +0200 <moonsheep> obviously you need a strong password
2022-10-03 15:53:30 +0200 <moonsheep> I'll make sure to include a link to https://xkcd.com/936/ when the users is prompted to create a password
2022-10-03 15:53:38 +0200 <geekosaur> so you';re right on the edge of going e2e anyway
2022-10-03 15:53:40 +0200littlefinger(~littlefin@pool-100-15-237-121.washdc.fios.verizon.net)
2022-10-03 15:53:54 +0200 <moonsheep> how do you mean?
2022-10-03 15:53:57 +0200ellensol_(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 250 seconds)
2022-10-03 15:54:21 +0200 <geekosaur> where you don't have to worry about the encryption because the user's password/key is used for all of it and the server just has binary blobs it knows nothing aboyt
2022-10-03 15:54:34 +0200 <geekosaur> and all the work is done on the user's side
2022-10-03 15:54:43 +0200 <moonsheep> yes that was the idea all along
2022-10-03 15:54:47 +0200 <geekosaur> (this requires asymmetric keys though)
2022-10-03 15:54:49 +0200 <moonsheep> there's acutally no server
2022-10-03 15:54:58 +0200 <moonsheep> it's peer-to-peer within a LAN
2022-10-03 15:56:23 +0200 <moonsheep> so the messages are sent symetrically encrypted and signed, and once they're received they're stored in my database. I guess you're suggesting that they be stored encrypted so I only need to encrypt the private key?
2022-10-03 15:57:05 +0200 <moonsheep> I do kind of want to be able to do SQL queries and stuff though, so I need to have access to the message's various fields for that
2022-10-03 15:57:14 +0200 <moonsheep> instead of just storing a bunch of encrypted blobs in a table
2022-10-03 15:57:31 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2022-10-03 15:58:09 +0200 <geekosaur> don't even need tpo encrypt the privkey. you have the *pubkey*
2022-10-03 15:58:28 +0200kdaishi(~Thunderbi@2a0c:5bc0:40:2e2f:b6bb:664c:380b:dc65)
2022-10-03 15:58:29 +0200lys(lys@id-194105.uxbridge.irccloud.com)
2022-10-03 15:58:30 +0200 <moonsheep> again, that is done in case the system becomes physically compromised
2022-10-03 15:58:35 +0200 <geekosaur> auth is some nonce encrypted with the privkey is sent to you, and you can only decrypt with the pubkey
2022-10-03 15:58:44 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-10-03 15:58:56 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 15:58:59 +0200k8yun__(~k8yun@user/k8yun)
2022-10-03 15:59:06 +0200 <geekosaur> pubkey is not so useful by itself though, so it;s safe to store unencrypted
2022-10-03 15:59:29 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-10-03 15:59:30 +0200 <Athas> Heads up, the next release of cabal-install will break all your workflows: https://sigkill.dk/blog/2022-10-02-cabal-xdg.html
2022-10-03 15:59:31 +0200 <moonsheep> yeah I get all that but I think you're conflating the network stuff with the storage of chatlogs and *your own* private key?
2022-10-03 16:00:00 +0200 <moonsheep> geekosaur: that's pretty much how my network protocol works
2022-10-03 16:00:24 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-03 16:00:53 +0200 <geekosaur> Athas, it's supposed to keep working the same way if you have ~/.cabal
2022-10-03 16:00:56 +0200 <moonsheep> well except instead of using asymmetric encyption all the way, I just do a diffie-hellman to encrypt the connection, and then simply send signed messages through it
2022-10-03 16:01:12 +0200 <geekosaur> or specify paths explicitly in the config file
2022-10-03 16:01:20 +0200 <moonsheep> of course first doing authentication to make sure I'm not sending messages to an impersonator
2022-10-03 16:01:23 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 16:01:42 +0200 <Athas> geekosaur: yes, supposed to. But I doubt it is well tested.
2022-10-03 16:01:43 +0200 <dr_merijn> geekosaur: Are you saying the behaviour you'd like to see? Or telling Athas "how it works"?
2022-10-03 16:01:54 +0200 <dr_merijn> because, if the latter, eh...I'm sure he knows ;)
2022-10-03 16:02:05 +0200 <geekosaur> that is the report from the recent announcement
2022-10-03 16:02:16 +0200 <dr_merijn> geekosaur: Athas implemented it :p
2022-10-03 16:02:21 +0200 <Athas> Yeah, but it's implemented by a dilettante with little Cabal experience.
2022-10-03 16:02:21 +0200 <geekosaur> which is for testers to make sure that it does work that way when released
2022-10-03 16:02:24 +0200 <geekosaur> ah
2022-10-03 16:02:32 +0200 <Athas> Cabal has no "testers" as such.
2022-10-03 16:02:38 +0200 <geekosaur> (I plan to be one of said testers)
2022-10-03 16:03:03 +0200 <geekosaur> hopefully after I'm done with this morning's SNAP annoyances
2022-10-03 16:03:07 +0200 <Athas> Good! Running dev cabal-install is surprisingly easy, since it doesn't require any cabal-the-library changes.
2022-10-03 16:03:15 +0200 <Athas> It's just a binary you put in your PATH.
2022-10-03 16:03:50 +0200 <geekosaur> I also tested a couple of cabal 3.8 prereleases
2022-10-03 16:04:39 +0200 <geekosaur> (also: maerwald, if you're around, this might be a good candidate for the prerelease channel)
2022-10-03 16:04:46 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-10-03 16:04:52 +0200 <Athas> It's a bit easier now, since cabal no longer spews the "beware! debug version!" stuff on stdout.
2022-10-03 16:06:57 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 268 seconds)
2022-10-03 16:10:18 +0200kdaishi(~Thunderbi@2a0c:5bc0:40:2e2f:b6bb:664c:380b:dc65) (Ping timeout: 264 seconds)
2022-10-03 16:14:09 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 16:15:34 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-10-03 16:18:48 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 16:19:32 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-10-03 16:20:31 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds)
2022-10-03 16:21:22 +0200lysrosalind
2022-10-03 16:21:58 +0200moonsheep(~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-10-03 16:22:30 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2022-10-03 16:23:25 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 250 seconds)
2022-10-03 16:25:13 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2022-10-03 16:26:07 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-03 16:26:34 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2022-10-03 16:26:39 +0200rosalind(lys@id-194105.uxbridge.irccloud.com) (Quit: bbl)
2022-10-03 16:30:07 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 16:33:21 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-10-03 16:34:33 +0200ystael(~ystael@user/ystael) (Read error: Connection reset by peer)
2022-10-03 16:35:46 +0200akegalj(~akegalj@93-136-87-5.adsl.net.t-com.hr)
2022-10-03 16:36:10 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2022-10-03 16:36:25 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 16:36:37 +0200ystael(~ystael@user/ystael)
2022-10-03 16:37:10 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds)
2022-10-03 16:40:20 +0200waldo(~waldo@user/waldo) (Quit: quit)
2022-10-03 16:42:14 +0200rosalind(rosalind@id-194105.uxbridge.irccloud.com)
2022-10-03 16:42:26 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-10-03 16:42:33 +0200rosalindlys
2022-10-03 16:42:58 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 16:43:38 +0200king_gs(~Thunderbi@187.201.126.32)
2022-10-03 16:44:16 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 16:48:19 +0200kuribas(~user@silversquare.silversquare.eu)
2022-10-03 16:49:16 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 16:50:42 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 16:51:20 +0200moonsheep(~user@user/moonsheep)
2022-10-03 16:51:34 +0200titibandit(~titibandi@xdsl-89-0-65-2.nc.de)
2022-10-03 16:52:37 +0200k8yun_(~k8yun@user/k8yun)
2022-10-03 16:53:55 +0200lys(rosalind@id-194105.uxbridge.irccloud.com) (Quit: ZzzZz)
2022-10-03 16:54:04 +0200_73(~user@2600:4040:5aa2:2000:ccdd:de39:6c57:78f9)
2022-10-03 16:54:13 +0200lys(lys@id-194105.uxbridge.irccloud.com)
2022-10-03 16:54:59 +0200razetime(~quassel@117.193.0.127) (Ping timeout: 248 seconds)
2022-10-03 16:55:48 +0200razetime(~quassel@117.193.5.86)
2022-10-03 16:56:15 +0200k8yun__(~k8yun@user/k8yun) (Ping timeout: 268 seconds)
2022-10-03 17:03:41 +0200king_gs(~Thunderbi@187.201.126.32) (Read error: Connection reset by peer)
2022-10-03 17:03:49 +0200king_gs1(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
2022-10-03 17:04:53 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-03 17:05:26 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-10-03 17:06:08 +0200king_gs1king_gs
2022-10-03 17:06:53 +0200moonsheep(~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-10-03 17:14:09 +0200TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Remote host closed the connection)
2022-10-03 17:14:52 +0200akegalj(~akegalj@93-136-87-5.adsl.net.t-com.hr) (Quit: leaving)
2022-10-03 17:17:27 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 17:17:29 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 17:19:17 +0200razetime(~quassel@117.193.5.86) (Ping timeout: 252 seconds)
2022-10-03 17:25:37 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-10-03 17:26:55 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-03 17:27:56 +0200razetime(~quassel@117.193.7.124)
2022-10-03 17:31:21 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
2022-10-03 17:34:04 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2022-10-03 17:34:05 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-03 17:35:31 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-03 17:36:20 +0200razetime(~quassel@117.193.7.124) (Ping timeout: 268 seconds)
2022-10-03 17:41:16 +0200razetime(~quassel@117.254.35.9)
2022-10-03 17:45:27 +0200nate4(~nate@98.45.169.16)
2022-10-03 17:45:37 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Ping timeout: 268 seconds)
2022-10-03 17:47:05 +0200zebrag(~chris@user/zebrag)
2022-10-03 17:54:01 +0200vegetabelfodos(~vegetabel@user/vegetabelfodos)
2022-10-03 17:56:30 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 17:58:09 +0200kuribas(~user@silversquare.silversquare.eu) (Remote host closed the connection)
2022-10-03 18:00:50 +0200king_gs(~Thunderbi@187.201.126.32)
2022-10-03 18:01:05 +0200razetime(~quassel@117.254.35.9) (Ping timeout: 252 seconds)
2022-10-03 18:02:14 +0200razetime(~quassel@117.254.35.133)
2022-10-03 18:04:39 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 18:06:50 +0200razetime_(~quassel@2401:4900:6280:18c5:a9f7:414a:8235:bd9)
2022-10-03 18:07:04 +0200razetime(~quassel@117.254.35.133) (Ping timeout: 265 seconds)
2022-10-03 18:07:51 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-03 18:08:59 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 18:14:19 +0200crns(~netcrns@user/crns) (Ping timeout: 265 seconds)
2022-10-03 18:15:42 +0200crns(~netcrns@p4ff5e871.dip0.t-ipconnect.de)
2022-10-03 18:15:42 +0200crns(~netcrns@p4ff5e871.dip0.t-ipconnect.de) (Changing host)
2022-10-03 18:15:42 +0200crns(~netcrns@user/crns)
2022-10-03 18:18:16 +0200waleee(~waleee@192.165.44.49)
2022-10-03 18:18:47 +0200__monty__(~toonn@user/toonn)
2022-10-03 18:23:19 +0200cdimitroulas(~cdimitrou@cpc115154-dals23-2-0-cust44.20-2.cable.virginm.net)
2022-10-03 18:24:16 +0200king_gs(~Thunderbi@187.201.126.32) (Quit: king_gs)
2022-10-03 18:25:16 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
2022-10-03 18:27:51 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 18:28:41 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
2022-10-03 18:33:38 +0200EashanHatti(~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net) (Quit: EashanHatti)
2022-10-03 18:34:03 +0200EashanHatti(~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net)
2022-10-03 18:34:18 +0200EashanHatti(~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net) ()
2022-10-03 18:35:12 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-03 18:37:58 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-03 18:42:09 +0200nschoe(~quassel@141.101.51.197) (Ping timeout: 252 seconds)
2022-10-03 18:42:58 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
2022-10-03 18:43:40 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-10-03 18:46:24 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-10-03 18:46:33 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-10-03 18:47:31 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2022-10-03 18:48:45 +0200nate4(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-10-03 18:49:46 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 18:53:54 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-10-03 18:58:33 +0200waleee(~waleee@192.165.44.49) (Ping timeout: 250 seconds)
2022-10-03 19:00:39 +0200ii8(~ii8@45.63.97.131)
2022-10-03 19:03:21 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
2022-10-03 19:03:31 +0200 <ii8> Is there a neater way to write `f >>= (\x -> g >> return x)`? Some ??? that let's me write just `f ??? g`.
2022-10-03 19:04:00 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-10-03 19:05:12 +0200MajorBiscuit(~MajorBisc@145.94.170.80) (Ping timeout: 264 seconds)
2022-10-03 19:05:18 +0200littlefinger(~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2022-10-03 19:06:22 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-10-03 19:06:30 +0200 <davean> ii8: look at Applicative
2022-10-03 19:07:20 +0200 <ski> @type (<*) -- ii8
2022-10-03 19:07:22 +0200 <lambdabot> Applicative f => f a -> f b -> f a
2022-10-03 19:08:10 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-03 19:09:25 +0200 <ii8> ty
2022-10-03 19:12:54 +0200ddellacosta(~ddellacos@143.244.47.73)
2022-10-03 19:13:11 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 19:14:43 +0200acidjnk_new(~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-10-03 19:16:14 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-10-03 19:16:33 +0200 <ski> ii8 : ooc, what're you writing ?
2022-10-03 19:17:41 +0200kdaishi(~Thunderbi@dyn3135-98.wlan.ic.ac.uk)
2022-10-03 19:18:49 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
2022-10-03 19:21:05 +0200 <ii8> ski: a compiler
2022-10-03 19:22:16 +0200acidjnk_new(~acidjnk@p200300d6e7137a36101a01fba2f91402.dip0.t-ipconnect.de)
2022-10-03 19:22:17 +0200 <[exa]> ii8: btw it's useful to note that all "variants" of that operator actually exist: <*, *>, <$ and $>
2022-10-03 19:22:27 +0200 <[exa]> also good luck with the compiler
2022-10-03 19:22:40 +0200 <ski> (in addition to `<$>' and `<*>', of course. .. there's also `<**>')
2022-10-03 19:24:07 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 19:25:06 +0200razetime_(~quassel@2401:4900:6280:18c5:a9f7:414a:8235:bd9) (Remote host closed the connection)
2022-10-03 19:26:48 +0200vglfr(~vglfr@145.224.100.164) (Read error: Connection reset by peer)
2022-10-03 19:27:01 +0200vglfr(~vglfr@145.224.100.164)
2022-10-03 19:29:32 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 19:30:49 +0200fef(~thedawn@user/thedawn)
2022-10-03 19:30:55 +0200 <ski> @type \g f -> (>>= g) . sequence . (=>> f)
2022-10-03 19:30:57 +0200 <lambdabot> (Monad m, Traversable t, Comonad t) => (t a1 -> m b) -> (t a2 -> m a1) -> t a2 -> m b
2022-10-03 19:32:05 +0200 <EvanR> lol
2022-10-03 19:33:13 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds)
2022-10-03 19:33:45 +0200vegetabelfodosbalkanredheads
2022-10-03 19:34:19 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-10-03 19:34:36 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-10-03 19:34:54 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-10-03 19:35:58 +0200 <EvanR> (Monad m, Traversable w, Comonad w) => (w b -> m c) -> (w a -> m b) -> (w a -> m c)
2022-10-03 19:36:29 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 19:37:39 +0200biberu(~biberu@user/biberu)
2022-10-03 19:38:07 +0200 <ski> you could use some `distibute :: Distributes w m => w (m a) -> m (w a)', in place of `sequence'. .. the latter just happened to be in scope
2022-10-03 19:41:18 +0200littlefinger(~littlefin@pool-100-15-237-121.washdc.fios.verizon.net)
2022-10-03 19:41:28 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 19:42:10 +0200 <EvanR> now I want to use that for something
2022-10-03 19:42:44 +0200 <EvanR> so I can feel like dr strange summoning powerful geometric forces
2022-10-03 19:43:10 +0200o-90(~o-90@gateway/tor-sasl/o-90)
2022-10-03 19:43:15 +0200kdaishi(~Thunderbi@dyn3135-98.wlan.ic.ac.uk) (Ping timeout: 265 seconds)
2022-10-03 19:45:16 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-10-03 19:45:35 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 19:45:43 +0200TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
2022-10-03 19:46:24 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 258 seconds)
2022-10-03 19:48:18 +0200gmg(~user@user/gehmehgeh)
2022-10-03 19:50:59 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Remote host closed the connection)
2022-10-03 19:51:01 +0200gurkenglas(~gurkengla@84.138.199.46)
2022-10-03 19:53:09 +0200Microwave(~Microwave@201-9-167-4.user3p.veloxzone.com.br)
2022-10-03 19:53:13 +0200Lycurgus(~juan@user/Lycurgus)
2022-10-03 19:53:48 +0200 <Microwave> Hi, is there a pastebin for haskell? I want to show something strange that I've found
2022-10-03 19:54:08 +0200 <monochrom> Yeah, this:
2022-10-03 19:54:12 +0200 <monochrom> @where paste
2022-10-03 19:54:12 +0200 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2022-10-03 19:55:29 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 252 seconds)
2022-10-03 19:57:08 +0200 <Microwave> monochrom: thanks
2022-10-03 19:57:11 +0200 <Microwave> https://paste.tomsmeding.com/aU8bUqf8
2022-10-03 19:57:39 +0200o-90(~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
2022-10-03 19:57:43 +0200 <ski> type synonyms can't be partially applied
2022-10-03 19:58:04 +0200 <Microwave> is this partial application?
2022-10-03 19:58:37 +0200 <monochrom> "Bar" alone is the most extreme partial application, yes.
2022-10-03 19:58:38 +0200 <ski> or, i guess you can express it as, they must be used "fully saturated"
2022-10-03 19:58:46 +0200 <ski> "applied to all explicit parameters"
2022-10-03 19:58:48 +0200 <Microwave> I was bashing my head trying to understand what was happening
2022-10-03 19:59:16 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-03 19:59:19 +0200 <Microwave> ((,) Int) instance is partial application?
2022-10-03 19:59:32 +0200 <monochrom> But (,) is not a type synonym.
2022-10-03 20:00:20 +0200 <ski> `LiberalTypeSynonyms' could be used to allow some partial applications (as long as, after expansion, there are no partial applications left) .. but it wouldn't help, in your case
2022-10-03 20:00:58 +0200 <Microwave> I see, there's another way to avoid repetition?
2022-10-03 20:01:12 +0200docter_d(~docter_d@2001:9e8:33d4:6000:1075:34b6:ab2f:922d)
2022-10-03 20:01:21 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 20:01:38 +0200 <monochrom> What is the repetition?
2022-10-03 20:01:38 +0200 <ski> (e.g. `type Foo f = F Bool; type Bar a = (Int,a)', then `Foo Bar' would work, since that expands to `Bar Bool', which expands to `(Int,Bool)
2022-10-03 20:01:39 +0200 <Microwave> And it makes sense now, I'm trying to instance a type constructor, so it is partial application
2022-10-03 20:01:41 +0200 <ski> ')
2022-10-03 20:02:05 +0200vglfr(~vglfr@145.224.100.164) (Ping timeout: 252 seconds)
2022-10-03 20:02:22 +0200 <Microwave> monochrom: This is just an example, so there's no repetition
2022-10-03 20:02:28 +0200 <Microwave> but I use synonyms a lot
2022-10-03 20:03:14 +0200 <ski> sometimes you can use extensionality to remove explicit parameters from type synonym definitions
2022-10-03 20:03:41 +0200beteigeuze1(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
2022-10-03 20:03:41 +0200 <L29Ah> where can i get a parallel mapM that runs at most `nproc` threads simultaneously?
2022-10-03 20:03:57 +0200 <monochrom> Unpopular opinion: Most type synonyms are leaky abstractions originating from the authors not making up their minds whether they want an abstraction or not.
2022-10-03 20:04:11 +0200 <ski> (e.g. going from `type Foo a = StateT S (ExceptT E) a' to `type Foo = StateT S (ExceptT E)')
2022-10-03 20:04:50 +0200skiwould appreciate restricted type synonyms, in GHC (and not just Hugs)
2022-10-03 20:04:56 +0200 <L29Ah> monochrom: most type synonyms are originating from the authors who want less typing and shorter type signatures
2022-10-03 20:05:20 +0200 <ski> (they are similar to exporting a type synonym abstractly from a structure/module, in the MLs)
2022-10-03 20:05:25 +0200 <Microwave> I just don't want to repeat myself a lot, but I won't say that I know what I'm doing
2022-10-03 20:05:41 +0200beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds)
2022-10-03 20:05:52 +0200docter-d(~docter_d@2001:9e8:33d4:6000:70f6:f504:252e:b0ff)
2022-10-03 20:06:07 +0200 <geekosaur> L29Ah, there's `mapConcurrently` but I think by itself it does not set a thread limit
2022-10-03 20:06:07 +0200docter_d(~docter_d@2001:9e8:33d4:6000:1075:34b6:ab2f:922d) (Ping timeout: 268 seconds)
2022-10-03 20:06:26 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-10-03 20:07:00 +0200 <geekosaur> conversely there's the spark-based stuff but that can't do IO. maybe there's something in one of the async pool packages
2022-10-03 20:07:34 +0200 <Microwave> changing `type Bar a = (Int, a)` to `type Bar = ((,) Int)` worked
2022-10-03 20:07:44 +0200 <L29Ah> yeah i've checked out the async-pool stuff, but it needs writing some code to have mapM
2022-10-03 20:07:49 +0200 <Microwave> but what's the difference?
2022-10-03 20:08:12 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 264 seconds)
2022-10-03 20:08:23 +0200mbuf(~Shakthi@49.204.130.86) (Quit: Leaving)
2022-10-03 20:08:35 +0200beteigeuze1(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 268 seconds)
2022-10-03 20:08:44 +0200 <geekosaur> https://hackage.haskell.org/package/async-pool-0.9.1/docs/Control-Concurrent-Async-Pool.html#v:map… and friends look likely to me
2022-10-03 20:08:46 +0200 <ski> type synonyms can be thought a bit of like macros
2022-10-03 20:09:38 +0200 <ski> Microwave : well, you need `TypeSynonymInstances'
2022-10-03 20:10:09 +0200 <geekosaur> create a task group with ncpus (or numCapabilities maybe) threads in it, then mapTasks in that group
2022-10-03 20:11:18 +0200 <Microwave> ski: Won't work even with this extension, already tried
2022-10-03 20:11:38 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
2022-10-03 20:12:26 +0200 <Microwave> I still find strange that `type Bar a = (Int, a)` and `type Bar = ((,) Int)` are different
2022-10-03 20:12:35 +0200 <Microwave> but I can get behind it
2022-10-03 20:13:47 +0200 <geekosaur> it's strange in some sense, but ghc's typechecker would have to be a lot more complex to support type lambdas
2022-10-03 20:13:54 +0200 <monochrom> The rule is that a use site of a type synonym must supply at least "all" parameters.
2022-10-03 20:14:24 +0200 <monochrom> The devil though is in the details of what that "all" means.
2022-10-03 20:14:43 +0200 <monochrom> And that one is a very simplistic formal syntactic shallow superficial thing.
2022-10-03 20:15:02 +0200 <monochrom> Let's say I have "type T1 a = ..." and "type T2 = ...".
2022-10-03 20:15:22 +0200 <monochrom> Then superficially (as promised) T1 requires 1 parameter but T2 requires none.
2022-10-03 20:15:30 +0200 <Microwave> I see, I see
2022-10-03 20:15:41 +0200 <Microwave> It's about the structure perceived by the compiler
2022-10-03 20:15:46 +0200 <Microwave> not the logic behind it
2022-10-03 20:15:52 +0200_73`(~user@pool-173-76-236-42.bstnma.fios.verizon.net)
2022-10-03 20:15:55 +0200 <monochrom> You then say "but T2 a = T1 a" well the language definitions says it doesn't care.
2022-10-03 20:16:10 +0200_73`(~user@pool-173-76-236-42.bstnma.fios.verizon.net) (Remote host closed the connection)
2022-10-03 20:16:13 +0200 <Microwave> I understood now
2022-10-03 20:16:36 +0200 <monochrom> The long story is that without this rule, type inference becomes undecidable. I haven't studied why.
2022-10-03 20:16:52 +0200 <Microwave> magic, probably
2022-10-03 20:16:52 +0200mc47(~mc47@xmonad/TheMC47)
2022-10-03 20:17:01 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2022-10-03 20:17:03 +0200 <Microwave> thanks for the help, you all are awesome
2022-10-03 20:17:39 +0200_73(~user@2600:4040:5aa2:2000:ccdd:de39:6c57:78f9) (Ping timeout: 248 seconds)
2022-10-03 20:17:43 +0200 <[exa]> Microwave: counter-examplish help to understand the problem: the compiler has to be able to check the equality of types during type inference, and it is hard to check that partially applied `Foo Int` and `Bar Int` are equal without making up random names for the missing type and trying to evaluate their definitions (although they might be same in the end). Uglier cases may appear easily.
2022-10-03 20:18:25 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2022-10-03 20:18:35 +0200 <L29Ah> geekosaur: thanks
2022-10-03 20:19:33 +0200 <Microwave> [exa]: It makes sense, it wouldn't work if the definitions were recursive I think
2022-10-03 20:19:44 +0200Everything(~Everythin@37.115.210.35)
2022-10-03 20:19:48 +0200 <[exa]> yeah, that's one of the (infinite) ways to break it. :]
2022-10-03 20:19:56 +0200 <Microwave> Is it possible to have recursion on type stuff?
2022-10-03 20:20:32 +0200 <Microwave> Probably not
2022-10-03 20:20:33 +0200 <[exa]> fortunately not
2022-10-03 20:20:42 +0200 <ski> if you think of type synonyms as macros, then `LiberalTypeSynonyms' allow higher-order macros
2022-10-03 20:20:42 +0200 <Microwave> :(
2022-10-03 20:20:52 +0200 <[exa]> at least in "normal" cases you'd get stopped by occurs check
2022-10-03 20:21:39 +0200 <[exa]> but you can pretty easily circumvent that with a bit of parametrization (remember recursion without recursion using the fixpoint combinator?)
2022-10-03 20:22:03 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 20:22:14 +0200 <Microwave> my tiny brain is starting to hurt
2022-10-03 20:22:27 +0200 <Microwave> I'm trying to learn about haskell for a year
2022-10-03 20:22:31 +0200 <Microwave> it hurts :(
2022-10-03 20:22:39 +0200 <[exa]> I avoid that matter completely for similar brain reasons. :D
2022-10-03 20:22:52 +0200 <ski> monochrom : iirc, the problem was that without this, you have to allow general unification between lambda terms .. which is not decidable (and certainly doesn't have most general unifiers). or, possibly, you could restrict to a decidable subset (like L-lambda unification) ..
2022-10-03 20:22:59 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-10-03 20:23:19 +0200 <Microwave> I'm going now, thanks for all the help, byee
2022-10-03 20:23:27 +0200 <ski> have fun
2022-10-03 20:23:32 +0200 <[exa]> o/
2022-10-03 20:23:43 +0200Microwave(~Microwave@201-9-167-4.user3p.veloxzone.com.br) (Quit: Client closed)
2022-10-03 20:23:46 +0200 <monochrom> I have heard that higher-order unification is undecidable. Is that this one?
2022-10-03 20:24:58 +0200 <[exa]> ( total count of Rice theorem instances I observed: *increases* )
2022-10-03 20:26:41 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-10-03 20:27:02 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 20:27:44 +0200kdaishi(~Thunderbi@dyn3137-209.wlan.ic.ac.uk)
2022-10-03 20:28:41 +0200chimp_(~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 265 seconds)
2022-10-03 20:30:13 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-10-03 20:32:05 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
2022-10-03 20:33:41 +0200shapr(~user@68.54.166.125)
2022-10-03 20:39:06 +0200fjMSX(~hypni2p@2.92.213.55) (Read error: Connection reset by peer)
2022-10-03 20:40:35 +0200kdaishi(~Thunderbi@dyn3137-209.wlan.ic.ac.uk) (Ping timeout: 252 seconds)
2022-10-03 20:40:58 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Remote host closed the connection)
2022-10-03 20:43:39 +0200vorpuni(~pvorp@2001:861:3881:c690:a94c:fa1b:4d2b:c74b)
2022-10-03 20:44:59 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-10-03 20:45:43 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 20:45:47 +0200vglfr(~vglfr@145.224.100.164)
2022-10-03 20:48:29 +0200DavidBinder(~DavidBind@2a02:8070:8a83:3740:64de:c2ea:8f9f:d460)
2022-10-03 20:49:35 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net)
2022-10-03 20:52:19 +0200rockymarine(~rocky@user/rockymarine)
2022-10-03 20:54:58 +0200DavidBinder(~DavidBind@2a02:8070:8a83:3740:64de:c2ea:8f9f:d460) (Quit: Client closed)
2022-10-03 20:57:22 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-10-03 20:57:24 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
2022-10-03 20:57:58 +0200acidjnk_new(~acidjnk@p200300d6e7137a36101a01fba2f91402.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-10-03 20:58:41 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-10-03 20:59:56 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2022-10-03 20:59:58 +0200Lord_of_Life_Lord_of_Life
2022-10-03 21:03:14 +0200motherfsck(~motherfsc@user/motherfsck) (Remote host closed the connection)
2022-10-03 21:03:55 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
2022-10-03 21:05:25 +0200son0p(~ff@2800:e2:f80:867:cac2:6501:5166:e177) (Ping timeout: 268 seconds)
2022-10-03 21:07:33 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-10-03 21:10:39 +0200acidjnk_new(~acidjnk@p200300d6e7137a36edbbd7fd5b13d5e1.dip0.t-ipconnect.de)
2022-10-03 21:11:49 +0200motherfsck(~motherfsc@user/motherfsck)
2022-10-03 21:14:19 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 21:19:11 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-10-03 21:22:20 +0200cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2022-10-03 21:22:21 +0200cheater1__(~Username@user/cheater)
2022-10-03 21:22:25 +0200cheater1__cheater
2022-10-03 21:25:03 +0200docter-d(~docter_d@2001:9e8:33d4:6000:70f6:f504:252e:b0ff) (Quit: Leaving)
2022-10-03 21:25:47 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-10-03 21:26:22 +0200docter_d(~{docter_d@2001:9e8:33d4:6000:70f6:f504:252e:b0ff)
2022-10-03 21:26:54 +0200docter_d(~{docter_d@2001:9e8:33d4:6000:70f6:f504:252e:b0ff) (Client Quit)
2022-10-03 21:28:08 +0200dumptruckman(~dumptruck@23-239-13-163.ip.linodeusercontent.com) (Quit: ZNC - https://znc.in)
2022-10-03 21:35:12 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-10-03 21:38:09 +0200lysrosalind
2022-10-03 21:38:53 +0200rosalind(lys@id-194105.uxbridge.irccloud.com) (Quit: Arcadia...)
2022-10-03 21:40:20 +0200pavonia(~user@user/siracusa)
2022-10-03 21:42:40 +0200doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Read error: Connection reset by peer)
2022-10-03 21:44:56 +0200dumptruckman(~dumptruck@172-105-129-222.ip.linodeusercontent.com)
2022-10-03 21:47:27 +0200mikoto-chan(~mikoto-ch@164.5.249.78)
2022-10-03 21:50:14 +0200rosalind(rosalind@id-194105.uxbridge.irccloud.com)
2022-10-03 21:50:39 +0200rosalindlys
2022-10-03 21:50:48 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-03 21:50:48 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 21:51:04 +0200zeenk(~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) (Quit: Konversation terminated!)
2022-10-03 21:51:49 +0200gurkenglas(~gurkengla@84.138.199.46) (Ping timeout: 265 seconds)
2022-10-03 21:55:17 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-10-03 21:55:18 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-03 21:55:21 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 21:57:46 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 22:00:36 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds)
2022-10-03 22:02:31 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Remote host closed the connection)
2022-10-03 22:05:24 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-10-03 22:07:51 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-10-03 22:08:12 +0200cdimitroulas(~cdimitrou@cpc115154-dals23-2-0-cust44.20-2.cable.virginm.net) (Ping timeout: 264 seconds)
2022-10-03 22:08:46 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-10-03 22:09:03 +0200lyle(~lyle@104.246.145.85) (Quit: WeeChat 3.6)
2022-10-03 22:12:20 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-10-03 22:14:51 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:3719:5feb:ad96:c94f) (Quit: WeeChat 2.8)
2022-10-03 22:15:06 +0200lys(rosalind@id-194105.uxbridge.irccloud.com) (Quit: bbl)
2022-10-03 22:15:11 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2022-10-03 22:17:29 +0200balkanredheads(~vegetabel@user/vegetabelfodos) (Quit: quit)
2022-10-03 22:25:59 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 22:30:29 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-10-03 22:32:39 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi)
2022-10-03 22:34:03 +0200lys(lys@id-194105.uxbridge.irccloud.com)
2022-10-03 22:35:52 +0200mastarija(~mastarija@2a05:4f46:e03:6000:9d3a:32c4:25b6:9794)
2022-10-03 22:36:21 +0200monadplus(~monadplus@226.red-83-42-37.dynamicip.rima-tde.net)
2022-10-03 22:36:36 +0200fef(~thedawn@user/thedawn) (Ping timeout: 258 seconds)
2022-10-03 22:37:27 +0200monadplus(~monadplus@226.red-83-42-37.dynamicip.rima-tde.net) (Client Quit)
2022-10-03 22:39:28 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 246 seconds)
2022-10-03 22:43:40 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds)
2022-10-03 22:45:31 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-03 22:46:35 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-10-03 22:47:12 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-03 22:47:54 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 22:49:10 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-03 22:49:16 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-10-03 22:52:50 +0200darkstardevx(~darkstard@192.183.207.94)
2022-10-03 22:54:10 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds)
2022-10-03 22:54:10 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 265 seconds)
2022-10-03 22:54:33 +0200darkstardevx(~darkstard@192.183.207.94) (Remote host closed the connection)
2022-10-03 22:54:43 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-10-03 22:54:57 +0200darkstardevx(~darkstard@192.183.207.94)
2022-10-03 22:55:38 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-03 22:58:05 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-10-03 22:59:17 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-10-03 22:59:40 +0200kdaishi(~Thunderbi@94.191.136.51.mobile.tre.se)
2022-10-03 23:00:13 +0200 <L29Ah> https://github.com/jwiegley/async-pool/issues/4 damn
2022-10-03 23:00:16 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 23:01:08 +0200 <L29Ah> is it possible to disable preempt-ability of SOME ghc green threads?
2022-10-03 23:01:39 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 250 seconds)
2022-10-03 23:03:00 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
2022-10-03 23:03:28 +0200 <monochrom> Are you sure you can't simply avoid nesting mapTasks?
2022-10-03 23:03:55 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-03 23:04:15 +0200 <L29Ah> monochrom: i'm diving into arbitrary file trees, so it doesn't seem like a good solution
2022-10-03 23:04:30 +0200 <monochrom> Also I disbelieve in the very strong "don't preempt me", I believe in the weaker but very reasonable "atomic" aka "critical section" which is a solved problem.
2022-10-03 23:04:31 +0200 <L29Ah> and the result is a tree as well
2022-10-03 23:05:00 +0200 <L29Ah> monochrom: i don't want "don't preempt me", i want "i can't preempt anything"
2022-10-03 23:07:00 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 264 seconds)
2022-10-03 23:07:41 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-03 23:08:03 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Ping timeout: 268 seconds)
2022-10-03 23:08:03 +0200 <L29Ah> so that a newly spawned thread won't wake up until there's available cpu time that is not desired by existing threads
2022-10-03 23:10:03 +0200mikoto-chan(~mikoto-ch@164.5.249.78) (Read error: Connection reset by peer)
2022-10-03 23:13:40 +0200son0p(~ff@2800:e2:f80:867:cac2:6501:5166:e177)
2022-10-03 23:14:53 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
2022-10-03 23:16:41 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:4be8:104:55e3:55fc) (Ping timeout: 268 seconds)
2022-10-03 23:16:50 +0200littlefinger(~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2022-10-03 23:19:47 +0200cp1313[m](~cp1313mat@2001:470:69fc:105::2:9293)
2022-10-03 23:20:25 +0200mmhat(~mmh@p200300f1c70623b9ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-10-03 23:20:45 +0200hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-10-03 23:22:56 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 268 seconds)
2022-10-03 23:24:42 +0200acidjnk_new(~acidjnk@p200300d6e7137a36edbbd7fd5b13d5e1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-10-03 23:27:19 +0200_73(~user@2600:4040:5aa2:2000:ccdd:de39:6c57:78f9)
2022-10-03 23:27:30 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-10-03 23:30:15 +0200littlefinger(~littlefin@pool-100-15-237-121.washdc.fios.verizon.net)
2022-10-03 23:33:31 +0200stackdroid18(~stackdroi@user/stackdroid)
2022-10-03 23:33:59 +0200mmhat(~mmh@p200300f1c7062353ee086bfffe095315.dip0.t-ipconnect.de)
2022-10-03 23:34:00 +0200kdaishi(~Thunderbi@94.191.136.51.mobile.tre.se) (Ping timeout: 264 seconds)
2022-10-03 23:34:00 +0200einfair(~einfair@broadband-90-154-71-147.ip.moscow.rt.ru) (Ping timeout: 268 seconds)
2022-10-03 23:37:20 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-10-03 23:38:25 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-03 23:43:17 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-03 23:46:54 +0200mastarija(~mastarija@2a05:4f46:e03:6000:9d3a:32c4:25b6:9794) (Quit: WeeChat 3.5)
2022-10-03 23:48:47 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
2022-10-03 23:51:14 +0200littlefinger(~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Quit: Client closed)
2022-10-03 23:57:26 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Quit: Lost terminal)
2022-10-03 23:59:06 +0200son0p(~ff@2800:e2:f80:867:cac2:6501:5166:e177) (Remote host closed the connection)