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.