Home liberachat/#haskell: Logs Calendar

Logs on 2022-10-03 (liberachat/#haskell)

00:01:43 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:04:03 califax joins (~califax@user/califx)
00:05:27 doyougnu- joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
00:08:03 × Oiyqlk quits (~rscastilh@191-214-26-24.user.veloxzone.com.br) ()
00:08:39 × doyougnu- quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
00:09:34 doyougnu- joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
00:11:57 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:509f:aac5:1bc5:5910) (Remote host closed the connection)
00:15:10 beteigeuze1 joins (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
00:15:56 moonsheep joins (~user@user/moonsheep)
00:16:21 × doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 265 seconds)
00:16:49 <moonsheep> what's the best approach to get a cereal/binary-like Get/Put class that uses attoparsec for getting?
00:16:50 × doyougnu- quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 265 seconds)
00:16:54 <moonsheep> do I have to roll my own put monad?
00:17:01 × beteigeuze quits (~Thunderbi@89.187.168.55) (Ping timeout: 260 seconds)
00:17:02 beteigeuze1 is now known as beteigeuze
00:17:34 <moonsheep> am I forced to do something like https://paste.tomsmeding.com/eFlfgbl9 ?
00:18:11 <moonsheep> incremental parsing is critical, so I definitely want to use attoparsec
00:20:22 <_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"?
00:20:37 <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?
00:21:19 <moonsheep> I have no idea what the "contravariant functor hierarchy" is, is it worth looking into?
00:21:29 <moonsheep> my goal is to parse a TCP stream in real time
00:21:55 <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.
00:22:12 <ski> _73 : `newtype's can have instances
00:22:17 <jackdk> also that
00:22:26 <moonsheep> can't you use TypeSnonymInstances?
00:22:26 <ski> (or `data')
00:22:45 <ski> may still run into overlapping issues
00:22:50 <moonsheep> true
00:22:55 <moonsheep> saved my ass a few times thouggh
00:23:07 <_73> Ok, right a newtype basically works like my "data Foo = Foo String" example but is optimized away, correct?
00:23:09 <ski> restricted type synonyms (like in Hugs) would be nice to have in GHC
00:23:21 <ski> _73 : more or less, yes
00:23:33 <_73> Ok got it
00:23:38 <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
00:24:06 <moonsheep> huh, interesting
00:24:19 <moonsheep> how are they relevant to serializing type classess though?
00:24:30 <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
00:25:08 <moonsheep> oh yeah my bad, I do need to render out the same structure
00:25:12 <moonsheep> it's a bidirectional thing
00:25:16 <moonsheep> two clients communciating as equals
00:26:20 <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.
00:26:31 codaraxis__ joins (~codaraxis@user/codaraxis)
00:26:33 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:509f:aac5:1bc5:5910)
00:27:03 <moonsheep> hmm, will look into them thanks
00:27:38 rockymarine joins (~rocky@user/rockymarine)
00:28:04 <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.
00:28:24 <moonsheep> yeah I was fearing that answer :p
00:28:33 <jackdk> moonsheep: why fearing?
00:28:35 <moonsheep> I may actually end up doing that
00:28:42 <moonsheep> jackdk: well, mostly for verbosity reasons
00:29:05 <moonsheep> in my head it's nice for things to be separated and interfaced with with a consistent interface
00:29:21 <moonsheep> instead of having to remember a whole bunch of names (even with a consistent naming scheme)
00:29:29 <moonsheep> but oh well
00:30:13 × codaraxis___ quits (~codaraxis@user/codaraxis) (Ping timeout: 246 seconds)
00:30:15 <jackdk> I should also point out that cereal at least has an incremental interface in Data.Serialize.Get
00:30:32 <moonsheep> oh I didn't know that
00:30:47 <moonsheep> I've already been sold on attoparsec though
00:30:59 <jackdk> But attoparsec is also pretty great.
00:31:19 <moonsheep> yeah, never noticed that sneaky `runGetPartial'
00:31:57 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 252 seconds)
00:32:47 <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 :|
00:33:31 <moonsheep> hmm that's an interesting idea
00:34:23 <moonsheep> how does it feel "unergonomic"?
00:35:16 <EvanR> it sounds like you aren't even trying to produce the parser and the unparser from the same code
00:36:05 <jackdk> https://github.com/tomjaguarpaw/product-profunctors/pull/54#issuecomment-754205222 sort of things
00:36:31 <moonsheep> so sort of missing the point of it entirely?
00:36:35 codaraxis___ joins (~codaraxis@user/codaraxis)
00:37:39 × Guest1698 quits (~Guest1698@20.83.116.49) (Remote host closed the connection)
00:38:06 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
00:38:18 <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
00:38:55 Guest1698 joins (~Guest1698@20.83.116.49)
00:39:03 <moonsheep> yeah that's prolly worth looking into
00:39:20 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
00:40:23 × codaraxis__ quits (~codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
00:41:51 × codaraxis___ quits (~codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
00:43:41 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
00:46:44 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
00:48:34 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
00:50:43 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
00:51:01 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
00:51:45 chexum joins (~quassel@gateway/tor-sasl/chexum)
00:52:39 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
00:53:34 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
00:56:53 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
00:59:29 nate4 joins (~nate@98.45.169.16)
01:06:06 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
01:07:50 × xff0x quits (~xff0x@2405:6580:b080:900:b7c1:3130:710b:2a7f) (Ping timeout: 244 seconds)
01:08:37 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
01:10:58 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
01:11:17 × CiaoSen quits (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
01:11:52 Lycurgus joins (~juan@user/Lycurgus)
01:12:22 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
01:18:10 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
01:20:24 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
01:20:34 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
01:20:49 × moonsheep quits (~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
01:21:36 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
01:22:51 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
01:26:26 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
01:27:48 × cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 268 seconds)
01:27:49 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
01:28:04 cods joins (~fred@82-65-232-44.subs.proxad.net)
01:31:26 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
01:32:43 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
01:33:46 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
01:37:00 × berberman quits (~berberman@user/berberman) (Ping timeout: 268 seconds)
01:38:19 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
01:39:39 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
01:40:45 × beteigeuze quits (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 250 seconds)
01:43:14 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
01:45:43 macabre is now known as elevenfingercrea
01:45:52 elevenfingercrea is now known as bitterqueso
01:47:41 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
01:50:43 × bitterqueso quits (~m@161.35.15.236) (Quit: The Lounge - https://thelounge.chat)
01:51:28 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:52:55 × _73 quits (~user@pool-173-76-236-42.bstnma.fios.verizon.net) (Remote host closed the connection)
01:59:18 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
02:00:24 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
02:06:04 × ddellacosta quits (~ddellacos@143.244.47.77) (Ping timeout: 265 seconds)
02:07:42 nate4 joins (~nate@98.45.169.16)
02:07:53 ddellacosta joins (~ddellacos@89.45.224.218)
02:08:28 mixphix joins (~cigsender@99.208.33.70)
02:10:11 × td_ quits (~td@94.134.91.231) (Ping timeout: 260 seconds)
02:11:52 td_ joins (~td@94.134.91.118)
02:14:59 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
02:24:03 × mmhat quits (~mmh@p200300f1c70623b9ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
02:31:40 × mixphix quits (~cigsender@99.208.33.70) (Ping timeout: 246 seconds)
02:36:26 berberman joins (~berberman@user/berberman)
02:39:54 × texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 265 seconds)
02:41:38 mixphix joins (~cigsender@99.208.33.70)
02:43:32 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
02:44:54 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
02:45:47 × mixphix quits (~cigsender@99.208.33.70) (Ping timeout: 252 seconds)
02:51:42 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
02:56:23 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
02:56:40 [Leary] joins (~Leary]@user/Leary/x-0910699)
03:01:53 mixphix joins (~cigsender@99.208.33.70)
03:04:17 fouine joins (~nobody@5.1.66.3)
03:06:19 × mixphix quits (~cigsender@99.208.33.70) (Ping timeout: 252 seconds)
03:15:25 × fouine quits (~nobody@5.1.66.3) (Ping timeout: 246 seconds)
03:16:22 fouine joins (~nobody@5.1.66.3)
03:19:51 × rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
03:21:48 causal joins (~user@50.35.83.177)
03:22:00 rembo10 joins (~rembo10@main.remulis.com)
03:31:58 rockymarine joins (~rocky@user/rockymarine)
03:35:32 mixphix joins (~cigsender@174.91.129.69)
03:37:07 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
03:40:19 × mixphix quits (~cigsender@174.91.129.69) (Ping timeout: 265 seconds)
03:41:41 nate4 joins (~nate@98.45.169.16)
03:45:19 × jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
03:46:36 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds)
03:55:30 edrx parts (~Eduardo@2804:56c:d2d3:4800:cf7d:b421:4c3a:392e) (Killed buffer)
04:01:44 × fouine quits (~nobody@5.1.66.3) (Quit: leaving)
04:04:10 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
04:05:07 chexum joins (~quassel@gateway/tor-sasl/chexum)
04:05:07 × ddellacosta quits (~ddellacos@89.45.224.218) (Ping timeout: 246 seconds)
04:32:36 bilegeek joins (~bilegeek@2600:1008:b018:1dfc:44e1:aaa5:595f:8e17)
04:33:46 mbuf joins (~Shakthi@49.204.130.86)
04:34:31 × berberman quits (~berberman@user/berberman) (Ping timeout: 246 seconds)
04:36:51 × mvk quits (~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 248 seconds)
04:41:31 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
04:43:04 × mbuf quits (~Shakthi@49.204.130.86) (Remote host closed the connection)
04:44:17 mbuf joins (~Shakthi@49.204.130.86)
04:46:03 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
04:47:09 × mbuf quits (~Shakthi@49.204.130.86) (Remote host closed the connection)
04:49:51 mbuf joins (~Shakthi@49.204.130.86)
04:50:13 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
04:56:41 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
04:58:25 nate4 joins (~nate@98.45.169.16)
05:00:42 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
05:02:33 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 252 seconds)
05:03:17 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
05:06:51 rockymarine joins (~rocky@user/rockymarine)
05:11:42 × raym quits (~aritra@user/raym) (Quit: afk for a while)
05:13:45 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
05:14:06 chexum joins (~quassel@gateway/tor-sasl/chexum)
05:14:46 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 246 seconds)
05:17:31 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
05:18:36 chomwitt joins (~chomwitt@2a02:587:dc14:f500:4be8:104:55e3:55fc)
05:21:45 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 250 seconds)
05:28:15 rockymarine joins (~rocky@user/rockymarine)
05:34:45 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
05:37:44 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
05:49:22 <Square> Is there some easy short hand for :: a -> (a -> b) -> (a,b) ?
05:49:50 <Square> (or arguments flipped)
05:51:16 <Square> would be neat in combination with point syntax
05:53:15 <jackdk> @djinn a -> (a -> b) -> (a, b)
05:53:16 <lambdabot> f a b = (a, b a)
05:53:28 <jackdk> @pl \f a b -> (a, b a)
05:53:29 <lambdabot> const (liftM2 (.) (,) (flip id))
05:53:37 <dolio> :t ap (,)
05:53:39 <lambdabot> (a1 -> a2) -> a1 -> (a1, a2)
05:54:20 <Square> thanks guys
05:56:05 × shapr quits (~user@68.54.166.125) (Ping timeout: 252 seconds)
05:56:07 <EvanR> let easyShorthandRenameThisThough x f = (x, f x)
05:56:11 <EvanR> in
05:56:59 king_gs joins (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
05:57:48 <Square> yeah, probably better. Just thought it could be a common function lurking in base somewhere
05:58:58 <EvanR> like I said when trying to learn music, there's only so many songs xD
05:59:17 <EvanR> combinatorially speaking
05:59:43 <EvanR> https://hackage.haskell.org/package/data-aviary
06:02:04 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
06:02:39 gmg joins (~user@user/gehmehgeh)
06:03:02 michalz joins (~michalz@185.246.207.197)
06:04:24 <Square> EvanR, haha. I plead guilty
06:04:41 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
06:04:45 × king_gs quits (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Quit: king_gs)
06:05:09 <jackdk> Square: it's `toSnd` in relude
06:05:28 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Quit: xff0x)
06:06:01 <Square> jackdk, hmm. I should look into alternate preludes one day.
06:06:46 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
06:06:56 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
06:07:24 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
06:10:17 <jackdk> only if you're not writing libraries ;-)
06:10:17 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 250 seconds)
06:10:45 king_gs joins (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
06:11:18 <chreekat> > \ f -> id &&& f
06:11:20 <lambdabot> error:
06:11:20 <lambdabot> • No instance for (Typeable b0)
06:11:20 <lambdabot> arising from a use of ‘show_M78487517099835316738’
06:11:34 <chreekat> or :t or whatever :P
06:12:50 <jackdk> :t (id &&&)
06:12:52 <lambdabot> (b -> c') -> b -> (b, c')
06:15:45 <chreekat> but EvanR's solution is best imo
06:15:51 rockymarine joins (~rocky@user/rockymarine)
06:16:12 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:34:28 berberman joins (~berberman@user/berberman)
06:34:35 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
06:38:47 <ski> Square : `(id &&&)'
06:39:16 <ski> (i sometimes call this `graph'. and `cograph = (||| id)')
06:40:03 <Square> ski, thanks. Where is &&& defined?
06:40:09 <ski> oh. chreekat already mentioned
06:40:24 × edr quits (~edr@user/edr) (Quit: ZNC 1.6.5 - http://znc.in)
06:40:31 <ski> well, `Control.Array'. or `Data.Profunctor'
06:40:36 <Square> gotcha
06:40:42 <ski> and `id' can be `Control.Category.id'
06:41:11 <ski> (or `Control.Arrow.arr Prelude.id', if you prefer ..)
06:41:31 <ski> er, s/Array/Arrow/
06:41:45 <Square> There's many ways to do the same thing. =D
06:44:04 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
06:44:49 <ski> @type (Control.Category.id &&&)
06:44:51 <lambdabot> Arrow a => a c c' -> a c (c, c')
06:44:52 <ski> @type (||| Control.Category.id)
06:44:54 <lambdabot> ArrowChoice a => a b d -> a (Either b d) d
06:49:12 <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)
06:51:54 <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)
06:56:45 zeenk joins (~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63)
06:57:34 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
07:00:07 × Inst quits (~Liam@172.109.205.98) (Read error: Connection reset by peer)
07:01:39 lortabac joins (~lortabac@2a01:e0a:541:b8f0:3719:5feb:ad96:c94f)
07:05:47 k8yun__ joins (~k8yun@user/k8yun)
07:06:58 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds)
07:07:38 × phma quits (phma@2001:5b0:212a:9038:ee27:41c9:caf6:d84c) (Read error: Connection reset by peer)
07:07:40 acidjnk_new joins (~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de)
07:09:03 × k8yun_ quits (~k8yun@user/k8yun) (Ping timeout: 252 seconds)
07:09:25 phma joins (phma@2001:5b0:211f:2ab8:24ce:9e74:707e:f3b4)
07:10:05 × king_gs quits (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Ping timeout: 268 seconds)
07:10:49 × k8yun__ quits (~k8yun@user/k8yun) (Ping timeout: 268 seconds)
07:14:10 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
07:16:13 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
07:18:19 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds)
07:19:20 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 268 seconds)
07:19:34 jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
07:28:53 rockymarine joins (~rocky@user/rockymarine)
07:31:57 × jargon quits (~jargon@184.101.88.60) (Remote host closed the connection)
07:38:01 × berberman quits (~berberman@user/berberman) (Ping timeout: 260 seconds)
07:38:28 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
07:39:24 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 264 seconds)
07:40:46 × shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit)
07:43:17 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
07:43:29 × bilegeek quits (~bilegeek@2600:1008:b018:1dfc:44e1:aaa5:595f:8e17) (Quit: Leaving)
07:53:01 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:53:53 dr_merijn joins (~dr_merijn@86-86-29-250.fixed.kpn.net)
07:54:31 rockymarine joins (~rocky@user/rockymarine)
07:55:21 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
07:55:56 nschoe joins (~quassel@141.101.51.197)
07:57:38 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
08:00:50 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds)
08:02:12 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
08:04:44 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
08:07:29 beteigeuze joins (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
08:08:14 titibandit joins (~titibandi@xdsl-89-0-65-2.nc.de)
08:10:44 rockymarine joins (~rocky@user/rockymarine)
08:14:01 cyphase joins (~cyphase@user/cyphase)
08:15:05 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 250 seconds)
08:17:15 frost joins (~frost@user/frost)
08:17:29 razetime joins (~quassel@117.193.7.104)
08:36:05 berberman joins (~berberman@user/berberman)
08:41:05 chimp_ joins (~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
08:43:00 × Psybur quits (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 264 seconds)
08:43:48 waldo joins (~waldo@user/waldo)
08:44:30 MajorBiscuit joins (~MajorBisc@145.94.170.80)
08:50:48 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:509f:aac5:1bc5:5910) (Remote host closed the connection)
09:00:10 × sjanssen quits (~sjanssenm@2001:470:69fc:105::1:61d8) (Quit: You have been kicked for being idle)
09:00:10 nate4 joins (~nate@98.45.169.16)
09:00:21 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
09:02:36 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
09:04:56 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
09:05:18 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
09:08:39 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Remote host closed the connection)
09:08:52 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
09:09:04 fef joins (~thedawn@user/thedawn)
09:14:26 jakalx parts (~jakalx@base.jakalx.net) ()
09:21:17 aku_ is now known as aku
09:24:25 × waldo quits (~waldo@user/waldo) (Ping timeout: 268 seconds)
09:25:14 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:32:45 jakalx joins (~jakalx@base.jakalx.net)
09:34:50 waldo joins (~waldo@user/waldo)
09:44:37 × acidjnk_new quits (~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
09:51:18 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
09:55:47 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Ping timeout: 248 seconds)
09:56:24 wonko joins (~wjc@2a0e:1c80:11::50)
09:57:37 xerox__ is now known as xerox
09:58:39 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
09:58:46 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
10:09:21 lys joins (lys@id-194105.uxbridge.irccloud.com)
10:10:49 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:13:18 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
10:13:32 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
10:17:08 acidjnk_new joins (~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de)
10:17:51 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
10:24:55 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
10:27:27 × berberman quits (~berberman@user/berberman) (Ping timeout: 268 seconds)
10:38:39 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
10:39:32 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
10:42:38 xerox is now known as edi
10:43:11 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
10:44:55 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
10:45:30 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
11:00:23 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
11:01:32 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
11:02:41 CiaoSen joins (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:03:06 lys is now known as rosalind
11:03:24 mmhat joins (~mmh@p200300f1c70623b9ee086bfffe095315.dip0.t-ipconnect.de)
11:05:16 doyougnu joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
11:06:14 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
11:09:20 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 265 seconds)
11:09:34 rosalind is now known as lys
11:12:11 kritzefitz joins (~kritzefit@debian/kritzefitz)
11:12:15 × doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
11:14:09 × waldo quits (~waldo@user/waldo) (Quit: quit)
11:25:06 berberman joins (~berberman@user/berberman)
11:26:30 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
11:27:27 × beteigeuze quits (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Quit: beteigeuze)
11:27:43 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
11:28:56 zaquest joins (~notzaques@5.130.79.72)
11:34:58 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
11:39:23 lyle joins (~lyle@104.246.145.85)
11:40:06 × acidjnk_new quits (~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
11:50:40 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
11:52:46 waldo joins (~waldo@user/waldo)
11:53:17 jakalx parts (~jakalx@base.jakalx.net) ()
11:55:15 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 248 seconds)
11:56:11 kdaishi joins (~Thunderbi@dyn3136-11.wlan.ic.ac.uk)
12:00:13 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
12:00:34 jakalx joins (~jakalx@base.jakalx.net)
12:00:45 acidjnk_new joins (~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de)
12:00:46 × lys quits (lys@id-194105.uxbridge.irccloud.com) (Quit: Song continued)
12:02:37 × kdaishi quits (~Thunderbi@dyn3136-11.wlan.ic.ac.uk) (Quit: kdaishi)
12:02:51 kdaishi joins (~Thunderbi@dyn3136-11.wlan.ic.ac.uk)
12:04:48 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
12:06:22 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
12:07:36 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 264 seconds)
12:08:10 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:09:16 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
12:09:59 lys joins (lys@id-194105.uxbridge.irccloud.com)
12:11:40 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
12:13:24 × titibandit quits (~titibandi@xdsl-89-0-65-2.nc.de) (Quit: Leaving.)
12:14:46 × CiaoSen quits (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
12:16:13 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
12:19:14 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
12:19:20 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
12:20:48 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
12:22:18 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
12:22:51 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
12:23:08 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
12:23:36 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
12:23:48 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:23:52 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
12:25:07 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 250 seconds)
12:27:10 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
12:27:33 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
12:28:31 × berberman quits (~berberman@user/berberman) (Ping timeout: 260 seconds)
12:28:35 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
12:31:31 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
12:43:05 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
12:48:01 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
12:53:37 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:57:41 doyougnu joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
12:58:23 abiss27 joins (~abiss27@user/abiss)
12:59:09 <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.
13:00:01 × razetime quits (~quassel@117.193.7.104) (Ping timeout: 265 seconds)
13:00:14 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
13:00:19 × kdaishi quits (~Thunderbi@dyn3136-11.wlan.ic.ac.uk) (Ping timeout: 252 seconds)
13:01:43 nate4 joins (~nate@98.45.169.16)
13:03:58 kdaishi joins (~Thunderbi@dyn3136-11.wlan.ic.ac.uk)
13:05:15 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
13:05:57 lys is now known as rosalind
13:06:26 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
13:06:59 × kdaishi quits (~Thunderbi@dyn3136-11.wlan.ic.ac.uk) (Client Quit)
13:07:07 razetime joins (~quassel@117.193.0.127)
13:07:18 kdaishi joins (~Thunderbi@dyn3136-11.wlan.ic.ac.uk)
13:07:39 rosalind is now known as lys
13:08:31 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
13:08:35 × doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection)
13:08:59 doyougnu joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
13:09:21 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
13:10:37 Midjak joins (~Midjak@82.66.147.146)
13:17:48 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
13:17:53 moonsheep joins (~user@user/moonsheep)
13:18:05 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
13:18:12 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
13:18:32 <moonsheep> what is my best bet if I want an encrypted ACID embedded database?
13:18:40 <moonsheep> sqlite and acid-state both seem to use their own disk writing code
13:18:46 <moonsheep> am I forced to roll my own?
13:18:54 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
13:20:27 <dr_merijn> moonsheep: Definitely don't use acid-state
13:20:39 <geekosaur> acid-state is misnamed
13:20:40 <dr_merijn> moonsheep: FYI, you can implement custom backends for sqlite
13:20:43 <geekosaur> at best
13:21:08 <moonsheep> dr_merijn: you can?
13:21:09 <dr_merijn> moonsheep: So you can probably implement an encrypted writer for sqlite and swap it in
13:21:21 <moonsheep> I found an sqlite plugin for encryption but it seems to be prorpietary
13:21:44 <moonsheep> this? https://sqlite.org/forum/forumpost/e80a4afe1b?t=c&unf
13:22:03 <moonsheep> geekosaur: what's wrong with acid-state?
13:22:04 <dr_merijn> moonsheep: https://sqlite.org/vfs.html
13:22:05 <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?
13:22:25 <moonsheep> no the encryption is for storing private keys and logs and stuff
13:22:30 <moonsheep> nothing to do with the network stuff
13:22:32 <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
13:22:38 <moonsheep> oh good to know
13:22:58 <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
13:23:01 <geekosaur> dr_merijn and others know more about acid-state than I do, I just know it's not very ACID
13:23:12 <moonsheep> dr_merijn: oh god damn
13:23:16 <dr_merijn> I'm sure "encrypted filesystem interaction" is trivial in comparison
13:23:24 Topsi joins (~Topsi@dyndsl-095-033-018-041.ewe-ip-backbone.de)
13:23:36 <dr_merijn> ACID state is very much not acid, yeah
13:23:42 <moonsheep> why is that?
13:24:07 <moonsheep> it claims to "get stronger ACID guarantees than most RDBMS offer"
13:24:12 <moonsheep> is that just a filthy lie?
13:24:29 <dr_merijn> There's multiple data corruption issues last time I checked
13:24:50 <moonsheep> oh that's not good
13:25:10 <moonsheep> is that a design flaw, or is the implementation just bad?
13:25:58 <dr_merijn> I was very excited about it at first, but they don't really *seriously* test for robustness against corruption
13:26:10 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds)
13:26:18 <dr_merijn> So the implementation quality overall is just a bit meh and kinda optimistic
13:26:33 <Athas> moonsheep: https://gist.github.com/parsonsmatt/6b747d3020c4a4ac43b6580b65392a23
13:26:36 <moonsheep> oh alright, will keep that in mind
13:26:41 <dr_merijn> i.e. it's acid, as long as "random power failures and random process kills aren't in your threat model"
13:27:15 <moonsheep> I mean, almost anything is acid as long as those conditions hold
13:27:34 <dr_merijn> ah, yeah, I was looking for the ticket linked in Athas' link
13:27:51 <moonsheep> alright, acid-state is off-limits then
13:28:19 <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
13:29:11 <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"
13:29:11 <moonsheep> ah I was planning to use beam instead of persistent
13:29:16 <moonsheep> I have slightly more experience with it
13:29:28 <moonsheep> dr_merijn: damn you sold me on sqlite
13:29:28 <dr_merijn> moonsheep: tbh, I'd just go with sqlite-simple if I had to do things again
13:29:39 <moonsheep> yeah that's fair
13:29:49 <moonsheep> may do that actually
13:30:01 <dr_merijn> I didn't because I wasn't very comfortable with SQL when I started
13:30:17 shriekingnoise joins (~shrieking@186.137.167.202)
13:30:25 <moonsheep> I think I'm more comfortable with SQL than beam's DSL so that should be fine hopefully
13:30:48 <dr_merijn> moonsheep: sqlite also has the advantage that extending it with custom functions is pretty easy
13:30:56 <moonsheep> yeah I was just reading about that
13:31:15 <moonsheep> https://sqlite.org/vfs.html does that mean I'll have to implement a separate encrypted vfs for linux and windows?
13:31:30 <dr_merijn> moonsheep: I wrote a bunch of custom aggregate functions for it, very pleasant experience overall
13:31:42 <dr_merijn> moonsheep: Yeah, probably. But maybe someone has already done something like that
13:31:44 <moonsheep> also I assume I'll have to do it in C instead of haskell right?
13:31:54 <moonsheep> dr_merijn: yeah but it's prorpietary iirc
13:32:05 <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
13:32:17 <moonsheep> ah alright
13:33:33 × abiss27 quits (~abiss27@user/abiss) (Quit: hasta la vista... tchau!)
13:33:47 <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
13:33:55 <moonsheep> cryptonite has a C interface right?
13:33:58 <moonsheep> dr_merijn: oh thanks!
13:34:10 Lycurgus joins (~juan@user/Lycurgus)
13:35:51 <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
13:36:18 <dr_merijn> Hell, even using arbitrary runtime closures should be relatively straightforward using dynamic_wrapper
13:36:34 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:36:56 <moonsheep> right, thank you very much
13:36:58 × lys quits (lys@id-194105.uxbridge.irccloud.com) (Quit: It feels like a song I know so well)
13:40:58 mvk joins (~mvk@2607:fea8:5ce3:8500::778c)
13:41:03 nihilazo joins (~nihilazo@tilde.town)
13:41:36 <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?
13:42:48 <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
13:43:47 <nihilazo> a k
13:44:23 <nihilazo> that's unfortunate :(
13:44:29 × kdaishi quits (~Thunderbi@dyn3136-11.wlan.ic.ac.uk) (Ping timeout: 265 seconds)
13:46:17 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
13:47:05 <moonsheep> the base package file i/o functions are cross-platform right?
13:47:08 lys joins (lys@id-194105.uxbridge.irccloud.com)
13:47:18 <moonsheep> if so I should be able to implement a vfs in haskell that's also cross-platform for free, is that right?
13:47:42 <dr_merijn> Not if you wanna keep things ACID :)
13:47:50 <moonsheep> oh right
13:48:41 <geekosaur> ACID is hard
13:49:16 geekosaur got out of the database business in the 90s and mostly doesn't miss it
13:49:28 ellensol_ joins (~ellen@178-78-210-152.customers.ownit.se)
13:49:50 <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
13:49:54 × lys quits (lys@id-194105.uxbridge.irccloud.com) (Client Quit)
13:50:14 <dr_merijn> What are you trying to encrypt?
13:50:35 <moonsheep> mostly the chat logs and the user's private key
13:50:39 <moonsheep> symmetrically
13:50:50 <moonsheep> so that if the system is compromised the data can't be stolen
13:51:09 <moonsheep> ideally you'd want to use full-disk encryption, but I can't guarantee users do
13:51:15 <moonsheep> I certainly do
13:51:27 × ellensol quits (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 268 seconds)
13:51:31 nihilazo parts (~nihilazo@tilde.town) (Leaving)
13:52:00 <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
13:52:01 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
13:52:20 <moonsheep> geekosaur: yes that's called a password and ideally it's only in the user's head
13:52:24 <moonsheep> the human is always the weakest link
13:52:55 <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
13:53:07 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
13:53:09 <moonsheep> obviously you need a strong password
13:53:30 <moonsheep> I'll make sure to include a link to https://xkcd.com/936/ when the users is prompted to create a password
13:53:38 <geekosaur> so you';re right on the edge of going e2e anyway
13:53:40 littlefinger joins (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net)
13:53:54 <moonsheep> how do you mean?
13:53:57 × ellensol_ quits (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 250 seconds)
13:54:21 <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
13:54:34 <geekosaur> and all the work is done on the user's side
13:54:43 <moonsheep> yes that was the idea all along
13:54:47 <geekosaur> (this requires asymmetric keys though)
13:54:49 <moonsheep> there's acutally no server
13:54:58 <moonsheep> it's peer-to-peer within a LAN
13:56:23 <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?
13:57:05 <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
13:57:14 <moonsheep> instead of just storing a bunch of encrypted blobs in a table
13:57:31 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
13:58:09 <geekosaur> don't even need tpo encrypt the privkey. you have the *pubkey*
13:58:28 kdaishi joins (~Thunderbi@2a0c:5bc0:40:2e2f:b6bb:664c:380b:dc65)
13:58:29 lys joins (lys@id-194105.uxbridge.irccloud.com)
13:58:30 <moonsheep> again, that is done in case the system becomes physically compromised
13:58:35 <geekosaur> auth is some nonce encrypted with the privkey is sent to you, and you can only decrypt with the pubkey
13:58:44 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
13:58:56 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
13:58:59 k8yun__ joins (~k8yun@user/k8yun)
13:59:06 <geekosaur> pubkey is not so useful by itself though, so it;s safe to store unencrypted
13:59:29 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:59:30 <Athas> Heads up, the next release of cabal-install will break all your workflows: https://sigkill.dk/blog/2022-10-02-cabal-xdg.html
13:59:31 <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?
14:00:00 <moonsheep> geekosaur: that's pretty much how my network protocol works
14:00:24 chexum joins (~quassel@gateway/tor-sasl/chexum)
14:00:53 <geekosaur> Athas, it's supposed to keep working the same way if you have ~/.cabal
14:00:56 <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
14:01:12 <geekosaur> or specify paths explicitly in the config file
14:01:20 <moonsheep> of course first doing authentication to make sure I'm not sending messages to an impersonator
14:01:23 LukeHoersten joins (~LukeHoers@user/lukehoersten)
14:01:42 <Athas> geekosaur: yes, supposed to. But I doubt it is well tested.
14:01:43 <dr_merijn> geekosaur: Are you saying the behaviour you'd like to see? Or telling Athas "how it works"?
14:01:54 <dr_merijn> because, if the latter, eh...I'm sure he knows ;)
14:02:05 <geekosaur> that is the report from the recent announcement
14:02:16 <dr_merijn> geekosaur: Athas implemented it :p
14:02:21 <Athas> Yeah, but it's implemented by a dilettante with little Cabal experience.
14:02:21 <geekosaur> which is for testers to make sure that it does work that way when released
14:02:24 <geekosaur> ah
14:02:32 <Athas> Cabal has no "testers" as such.
14:02:38 <geekosaur> (I plan to be one of said testers)
14:03:03 <geekosaur> hopefully after I'm done with this morning's SNAP annoyances
14:03:07 <Athas> Good! Running dev cabal-install is surprisingly easy, since it doesn't require any cabal-the-library changes.
14:03:15 <Athas> It's just a binary you put in your PATH.
14:03:50 <geekosaur> I also tested a couple of cabal 3.8 prereleases
14:04:39 <geekosaur> (also: maerwald, if you're around, this might be a good candidate for the prerelease channel)
14:04:46 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
14:04:52 <Athas> It's a bit easier now, since cabal no longer spews the "beware! debug version!" stuff on stdout.
14:06:57 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 268 seconds)
14:10:18 × kdaishi quits (~Thunderbi@2a0c:5bc0:40:2e2f:b6bb:664c:380b:dc65) (Ping timeout: 264 seconds)
14:14:09 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
14:15:34 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
14:18:48 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
14:19:32 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
14:20:31 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds)
14:21:22 lys is now known as rosalind
14:21:58 moonsheep parts (~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1))
14:22:30 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
14:23:25 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 250 seconds)
14:25:13 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
14:26:07 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
14:26:34 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
14:26:39 × rosalind quits (lys@id-194105.uxbridge.irccloud.com) (Quit: bbl)
14:30:07 LukeHoersten joins (~LukeHoers@user/lukehoersten)
14:33:21 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
14:34:33 × ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer)
14:35:46 akegalj joins (~akegalj@93-136-87-5.adsl.net.t-com.hr)
14:36:10 × jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
14:36:25 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
14:36:37 ystael joins (~ystael@user/ystael)
14:37:10 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds)
14:40:20 × waldo quits (~waldo@user/waldo) (Quit: quit)
14:42:14 rosalind joins (rosalind@id-194105.uxbridge.irccloud.com)
14:42:26 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
14:42:33 rosalind is now known as lys
14:42:58 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
14:43:38 king_gs joins (~Thunderbi@187.201.126.32)
14:44:16 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
14:48:19 kuribas joins (~user@silversquare.silversquare.eu)
14:49:16 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
14:50:42 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
14:51:20 moonsheep joins (~user@user/moonsheep)
14:51:34 titibandit joins (~titibandi@xdsl-89-0-65-2.nc.de)
14:52:37 k8yun_ joins (~k8yun@user/k8yun)
14:53:55 × lys quits (rosalind@id-194105.uxbridge.irccloud.com) (Quit: ZzzZz)
14:54:04 _73 joins (~user@2600:4040:5aa2:2000:ccdd:de39:6c57:78f9)
14:54:13 lys joins (lys@id-194105.uxbridge.irccloud.com)
14:54:59 × razetime quits (~quassel@117.193.0.127) (Ping timeout: 248 seconds)
14:55:48 razetime joins (~quassel@117.193.5.86)
14:56:15 × k8yun__ quits (~k8yun@user/k8yun) (Ping timeout: 268 seconds)
15:03:41 × king_gs quits (~Thunderbi@187.201.126.32) (Read error: Connection reset by peer)
15:03:49 king_gs1 joins (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
15:04:53 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
15:05:26 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
15:06:08 king_gs1 is now known as king_gs
15:06:53 moonsheep parts (~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1))
15:14:09 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Remote host closed the connection)
15:14:52 × akegalj quits (~akegalj@93-136-87-5.adsl.net.t-com.hr) (Quit: leaving)
15:17:27 rockymarine joins (~rocky@user/rockymarine)
15:17:29 LukeHoersten joins (~LukeHoers@user/lukehoersten)
15:19:17 × razetime quits (~quassel@117.193.5.86) (Ping timeout: 252 seconds)
15:25:37 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
15:26:55 chexum joins (~quassel@gateway/tor-sasl/chexum)
15:27:56 razetime joins (~quassel@117.193.7.124)
15:31:21 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
15:34:04 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
15:34:05 jakalx parts (~jakalx@base.jakalx.net) ()
15:35:31 jakalx joins (~jakalx@base.jakalx.net)
15:36:20 × razetime quits (~quassel@117.193.7.124) (Ping timeout: 268 seconds)
15:41:16 razetime joins (~quassel@117.254.35.9)
15:45:27 nate4 joins (~nate@98.45.169.16)
15:45:37 × king_gs quits (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Ping timeout: 268 seconds)
15:47:05 zebrag joins (~chris@user/zebrag)
15:54:01 vegetabelfodos joins (~vegetabel@user/vegetabelfodos)
15:56:30 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
15:58:09 × kuribas quits (~user@silversquare.silversquare.eu) (Remote host closed the connection)
16:00:50 king_gs joins (~Thunderbi@187.201.126.32)
16:01:05 × razetime quits (~quassel@117.254.35.9) (Ping timeout: 252 seconds)
16:02:14 razetime joins (~quassel@117.254.35.133)
16:04:39 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
16:06:50 razetime_ joins (~quassel@2401:4900:6280:18c5:a9f7:414a:8235:bd9)
16:07:04 × razetime quits (~quassel@117.254.35.133) (Ping timeout: 265 seconds)
16:07:51 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
16:08:59 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
16:14:19 × crns quits (~netcrns@user/crns) (Ping timeout: 265 seconds)
16:15:42 crns joins (~netcrns@p4ff5e871.dip0.t-ipconnect.de)
16:15:42 × crns quits (~netcrns@p4ff5e871.dip0.t-ipconnect.de) (Changing host)
16:15:42 crns joins (~netcrns@user/crns)
16:18:16 waleee joins (~waleee@192.165.44.49)
16:18:47 __monty__ joins (~toonn@user/toonn)
16:23:19 cdimitroulas joins (~cdimitrou@cpc115154-dals23-2-0-cust44.20-2.cable.virginm.net)
16:24:16 × king_gs quits (~Thunderbi@187.201.126.32) (Quit: king_gs)
16:25:16 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
16:27:51 LukeHoersten joins (~LukeHoers@user/lukehoersten)
16:28:41 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
16:33:38 × EashanHatti quits (~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net) (Quit: EashanHatti)
16:34:03 EashanHatti joins (~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net)
16:34:18 EashanHatti parts (~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net) ()
16:35:12 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
16:37:58 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
16:42:09 × nschoe quits (~quassel@141.101.51.197) (Ping timeout: 252 seconds)
16:42:58 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
16:43:40 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:46:24 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
16:46:33 jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
16:47:31 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
16:48:45 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
16:49:46 LukeHoersten joins (~LukeHoers@user/lukehoersten)
16:53:54 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
16:58:33 × waleee quits (~waleee@192.165.44.49) (Ping timeout: 250 seconds)
17:00:39 ii8 joins (~ii8@45.63.97.131)
17:03:21 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
17:03:31 <ii8> Is there a neater way to write `f >>= (\x -> g >> return x)`? Some ??? that let's me write just `f ??? g`.
17:04:00 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:05:12 × MajorBiscuit quits (~MajorBisc@145.94.170.80) (Ping timeout: 264 seconds)
17:05:18 × littlefinger quits (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
17:06:22 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
17:06:30 <davean> ii8: look at Applicative
17:07:20 <ski> @type (<*) -- ii8
17:07:22 <lambdabot> Applicative f => f a -> f b -> f a
17:08:10 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 268 seconds)
17:09:25 <ii8> ty
17:12:54 ddellacosta joins (~ddellacos@143.244.47.73)
17:13:11 rockymarine joins (~rocky@user/rockymarine)
17:14:43 × acidjnk_new quits (~acidjnk@p200300d6e7137a724c70b3a6de12c0bf.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
17:16:14 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
17:16:33 <ski> ii8 : ooc, what're you writing ?
17:17:41 kdaishi joins (~Thunderbi@dyn3135-98.wlan.ic.ac.uk)
17:18:49 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
17:21:05 <ii8> ski: a compiler
17:22:16 acidjnk_new joins (~acidjnk@p200300d6e7137a36101a01fba2f91402.dip0.t-ipconnect.de)
17:22:17 <[exa]> ii8: btw it's useful to note that all "variants" of that operator actually exist: <*, *>, <$ and $>
17:22:27 <[exa]> also good luck with the compiler
17:22:40 <ski> (in addition to `<$>' and `<*>', of course. .. there's also `<**>')
17:24:07 LukeHoersten joins (~LukeHoers@user/lukehoersten)
17:25:06 × razetime_ quits (~quassel@2401:4900:6280:18c5:a9f7:414a:8235:bd9) (Remote host closed the connection)
17:26:48 × vglfr quits (~vglfr@145.224.100.164) (Read error: Connection reset by peer)
17:27:01 vglfr joins (~vglfr@145.224.100.164)
17:29:32 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
17:30:49 fef joins (~thedawn@user/thedawn)
17:30:55 <ski> @type \g f -> (>>= g) . sequence . (=>> f)
17:30:57 <lambdabot> (Monad m, Traversable t, Comonad t) => (t a1 -> m b) -> (t a2 -> m a1) -> t a2 -> m b
17:32:05 <EvanR> lol
17:33:13 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds)
17:33:45 vegetabelfodos is now known as balkanredheads
17:34:19 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
17:34:36 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
17:34:54 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
17:35:58 <EvanR> (Monad m, Traversable w, Comonad w) => (w b -> m c) -> (w a -> m b) -> (w a -> m c)
17:36:29 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
17:37:39 biberu joins (~biberu@user/biberu)
17:38:07 <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
17:41:18 littlefinger joins (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net)
17:41:28 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
17:42:10 <EvanR> now I want to use that for something
17:42:44 <EvanR> so I can feel like dr strange summoning powerful geometric forces
17:43:10 o-90 joins (~o-90@gateway/tor-sasl/o-90)
17:43:15 × kdaishi quits (~Thunderbi@dyn3135-98.wlan.ic.ac.uk) (Ping timeout: 265 seconds)
17:45:16 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
17:45:35 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
17:45:43 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
17:46:24 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 258 seconds)
17:48:18 gmg joins (~user@user/gehmehgeh)
17:50:59 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Remote host closed the connection)
17:51:01 gurkenglas joins (~gurkengla@84.138.199.46)
17:53:09 Microwave joins (~Microwave@201-9-167-4.user3p.veloxzone.com.br)
17:53:13 Lycurgus joins (~juan@user/Lycurgus)
17:53:48 <Microwave> Hi, is there a pastebin for haskell? I want to show something strange that I've found
17:54:08 <monochrom> Yeah, this:
17:54:12 <monochrom> @where paste
17:54:12 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
17:55:29 × doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 252 seconds)
17:57:08 <Microwave> monochrom: thanks
17:57:11 <Microwave> https://paste.tomsmeding.com/aU8bUqf8
17:57:39 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
17:57:43 <ski> type synonyms can't be partially applied
17:58:04 <Microwave> is this partial application?
17:58:37 <monochrom> "Bar" alone is the most extreme partial application, yes.
17:58:38 <ski> or, i guess you can express it as, they must be used "fully saturated"
17:58:46 <ski> "applied to all explicit parameters"
17:58:48 <Microwave> I was bashing my head trying to understand what was happening
17:59:16 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds)
17:59:19 <Microwave> ((,) Int) instance is partial application?
17:59:32 <monochrom> But (,) is not a type synonym.
18:00:20 <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
18:00:58 <Microwave> I see, there's another way to avoid repetition?
18:01:12 docter_d joins (~docter_d@2001:9e8:33d4:6000:1075:34b6:ab2f:922d)
18:01:21 rockymarine joins (~rocky@user/rockymarine)
18:01:38 <monochrom> What is the repetition?
18:01:38 <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)
18:01:39 <Microwave> And it makes sense now, I'm trying to instance a type constructor, so it is partial application
18:01:41 <ski> ')
18:02:05 × vglfr quits (~vglfr@145.224.100.164) (Ping timeout: 252 seconds)
18:02:22 <Microwave> monochrom: This is just an example, so there's no repetition
18:02:28 <Microwave> but I use synonyms a lot
18:03:14 <ski> sometimes you can use extensionality to remove explicit parameters from type synonym definitions
18:03:41 beteigeuze1 joins (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
18:03:41 <L29Ah> where can i get a parallel mapM that runs at most `nproc` threads simultaneously?
18:03:57 <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.
18:04:11 <ski> (e.g. going from `type Foo a = StateT S (ExceptT E) a' to `type Foo = StateT S (ExceptT E)')
18:04:50 ski would appreciate restricted type synonyms, in GHC (and not just Hugs)
18:04:56 <L29Ah> monochrom: most type synonyms are originating from the authors who want less typing and shorter type signatures
18:05:20 <ski> (they are similar to exporting a type synonym abstractly from a structure/module, in the MLs)
18:05:25 <Microwave> I just don't want to repeat myself a lot, but I won't say that I know what I'm doing
18:05:41 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds)
18:05:52 docter-d joins (~docter_d@2001:9e8:33d4:6000:70f6:f504:252e:b0ff)
18:06:07 <geekosaur> L29Ah, there's `mapConcurrently` but I think by itself it does not set a thread limit
18:06:07 × docter_d quits (~docter_d@2001:9e8:33d4:6000:1075:34b6:ab2f:922d) (Ping timeout: 268 seconds)
18:06:26 doyougnu joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
18:07:00 <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
18:07:34 <Microwave> changing `type Bar a = (Int, a)` to `type Bar = ((,) Int)` worked
18:07:44 <L29Ah> yeah i've checked out the async-pool stuff, but it needs writing some code to have mapM
18:07:49 <Microwave> but what's the difference?
18:08:12 × rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 264 seconds)
18:08:23 × mbuf quits (~Shakthi@49.204.130.86) (Quit: Leaving)
18:08:35 × beteigeuze1 quits (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 268 seconds)
18:08:44 <geekosaur> https://hackage.haskell.org/package/async-pool-0.9.1/docs/Control-Concurrent-Async-Pool.html#v:mapTasks and friends look likely to me
18:08:46 <ski> type synonyms can be thought a bit of like macros
18:09:38 <ski> Microwave : well, you need `TypeSynonymInstances'
18:10:09 <geekosaur> create a task group with ncpus (or numCapabilities maybe) threads in it, then mapTasks in that group
18:11:18 <Microwave> ski: Won't work even with this extension, already tried
18:11:38 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
18:12:26 <Microwave> I still find strange that `type Bar a = (Int, a)` and `type Bar = ((,) Int)` are different
18:12:35 <Microwave> but I can get behind it
18:13:47 <geekosaur> it's strange in some sense, but ghc's typechecker would have to be a lot more complex to support type lambdas
18:13:54 <monochrom> The rule is that a use site of a type synonym must supply at least "all" parameters.
18:14:24 <monochrom> The devil though is in the details of what that "all" means.
18:14:43 <monochrom> And that one is a very simplistic formal syntactic shallow superficial thing.
18:15:02 <monochrom> Let's say I have "type T1 a = ..." and "type T2 = ...".
18:15:22 <monochrom> Then superficially (as promised) T1 requires 1 parameter but T2 requires none.
18:15:30 <Microwave> I see, I see
18:15:41 <Microwave> It's about the structure perceived by the compiler
18:15:46 <Microwave> not the logic behind it
18:15:52 _73` joins (~user@pool-173-76-236-42.bstnma.fios.verizon.net)
18:15:55 <monochrom> You then say "but T2 a = T1 a" well the language definitions says it doesn't care.
18:16:10 × _73` quits (~user@pool-173-76-236-42.bstnma.fios.verizon.net) (Remote host closed the connection)
18:16:13 <Microwave> I understood now
18:16:36 <monochrom> The long story is that without this rule, type inference becomes undecidable. I haven't studied why.
18:16:52 <Microwave> magic, probably
18:16:52 mc47 joins (~mc47@xmonad/TheMC47)
18:17:01 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
18:17:03 <Microwave> thanks for the help, you all are awesome
18:17:39 × _73 quits (~user@2600:4040:5aa2:2000:ccdd:de39:6c57:78f9) (Ping timeout: 248 seconds)
18:17:43 <[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.
18:18:25 L29Ah joins (~L29Ah@wikipedia/L29Ah)
18:18:35 <L29Ah> geekosaur: thanks
18:19:33 <Microwave> [exa]: It makes sense, it wouldn't work if the definitions were recursive I think
18:19:44 Everything joins (~Everythin@37.115.210.35)
18:19:48 <[exa]> yeah, that's one of the (infinite) ways to break it. :]
18:19:56 <Microwave> Is it possible to have recursion on type stuff?
18:20:32 <Microwave> Probably not
18:20:33 <[exa]> fortunately not
18:20:42 <ski> if you think of type synonyms as macros, then `LiberalTypeSynonyms' allow higher-order macros
18:20:42 <Microwave> :(
18:20:52 <[exa]> at least in "normal" cases you'd get stopped by occurs check
18:21:39 <[exa]> but you can pretty easily circumvent that with a bit of parametrization (remember recursion without recursion using the fixpoint combinator?)
18:22:03 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
18:22:14 <Microwave> my tiny brain is starting to hurt
18:22:27 <Microwave> I'm trying to learn about haskell for a year
18:22:31 <Microwave> it hurts :(
18:22:39 <[exa]> I avoid that matter completely for similar brain reasons. :D
18:22:52 <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) ..
18:22:59 × dr_merijn quits (~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
18:23:19 <Microwave> I'm going now, thanks for all the help, byee
18:23:27 <ski> have fun
18:23:32 <[exa]> o/
18:23:43 × Microwave quits (~Microwave@201-9-167-4.user3p.veloxzone.com.br) (Quit: Client closed)
18:23:46 <monochrom> I have heard that higher-order unification is undecidable. Is that this one?
18:24:58 <[exa]> ( total count of Rice theorem instances I observed: *increases* )
18:26:41 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
18:27:02 LukeHoersten joins (~LukeHoers@user/lukehoersten)
18:27:44 kdaishi joins (~Thunderbi@dyn3137-209.wlan.ic.ac.uk)
18:28:41 × chimp_ quits (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 265 seconds)
18:30:13 ellensol joins (~ellen@178-78-210-152.customers.ownit.se)
18:32:05 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
18:33:41 shapr joins (~user@68.54.166.125)
18:39:06 × fjMSX quits (~hypni2p@2.92.213.55) (Read error: Connection reset by peer)
18:40:35 × kdaishi quits (~Thunderbi@dyn3137-209.wlan.ic.ac.uk) (Ping timeout: 252 seconds)
18:40:58 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Remote host closed the connection)
18:43:39 vorpuni joins (~pvorp@2001:861:3881:c690:a94c:fa1b:4d2b:c74b)
18:44:59 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
18:45:43 LukeHoersten joins (~LukeHoers@user/lukehoersten)
18:45:47 vglfr joins (~vglfr@145.224.100.164)
18:48:29 DavidBinder joins (~DavidBind@2a02:8070:8a83:3740:64de:c2ea:8f9f:d460)
18:49:35 dr_merijn joins (~dr_merijn@86-86-29-250.fixed.kpn.net)
18:52:19 rockymarine joins (~rocky@user/rockymarine)
18:54:58 × DavidBinder quits (~DavidBind@2a02:8070:8a83:3740:64de:c2ea:8f9f:d460) (Quit: Client closed)
18:57:22 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
18:57:24 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
18:57:58 × acidjnk_new quits (~acidjnk@p200300d6e7137a36101a01fba2f91402.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
18:58:41 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:59:56 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
18:59:58 Lord_of_Life_ is now known as Lord_of_Life
19:03:14 × motherfsck quits (~motherfsc@user/motherfsck) (Remote host closed the connection)
19:03:55 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
19:05:25 × son0p quits (~ff@2800:e2:f80:867:cac2:6501:5166:e177) (Ping timeout: 268 seconds)
19:07:33 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
19:10:39 acidjnk_new joins (~acidjnk@p200300d6e7137a36edbbd7fd5b13d5e1.dip0.t-ipconnect.de)
19:11:49 motherfsck joins (~motherfsc@user/motherfsck)
19:14:19 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
19:19:11 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
19:22:20 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
19:22:21 cheater1__ joins (~Username@user/cheater)
19:22:25 cheater1__ is now known as cheater
19:25:03 × docter-d quits (~docter_d@2001:9e8:33d4:6000:70f6:f504:252e:b0ff) (Quit: Leaving)
19:25:47 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
19:26:22 docter_d joins (~{docter_d@2001:9e8:33d4:6000:70f6:f504:252e:b0ff)
19:26:54 × docter_d quits (~{docter_d@2001:9e8:33d4:6000:70f6:f504:252e:b0ff) (Client Quit)
19:28:08 × dumptruckman quits (~dumptruck@23-239-13-163.ip.linodeusercontent.com) (Quit: ZNC - https://znc.in)
19:35:12 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
19:38:09 lys is now known as rosalind
19:38:53 × rosalind quits (lys@id-194105.uxbridge.irccloud.com) (Quit: Arcadia...)
19:40:20 pavonia joins (~user@user/siracusa)
19:42:40 × doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Read error: Connection reset by peer)
19:44:56 dumptruckman joins (~dumptruck@172-105-129-222.ip.linodeusercontent.com)
19:47:27 mikoto-chan joins (~mikoto-ch@164.5.249.78)
19:50:14 rosalind joins (rosalind@id-194105.uxbridge.irccloud.com)
19:50:39 rosalind is now known as lys
19:50:48 jakalx parts (~jakalx@base.jakalx.net) ()
19:50:48 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
19:51:04 × zeenk quits (~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) (Quit: Konversation terminated!)
19:51:49 × gurkenglas quits (~gurkengla@84.138.199.46) (Ping timeout: 265 seconds)
19:55:17 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
19:55:18 jakalx joins (~jakalx@base.jakalx.net)
19:55:21 LukeHoersten joins (~LukeHoers@user/lukehoersten)
19:57:46 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
20:00:36 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds)
20:02:31 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Remote host closed the connection)
20:05:24 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
20:07:51 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
20:08:12 × cdimitroulas quits (~cdimitrou@cpc115154-dals23-2-0-cust44.20-2.cable.virginm.net) (Ping timeout: 264 seconds)
20:08:46 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
20:09:03 × lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.6)
20:12:20 justsomeguy joins (~justsomeg@user/justsomeguy)
20:14:51 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:3719:5feb:ad96:c94f) (Quit: WeeChat 2.8)
20:15:06 × lys quits (rosalind@id-194105.uxbridge.irccloud.com) (Quit: bbl)
20:15:11 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
20:17:29 × balkanredheads quits (~vegetabel@user/vegetabelfodos) (Quit: quit)
20:25:59 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
20:30:29 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
20:32:39 Tuplanolla joins (~Tuplanoll@91-159-69-34.elisa-laajakaista.fi)
20:34:03 lys joins (lys@id-194105.uxbridge.irccloud.com)
20:35:52 mastarija joins (~mastarija@2a05:4f46:e03:6000:9d3a:32c4:25b6:9794)
20:36:21 monadplus joins (~monadplus@226.red-83-42-37.dynamicip.rima-tde.net)
20:36:36 × fef quits (~thedawn@user/thedawn) (Ping timeout: 258 seconds)
20:37:27 × monadplus quits (~monadplus@226.red-83-42-37.dynamicip.rima-tde.net) (Client Quit)
20:39:28 × beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 246 seconds)
20:43:40 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds)
20:45:31 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
20:46:35 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
20:47:12 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
20:47:54 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
20:49:10 LukeHoersten joins (~LukeHoers@user/lukehoersten)
20:49:16 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:52:50 darkstardevx joins (~darkstard@192.183.207.94)
20:54:10 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds)
20:54:10 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 265 seconds)
20:54:33 × darkstardevx quits (~darkstard@192.183.207.94) (Remote host closed the connection)
20:54:43 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
20:54:57 darkstardevx joins (~darkstard@192.183.207.94)
20:55:38 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
20:58:05 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
20:59:17 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
20:59:40 kdaishi joins (~Thunderbi@94.191.136.51.mobile.tre.se)
21:00:13 <L29Ah> https://github.com/jwiegley/async-pool/issues/4 damn
21:00:16 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
21:01:08 <L29Ah> is it possible to disable preempt-ability of SOME ghc green threads?
21:01:39 × mvk quits (~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 250 seconds)
21:03:00 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042)
21:03:28 <monochrom> Are you sure you can't simply avoid nesting mapTasks?
21:03:55 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
21:04:15 <L29Ah> monochrom: i'm diving into arbitrary file trees, so it doesn't seem like a good solution
21:04:30 <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.
21:04:31 <L29Ah> and the result is a tree as well
21:05:00 <L29Ah> monochrom: i don't want "don't preempt me", i want "i can't preempt anything"
21:07:00 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 264 seconds)
21:07:41 mixphix joins (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
21:08:03 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2888:9a07:52ef:e042) (Ping timeout: 268 seconds)
21:08:03 <L29Ah> so that a newly spawned thread won't wake up until there's available cpu time that is not desired by existing threads
21:10:03 × mikoto-chan quits (~mikoto-ch@164.5.249.78) (Read error: Connection reset by peer)
21:13:40 son0p joins (~ff@2800:e2:f80:867:cac2:6501:5166:e177)
21:14:53 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
21:16:41 × chomwitt quits (~chomwitt@2a02:587:dc14:f500:4be8:104:55e3:55fc) (Ping timeout: 268 seconds)
21:16:50 × littlefinger quits (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
21:19:47 cp1313[m] joins (~cp1313mat@2001:470:69fc:105::2:9293)
21:20:25 × mmhat quits (~mmh@p200300f1c70623b9ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
21:20:45 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
21:22:56 × ellensol quits (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 268 seconds)
21:24:42 × acidjnk_new quits (~acidjnk@p200300d6e7137a36edbbd7fd5b13d5e1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
21:27:19 _73 joins (~user@2600:4040:5aa2:2000:ccdd:de39:6c57:78f9)
21:27:30 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:30:15 littlefinger joins (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net)
21:33:31 stackdroid18 joins (~stackdroi@user/stackdroid)
21:33:59 mmhat joins (~mmh@p200300f1c7062353ee086bfffe095315.dip0.t-ipconnect.de)
21:34:00 × kdaishi quits (~Thunderbi@94.191.136.51.mobile.tre.se) (Ping timeout: 264 seconds)
21:34:00 × einfair quits (~einfair@broadband-90-154-71-147.ip.moscow.rt.ru) (Ping timeout: 268 seconds)
21:37:20 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
21:38:25 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
21:43:17 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
21:46:54 × mastarija quits (~mastarija@2a05:4f46:e03:6000:9d3a:32c4:25b6:9794) (Quit: WeeChat 3.5)
21:48:47 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
21:51:14 × littlefinger quits (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Quit: Client closed)
21:57:26 × mixphix quits (~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Quit: Lost terminal)
21:59:06 × son0p quits (~ff@2800:e2:f80:867:cac2:6501:5166:e177) (Remote host closed the connection)
22:03:18 mvk joins (~mvk@2607:fea8:5ce3:8500::778c)
22:11:40 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
22:15:51 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
22:16:08 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
22:16:20 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
22:17:07 Lord_of_Life_ is now known as Lord_of_Life
22:20:35 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
22:20:59 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
22:22:48 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
22:24:55 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
22:31:14 mikoto-chan joins (~mikoto-ch@164.5.249.78)
22:42:33 × lys quits (lys@id-194105.uxbridge.irccloud.com) (Quit: At the still point of the turning world, there the dance is)
22:43:20 × michalz quits (~michalz@185.246.207.197) (Remote host closed the connection)
22:44:15 × stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: Lost terminal)
22:48:03 nate4 joins (~nate@98.45.169.16)
22:49:37 × Topsi quits (~Topsi@dyndsl-095-033-018-041.ewe-ip-backbone.de) (Quit: Leaving.)
22:49:56 × titibandit quits (~titibandi@xdsl-89-0-65-2.nc.de) (Remote host closed the connection)
22:53:33 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds)
22:55:33 son0p joins (~ff@181.136.122.143)
22:58:58 × vorpuni quits (~pvorp@2001:861:3881:c690:a94c:fa1b:4d2b:c74b) (Remote host closed the connection)
22:59:27 × dr_merijn quits (~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
23:01:23 × wonko quits (~wjc@2a0e:1c80:11::50) (Ping timeout: 248 seconds)
23:02:18 ellensol joins (~ellen@178-78-210-152.customers.ownit.se)
23:07:05 × ellensol quits (~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 265 seconds)
23:15:45 × Tuplanolla quits (~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.)
23:21:36 ncf is now known as aaaaaaaaaaaaaaaa
23:21:46 aaaaaaaaaaaaaaaa is now known as ncf
23:25:56 caryhartline joins (~caryhartl@wireless-mustang28.nat.smu.edu)
23:27:38 LukeHoersten joins (~LukeHoers@user/lukehoersten)
23:28:16 × mvk quits (~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 260 seconds)
23:31:09 × mmhat quits (~mmh@p200300f1c7062353ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
23:35:29 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
23:37:34 <alexfmpe[m]> there a way to spit out the core for a function inside ghci?
23:38:01 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds)
23:39:01 <geekosaur> you could :set -ddump-ds and then :r
23:39:15 <geekosaur> once it's compiled, though, it's too late to ask for core
23:39:24 <geekosaur> it's either bytecode or object code
23:39:54 <geekosaur> (or if you're defining at the prompt, :set -ddump-ds and then define it again at the prompt)
23:41:24 <alexfmpe[m]> ah thanks that worked
23:46:10 mmhat joins (~mmh@p57998e06.dip0.t-ipconnect.de)
23:50:54 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
23:51:13 EvanR joins (~EvanR@user/evanr)
23:59:31 × caryhartline quits (~caryhartl@wireless-mustang28.nat.smu.edu) (Quit: caryhartline)

All times are in UTC on 2022-10-03.