Logs on 2022-10-06 (liberachat/#haskell)
| 00:02:24 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
| 00:03:33 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 00:03:36 | <talismanick> | I'd like to get the path to a directory (with makeAbsoluteDir) and traverse the result (splitting on "/") with filterM using `(\x->doesDirExist $ makeAbsoluteDir x </>".git/")` |
| 00:03:59 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 00:04:56 | <talismanick> | Any clue how I might define a Traversable instance on (Path Abs Dir) (or (Path Abs t) more generally) so I can filterM on each directory? |
| 00:05:46 | <talismanick> | or convert it into a list for filterM, that is |
| 00:08:12 | × | hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 00:08:14 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 00:08:43 | → | edrx joins (~Eduardo@2804:56c:d2d3:4800:cf7d:b421:4c3a:392e) |
| 00:10:03 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 00:10:10 | → | doyougnu joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) |
| 00:10:38 | ← | edrx parts (~Eduardo@2804:56c:d2d3:4800:cf7d:b421:4c3a:392e) () |
| 00:10:52 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
| 00:11:32 | <jackdk> | You want find the containing git repo, by walking up the directory tree until you either see a .git dir or reach `/`? |
| 00:12:42 | × | doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection) |
| 00:12:50 | <talismanick> | jackdk: instead of recursing, I figured I could convert /path/to/folder into [/path,/path/to,/path/to/folder] and filter by whether each has a .git |
| 00:13:02 | <talismanick> | so I find the outermost containing repo |
| 00:13:36 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 00:14:12 | <jackdk> | Yeah when I did this I just wrote the recursion directly. You can repeatedly apply `Path.parent` I guess but you need to make sure you don't generate an infinite list because `Path.parent [absdir|/|] == [absdir|/|]` |
| 00:14:29 | <jackdk> | Like you _could_ use unfold or iterate but I think it's not worth it |
| 00:15:57 | <gqplox> | halve ns = (take halfLength ns, drop halfLength ns) |
| 00:16:07 | <gqplox> | here my editor is saying: use splitAt |
| 00:16:17 | → | fresheyeball joins (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) |
| 00:16:18 | <gqplox> | why not: splitAt halfLength ns |
| 00:16:24 | <gqplox> | decreases laziness |
| 00:16:28 | <fresheyeball> | https://www.johndcook.com/blog/2022/10/02/flags-unicode/ |
| 00:16:33 | <fresheyeball> | I want this to work in Haskell |
| 00:16:40 | <fresheyeball> | I have the alpha-2 for a country |
| 00:16:55 | <gqplox> | why is that better? |
| 00:17:01 | <fresheyeball> | For example Afghanistan = "AF" |
| 00:17:15 | <fresheyeball> | And I want to get the unicode of the country flag |
| 00:22:18 | → | zns joins (~zns@user/zns) |
| 00:22:25 | × | zns quits (~zns@user/zns) (Client Quit) |
| 00:22:46 | → | zns joins (~zns@user/zns) |
| 00:27:10 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 00:27:55 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 00:28:50 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:28:50 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:28:50 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:30:58 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 00:32:21 | × | qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 260 seconds) |
| 00:33:48 | <talismanick> | jackdk: Is there perhaps an `iterateQueue` so I can write `takeWhile ([absdir|/|]/=) $ iterateQueue parent myAbsPath`? |
| 00:33:56 | → | qrpnxz joins (~qrpnxz@fsf/member/qrpnxz) |
| 00:34:15 | <fresheyeball> | I don't see why it's not working |
| 00:34:45 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 00:35:04 | <talismanick> | well, I can only get the parent wrapped in a monad because IO, but you see what I mean |
| 00:35:52 | <jackdk> | huh? `Path.parent` is a pure function |
| 00:36:03 | ← | Everything parts (~Everythin@37.115.210.35) () |
| 00:36:12 | <jackdk> | oh no, we've lost everything! |
| 00:36:12 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 00:36:22 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f166:d554:7957:eb7a) |
| 00:36:32 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 00:37:05 | <geekosaur> | fresheyeball, what is your code? |
| 00:37:07 | <talismanick> | or, not Path.parent, but UnliftIO.Path.Directory.makeAbsoluteDir |
| 00:37:08 | <geekosaur> | @where paste |
| 00:37:08 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 00:37:27 | → | off^ joins (~off@c-76-17-6-165.hsd1.ga.comcast.net) |
| 00:37:36 | <talismanick> | which returns the absolute path to a directory, wrapped in IO because it could fail (for whatever reason) |
| 00:39:16 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 00:39:33 | <fresheyeball> | box c = fromIntegral (ord c + 0x1f1e5) :: Word8 |
| 00:39:46 | <fresheyeball> | Data.Text.Internal.Encoding.Utf8.chr2 (box 'A') (box 'F') |
| 00:39:58 | <fresheyeball> | just gives the wrong char |
| 00:41:29 | <geekosaur> | I appear to have a font issue but this seems to work for me: ghc -e "let box ch = Data.Char.chr (Data.Char.ord ch + 0x1f1a5) in putStrLn $ box 'F' : box 'R' : []" |
| 00:41:37 | <geekosaur> | (or 'U'/'S', etc. |
| 00:41:40 | <geekosaur> | ) |
| 00:42:01 | → | doyougnu joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) |
| 00:43:42 | <geekosaur> | actually just looks like terminal rendering |
| 00:44:16 | → | jargon joins (~jargon@174-22-201-96.phnx.qwest.net) |
| 00:45:29 | <jackdk> | talismanick: but then use >>= or do or whatever so that your function that generates the list of parents does not have to care about IO or any other monad |
| 00:45:47 | <talismanick> | good point |
| 00:48:30 | <EvanR> | gqplox, what decreases laziness |
| 00:48:36 | <geekosaur> | fresheyeball, you asked it to compress a value which is at least 0x1f1e5 down to a Word8. that doesn't do what you think it does |
| 00:48:46 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 00:49:19 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds) |
| 00:50:26 | <geekosaur> | these are codepoints, not characters in the range 0..255 |
| 00:50:31 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 00:50:33 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 00:50:34 | nightbreak[Away] | is now known as nightbreak |
| 00:50:36 | <gqplox> | EvanR sorry im a noob but yes |
| 00:50:49 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
| 00:50:58 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 00:50:58 | <EvanR> | splitAt is good |
| 00:51:07 | <gqplox> | the haskell-language-server is telling my that, my question is why is decreasing laziness is good? |
| 00:51:16 | <EvanR> | oh |
| 00:51:40 | <EvanR> | if you don't need laziness, then less laziness means less cost, cpu and memory |
| 00:51:50 | Lord_of_Life_ | is now known as Lord_of_Life |
| 00:51:54 | <EvanR> | if you need laziness, then the opposite might be true |
| 00:52:15 | <sm> | I don't think need determines which it is :) |
| 00:53:23 | <sm> | I probably misread, just sounded funny |
| 00:53:40 | <EvanR> | it's supposed to be tautological |
| 00:54:20 | <EvanR> | anyway, laziness has a cost. If you don't get anything out of it, you waste your resources |
| 00:54:34 | <EvanR> | how your editor knows anything about that I have no idea |
| 00:54:36 | <sm> | so... try it both ways and the better-performing one is what you should have wanted all along ? |
| 00:54:42 | <geekosaur> | gqplox, it recommends that transform because the list only has to be traversed once with splitAt. if you absolutely need the laziness increase that comes with doing the same work twice, go for it |
| 00:55:10 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 00:55:12 | <geekosaur> | but laziness is not automatically a win |
| 00:56:14 | → | causal joins (~user@50.35.83.177) |
| 00:56:24 | <gqplox> | Ok, right I get it thank you |
| 00:56:55 | <gqplox> | I'm just messing around, trying to learn haskell. thank you very much |
| 00:57:24 | <gqplox> | its quite cool how i got that suggestion though |
| 00:57:41 | <gqplox> | i guess the way haskell is you can infer way more from the code and give better suggetsions |
| 00:58:51 | → | loras joins (~loras@c-73-139-125-125.hsd1.fl.comcast.net) |
| 00:59:11 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 00:59:40 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 01:00:01 | <gqplox> | also i just learnt about foldr and i see now some of my previous things i get a suggestion to write it with foldr instead. i take it that its more idomatic / standard to use foldr if you can right? |
| 01:00:18 | × | ulvarrefr quits (~user@188.124.56.153) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 01:00:54 | <jackdk> | many simple recursions can be rewritten in terms of folds. If you understand what you're doing it's a nice thing to do. But it's also not usually worth needlessly contorting your code to fit it into a fold |
| 01:01:09 | <jackdk> | (aka "it depends", in more than two words :D) |
| 01:01:26 | → | dcoutts_ joins (~duncan@host86-170-66-8.range86-170.btcentralplus.com) |
| 01:01:42 | → | zmt00 joins (~zmt00@user/zmt00) |
| 01:02:07 | <gqplox> | got it, thanks jack :) |
| 01:02:28 | <EvanR> | folds are great when that's exactly what you're doing |
| 01:02:43 | <gqplox> | but "under the hood" is it all the same to the compiler right? |
| 01:03:07 | <gqplox> | like with/without foldr will generate the same code or is there a difference? |
| 01:03:14 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal) |
| 01:03:51 | × | dcoutts__ quits (~duncan@host86-170-66-8.range86-170.btcentralplus.com) (Ping timeout: 260 seconds) |
| 01:03:55 | → | ulvarrefr joins (~user@188.124.56.153) |
| 01:04:14 | × | ulvarrefr quits (~user@188.124.56.153) (Remote host closed the connection) |
| 01:05:21 | → | ulvarrefr joins (~user@188.124.56.153) |
| 01:06:39 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 01:08:09 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
| 01:11:18 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 01:11:47 | → | Kaiepi joins (~Kaiepi@142.68.249.28) |
| 01:11:59 | × | Kaiepi quits (~Kaiepi@142.68.249.28) (Read error: Connection reset by peer) |
| 01:12:27 | × | talismanick quits (~talismani@c-73-41-86-39.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
| 01:14:13 | × | xff0x quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 250 seconds) |
| 01:16:27 | <EvanR> | gqplox, until someone can explain all those details, you can learn the necessary flags to produce the intermediate codes and see for yourself |
| 01:17:06 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 01:17:33 | <EvanR> | e.g. ghc flag -ddump-simpl |
| 01:22:07 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 01:22:57 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 01:24:04 | → | Kaiepi joins (~Kaiepi@142.68.249.28) |
| 01:26:32 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 01:30:06 | <sm> | woo, big step for a beginner! |
| 01:30:11 | sm | should try that |
| 01:34:35 | × | beteigeuze quits (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 250 seconds) |
| 01:38:41 | × | doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 268 seconds) |
| 01:40:16 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 01:41:56 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 01:44:01 | <gqplox> | cool i shall defo be checking that out |
| 01:44:02 | <gqplox> | thx |
| 01:53:09 | → | rockystone joins (~rocky@user/rockymarine) |
| 01:57:10 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 01:57:43 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:01:00 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 02:05:24 | → | king_gs joins (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) |
| 02:06:59 | × | td_ quits (~td@94.134.91.45) (Ping timeout: 252 seconds) |
| 02:09:00 | → | td_ joins (~td@muedsl-82-207-238-011.citykom.de) |
| 02:12:54 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 02:14:59 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 02:17:02 | → | nate1 joins (~nate@98.45.169.16) |
| 02:17:42 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 02:17:45 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds) |
| 02:20:48 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:22:01 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 02:22:15 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 02:22:47 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:24:10 | nightbreak | is now known as nightbreak[Away] |
| 02:26:03 | → | razetime joins (~quassel@117.254.35.21) |
| 02:28:06 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 02:29:06 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 02:29:46 | → | rockystone joins (~rocky@user/rockymarine) |
| 02:33:26 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 02:36:58 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 246 seconds) |
| 02:39:28 | → | talismanick joins (~talismani@2601:200:c100:c9e0::24ac) |
| 02:44:03 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 02:44:25 | → | nate1 joins (~nate@98.45.169.16) |
| 02:44:52 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 02:46:43 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 02:49:09 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 02:50:10 | → | rockystone joins (~rocky@user/rockymarine) |
| 02:50:58 | × | king_gs quits (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Ping timeout: 246 seconds) |
| 02:52:38 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 02:53:58 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 02:56:26 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 03:00:59 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
| 03:01:12 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 03:02:52 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 03:03:22 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds) |
| 03:03:39 | → | rockystone joins (~rocky@user/rockymarine) |
| 03:07:09 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:08:27 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 03:09:02 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:09:41 | → | rockystone joins (~rocky@user/rockymarine) |
| 03:17:37 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 03:19:17 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 03:24:06 | × | ddellacosta quits (~ddellacos@143.244.47.86) (Ping timeout: 268 seconds) |
| 03:29:14 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
| 03:33:22 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 03:35:08 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds) |
| 03:37:11 | × | razetime quits (~quassel@117.254.35.21) (Ping timeout: 252 seconds) |
| 03:38:16 | × | loras quits (~loras@c-73-139-125-125.hsd1.fl.comcast.net) (Quit: Quit) |
| 03:46:06 | → | k8yun joins (~k8yun@user/k8yun) |
| 03:48:39 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 03:53:53 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 03:54:36 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:54:40 | → | nate1 joins (~nate@98.45.169.16) |
| 03:57:42 | → | nicmollel[m] joins (~nicmollel@2001:470:69fc:105::1:feeb) |
| 04:01:08 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
| 04:01:08 | × | Vajb quits (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer) |
| 04:01:16 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 04:05:37 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 04:07:17 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 04:13:46 | → | razetime joins (~quassel@117.254.35.21) |
| 04:15:49 | <dminuoso> | Emacs users, is there mode that works with mmm-mode to work with alex/happy files? |
| 04:21:16 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Remote host closed the connection) |
| 04:21:25 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 04:25:06 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 04:26:47 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:27:20 | → | Vajb joins (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) |
| 04:28:14 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 04:29:05 | → | nate1 joins (~nate@98.45.169.16) |
| 04:29:50 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 04:33:17 | → | mbuf joins (~Shakthi@49.204.117.154) |
| 04:34:00 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
| 04:46:55 | → | king_gs joins (~Thunderbi@187.201.126.32) |
| 04:48:59 | × | razetime quits (~quassel@117.254.35.21) (Ping timeout: 265 seconds) |
| 04:53:45 | → | nate1 joins (~nate@98.45.169.16) |
| 04:54:50 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 04:55:36 | × | mud quits (~mud@user/kadoban) (Ping timeout: 264 seconds) |
| 04:56:50 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 04:58:13 | → | califax joins (~califax@user/califx) |
| 04:58:56 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 05:00:35 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds) |
| 05:02:15 | → | `2jt joins (~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) |
| 05:04:02 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 05:04:25 | → | califax joins (~califax@user/califx) |
| 05:04:47 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 05:06:18 | × | king_gs quits (~Thunderbi@187.201.126.32) (Read error: Connection reset by peer) |
| 05:07:06 | → | king_gs joins (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) |
| 05:08:46 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 05:10:37 | <HP-UX> | Hello is it possible to ask about termonad? https://bpa.st/J2TQ building via stack I get this error |
| 05:12:24 | <sm> | it requires some C libs to be installed, which stack can't do for you. Maybe their docs tell how to get them ? |
| 05:13:38 | <jackdk> | > The pkg-config package 'gobject-introspection-1.0' version ==1.32 || >1.32 is required but it could not be found. |
| 05:13:41 | <lambdabot> | <hint>:1:70: error: parse error on input ‘>’ |
| 05:14:02 | <jackdk> | So you'll need to go to your distro's package manager and install that |
| 05:14:28 | → | bgs joins (~bgs@212-85-160-171.dynamic.telemach.net) |
| 05:17:07 | <HP-UX> | search gobject-introspection https://bpa.st/QKUQ some libghc-haskell-gi-dev would this be it? |
| 05:18:49 | <sm> | HP-UX: as I hinted, there are good install docs: https://github.com/cdepillabout/termonad#ubuntu--debian |
| 05:19:07 | <HP-UX> | sm: they don't cover the 'stack' only install method and I am using stack |
| 05:19:23 | <HP-UX> | I git clone the repository and in the repository directory I use stack install |
| 05:19:26 | → | mud joins (~mud@user/kadoban) |
| 05:19:33 | <sm> | https://github.com/cdepillabout/termonad#compiling-from-source-on-ubuntu--debian |
| 05:19:49 | <sm> | you must do this before using stack |
| 05:19:52 | <HP-UX> | I see |
| 05:20:12 | <HP-UX> | I guess I didn't see this part. What I saw was they said a PR was needed from someone who figured out how to use stack to build it. |
| 05:20:17 | <HP-UX> | I'll try |
| 05:20:55 | <sm> | it's a common mistake. stack can only install haskell dependencies, not C ones |
| 05:21:14 | <HP-UX> | thanks you |
| 05:21:19 | <HP-UX> | -s |
| 05:21:19 | <sm> | np |
| 05:21:58 | <jackdk> | The provisioning of system libraries is not the responsibility of either stack or cabal, so you can use that information to set up for either. |
| 05:24:27 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 05:26:29 | <chreekat> | hm, I also thought nub only removed duplicates if they were right next to each other |
| 05:26:59 | <c_wraith> | that's more like what group does |
| 05:27:10 | <c_wraith> | ... ok, not really |
| 05:27:36 | → | gmg joins (~user@user/gehmehgeh) |
| 05:27:38 | <c_wraith> | > concat . map head . group $ [1,0,2,2,4,7,1] |
| 05:27:40 | <lambdabot> | error: |
| 05:27:40 | <lambdabot> | • No instance for (Num [()]) arising from a use of ‘e_11022471’ |
| 05:27:40 | <lambdabot> | • In the expression: e_11022471 |
| 05:29:06 | <chreekat> | I'm not saying I'm right, in fact I'm saying I'm probably wrong and I'm curious why. :D Like did it change at some point, or did I just learn it wrong a long time ago and never got corrected |
| 05:29:09 | <c_wraith> | oh, right |
| 05:29:15 | <c_wraith> | > map head . group $ [1,0,2,2,4,7,1] |
| 05:29:17 | <lambdabot> | [1,0,2,4,7,1] |
| 05:29:25 | <c_wraith> | nah, nub's behavior has never changed |
| 05:29:56 | <c_wraith> | So you probably mixed it up with something like group |
| 05:33:57 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 05:36:01 | <jonathanx_> | I'm having some issues with HLS (hie-bios). I like to use both HLS (vscode) and run stack test in a terminal. When running stack test in the terminal, I use the --fast flag (-O0). Now the issue is that hie-bios keeps recompiling, stating "[Optimisation flags changed]". From this I guess that hie-bios have other flags than -O0. To resolve this, I've tried to remove all ghc-options from package.yaml, but it didn't help. |
| 05:36:04 | <jonathanx_> | Any ideas? |
| 05:38:34 | → | zns joins (~zns@user/zns) |
| 05:38:35 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:38:47 | <jonathanx_> | Haha, I solved it by adding "ghc-options: - -O0" to package.yaml |
| 05:38:59 | <jonathanx_> | Seems like it didn't default to O0 as I thought |
| 05:40:44 | → | mihaiadrian joins (~mihaiadri@82.76.223.244) |
| 05:42:59 | <sm> | nice |
| 05:42:59 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 05:43:51 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 05:44:08 | <c_wraith> | oh yeah. I think the default is -O1 |
| 05:44:16 | <sm> | chreekat: you and I seem to have fallen into a parallel universe |
| 05:45:19 | <chreekat> | sm: haha exactly |
| 05:46:54 | → | michalz joins (~michalz@185.246.207.205) |
| 05:47:32 | <jonathanx_> | my local builds are blazingly fast now, such enjoyment. And I still add all of the optimizations on the prod builds, so it doesn't affect reality. Such happy. |
| 05:47:58 | <sm> | it's an Anything Everywhere All At Once scene |
| 05:49:33 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 05:49:47 | → | nate1 joins (~nate@98.45.169.16) |
| 05:51:53 | <Clinton[m]> | Is there any function in base that I'm missing that has the following signature (or something similar):... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/df6f815a8140ae6b09980c48f8fddcfaa135e507>) |
| 05:52:13 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 05:53:30 | → | gmg joins (~user@user/gehmehgeh) |
| 05:53:34 | <jackdk> | Clinton[m]: pretty common in alternative preludes but I'm not aware of one in base. I wouldn't bother pulling in a prelude for it and instead write something like `maybe (Left a) Right`. Package hoist-error also has some tools for this sort of thing, but they're nicer with an ExceptT IIRC |
| 05:54:35 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
| 05:57:13 | × | k8yun quits (~k8yun@user/k8yun) (Quit: Leaving) |
| 05:59:35 | × | jargon quits (~jargon@174-22-201-96.phnx.qwest.net) (Remote host closed the connection) |
| 06:00:28 | ← | mihaiadrian parts (~mihaiadri@82.76.223.244) () |
| 06:04:01 | → | acidjnk_new joins (~acidjnk@p200300d6e7137a46d5006bee4692d281.dip0.t-ipconnect.de) |
| 06:08:32 | → | jargon joins (~jargon@174-22-201-96.phnx.qwest.net) |
| 06:08:38 | <chreekat> | I usually end up using the errors package anyway. I think it calls that "note" |
| 06:08:55 | <chreekat> | But yeah I'd first just copy/paste the implementation |
| 06:15:45 | → | kenran joins (~user@user/kenran) |
| 06:19:49 | × | caryhartline quits (~caryhartl@2600:1700:2d0:8d30:4dd:6d68:f3a8:33c3) (Quit: caryhartline) |
| 06:20:35 | <jackdk> | yeah I've seen it called note in other places, but it always catches me out for some reasons |
| 06:37:09 | × | king_gs quits (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Ping timeout: 268 seconds) |
| 06:38:32 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 06:38:42 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 265 seconds) |
| 06:43:27 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 252 seconds) |
| 06:43:31 | → | lottaquestions_ joins (~nick@104.221.24.83) |
| 06:44:01 | → | zeenk joins (~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) |
| 06:45:49 | × | lottaquestions quits (~nick@2607:fa49:503e:7100:dcba:436c:887:a9eb) (Ping timeout: 246 seconds) |
| 06:53:15 | → | nate1 joins (~nate@98.45.169.16) |
| 06:54:10 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 06:54:26 | → | king_gs joins (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) |
| 06:55:10 | → | razetime joins (~quassel@117.254.35.21) |
| 06:55:23 | → | jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
| 06:56:06 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 06:56:14 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:58e7:cdd6:72c0:6b0d) |
| 06:56:25 | → | zns joins (~zns@user/zns) |
| 06:58:07 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 07:01:15 | → | MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) |
| 07:06:18 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:07:03 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 07:08:21 | × | off^ quits (~off@c-76-17-6-165.hsd1.ga.comcast.net) (Remote host closed the connection) |
| 07:10:16 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 07:10:34 | × | king_gs quits (~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Ping timeout: 268 seconds) |
| 07:10:53 | → | titibandit joins (~titibandi@xdsl-89-0-65-2.nc.de) |
| 07:12:25 | → | coot joins (~coot@213.134.171.3) |
| 07:12:59 | dminuoso | prefers just writing such functions on the spot rather than depending on a package for such utilities. |
| 07:13:50 | <dminuoso> | Especially since I tend to need different variants of it anyway |
| 07:14:32 | <dminuoso> | Sometimes I have `note :: String -> Maybe a -> IO a`, or maybe `liftException :: Exception e => Either e a -> IO a`, or maybe there is some MonadIO/MonadUnliftIO polymorphism going on.. |
| 07:14:42 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:16:12 | → | rockystone joins (~rocky@user/rockymarine) |
| 07:16:18 | <dminuoso> | Every package you depend upon will increase supply chain problems (transitive dependency bounds constraining you, poor PvP management in a transitive dependency, increased complexity for audits of transitive dependencies against supply chain hacks, potentially blow up object size) |
| 07:16:51 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 07:17:23 | → | chomwitt joins (~chomwitt@2a02:587:dc14:f500:2b1d:f941:b29c:4324) |
| 07:20:54 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
| 07:22:00 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 07:28:44 | × | titibandit quits (~titibandi@xdsl-89-0-65-2.nc.de) (Quit: Leaving.) |
| 07:29:41 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 07:30:31 | <dminuoso> | Question: cast :: forall a b. (Typeable a, Typeable b) => a -> Maybe b |
| 07:30:37 | <dminuoso> | Why does `cast` admit two different types here? |
| 07:30:50 | <dminuoso> | It seems its not going to `coerce` types with same representation anyway |
| 07:32:50 | × | m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 265 seconds) |
| 07:32:56 | × | MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 260 seconds) |
| 07:33:51 | <jackdk> | wouldn't `cast :: a -> Maybe a` be useless, even if you had contraints on `a`? |
| 07:34:16 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 07:34:30 | → | MajorBiscuit joins (~MajorBisc@c-001-024-018.client.tudelft.eduvpn.nl) |
| 07:34:31 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 07:35:09 | <dminuoso> | Ah I guess it is useful if `a` is unknown (say some outer quantification) and `b` is monomorphic. |
| 07:35:21 | <dminuoso> | As a way to scrutinize some arbitrary Typeable |
| 07:35:52 | <dminuoso> | Or well, if `a` is a skolem |
| 07:39:01 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 07:40:32 | → | m5zs7k joins (aquares@web10.mydevil.net) |
| 07:42:58 | → | ardell joins (~ardell@user/ardell) |
| 07:46:33 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:50:35 | → | titibandit joins (~titibandi@xdsl-89-0-65-2.nc.de) |
| 07:54:30 | × | ardell quits (~ardell@user/ardell) (Quit: Leaving) |
| 07:54:38 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1) |
| 07:54:39 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 07:54:41 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
| 07:54:55 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1) |
| 08:00:36 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 08:02:23 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 08:04:12 | → | nschoe joins (~quassel@141.101.51.197) |
| 08:07:56 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 08:08:19 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 08:08:41 | → | Guest|50 joins (~Guest|50@80.96.21.161) |
| 08:08:52 | × | Guest|50 quits (~Guest|50@80.96.21.161) (Client Quit) |
| 08:15:28 | <phma> | I tried to write to the maintainer of a package, and it bounced. How can I get the package marked "maintainer unreachable" or something? |
| 08:15:48 | <dminuoso> | https://wiki.haskell.org/Taking_over_a_package |
| 08:15:59 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f166:d554:7957:eb7a) (Remote host closed the connection) |
| 08:17:52 | <phma> | thanks - I'm not trying to take it over, I'll email hackage-admin and see what happens |
| 08:18:10 | <dminuoso> | Well, we do not have a process of marking "unmaintained packages" as far as I know. |
| 08:21:23 | <sm> | I thought we did have a group / github org for that |
| 08:21:32 | <sm> | #hackage might know |
| 08:22:25 | → | __monty__ joins (~toonn@user/toonn) |
| 08:24:52 | <dminuoso> | But it would be nice if hackage had a marker for that. |
| 08:25:05 | <dminuoso> | Would make it easier to avoid depending on a package when, ahead of time, you know it is not maintained. |
| 08:25:18 | <dminuoso> | Or maybe incentize people to take packages over, if there's more visibility into whats maintained and what not |
| 08:26:00 | <dminuoso> | Personally I tend to check last uploaded date to infer rough maintenance status |
| 08:26:25 | <dminuoso> | But its only a rough patch, as sometimes trustees will just bump boundaries, but not work on issues/pull requests |
| 08:26:31 | <phma> | Maybe I could take it over, if only to get the Weierstrass curves working right. |
| 08:28:50 | <phma> | It's the elliptic-curve library; it looks like a pure Haskell implementation of elliptic curves, which is what I need to test my code for timing attacks. |
| 08:29:05 | <jackdk> | code-level maintenance is not really the trustees' role though |
| 08:29:50 | <dminuoso> | Sure, Im just saying that trustees work makes inferring whether or not a package is maintained from last update date unreliable |
| 08:30:04 | <phma> | but if I took it over, which I'd need the trustees to do, I could modify the code |
| 08:30:09 | <dminuoso> | It's not a complaint. :) |
| 08:30:18 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:30:22 | <jackdk> | Fair. Hackage does at least list the last upload date separately from the last update date |
| 08:30:46 | <dminuoso> | Err, is there a typo in that sentence? |
| 08:38:00 | → | beteigeuze joins (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) |
| 08:38:01 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 08:43:39 | → | rockystone joins (~rocky@user/rockymarine) |
| 08:45:21 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Remote host closed the connection) |
| 08:47:59 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 08:48:20 | → | chele joins (~chele@user/chele) |
| 08:48:59 | × | EvanR quits (~EvanR@user/evanr) (Remote host closed the connection) |
| 08:49:12 | → | EvanR joins (~EvanR@user/evanr) |
| 08:51:23 | × | razetime quits (~quassel@117.254.35.21) (Ping timeout: 250 seconds) |
| 08:51:50 | → | razetime joins (~quassel@117.254.34.19) |
| 08:52:51 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 08:52:56 | × | vglfr quits (~vglfr@145.224.100.190) (Read error: Connection reset by peer) |
| 08:53:54 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 08:54:04 | → | vglfr joins (~vglfr@145.224.100.190) |
| 08:58:03 | → | ubert joins (~Thunderbi@178.165.204.109.wireless.dyn.drei.com) |
| 08:59:21 | × | razetime quits (~quassel@117.254.34.19) (Ping timeout: 265 seconds) |
| 08:59:31 | → | razetime joins (~quassel@117.254.35.104) |
| 09:01:32 | <jackdk> | Yeah I should've said "revision" instead of "update" |
| 09:04:16 | → | kdaishi joins (~Thunderbi@dyn3142-171.wlan.ic.ac.uk) |
| 09:05:15 | → | nate1 joins (~nate@98.45.169.16) |
| 09:10:28 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
| 09:16:28 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f166:d554:7957:eb7a) |
| 09:18:08 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 09:19:48 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 09:20:52 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f166:d554:7957:eb7a) (Ping timeout: 246 seconds) |
| 09:24:43 | × | ft quits (~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:31:08 | × | razetime quits (~quassel@117.254.35.104) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 09:34:30 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
| 09:39:13 | × | kdaishi quits (~Thunderbi@dyn3142-171.wlan.ic.ac.uk) (Quit: kdaishi) |
| 09:39:27 | → | kdaishi joins (~Thunderbi@dyn3142-171.wlan.ic.ac.uk) |
| 09:44:52 | × | m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Ping timeout: 244 seconds) |
| 09:45:29 | → | m1dnight joins (~christoph@78-22-0-121.access.telenet.be) |
| 09:50:27 | × | kdaishi quits (~Thunderbi@dyn3142-171.wlan.ic.ac.uk) (Quit: kdaishi) |
| 09:50:46 | → | kdaishi joins (~Thunderbi@dyn3142-171.wlan.ic.ac.uk) |
| 09:55:31 | × | talismanick quits (~talismani@2601:200:c100:c9e0::24ac) (Ping timeout: 250 seconds) |
| 09:55:46 | × | jargon quits (~jargon@174-22-201-96.phnx.qwest.net) (Remote host closed the connection) |
| 09:57:28 | × | kdaishi quits (~Thunderbi@dyn3142-171.wlan.ic.ac.uk) (Ping timeout: 268 seconds) |
| 10:01:38 | → | kdaishi joins (~Thunderbi@dyn3135-144.wlan.ic.ac.uk) |
| 10:04:16 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds) |
| 10:07:06 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:08:03 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 10:16:22 | → | Midjak joins (~Midjak@82.66.147.146) |
| 10:27:33 | <cheater> | > 33 * 8 |
| 10:27:35 | × | titibandit quits (~titibandi@xdsl-89-0-65-2.nc.de) (Quit: Leaving.) |
| 10:27:35 | <lambdabot> | 264 |
| 10:29:29 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:36:41 | × | coot quits (~coot@213.134.171.3) (Quit: coot) |
| 10:39:41 | → | burnsidesLlama joins (~burnsides@client-8-68.eduroam.oxuni.org.uk) |
| 10:52:24 | → | coot joins (~coot@213.134.171.3) |
| 10:52:30 | → | zaquest joins (~notzaques@5.130.79.72) |
| 10:56:38 | → | enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
| 11:04:07 | × | burnsidesLlama quits (~burnsides@client-8-68.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 11:05:12 | → | frost joins (~frost@user/frost) |
| 11:06:02 | → | xff0x joins (~xff0x@ai071162.d.east.v6connect.net) |
| 11:06:03 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 11:06:48 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 11:07:48 | → | Guest|50 joins (~Guest|50@eduroam-wireless-pat9.nomadic.bris.ac.uk) |
| 11:08:31 | × | Guest|50 quits (~Guest|50@eduroam-wireless-pat9.nomadic.bris.ac.uk) (Client Quit) |
| 11:18:18 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f166:d554:7957:eb7a) |
| 11:20:53 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 11:21:27 | × | codaraxis___ quits (~codaraxis@user/codaraxis) (Ping timeout: 265 seconds) |
| 11:22:40 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f166:d554:7957:eb7a) (Ping timeout: 246 seconds) |
| 11:24:02 | → | nate1 joins (~nate@98.45.169.16) |
| 11:24:06 | × | hyiltiz quits (~quassel@31.220.5.250) (Quit: No Ping reply in 180 seconds.) |
| 11:24:09 | → | ccapndave joins (~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch) |
| 11:25:43 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 11:26:43 | → | Demi joins (~Demi@212.227.212.113) |
| 11:27:34 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 11:28:42 | → | CiaoSen joins (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 11:29:12 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds) |
| 11:39:26 | → | lyle joins (~lyle@104.246.145.85) |
| 11:43:36 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 11:43:44 | × | ProofTechnique quits (sid79547@id-79547.ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 11:43:45 | × | jmct quits (sid160793@id-160793.tinside.irccloud.com) (Read error: Connection reset by peer) |
| 11:43:53 | → | ProofTechnique joins (sid79547@id-79547.ilkley.irccloud.com) |
| 11:43:54 | → | jmct joins (sid160793@id-160793.tinside.irccloud.com) |
| 11:44:06 | × | degraafk quits (sid71464@id-71464.lymington.irccloud.com) (Read error: Connection reset by peer) |
| 11:44:15 | → | degraafk joins (sid71464@id-71464.lymington.irccloud.com) |
| 11:44:20 | × | saolsen quits (sid26430@id-26430.lymington.irccloud.com) (Read error: Connection reset by peer) |
| 11:44:21 | × | tritlo quits (sid58727@user/tritlo) (Ping timeout: 260 seconds) |
| 11:44:27 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 11:44:29 | → | saolsen joins (sid26430@id-26430.lymington.irccloud.com) |
| 11:44:31 | × | jakesyl____ quits (sid56879@id-56879.hampstead.irccloud.com) (Read error: Connection reset by peer) |
| 11:44:32 | × | megeve quits (sid523379@id-523379.hampstead.irccloud.com) (Write error: Connection reset by peer) |
| 11:44:32 | × | spivak quits (uid398348@user/spivak) (Read error: Connection reset by peer) |
| 11:44:32 | × | jackdk quits (sid373013@cssa/jackdk) (Read error: Connection reset by peer) |
| 11:44:38 | → | tritlo joins (sid58727@user/tritlo) |
| 11:44:43 | → | megeve joins (sid523379@id-523379.hampstead.irccloud.com) |
| 11:44:44 | → | jackdk joins (sid373013@cssa/jackdk) |
| 11:45:01 | → | jakesyl____ joins (sid56879@id-56879.hampstead.irccloud.com) |
| 11:45:02 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 11:45:03 | → | spivak joins (uid398348@user/spivak) |
| 11:45:04 | × | lisq quits (~quassel@lis.moe) (Remote host closed the connection) |
| 11:45:13 | × | Kaiepi quits (~Kaiepi@142.68.249.28) (Ping timeout: 252 seconds) |
| 11:45:49 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 11:46:14 | → | lisq joins (~quassel@lis.moe) |
| 11:47:23 | → | titibandit joins (~titibandi@xdsl-89-0-65-2.nc.de) |
| 11:49:46 | × | `2jt quits (~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) (Ping timeout: 268 seconds) |
| 11:51:22 | × | kdaishi quits (~Thunderbi@dyn3135-144.wlan.ic.ac.uk) (Quit: kdaishi) |
| 11:51:40 | → | kdaishi joins (~Thunderbi@dyn3135-144.wlan.ic.ac.uk) |
| 11:55:03 | → | nate1 joins (~nate@98.45.169.16) |
| 11:56:29 | × | kdaishi quits (~Thunderbi@dyn3135-144.wlan.ic.ac.uk) (Ping timeout: 268 seconds) |
| 11:59:46 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 12:04:45 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 12:10:00 | jespada_ | is now known as jespada |
| 12:10:03 | × | koz quits (~koz@121.99.240.58) (Ping timeout: 268 seconds) |
| 12:10:19 | → | koz joins (~koz@121.99.240.58) |
| 12:10:38 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 12:12:20 | → | codaraxis joins (~codaraxis@user/codaraxis) |
| 12:12:57 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 12:13:55 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 12:16:00 | → | kdaishi joins (~Thunderbi@2a0c:5bc0:40:2e2f:b6bb:664c:380b:dc65) |
| 12:16:45 | × | koz quits (~koz@121.99.240.58) (Ping timeout: 252 seconds) |
| 12:17:46 | → | koz joins (~koz@121.99.240.58) |
| 12:18:13 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:19:55 | × | ccapndave quits (~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com) |
| 12:21:19 | × | codaraxis quits (~codaraxis@user/codaraxis) (Read error: Connection reset by peer) |
| 12:21:43 | → | codaraxis joins (~codaraxis@user/codaraxis) |
| 12:27:24 | → | burnsidesLlama joins (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
| 12:38:15 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 12:41:26 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 12:42:06 | × | Vajb quits (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Ping timeout: 260 seconds) |
| 12:42:28 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 12:42:58 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 258 seconds) |
| 12:43:25 | → | heinz9 joins (~trace@user/trace) |
| 12:43:33 | <heinz9> | what does λn.λf.λx. f (n f x) mean |
| 12:44:26 | → | gmg joins (~user@user/gehmehgeh) |
| 12:44:38 | <dminuoso> | heinz9: If you replace λ with \ and . with -> then you have a haskell-equivalent expression |
| 12:45:12 | <dminuoso> | Note that \ is in fact an intentional ASCII approximation of λ. :) |
| 12:45:25 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 268 seconds) |
| 12:47:37 | <int-e> | Now if n is a Church numeral... |
| 12:48:28 | <dminuoso> | Note though the haskell equivalent expression might not type check. |
| 12:49:02 | → | frost joins (~frost@user/frost) |
| 12:49:07 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds) |
| 12:49:15 | <int-e> | :t \n f x -> f (n f x) |
| 12:49:16 | <lambdabot> | ((t1 -> t2) -> t3 -> t1) -> (t1 -> t2) -> t3 -> t2 |
| 12:50:15 | <heinz9> | dminuoso, :) what does it though mean in haskell, I am using haskell mostly not |
| 12:50:56 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:51:43 | → | `2jt joins (~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) |
| 12:51:57 | <int-e> | Not much; it's really a thing you're more likely to see in the untyped lambda calculus. |
| 12:52:14 | × | vglfr quits (~vglfr@145.224.100.190) (Remote host closed the connection) |
| 12:53:09 | → | vglfr joins (~vglfr@145.224.100.190) |
| 12:53:29 | → | teo joins (~teo@user/teo) |
| 12:53:49 | <dminuoso> | heinz9: I could give you a teaser, if you like. |
| 12:54:18 | <heinz9> | thx |
| 12:54:51 | <dminuoso> | In very short terms, in lambda calculus we can encode both data and computation with just using lambda expressions, not too different from simple haskell functions. |
| 12:54:51 | <heinz9> | f is function of what is in brackets |
| 12:54:59 | <dminuoso> | That is, even numbers or lists would get encoded in functions. |
| 12:55:28 | <heinz9> | I would understand f x, that it is a function with parameter x |
| 12:55:31 | <heinz9> | but what is n f x |
| 12:55:38 | <dminuoso> | it is function application |
| 12:55:59 | <heinz9> | is n also a function with parameters f x ? |
| 12:56:03 | × | kdaishi quits (~Thunderbi@2a0c:5bc0:40:2e2f:b6bb:664c:380b:dc65) (Ping timeout: 248 seconds) |
| 12:56:11 | <dminuoso> | With redundant parens this would be written as: |
| 12:56:17 | <dminuoso> | λn.λf.λx. f (n (f x)) |
| 12:56:31 | <heinz9> | ah great |
| 12:56:31 | <dminuoso> | Just like how haskell function application works |
| 12:56:33 | <heinz9> | then yes? |
| 12:56:42 | <dminuoso> | oh gosh sorry |
| 12:56:44 | <int-e> | no, it's f ((n f) x) |
| 12:56:45 | <dminuoso> | I messed up |
| 12:56:47 | <dminuoso> | Thanks int-e. |
| 12:56:54 | <heinz9> | what is n f |
| 12:56:54 | <geekosaur> | I was wondering there |
| 12:57:31 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 12:57:34 | → | kdaishi joins (~Thunderbi@dyn3130-216.wlan.ic.ac.uk) |
| 12:57:35 | <geekosaur> | n is a function, f is something applied to it. the result is a function which is further applied to x |
| 12:57:49 | <heinz9> | now I understand everything, thx |
| 12:58:03 | <dminuoso> | heinz9: lets start with something simpler: `λx. x x` is a lambda expression that has a binder `x`, and when applied to an argument, every occurence of `x` in its body will get replaced with that argument. |
| 12:58:05 | <int-e> | Which probably isn't helpful. A Church numeral takes two arguments, a function and an intial value, and applies the function to the value a certain number of times. |
| 12:58:12 | <geekosaur> | this is partial application, same as in Haskell |
| 12:58:17 | → | cfricke joins (~cfricke@user/cfricke) |
| 12:58:22 | → | califax joins (~califax@user/califx) |
| 12:59:09 | → | notzmv joins (~zmv@user/notzmv) |
| 13:00:50 | × | kuribas quits (~user@silversquare.silversquare.eu) (Ping timeout: 268 seconds) |
| 13:05:18 | × | burnsidesLlama quits (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 13:10:00 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 264 seconds) |
| 13:12:03 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 13:12:14 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 13:13:40 | → | Kaiepi joins (~Kaiepi@142.68.249.28) |
| 13:21:08 | → | cfricke joins (~cfricke@user/cfricke) |
| 13:21:59 | <dminuoso> | • Illegal equational constraint Network.RADIUS.Internal.Tree.KeyT t ~ Int |
| 13:22:00 | × | acidjnk_new quits (~acidjnk@p200300d6e7137a46d5006bee4692d281.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 13:22:14 | <dminuoso> | Huh okay. |
| 13:22:28 | <dminuoso> | It would be nice if GHC told me *what* was illegal about it. |
| 13:22:56 | <dminuoso> | Especially since GHC produced that particular constraint. |
| 13:23:19 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 13:24:22 | → | yvan-sraka joins (~yvan-srak@37.171.151.7) |
| 13:25:02 | <dminuoso> | Sometimes language extensions are really weird and "unhygenic" this way. |
| 13:25:13 | <[exa]> | what's KeyT? |
| 13:25:18 | <dminuoso> | It's a type family] |
| 13:25:54 | <[exa]> | looks like `t` is too unknown for this to be solved? |
| 13:26:26 | <[exa]> | (also check out what kind comes from the tyfam) |
| 13:27:40 | <dminuoso> | So here's the thing |
| 13:27:56 | <dminuoso> | Im merely using `alterF :: forall t f a. Functor f => IsTree t => ([KeyT t] -> f ()) -> (Maybe a -> f (Maybe a)) -> [KeyT t] -> t a -> f (t a)` |
| 13:28:14 | <dminuoso> | But with no type signature to pin `t` |
| 13:28:41 | <dminuoso> | And that's enough for GHC to simply complain. Its completely bizarre, because if I add a type signature, everything is good and well. GHC still has to check type families |
| 13:29:20 | <dminuoso> | I feel like if I use something that has type families, I shouldnt have to enable an extension for an *inferred* invisible type signature. |
| 13:29:56 | <heinz9> | why does "f (n f x)" mean getting a sucessor |
| 13:30:07 | <heinz9> | I think I know what this syntax means |
| 13:30:08 | <geekosaur> | but ghc does that all the time. it'll also infer type signaturesfor things you need to enable ScopedTypeVariables to write explicitly |
| 13:30:10 | <dminuoso> | heinz9: It doesnt, by itself. |
| 13:30:19 | <int-e> | dminuoso: You may have to enable TypeFamilies or GADTs |
| 13:30:23 | <heinz9> | dminuoso, explain |
| 13:31:54 | <heinz9> | I get it |
| 13:32:00 | <heinz9> | I understand now |
| 13:32:18 | <dminuoso> | heinz9: If my code says `main = print x -- print the number 10`, that does not make every literal occurence of `print x` in every text file mean "print the number 10". |
| 13:32:21 | <int-e> | dminuoso: and apparently that error is gone in 9.4 |
| 13:32:44 | <int-e> | dminuoso: but before that the code in question looked like this: http://paste.debian.net/1256171/ |
| 13:34:11 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 13:35:46 | × | Kaiepi quits (~Kaiepi@142.68.249.28) (Ping timeout: 260 seconds) |
| 13:36:55 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/commit/a599abbad939820c666ced00ae9eb33706a4f360\ |
| 13:36:58 | <dminuoso> | This it seems |
| 13:37:36 | <dminuoso> | At any rate, if its not necessary starting from 9.4 Im happy |
| 13:38:22 | × | yvan-sraka quits (~yvan-srak@37.171.151.7) (Remote host closed the connection) |
| 13:39:31 | <dminuoso> | heinz9: A haskell equivalent is `f (+) 0` does not necessarily sum a list. It really depends on what `f` is. :-) |
| 13:41:28 | <ski> | Church numerals are sortof used by `LogicT' |
| 13:41:29 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 13:41:30 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 13:41:46 | <dolio> | LogicT uses Church lists. |
| 13:41:55 | <ski> | (successor is success continuation. zero is failure continuation) |
| 13:42:00 | <ski> | yes |
| 13:42:29 | <ski> | addition is concatenation. multiplication is cartesian product |
| 13:42:50 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Client Quit) |
| 13:42:56 | → | yvan-sraka joins (~yvan-srak@37.171.151.7) |
| 13:43:55 | × | califax quits (~califax@user/califx) (Ping timeout: 258 seconds) |
| 13:47:48 | × | kdaishi quits (~Thunderbi@dyn3130-216.wlan.ic.ac.uk) (Ping timeout: 264 seconds) |
| 13:48:18 | → | kdaishi joins (~Thunderbi@dyn3130-216.wlan.ic.ac.uk) |
| 13:48:40 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 13:50:57 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 13:52:23 | × | yvan-sraka quits (~yvan-srak@37.171.151.7) (Remote host closed the connection) |
| 13:53:04 | → | califax joins (~califax@user/califx) |
| 13:54:52 | → | king_gs joins (~Thunderbi@187.201.126.32) |
| 13:54:54 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:54:54 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:54:54 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:58:09 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 13:59:47 | × | `2jt quits (~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) (Ping timeout: 252 seconds) |
| 14:02:03 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 14:03:23 | × | king_gs quits (~Thunderbi@187.201.126.32) (Ping timeout: 250 seconds) |
| 14:09:36 | → | gqplox joins (~textual@147.188.245.219) |
| 14:09:44 | × | gqplox quits (~textual@147.188.245.219) (Client Quit) |
| 14:13:03 | → | nate1 joins (~nate@98.45.169.16) |
| 14:17:06 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 14:17:40 | → | califax joins (~califax@user/califx) |
| 14:18:23 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 14:18:29 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 14:19:48 | <heinz9> | can someone explain: https://hackage.haskell.org/package/HaskellForMaths-0.4.9/docs/Math-Algebras-TensorAlgebra.html#v:liftTA |
| 14:20:06 | <heinz9> | how algebra leads to vector space |
| 14:23:15 | → | kenran joins (~user@user/kenran) |
| 14:26:10 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 14:30:36 | → | `2jt joins (~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) |
| 14:31:04 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 258 seconds) |
| 14:31:14 | → | natechan joins (~nate@98.45.169.16) |
| 14:31:45 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 14:33:38 | → | zns joins (~zns@user/zns) |
| 14:33:38 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 14:33:45 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 268 seconds) |
| 14:33:47 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 14:33:59 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 14:34:17 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 14:35:12 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 264 seconds) |
| 14:35:21 | → | loras joins (~bc@c-73-139-125-125.hsd1.fl.comcast.net) |
| 14:38:10 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 14:39:33 | → | littlefinger joins (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) |
| 14:43:29 | → | burnsidesLlama joins (~burnsides@client-8-79.eduroam.oxuni.org.uk) |
| 14:43:51 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 14:48:42 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 258 seconds) |
| 14:50:21 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 14:52:32 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 14:54:12 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 14:58:16 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:58e7:cdd6:72c0:6b0d) (Quit: WeeChat 2.8) |
| 15:03:58 | → | califax_ joins (~califax@user/califx) |
| 15:04:48 | × | califax quits (~califax@user/califx) (Ping timeout: 258 seconds) |
| 15:05:06 | califax_ | is now known as califax |
| 15:06:38 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 15:08:56 | → | king_gs joins (~Thunderbi@187.201.126.32) |
| 15:11:20 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 15:13:45 | → | nschoe_ joins (~quassel@141.101.51.197) |
| 15:15:42 | × | nschoe_ quits (~quassel@141.101.51.197) (Client Quit) |
| 15:15:57 | → | nschoe_ joins (~quassel@141.101.51.197) |
| 15:16:58 | × | nschoe_ quits (~quassel@141.101.51.197) (Client Quit) |
| 15:17:15 | → | nschoe_ joins (~quassel@141.101.51.197) |
| 15:17:49 | × | nschoe_ quits (~quassel@141.101.51.197) (Client Quit) |
| 15:19:33 | × | nschoe quits (~quassel@141.101.51.197) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 15:20:57 | → | nschoe joins (~q@141.101.51.197) |
| 15:21:33 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) |
| 15:23:23 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
| 15:23:44 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 15:23:57 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 15:25:13 | × | kdaishi quits (~Thunderbi@dyn3130-216.wlan.ic.ac.uk) (Ping timeout: 252 seconds) |
| 15:25:27 | × | burnsidesLlama quits (~burnsides@client-8-79.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 15:26:01 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) (Ping timeout: 260 seconds) |
| 15:26:15 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds) |
| 15:27:55 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 15:29:52 | → | fjMSX joins (~hypni2p@2.92.213.55) |
| 15:33:10 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 15:34:53 | → | Kaiepi joins (~Kaiepi@142.68.249.28) |
| 15:35:22 | × | king_gs quits (~Thunderbi@187.201.126.32) (Quit: king_gs) |
| 15:35:37 | → | king_gs joins (~Thunderbi@187.201.126.32) |
| 15:38:54 | × | littlefinger quits (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Quit: Client closed) |
| 15:40:39 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 15:42:06 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 15:43:32 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 15:45:04 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 15:48:39 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 15:52:00 | × | king_gs quits (~Thunderbi@187.201.126.32) (Ping timeout: 264 seconds) |
| 15:53:28 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) |
| 15:54:43 | × | jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 248 seconds) |
| 15:55:33 | → | zns joins (~zns@user/zns) |
| 15:59:09 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 16:00:49 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 16:04:36 | <lyxia> | heinz9: https://en.wikipedia.org/wiki/Tensor_algebra |
| 16:07:04 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6) |
| 16:07:15 | <heinz9> | lyxia, in the type declaration of haskell |
| 16:08:11 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 16:09:17 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 16:09:32 | <ski> | (`liftTA' looks like an adjunction ..) |
| 16:12:06 | × | `2jt quits (~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) (Ping timeout: 260 seconds) |
| 16:12:31 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 16:12:49 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) (Remote host closed the connection) |
| 16:12:54 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:13:00 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 16:13:03 | × | kuribas quits (~user@silversquare.silversquare.eu) (Read error: Connection reset by peer) |
| 16:13:40 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 16:13:58 | → | mikoto-chan joins (~mikoto-ch@164.5.249.78) |
| 16:15:20 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 16:16:51 | → | zebrag joins (~chris@user/zebrag) |
| 16:19:14 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::778c) |
| 16:19:32 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 16:22:48 | → | kdaishi joins (~Thunderbi@94.191.152.1) |
| 16:23:25 | → | docdave joins (~donovick@50.39.179.143) |
| 16:24:15 | × | nschoe quits (~q@141.101.51.197) (Ping timeout: 252 seconds) |
| 16:25:37 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 16:26:28 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
| 16:29:54 | → | econo joins (uid147250@user/econo) |
| 16:31:41 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 16:32:57 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 16:33:11 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 16:37:08 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 16:37:25 | <zero> | lyxia: are you li-yao? |
| 16:37:43 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1) |
| 16:37:43 | <lyxia> | zero: that's me |
| 16:37:46 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds) |
| 16:38:14 | <zero> | i was *just* reading https://blog.poisson.chat/posts/2019-10-27-continuation-submonads.html :) |
| 16:38:45 | <EvanR> | church of the submonad |
| 16:39:03 | × | chomwitt quits (~chomwitt@2a02:587:dc14:f500:2b1d:f941:b29c:4324) (Ping timeout: 268 seconds) |
| 16:39:39 | <zero> | preach |
| 16:41:33 | <lyxia> | :) |
| 16:41:38 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 16:43:15 | → | Tuplanolla joins (~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) |
| 16:43:40 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:44:20 | → | Topsi joins (~Topsi@dyndsl-095-033-089-091.ewe-ip-backbone.de) |
| 16:47:09 | → | son0p joins (~ff@181.136.122.143) |
| 16:47:09 | × | kdaishi quits (~Thunderbi@94.191.152.1) (Read error: Connection reset by peer) |
| 16:48:34 | → | kdaishi joins (~Thunderbi@94.191.152.1) |
| 16:49:31 | → | darkstardev13 joins (~darkstard@50.126.124.156) |
| 16:49:45 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 16:50:00 | → | fmgornick joins (~fmgornick@2607:ea00:107:3c07:70ce:e328:b353:33b2) |
| 16:50:16 | × | darkstarx quits (~darkstard@50.126.124.156) (Ping timeout: 246 seconds) |
| 16:51:47 | <fmgornick> | ?src array |
| 16:51:47 | <lambdabot> | Source not found. |
| 16:52:08 | zero | is now known as zzz |
| 16:52:36 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 16:54:11 | <ski> | fmgornick : what're you looking for ? |
| 16:56:16 | <fmgornick> | oh i'm tryna figure out how the array function works |
| 16:56:49 | <EvanR> | that's in gentle introduction too! |
| 16:56:57 | <fmgornick> | does lambdabot only show src for base functions, and nothing from the Data.Array library |
| 16:57:07 | <EvanR> | https://www.haskell.org/tutorial/arrays.html |
| 16:57:56 | <EvanR> | (lambdabot doesn't have actual source from libraries, just snippets in some file on its server) |
| 16:58:05 | <EvanR> | for actual source, look at hackage source links |
| 16:58:06 | <fmgornick> | darnnn |
| 16:58:24 | <fmgornick> | thanks tho! |
| 16:58:30 | <fmgornick> | ok i'm out |
| 16:58:33 | × | fmgornick quits (~fmgornick@2607:ea00:107:3c07:70ce:e328:b353:33b2) (Quit: WeeChat 3.6) |
| 16:58:43 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 16:59:06 | <Topsi> | Given Bitraversable does the following definition satisfy the Traversable laws? traverse = bitraverse pure |
| 16:59:58 | <lyxia> | yes |
| 17:01:57 | × | MajorBiscuit quits (~MajorBisc@c-001-024-018.client.tudelft.eduvpn.nl) (Ping timeout: 268 seconds) |
| 17:05:30 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 17:09:10 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 17:11:36 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds) |
| 17:13:10 | → | rockystone joins (~rocky@user/rockymarine) |
| 17:14:16 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 17:14:22 | → | jonathanx__ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 17:15:56 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 17:16:13 | × | docdave quits (~donovick@50.39.179.143) (Ping timeout: 265 seconds) |
| 17:20:44 | × | mbuf quits (~Shakthi@49.204.117.154) (Quit: Leaving) |
| 17:21:20 | → | `2jt joins (~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) |
| 17:22:57 | → | DavidBinder joins (~DavidBind@tmo-099-246.customers.d1-online.com) |
| 17:25:35 | × | swistak- quits (~swistak@185.21.216.141) (Remote host closed the connection) |
| 17:26:23 | → | swistak joins (~swistak@185.21.216.141) |
| 17:30:26 | → | chomwitt joins (~chomwitt@2a02:587:dc14:f500:b953:cd7b:2dda:416c) |
| 17:31:32 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 17:33:11 | × | beteigeuze quits (~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 260 seconds) |
| 17:36:46 | × | fresheyeball quits (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Quit: WeeChat 3.5) |
| 17:39:14 | × | swistak quits (~swistak@185.21.216.141) (Remote host closed the connection) |
| 17:40:10 | → | swistak joins (~swistak@185.21.216.141) |
| 17:43:31 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 17:44:13 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 17:56:32 | × | wonko quits (~wjc@2a0e:1c80:11::50) (Read error: Connection reset by peer) |
| 18:02:00 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:02:21 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 18:03:44 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 18:03:56 | → | king_gs joins (~Thunderbi@187.201.126.32) |
| 18:04:46 | × | DavidBinder quits (~DavidBind@tmo-099-246.customers.d1-online.com) (Ping timeout: 252 seconds) |
| 18:06:27 | → | Erez joins (~Erez@155.4.187.85) |
| 18:07:43 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) |
| 18:09:24 | → | paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
| 18:10:38 | × | Erez quits (~Erez@155.4.187.85) (Ping timeout: 252 seconds) |
| 18:11:41 | × | kdaishi quits (~Thunderbi@94.191.152.1) (Read error: Connection reset by peer) |
| 18:13:34 | → | kdaishi joins (~Thunderbi@94.191.152.1.mobile.tre.se) |
| 18:13:40 | × | king_gs quits (~Thunderbi@187.201.126.32) (Remote host closed the connection) |
| 18:14:32 | → | nate1 joins (~nate@98.45.169.16) |
| 18:19:24 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.6) |
| 18:19:27 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 18:19:52 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 18:21:17 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 18:26:59 | <EvanR> | I just realized that this actually says (>>=) https://i.imgur.com/XI5x0yK.png |
| 18:27:15 | <EvanR> | by doing html inspection xD |
| 18:28:09 | <c_wraith> | this is why I hate "coding ligatures" |
| 18:28:58 | → | ft joins (~ft@p3e9bc57b.dip0.t-ipconnect.de) |
| 18:29:05 | → | Erez joins (~Erez@155.4.187.85) |
| 18:29:21 | <EvanR> | writing systems aren't immune to the ongoing technological singularity xD |
| 18:29:39 | <EvanR> | back in the day you had to wait 400 years to see an upgrade to your alphabet |
| 18:29:43 | <Rembane> | How is >>= represented in body text in papers? |
| 18:30:00 | <Rembane> | EvanR: And you had to know a mould maker! |
| 18:31:56 | <geekosaur> | most of the ones I've seen use `>>=`, not fancy ligatures or symbols |
| 18:32:18 | <geekosaur> | but some coders really like their special ligatured fonts |
| 18:32:21 | <Rembane> | That's very reasonable |
| 18:33:05 | <Rembane> | This made me wonder the history behind the bind operator. |
| 18:33:35 | <EvanR> | I for one will display a mini haskell logo, probably with animated rainbow outline, for each >>= |
| 18:34:04 | <ski> | sometimes an infix (five-pointed) star is used for `=<<'. sometimes a superscript star to the right of the operator |
| 18:34:13 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 18:35:08 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 18:35:15 | × | mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 248 seconds) |
| 18:35:42 | <ski> | oh, i've also seen ⌜≫=⌝ (and ⌜⧺⌝ for `++') |
| 18:36:37 | <EvanR> | *squint* is that a set of bowling pins stacked up |
| 18:36:53 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1) (Quit: Leaving) |
| 18:37:10 | <EvanR> | oh it's two right angle brackets |
| 18:39:09 | × | paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Read error: Connection reset by peer) |
| 18:39:42 | <ski> | not quite. that'd be ⌜⟫⌝ .. or maybe ⌜»⌝ or ⌜》⌝ |
| 18:41:35 | <ski> | > map generalCategory "≫⟫»》" |
| 18:41:37 | <lambdabot> | [MathSymbol,ClosePunctuation,FinalQuote,ClosePunctuation] |
| 18:41:46 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 18:42:25 | × | zeenk quits (~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) (Quit: Konversation terminated!) |
| 18:42:28 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 18:42:45 | × | titibandit quits (~titibandi@xdsl-89-0-65-2.nc.de) (Quit: Leaving.) |
| 18:43:30 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) (Remote host closed the connection) |
| 18:46:11 | <EvanR> | I increased my font size |
| 18:46:32 | <EvanR> | wow |
| 18:46:48 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 18:48:08 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 18:48:29 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 18:49:08 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Client Quit) |
| 18:53:42 | → | acidjnk_new joins (~acidjnk@p200300d6e7137a803df8600689bd02d5.dip0.t-ipconnect.de) |
| 18:55:50 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 268 seconds) |
| 18:57:08 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 18:59:33 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 19:06:51 | → | cyphase joins (~cyphase@user/cyphase) |
| 19:08:00 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) |
| 19:10:08 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 258 seconds) |
| 19:14:02 | → | pavonia joins (~user@user/siracusa) |
| 19:14:20 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 19:16:29 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 19:18:07 | × | Erez quits (~Erez@155.4.187.85) (Remote host closed the connection) |
| 19:25:48 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) (Remote host closed the connection) |
| 19:26:43 | → | caryhartline joins (~caryhartl@2600:1700:2d0:8d30:99:c3ef:c701:4270) |
| 19:28:57 | × | enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
| 19:34:40 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 19:37:14 | → | talismanick joins (~talismani@2601:200:c100:c9e0::24ac) |
| 19:38:05 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 19:38:17 | → | zns joins (~zns@user/zns) |
| 19:38:19 | × | zns quits (~zns@user/zns) (Client Quit) |
| 19:38:32 | → | zns joins (~zns@user/zns) |
| 19:38:49 | × | zns quits (~zns@user/zns) (Client Quit) |
| 19:39:00 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 19:40:11 | → | zns joins (~zns@user/zns) |
| 19:40:20 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 19:40:36 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 19:40:41 | × | zns quits (~zns@user/zns) (Client Quit) |
| 19:41:42 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 19:42:05 | → | zns joins (~zns@user/zns) |
| 19:42:59 | × | teo quits (~teo@user/teo) (Ping timeout: 252 seconds) |
| 19:46:31 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 19:48:05 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 19:49:39 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 19:50:48 | → | zns joins (~zns@user/zns) |
| 19:55:07 | → | rockystone joins (~rocky@user/rockymarine) |
| 19:56:53 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 19:57:05 | → | zns joins (~zns@user/zns) |
| 19:58:28 | → | Guest86 joins (~Guest86@p200300ef9718356967cd5be491300607.dip0.t-ipconnect.de) |
| 19:58:49 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds) |
| 19:59:00 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 20:00:05 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 20:00:13 | → | Guest|67 joins (~Guest|67@dyn1158-240.insecure.ic.ac.uk) |
| 20:00:21 | × | Guest|67 quits (~Guest|67@dyn1158-240.insecure.ic.ac.uk) (Client Quit) |
| 20:00:29 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 20:01:53 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 20:02:36 | × | lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.6) |
| 20:05:09 | × | abrar quits (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Quit: WeeChat 3.5) |
| 20:05:33 | → | abrar joins (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) |
| 20:06:52 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 20:07:25 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 20:07:32 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 20:07:37 | → | zns joins (~zns@user/zns) |
| 20:09:44 | × | `2jt quits (~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) (Ping timeout: 265 seconds) |
| 20:09:44 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 20:13:07 | <dminuoso> | At what point is a dlist better to use than a list? |
| 20:13:28 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 20:13:30 | <dminuoso> | In particular I have a small function that will consume a list and I need to keep some elements in reserve order. |
| 20:13:39 | → | zns joins (~zns@user/zns) |
| 20:14:08 | <dminuoso> | Because at some point I need to reserve that list - so I have the choice to either dlistSnoc the list together, or just list cons + reserve at the end. |
| 20:14:19 | <dminuoso> | List may range between 2 and 10 elements realistically |
| 20:14:38 | <jackdk> | I use them when I need to avoid the performance loss of repeated right-appends, and I do not care about inspecting the built list halfway through |
| 20:14:58 | × | zns quits (~zns@user/zns) (Client Quit) |
| 20:15:24 | × | jonathanx__ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 264 seconds) |
| 20:15:25 | → | nate1 joins (~nate@98.45.169.16) |
| 20:18:27 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 20:20:15 | → | zns joins (~zns@user/zns) |
| 20:20:22 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
| 20:20:40 | <dminuoso> | But the functions themselves are not free either |
| 20:21:04 | <Hecate> | ooooh I cannot wait for 'List' to be available as a type in GHC 9.6 |
| 20:21:18 | <Hecate> | I *will* wait but it will be painful |
| 20:21:32 | <dminuoso> | Huh? List? What's that? |
| 20:22:01 | ← | Demi parts (~Demi@212.227.212.113) (Closing Window) |
| 20:22:07 | <dminuoso> | Is Haskell, after 30 years, finally getting builtin support for non-singly linked lists? |
| 20:22:38 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 20:22:53 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 20:23:07 | × | ubert quits (~Thunderbi@178.165.204.109.wireless.dyn.drei.com) (Remote host closed the connection) |
| 20:25:58 | <EvanR> | dminuoso, I was basically asking this exact thing yesterday. And I ask this about once a year |
| 20:26:17 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) |
| 20:26:59 | <EvanR> | just cons then reverse at the end, vs something like DList |
| 20:30:09 | justHaunted | is now known as _justHaunted |
| 20:30:17 | _justHaunted | is now known as justHaunted |
| 20:30:31 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 20:31:00 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) (Ping timeout: 264 seconds) |
| 20:31:31 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 20:33:10 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 20:34:23 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 20:36:16 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Client Quit) |
| 20:36:51 | × | Colere quits (~colere@about/linux/staff/sauvin) (Remote host closed the connection) |
| 20:37:09 | → | Colere joins (~colere@about/linux/staff/sauvin) |
| 20:37:57 | × | caryhartline quits (~caryhartl@2600:1700:2d0:8d30:99:c3ef:c701:4270) (Quit: caryhartline) |
| 20:38:46 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 20:46:36 | → | titibandit joins (~titibandi@xdsl-89-0-65-2.nc.de) |
| 20:48:29 | → | littlefinger joins (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) |
| 20:50:09 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 20:50:14 | → | caryhartline joins (~caryhartl@2600:1700:2d0:8d30::1c) |
| 20:50:14 | <qrpnxz> | ik of at least one PR where dlist gave like quadratic explosion and it was changed instead to just be cons -> reverse (simply linear) |
| 20:50:30 | <qrpnxz> | i don't remember the details tho |
| 20:50:33 | <qrpnxz> | i'll try to fin dit |
| 20:50:36 | <qrpnxz> | *find it |
| 20:50:36 | <EvanR> | the dlist package advertises O(1) snoc. And then doesn't advertise the cost of toList so you can actually use the result xD |
| 20:50:53 | <qrpnxz> | xD |
| 20:51:01 | <EvanR> | you could explain the same benefits of consing onto a normal list, then reversing |
| 20:51:07 | <EvanR> | it's O(1) snoc |
| 20:51:25 | <dminuoso> | So a list will, outside of deforestation, cost heap allocations |
| 20:51:48 | <EvanR> | repeatedly doing accum . f doesn't? |
| 20:52:07 | × | Topsi quits (~Topsi@dyndsl-095-033-089-091.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
| 20:52:19 | <dminuoso> | Mmm |
| 20:52:30 | <EvanR> | (snocing by composing a function) |
| 20:52:52 | <dminuoso> | I guess the heap allocation is a red herring, given that - like you pointed out - you will be toList'ing eventually anyway |
| 20:53:03 | <dminuoso> | And if you force the entirety of the list, you will be paying for those allocations regardless |
| 20:53:17 | <dminuoso> | And if the list composition causes heap allocations, you will actually increase them |
| 20:53:19 | <Hecate> | < dminuoso> Huh? List? What's that? // We're going the Elm road! https://twitter.com/FlavioCorpa/status/1578125123298762754 |
| 20:54:09 | <geekosaur> | ML here we come |
| 20:54:21 | <geekosaur> | next it'll be "list of 'a" |
| 20:54:31 | <Hecate> | haha |
| 20:54:42 | <Hecate> | I will enjoy this little win |
| 20:55:13 | <dminuoso> | Hecate: Oh, you almost had me there. |
| 20:55:14 | <Rembane> | I wonder what the juicy bits of the proposal are. |
| 20:55:22 | <Hecate> | it's easier to write %s/List/Vector/g instead of a regex to capture the content of [] |
| 20:55:23 | Rembane | clicks links |
| 20:55:30 | <Hecate> | Rembane: it's about syntax punning |
| 20:55:39 | <Rembane> | Hecate: As in dad jokes? |
| 20:55:41 | <dminuoso> | Anyhow, its a nice change. |
| 20:55:44 | <EvanR> | dminuoso, in a simple understand of it, appending to a list backward is one set of allocations, then reversing it is a second (equally sized) set. Assuming you use it all. While the toList will only do the 2nd set. But up to that point you also allocated a chain of thunks equal in number to the list size, if you only snoc 1 at a time |
| 20:56:01 | <Hecate> | Rembane: I'll drop a baby on your doorstep if you keep on with the dad jokes |
| 20:56:12 | <Hecate> | and then you'll be able to know if a wall is load-bearing |
| 20:56:13 | <dminuoso> | EvanR: I think I will have to stg-simulate both and analyze it. |
| 20:56:19 | × | catern quits (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Ping timeout: 246 seconds) |
| 20:56:32 | <dminuoso> | Especially since we have to include any optimizations that can occur into the picture |
| 20:56:36 | <Rembane> | Hecate: Yes please! |
| 20:57:02 | <dminuoso> | Hecate: You almost had me believe we were getting a kind of usable Vector'ish type into base. |
| 20:57:23 | <Rembane> | Hecate: The idea seems to have pun-free code. I'm slightly skeptical. I like dad jokes. |
| 20:58:11 | <Rembane> | Hecate: also, I got bitten by Type vs Kind punning in Haskell 2021, that was exciting. |
| 20:58:17 | <dminuoso> | I dont like the tuple changes though. |
| 20:58:33 | <Hecate> | dminuoso: my fucking god, have you read my Discourse thread about putting Text into base? It was a bloodbath |
| 20:58:39 | <qrpnxz> | Hecate: they really renaming the list type? I can't believe it. |
| 20:58:48 | <Hecate> | Rembane: would love you to explain a bit more how you got bitten |
| 20:58:58 | <dminuoso> | Hecate: Honestly, Haskell is in the same deep mud that erlang/elixir is in. |
| 20:59:05 | <qrpnxz> | it seems like the ultimate backwards incompatible change |
| 20:59:05 | <Hecate> | qrpnxz: no its' just a new syntax made available, [] is still kept as a special syntax |
| 20:59:10 | <qrpnxz> | ah ok |
| 20:59:34 | <Hecate> | dminuoso: NO! Erlang managed to get UTF-8 encoded binaries for strings before Haskell, under the pressure of Elixir |
| 20:59:59 | <EvanR> | List will be an alternative name for [] ? |
| 21:00:05 | <Rembane> | Hecate: In reality it bit my friend so I don't remember the details, but it was something about GHC making up polykinds and then doing it wrong. GADTs were involved. It was solved by turning off some PolyKind extension that was on by default in the new language version. |
| 21:00:07 | <EvanR> | that could be handy |
| 21:00:14 | <dminuoso> | Hecate: Yes, but printable lists occur everywhere. |
| 21:00:34 | <dminuoso> | Hecate: So you have this same interop problem as Haskell has. showT, T.unpack and T.pack are *everywhere* |
| 21:00:48 | <dminuoso> | They are my most used functions by far. |
| 21:01:02 | <EvanR> | that's how people did string processing in B! xD |
| 21:01:04 | <Hecate> | Rembane: oh yes the PolyKinds extension is on by default, and as you know, GADTs are a Dr. Frankenstein graft on the Hindley-Milner type system |
| 21:01:10 | <EvanR> | unpack the string, operate on chars, repack |
| 21:01:32 | <Hecate> | dminuoso: yes I'm still salty about the pervasiveness of linked lists in Elixir |
| 21:01:35 | → | nate1 joins (~nate@98.45.169.16) |
| 21:01:39 | <Hecate> | but that's not my battle to fight anymore |
| 21:01:40 | <dminuoso> | But not in Haskell? :> |
| 21:01:43 | <dminuoso> | heh |
| 21:01:48 | <EvanR> | only haskell can use linked lists |
| 21:01:59 | <EvanR> | go to war over it. With elixir. but not C |
| 21:02:08 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 21:02:13 | <EvanR> | C is too powerful |
| 21:02:14 | <dminuoso> | The really surprising thing is, how good GHC optimizations are to make these singly lists bearable. |
| 21:02:31 | <dminuoso> | Its at a point where working with large String is actually feasible in most places. |
| 21:02:41 | <Hecate> | dminuoso: yeah I'm paid to be a cute Haskell face in the community, my Elixir days have passed now |
| 21:02:58 | <dminuoso> | Elixir was my gateway drug to Haskell actually |
| 21:03:23 | <Rembane> | Hecate: Absolutely. They are too powerful etc. :) |
| 21:03:28 | <dminuoso> | After battling for about two weeks with dialyzer, I began to realize what I really wanted was a type system. |
| 21:04:03 | <Rembane> | dialyzer is such a lovely foot gun. Good for docs though. |
| 21:04:05 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:04:21 | <Hecate> | dminuoso: 🤝 |
| 21:04:24 | <EvanR> | wow people in here know elixir? cool |
| 21:04:27 | <qrpnxz> | EvanR: why are you packing and unpacking so much just to do like `Data.Text.map`? |
| 21:04:38 | <qrpnxz> | what super complicated non-stream operations are you doing |
| 21:04:44 | <qrpnxz> | why can't they be done with Text |
| 21:04:47 | <EvanR> | me? |
| 21:04:49 | <qrpnxz> | yes |
| 21:04:56 | EvanR | scrolls up |
| 21:04:56 | <qrpnxz> | or did i misread |
| 21:05:04 | <dminuoso> | You probably meant me |
| 21:05:04 | <qrpnxz> | dminuoso: i guess sorry |
| 21:05:36 | <dminuoso> | qrpnxz: So I make use of show in a lot of errors/diagnostics, but since I rely heavily on Text, its all showT (which is just an INLINEd `T.pack . show`) |
| 21:05:37 | <qrpnxz> | or not, it was evan that said about unpacking and repacking |
| 21:05:41 | <qrpnxz> | but both of you i guess |
| 21:05:41 | <dminuoso> | Other things is working with libraries that just hand you a string |
| 21:05:47 | <dminuoso> | Or libraries that expect a string |
| 21:06:08 | <dminuoso> | errorBundlePretty :: forall s e . (VisualStream s, TraversableStream s, ShowErrorComponent e) => ParseErrorBundle s e -> String |
| 21:06:09 | → | stackdroid18 joins (~stackdroi@user/stackdroid) |
| 21:06:16 | <dminuoso> | Here, that's the most recent example from just 5 minutes ago. |
| 21:06:19 | <qrpnxz> | lol what |
| 21:06:35 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Client Quit) |
| 21:06:48 | <EvanR> | is that megaparsec error bundle or |
| 21:06:50 | <dminuoso> | Yeah |
| 21:07:12 | <dminuoso> | For what its worth, I will be switching to alex/happy soon. But guess what, these things have a lot of String appearing internally! |
| 21:07:17 | <dminuoso> | So it will be even more T.pack then. |
| 21:08:06 | <EvanR> | maybe there's an optimization which removes the intermediate unpack . pack and lets you operate directly on list of char xD |
| 21:08:14 | <Hecate> | EvanR: I was a member of the Elixir community from 2016 to 2018 |
| 21:08:26 | <Hecate> | although I was dabbling in it since 2015 |
| 21:08:26 | <dminuoso> | I wouldnt be surprised if some packages had RULES for that, EvanR. |
| 21:08:28 | <EvanR> | we'll call it CharList |
| 21:09:05 | <qrpnxz> | text does have some stream fusion stuff in it |
| 21:09:24 | <dminuoso> | text is really well built |
| 21:09:32 | <qrpnxz> | yep |
| 21:09:43 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:10:07 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 21:11:46 | <Hecate> | https://www.cl.cam.ac.uk/~nk480/implicit-polarized-f.pdf |
| 21:11:49 | <Hecate> | GAWD DAMN |
| 21:12:08 | <dminuoso> | The T.pack mechanism is incredibly efficient for a lot of constructions. |
| 21:12:19 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 21:12:29 | <EvanR> | I'm imagining a string process library using text made mostly of Char operations, and slowed down by sometimes having to pack everything into a Text, which is immediate unpacked for reasons xD |
| 21:12:35 | <dminuoso> | It has a nice streaming mechanism, but is built such that for small buffers there's no streaming going on and almost no overhead. |
| 21:13:08 | <EvanR> | (realistically, if you are printing out a Text directly, the whole story goes inside out and is better) |
| 21:13:34 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
| 21:13:34 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Client Quit) |
| 21:13:41 | <dminuoso> | EvanR: the only bad part about Text was the internal encoding, which you would almost assuredly pay twice for over its lifetime. |
| 21:13:48 | <dminuoso> | but luckily this has finally been fixed in text-2.0 |
| 21:13:55 | <EvanR> | I was wondering about that |
| 21:14:03 | <EvanR> | utf16 is pretty weird |
| 21:14:14 | <Hecate> | we're catching up with our past |
| 21:14:21 | <dminuoso> | To be fair, utf16 is nice if you interface with some set of particular libaries |
| 21:14:27 | <Hecate> | it's great to see no-bullshit people like Bodigrim do the work |
| 21:14:34 | <Hecate> | we do deserve better |
| 21:15:22 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 21:15:54 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:16:10 | <dminuoso> | With utf8 you much more frequently steal its internal buffer :> |
| 21:16:35 | <dminuoso> | Its actually one particular annoyance I have with this network encoding protocol right now |
| 21:17:09 | <dminuoso> | A user may specify a attribute - which is a sum type of things like Word8, ByteString and Text, but I need to know its encoded attribute length ahead of time. |
| 21:17:27 | <dminuoso> | In order to validate it (since I have to know whether its utf8 encoded length will fit onto the wire) |
| 21:17:55 | <EvanR> | if you need to know something from the future to do something now, we have that |
| 21:18:16 | <EvanR> | bill and ted monad |
| 21:18:25 | <dminuoso> | EvanR: No its called TardisT |
| 21:18:32 | <dminuoso> | https://hackage.haskell.org/package/tardis-0.4.4.0/docs/Control-Monad-Tardis.html#t:TardisT |
| 21:18:39 | <EvanR> | I know, I just saw bill and ted first |
| 21:18:45 | <dminuoso> | heh |
| 21:18:48 | <EvanR> | yes I know dr who is much older |
| 21:19:50 | <dminuoso> | Bill and Ted has to be the only enjoyable display of acting by Keanu Reeves. |
| 21:20:15 | → | oldsk00l joins (~znc@ec2-13-40-82-74.eu-west-2.compute.amazonaws.com) |
| 21:21:26 | <qrpnxz> | i just thought about how transforming a list to a stream fusion type doesn't use foldr, so it can't be part of foldr/build fusion. It might be interesting to have TWO levels of stream fusion, where you have like: layer 1) your library operations; layer 2) stream fusion; layer 3) if the streams are pure and you are consuming a list, use foldr/build fusion instead. But that's kind of insane, i'm |
| 21:21:28 | <qrpnxz> | surprised to not have seen streamList/build fusion rules before actually. I'm gonna investigate that. |
| 21:21:37 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 21:22:18 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 21:25:19 | × | loras quits (~bc@c-73-139-125-125.hsd1.fl.comcast.net) (Quit: Leaving) |
| 21:25:56 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 21:26:36 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 21:28:11 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:28:18 | × | gqplox quits (~textual@97e654ef.skybroadband.com) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 21:28:32 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 21:30:26 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:31:30 | → | gqplox joins (~textual@97e654ef.skybroadband.com) |
| 21:36:06 | × | littlefinger quits (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Quit: Client closed) |
| 21:39:19 | → | Erez joins (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) |
| 21:40:38 | × | michalz quits (~michalz@185.246.207.205) (Remote host closed the connection) |
| 21:41:06 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 21:43:08 | × | Erez quits (~Erez@h-155-4-187-85.A980.priv.bahnhof.se) (Remote host closed the connection) |
| 21:45:53 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection) |
| 21:46:28 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 21:46:53 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 21:47:47 | × | acidjnk_new quits (~acidjnk@p200300d6e7137a803df8600689bd02d5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 21:51:36 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 21:52:11 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds) |
| 21:52:19 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 21:59:50 | × | coot quits (~coot@213.134.171.3) (Quit: coot) |
| 22:02:47 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:03:51 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 22:08:00 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
| 22:10:27 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 22:12:01 | × | inversed quits (~inversed@90.209.137.56) (Ping timeout: 260 seconds) |
| 22:16:44 | → | inversed joins (~inversed@90.209.137.56) |
| 22:17:20 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 265 seconds) |
| 22:18:11 | → | rockystone joins (~rocky@user/rockymarine) |
| 22:18:27 | × | caryhartline quits (~caryhartl@2600:1700:2d0:8d30::1c) (Quit: caryhartline) |
| 22:19:48 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 22:20:14 | × | kdaishi quits (~Thunderbi@94.191.152.1.mobile.tre.se) (Ping timeout: 265 seconds) |
| 22:24:19 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds) |
| 22:28:11 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) |
| 22:29:55 | → | cyphase joins (~cyphase@user/cyphase) |
| 22:31:06 | × | titibandit quits (~titibandi@xdsl-89-0-65-2.nc.de) (Ping timeout: 268 seconds) |
| 22:32:28 | → | caryhartline joins (~caryhartl@2600:1700:2d0:8d30::1c) |
| 22:33:01 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e519:421e:c827:31f) (Ping timeout: 260 seconds) |
| 22:33:20 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 22:33:32 | → | zns joins (~zns@user/zns) |
| 22:35:58 | × | Tuplanolla quits (~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:36:54 | × | heinz9 quits (~trace@user/trace) (Remote host closed the connection) |
| 22:42:04 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 22:42:14 | → | zns joins (~zns@user/zns) |
| 22:42:24 | <qrpnxz> | hmmm, it's difficult to find a way to take advantage of build |
| 22:44:05 | <geekosaur> | it is? I thought pretty much any list "pipeline" that ended with a fold did so |
| 22:44:23 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:44:49 | <dminuoso> | It's as simple as `foldr (+) 0` *shrugs* |
| 22:46:06 | × | zns quits (~zns@user/zns) (Client Quit) |
| 22:46:07 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:46:16 | → | zns joins (~zns@user/zns) |
| 22:49:15 | × | xff0x quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 252 seconds) |
| 22:54:12 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 22:55:50 | × | Guest86 quits (~Guest86@p200300ef9718356967cd5be491300607.dip0.t-ipconnect.de) (Quit: Client closed) |
| 22:56:37 | → | Guest86 joins (~Guest86@p200300ef9718356967cd5be491300607.dip0.t-ipconnect.de) |
| 22:58:44 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 22:59:14 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:00:19 | → | burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
| 23:01:59 | <Guest86> | The IntMap docs say the runtime of lookup or insert is min(n,W), n = number of entries in the map, W = number of bits in an Int (32 or 64). |
| 23:01:59 | <Guest86> | Because it's min(n,32) and 32 is a constant lookup/insert is always constant time, not log n in an Intmap? |
| 23:02:15 | → | xff0x joins (~xff0x@ai071162.d.east.v6connect.net) |
| 23:02:56 | → | mixphix joins (~mixphix@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) |
| 23:03:22 | <Guest86> | So there would never be a reason to use a hasmap if my keys are Ints? |
| 23:06:09 | × | burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds) |
| 23:07:29 | <mixphix> | you're probably better off using an IntMap if that's the case, its algorithms work by (ab)using the compile-time guarantee that the keys are encoded in a certain way |
| 23:07:51 | <mixphix> | for better performance |
| 23:08:17 | <dminuoso> | Which "certain way encoding" is that? |
| 23:08:37 | <mixphix> | the fact that they're Ints allow you to bit-twiddle safely |
| 23:09:03 | <dminuoso> | Mmm, abuse is not the term that comes to mind here. |
| 23:09:58 | → | catern joins (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) |
| 23:10:02 | <mixphix> | "abuse" is a strong word, perhaps i should have said "exploiting" |
| 23:10:14 | → | beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
| 23:10:32 | <dminuoso> | "highly efficient implementation" sounds more positive. :) |
| 23:10:36 | <mixphix> | :) |
| 23:11:18 | × | Igloo quits (~ian@matrix.chaos.earth.li) (Quit: BIAB) |
| 23:11:39 | <dminuoso> | I use a recursive IntMap to have a kind of [Int] indexed tree, its really fun. |
| 23:11:55 | <dminuoso> | Performs incredibly well for lookup |
| 23:12:01 | <dminuoso> | Not quite so much for deep insertions |
| 23:13:36 | <mixphix> | interesting that you mention that, i recently wrote a small library for list-indexed maps, though recursion is an area i haven't tackled in it |
| 23:13:47 | → | nate1 joins (~nate@98.45.169.16) |
| 23:14:39 | <mixphix> | <https://github.com/mixphix/deep-map> |
| 23:14:41 | <dminuoso> | data IntTree a = INode a (IM.IntMap (IntTree a)) |
| 23:15:44 | <dminuoso> | Luckily I dont care about deep updates much, since my tree is very flat and construction happens once, and I dont mind a few milliseconds extra. |
| 23:15:58 | <dminuoso> | It's a long running server. :) |
| 23:18:04 | → | Erez joins (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) |
| 23:18:05 | <mixphix> | i wrote the above to help with aggregation statistics, and allowing for different types of keys in the same structure |
| 23:18:35 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 23:20:51 | <dminuoso> | It's neat |
| 23:21:13 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 246 seconds) |
| 23:22:18 | × | Erez quits (~Erez@h-155-4-187-85.A412.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 23:25:09 | <Guest86> | dminuoso: Since maxBound :: Int is huge every node of your tree can have billions of children? Or am I misunderstanding your data type? |
| 23:25:28 | <EvanR> | "complexity" = min(n,W) where W is 32 or 64, so this thing is less efficient on a 64bit computer! |
| 23:25:54 | <EvanR> | switching to 16 bit for 4x boost |
| 23:26:44 | <Guest86> | EvanR: Do these constants really make a difference? |
| 23:27:08 | <EvanR> | we do have benchmark games involving various languages and haskell trying to compete with IntMap |
| 23:27:22 | <EvanR> | afair it's pretty good |
| 23:29:24 | → | Igloo joins (~ian@matrix.chaos.earth.li) |
| 23:29:25 | <EvanR> | at least the constant time complexity can be used for bragging when clojure shows up with their fancy map type |
| 23:29:41 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 268 seconds) |
| 23:32:07 | <Guest86> | Is this real constant time lookup? The IntMap docs don't mention "amortized". |
| 23:33:15 | <Guest86> | Either way seems like a very impressive data structure. |
| 23:34:12 | → | roboguy_ joins (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) |
| 23:34:58 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 23:38:09 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 23:42:46 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 23:43:38 | <dminuoso> | Guest86: No its not constant. |
| 23:43:51 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 23:47:10 | <dminuoso> | But yeah, Okaski strikes again. |
| 23:47:16 | <dminuoso> | *Okasaki |
| 23:50:23 | × | zns quits (~zns@user/zns) (Quit: zzz) |
| 23:53:03 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 23:54:11 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 23:55:27 | <probie> | EvanR: Going 16-bit won't help much. The Haskell report wants a minimum of 30 bits for an Int https://www.haskell.org/onlinereport/haskell2010/haskellch6.html#dx13-135001 |
| 23:56:11 | → | rockystone joins (~rocky@user/rockymarine) |
| 23:57:19 | <hpc> | just make your ints -1 bits wide |
All times are in UTC on 2022-10-06.