Logs on 2021-06-14 (liberachat/#haskell)
| 00:00:27 | <DigitalKiwi> | which packageo |
| 00:01:10 | <hpc> | https://archlinux.org/pacman/libalpm.3.html |
| 00:01:53 | <DigitalKiwi> | oh, yeah, lol |
| 00:02:14 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:02:25 | <DigitalKiwi> | another fun fact; that looks almost exactly like i remember it looking 10 years ago lol |
| 00:02:59 | <hpc> | heh |
| 00:04:44 | × | mekeor quits (~user@2001:a61:34b6:5701:f8e2:383b:42a4:84ad) (Ping timeout: 244 seconds) |
| 00:05:15 | <DigitalKiwi> | anyway if you use archlinux pacman is built on that unless i've missed something major developments lol |
| 00:06:23 | → | awth13 joins (~user@user/awth13) |
| 00:06:48 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
| 00:07:00 | × | zeenk2 quits (~zeenk@188.26.30.39) (Quit: Konversation terminated!) |
| 00:09:11 | int-e_ | is now known as int-e |
| 00:11:13 | → | jess joins (~jess@libera/staff/jess) |
| 00:12:07 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 00:14:48 | <DigitalKiwi> | clyde basically consisted of a thin libalpm c<->lua (lualpm) binding and (at least at the start largely transcription of pacmans c -> lua) lua reimplementation of pacman (libalpm really does most of the heavy lifting even in pacman) and added aur/makepkg support (which was the real goal) |
| 00:15:52 | × | UpstreamSalmon quits (uid12077@id-12077.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 00:20:12 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 272 seconds) |
| 00:20:54 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 00:22:54 | <DigitalKiwi> | worked fairly well; in general almost as performant as pacman (in a few cases faster); so like .1 second vs .01 for "normal" package operations and a few hundred times faster than yaourt for aur (i remember one that was like 1 minute vs 30minutes for yaourt lololol) >.> |
| 00:24:33 | → | pfurla_ joins (~pfurla@216.131.82.47) |
| 00:24:50 | <DigitalKiwi> | (i wanted to do it in haskell but i found an awesome lua config i liked (after i learned lua) before i figured out xmonad config ;( ) |
| 00:25:14 | <DigitalKiwi> | glguy knows lol |
| 00:25:29 | → | zebrag joins (~chris@user/zebrag) |
| 00:27:21 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 00:29:05 | → | ddellacosta joins (~ddellacos@89.46.62.243) |
| 00:30:07 | × | vicfred quits (~vicfred@user/vicfred) (Ping timeout: 268 seconds) |
| 00:33:49 | × | ddellacosta quits (~ddellacos@89.46.62.243) (Ping timeout: 268 seconds) |
| 00:34:00 | × | Ranhir quits (~Ranhir@157.97.53.139) (Read error: Connection reset by peer) |
| 00:34:43 | → | pottsy joins (~pottsy@2400:4050:b560:3700:79bb:fcd:bcf3:fe7c) |
| 00:36:49 | <teaSlurper> | in haskell, what's the .hi file? |
| 00:36:57 | <teaSlurper> | .hs, .hi, .o |
| 00:37:03 | <teaSlurper> | .o i guess is the output executable |
| 00:37:21 | <c_wraith> | .hi is "haskell interface". It contains information about a compiled module that isn't object code. |
| 00:37:33 | <c_wraith> | (which is what the .o stands for) |
| 00:37:52 | <DigitalKiwi> | https://stackoverflow.com/questions/56403798/what-are-the-hi-and-o-files-generated-by-ghc-on-linux |
| 00:37:53 | <teaSlurper> | .object? |
| 00:38:18 | <c_wraith> | It contains identifiers and types from the public interface of the module, as well as unfoldings for inlining and... potentially any amount of other stuff, as you can use annotations to add anything to an interface file |
| 00:38:33 | <shachaf> | I wonder whether it would make sense to just put that in the .o file. |
| 00:38:41 | → | fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
| 00:38:56 | → | Ranhir joins (~Ranhir@157.97.53.139) |
| 00:40:20 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 00:43:21 | × | pottsy quits (~pottsy@2400:4050:b560:3700:79bb:fcd:bcf3:fe7c) (Quit: Leaving) |
| 00:43:36 | → | pottsy joins (~pottsy@2400:4050:b560:3700:79bb:fcd:bcf3:fe7c) |
| 00:45:16 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 00:46:51 | × | Deide quits (~Deide@user/deide) (Quit: Seeee yaaaa) |
| 00:46:58 | <teaSlurper> | i'm compiling a file within my cabal project that isn't the main.hs under exe/ folder, using ghc someFile.hs but it isn't creating the executable for that file it seems |
| 00:47:03 | <geekosaur> | shachaf, I think thta depends on how extensible the .o format is |
| 00:47:12 | <geekosaur> | which it isn't necessarily on some platforms |
| 00:48:25 | <geekosaur> | teaSlurper, it'd need a separate executable section with main-is:,I think |
| 00:51:09 | zopsi_ | is now known as zopsi |
| 00:51:26 | <shachaf> | Don't most object file formats support arbitrary sections of some sort? |
| 00:51:44 | <shachaf> | You also need to make it so they don't go into the final executable, I guess. |
| 00:52:53 | <geekosaur> | yes, they need to be non-loadable segments and you need to not link them into the final executable, the latter possibly requiring a custom linker script on ELF platforms |
| 00:53:00 | → | pragma- joins (~chaos@user/pragmatic-chaos) |
| 00:53:30 | <geekosaur> | which gets you into nasty per-platform stuff last I checked |
| 00:54:32 | <shachaf> | Well, it doesn't need to be on every platform, but it seems like a nice improvement wherever it's supported. |
| 00:54:36 | × | dy` quits (~dy@user/dy) (Quit: ZNC 1.9.x-git-124-15e2351d - https://znc.in) |
| 00:55:31 | → | dy joins (~dy@user/dy) |
| 00:55:41 | × | waleee-cl quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 00:56:25 | → | waleee-cl joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 00:59:55 | → | Bartosz joins (~textual@24.35.90.211) |
| 01:02:06 | × | beka__ quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 264 seconds) |
| 01:03:54 | → | grnman_ joins (~gandalf@c-73-49-209-161.hsd1.fl.comcast.net) |
| 01:09:40 | → | ddellacosta joins (~ddellacos@89.45.224.204) |
| 01:11:25 | → | MorrowM joins (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
| 01:13:15 | × | MorrowM quits (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer) |
| 01:14:56 | × | ddellacosta quits (~ddellacos@89.45.224.204) (Ping timeout: 252 seconds) |
| 01:15:29 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds) |
| 01:18:28 | → | pe200012_ joins (~pe200012@183.63.73.36) |
| 01:21:03 | × | waleee-cl quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
| 01:23:26 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1) |
| 01:24:58 | → | waleee-cl joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 01:28:18 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 01:30:38 | <DigitalKiwi> | https://mostlyabsurd.com/files/2021-06-14-012806_588x533_scrot.png idk why they call it stack; seems more like a queue? |
| 01:33:15 | <dsal> | That story sounds tragic. |
| 01:33:50 | <DigitalKiwi> | lowkey hilarious that they tell you everything you need to know about how to use it before they get to the rationalization; upon which the next step is to remove it |
| 01:34:25 | → | MoonBarc joins (~MoonBarc@71.230.209.201) |
| 01:35:08 | × | MoonBarc quits (~MoonBarc@71.230.209.201) (Client Quit) |
| 01:36:54 | × | xff0x quits (~xff0x@2001:1a81:53e1:ab00:45af:7b21:1d2b:3d2e) (Ping timeout: 264 seconds) |
| 01:38:47 | → | xff0x joins (~xff0x@2001:1a81:53fe:9900:952d:23a8:a21c:b122) |
| 01:41:17 | <monochrom> | Haha I think I understand. It is a stack because "Why Stack?" is near the bottom and the bottom is how to pop everything. >:) |
| 01:41:39 | × | waleee-cl quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
| 01:42:31 | <shachaf> | Man, it's a good thing I don't do Haskell these days, so I don't deal with all this nonsense. |
| 01:42:57 | → | ddellacosta joins (~ddellacos@86.106.121.230) |
| 01:43:28 | → | Guest21 joins (~Guest21@172.92.73.93) |
| 01:45:17 | × | fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 01:45:25 | × | Guest21 quits (~Guest21@172.92.73.93) (Quit: Client closed) |
| 01:45:45 | <cdsmith> | <DigitalKiwi "lowkey hilarious that they tell "> Makes more sense, perhaps, if you interpret "Why Stack?" more like... "Why, Stack, why?" |
| 01:46:25 | <DigitalKiwi> | https://github.com/commercialhaskell/stack/releases/tag/v0.0.0-beta wow i totally thought it was a lot older than this for some reason |
| 01:46:55 | <monochrom> | I do tell my students how to (uninstall GHC and cabal after they're done in my course). |
| 01:47:33 | × | ddellacosta quits (~ddellacos@86.106.121.230) (Ping timeout: 244 seconds) |
| 01:47:38 | <monochrom> | s/'re done in/ finish/ |
| 01:47:45 | × | hueso quits (~root@152.170.216.40) (Read error: Connection reset by peer) |
| 01:47:51 | <DigitalKiwi> | (i've been a newb at haskell for longer than stack has been around...like...i remember cabal hell and being very mad it was not the package manager i wanted it to be ;p ) |
| 01:47:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:48:20 | → | hueso joins (~root@152.170.216.40) |
| 01:48:26 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:add0:1e4f:5044:d502) |
| 01:48:48 | <DigitalKiwi> | (i've had far more problems with stack than i ever did with cabal at its worst) |
| 01:50:10 | <monochrom> | Oh, and in my Unix course, the time I explain fclose is right after I explain fopen. |
| 01:51:24 | <monochrom> | I learned from someone the nice philosophy that when you learn how to launch a program you also should learn how to stop it. |
| 01:51:42 | <DigitalKiwi> | "can't stop here this is vim country" |
| 01:52:05 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:add0:1e4f:5044:d502) (Quit: WeeChat 3.1) |
| 01:52:44 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:add0:1e4f:5044:d502) |
| 01:52:47 | <DigitalKiwi> | i know something worse than not knowing how to close vim normally; not knowing how to close vim after you accidentally open an input stream |
| 01:53:08 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 01:53:25 | <monochrom> | It was also in the DOS days so every program had a different hotkey for exit so it actually took learning or at least being told. No menu to remind you nicely. Hell unsearchable in most cases even. |
| 01:53:57 | <DigitalKiwi> | i can't close emacs if it doesn't have evil mode |
| 01:58:12 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 02:00:12 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 02:01:30 | × | jespada_ quits (~jespada@90.254.242.55) (Ping timeout: 244 seconds) |
| 02:03:39 | <DigitalKiwi> | https://mostlyabsurd.com/files/2021-06-14-020310_595x109_scrot.png is this new?! |
| 02:04:03 | <DigitalKiwi> | i've never seen it before; wanted for years |
| 02:04:39 | → | jespada joins (~jespada@90.254.242.55) |
| 02:04:47 | × | danso quits (~danso@23-233-111-52.cpe.pppoe.ca) (Quit: WeeChat 3.1) |
| 02:05:05 | → | teaSlurper joins (~chris@81.96.113.213) |
| 02:05:57 | geekosaur | wonders how far upstream it goes |
| 02:06:36 | × | td_ quits (~td@94.134.91.38) (Ping timeout: 272 seconds) |
| 02:07:57 | → | td_ joins (~td@muedsl-82-207-238-233.citykom.de) |
| 02:09:15 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 244 seconds) |
| 02:09:30 | <DigitalKiwi> | https://mostlyabsurd.com/files/2021-06-14-020915_774x340_scrot.png not far |
| 02:10:37 | <DigitalKiwi> | https://github.com/Kiwi/Tiger-in-Haskell |
| 02:13:17 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 02:13:49 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 02:14:57 | × | abhixec_ quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
| 02:15:30 | <sm[m]> | DigitalKiwi: tsk tsk you haven't read the fine manual! |
| 02:15:40 | × | aerona quits (~aerona@2600:6c54:4600:f300:dd2b:2b3b:fbbd:f67) (Quit: Leaving) |
| 02:16:28 | <sm[m]> | (stack's) |
| 02:16:47 | × | pfurla_ quits (~pfurla@216.131.82.47) (Ping timeout: 272 seconds) |
| 02:16:51 | → | ddellacosta joins (~ddellacos@89.45.224.251) |
| 02:17:20 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 02:18:51 | <DigitalKiwi> | i haven't read it all no; but i haven't not read it either lol |
| 02:20:34 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 02:21:41 | <DigitalKiwi> | (for every hour that i spend complaining about/asking for help i've probably spent 4 hours more trying to figure it out myself ;( ) |
| 02:21:54 | × | ddellacosta quits (~ddellacos@89.45.224.251) (Ping timeout: 264 seconds) |
| 02:22:02 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 02:22:49 | <DigitalKiwi> | *spends 3 days git bisecting nixpkgs, indicated commit is not possibly the source of the bug* "welp time to ask for help lolol" |
| 02:23:44 | <DigitalKiwi> | (plasma5 bug) |
| 02:26:09 | <DigitalKiwi> | still don't know how to fix it; a month later i realized (found on haskell wiki) a workaround :( |
| 02:28:16 | × | machinedgod quits (~machinedg@24.105.81.50) (Quit: LunarIRC Freenode) |
| 02:30:46 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:30:46 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (tungsten.libera.chat (Nickname regained by services))) |
| 02:30:46 | finn_elija | is now known as FinnElija |
| 02:40:34 | Ekho- | is now known as Ekho |
| 02:44:49 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection) |
| 02:44:53 | → | wei2912 joins (~wei2912@112.199.250.21) |
| 02:45:10 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 268 seconds) |
| 02:45:33 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 02:47:06 | × | iDead quits (~iDead@254.142.71.148.rev.vodafone.pt) (Ping timeout: 264 seconds) |
| 02:49:53 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:51:56 | → | ddellacosta joins (~ddellacos@89.45.224.61) |
| 02:56:38 | × | ddellacosta quits (~ddellacos@89.45.224.61) (Ping timeout: 272 seconds) |
| 03:00:00 | × | Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.) |
| 03:00:06 | → | mpt joins (~tom@2a02:908:1862:49e0::5) |
| 03:00:55 | × | TheRAt quits (~TheRAt@user/therat) (Ping timeout: 244 seconds) |
| 03:03:06 | → | TheRAt joins (~TheRAt@user/therat) |
| 03:03:49 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 03:06:39 | ec_ | is now known as ec |
| 03:07:53 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 03:09:06 | → | aerona joins (~aerona@2600:6c54:4600:f300:44ca:5279:6dc:be77) |
| 03:22:01 | × | mpt quits (~tom@2a02:908:1862:49e0::5) (Ping timeout: 272 seconds) |
| 03:26:35 | × | ubikium quits (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Quit: Quit) |
| 03:28:38 | → | beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
| 03:28:46 | → | hexeme joins (~hexeme@ec2-54-188-57-39.us-west-2.compute.amazonaws.com) |
| 03:29:46 | → | ddellacosta joins (~ddellacos@89.46.62.243) |
| 03:31:36 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 03:32:02 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
| 03:32:17 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds) |
| 03:32:22 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 03:32:50 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 03:34:30 | × | ddellacosta quits (~ddellacos@89.46.62.243) (Ping timeout: 264 seconds) |
| 03:36:34 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds) |
| 03:38:06 | × | xff0x quits (~xff0x@2001:1a81:53fe:9900:952d:23a8:a21c:b122) (Ping timeout: 264 seconds) |
| 03:38:07 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 03:38:58 | → | xff0x joins (~xff0x@2001:1a81:53fe:9900:43c6:955a:a60e:3a0) |
| 03:40:15 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 03:41:01 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds) |
| 03:46:54 | <siraben> | DigitalKiwi: bisecting nixpkgs is always fun :) |
| 03:52:22 | → | eflister joins (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) |
| 03:52:36 | <DigitalKiwi> | it's very high on my list of 'amazing things that i am glad i can do but also make me want to cry' which is why i use it so often |
| 03:54:28 | doublex__ | is now known as doublex |
| 03:55:41 | <sm[m]> | DigitalKiwi: ping me next time stack bugs you, maybe I can save you some time (for nix) |
| 03:55:43 | <siraben> | DigitalKiwi: bisect saved the day in https://github.com/NixOS/nixpkgs/issues/107358 |
| 03:55:52 | → | lavaman joins (~lavaman@98.38.249.169) |
| 03:57:15 | <DigitalKiwi> | https://github.com/NixOS/nixpkgs/pull/74830 |
| 03:58:13 | <DigitalKiwi> | https://github.com/NixOS/nixpkgs/issues/76625 |
| 04:00:04 | <DigitalKiwi> | have also used it for finding bugs in kicad |
| 04:00:20 | <DigitalKiwi> | (not even nix bugs in kicad but like kicad bugs) |
| 04:03:23 | <eflister> | hi, using an xml-conduit cursor i want to filter out nodes that have a child <LineString> -- i think i need to use one of the check* functions here: https://hackage.haskell.org/package/xml-conduit-1.9.1.1/docs/Text-XML-Cursor.html#g:4 |
| 04:03:40 | × | alx741 quits (~alx741@181.196.69.243) (Quit: alx741) |
| 04:03:51 | <eflister> | my guess is something like: check (\c -> "LineString" `notElem` (c $/ nameLocalName . elementName)) |
| 04:04:40 | <eflister> | but that doesn't type check: Couldn't match type ‘T.Text’ with ‘[[Char]]’ |
| 04:06:37 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 04:07:31 | → | ddellacosta joins (~ddellacos@89.45.224.126) |
| 04:07:58 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 04:08:07 | <DigitalKiwi> | (oh and if anyone is wondering; the bug i said that i haven't fixed is actually a completely different (though very rhymy, possibly regression) one) |
| 04:08:19 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 04:08:56 | → | sheepduck_ joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 04:09:06 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Client Quit) |
| 04:11:04 | <DigitalKiwi> | xmonad is supposed to be my window manager (xmonad+plasm5 session) but for some reason kwin decides that it should launch too and then coredumps and breaks plasma shell |
| 04:11:19 | → | hololeap joins (hololeap@user/hololeap) |
| 04:12:18 | × | ddellacosta quits (~ddellacos@89.45.224.126) (Ping timeout: 264 seconds) |
| 04:12:23 | <DigitalKiwi> | head -n1 ~/.config/plasma-workspace/env/set_window_manager.sh |
| 04:12:24 | <DigitalKiwi> | export KDEWM=/run/current-system/sw/bin/xmonad |
| 04:13:57 | <DigitalKiwi> | is the work around from the wiki (it shouldn't be needed; didn't used to be needed) the session manager is supposed to handle that |
| 04:18:36 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:19:33 | → | sekun joins (~sekun@180.190.222.37) |
| 04:20:35 | × | hexeme quits (~hexeme@ec2-54-188-57-39.us-west-2.compute.amazonaws.com) (Changing host) |
| 04:20:35 | → | hexeme joins (~hexeme@user/hexeme) |
| 04:23:26 | <eflister> | anyone around that knows xml-conduit cursors? |
| 04:23:32 | → | slack1256 joins (~slack1256@191.125.227.90) |
| 04:23:45 | × | slack1256 quits (~slack1256@191.125.227.90) (Remote host closed the connection) |
| 04:24:35 | <DigitalKiwi> | the reason that's a workaround and not solution is then you can't use the session chooser to, you know, actually choose to use kwin (rare that it's desired i know but it happens) |
| 04:28:48 | → | slack1256 joins (~slack1256@191.125.227.90) |
| 04:29:19 | <slack1256> | Is there a standard pattern to organize code on IHaskell/Jupyter notebooks? |
| 04:29:41 | <slack1256> | I never thought I would say this but I miss the haskell module system... |
| 04:32:44 | → | reumeth joins (~reumeth@user/reumeth) |
| 04:39:52 | × | reumeth quits (~reumeth@user/reumeth) (Ping timeout: 272 seconds) |
| 04:41:42 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 264 seconds) |
| 04:42:04 | → | ddellacosta joins (~ddellacos@83.143.246.105) |
| 04:43:40 | × | beka quits (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 272 seconds) |
| 04:46:19 | × | ddellacosta quits (~ddellacos@83.143.246.105) (Ping timeout: 244 seconds) |
| 04:47:52 | → | chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
| 04:53:06 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 05:00:46 | × | slack1256 quits (~slack1256@191.125.227.90) (Ping timeout: 272 seconds) |
| 05:02:01 | <eflister> | anyone around have time to help me w/ my xml-conduit cursor problem? :) |
| 05:05:09 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 05:06:46 | <DigitalKiwi> | i was thinking maybe you could annotate it or pack/unpack it or maybe {-# LANGUAGE OverloadedStrings #- |
| 05:11:06 | <eflister> | DigitalKiwi: i don't think it's a string/text thing, i do have overloadedstrings on... i think it's that i don't see how to get at element names from inside a cursor. |
| 05:13:00 | → | teaSlurper joins (~chris@81.96.113.213) |
| 05:14:26 | <DigitalKiwi> | do you have a runnable code |
| 05:17:40 | <eflister> | i'll make a paste, it'll take a few |
| 05:20:03 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 05:20:21 | → | ddellacosta joins (~ddellacos@86.106.143.113) |
| 05:20:33 | <DigitalKiwi> | i haven't used any conduit and am not very good but i'm bored and have time to swing the hammer |
| 05:25:30 | × | ddellacosta quits (~ddellacos@86.106.143.113) (Ping timeout: 264 seconds) |
| 05:28:02 | × | sheepduck_ quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Quit: Leaving) |
| 05:28:39 | → | v01d4lph4 joins (~v01d4lph4@122.160.65.250) |
| 05:28:39 | × | v01d4lph4 quits (~v01d4lph4@122.160.65.250) (Changing host) |
| 05:28:39 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 05:28:40 | × | wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal) |
| 05:31:30 | → | juhp joins (~juhp@128.106.188.66) |
| 05:31:40 | × | haskller quits (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Ping timeout: 268 seconds) |
| 05:36:15 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 05:39:36 | → | Bartosz joins (~textual@24.35.90.211) |
| 05:45:58 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 05:47:58 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 05:50:35 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Read error: Connection reset by peer) |
| 05:50:53 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 05:52:30 | × | bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 264 seconds) |
| 05:55:47 | <eflister> | DigitalKiwi: awesome, thanks! here's the paste: https://paste.tomsmeding.com/2Yr7Xo7w |
| 05:56:14 | <eflister> | i may have missed some imports, let me know if doesn't work. you'll need some packages (i annotated the imports) |
| 05:58:07 | → | ddellacosta joins (~ddellacos@89.45.224.204) |
| 05:58:12 | <eflister> | a lot of the code is just for downloading and unzipping a .kmz, you can ignore that part. inside, it's just xml. the `elem` function is where i need to filter out nodes that have <LineString> children |
| 06:01:45 | → | wonko joins (~wjc@62.115.229.50) |
| 06:02:04 | <eflister> | DigitalKiwi: i missed some imports, here's updated paste: https://paste.tomsmeding.com/FxFOw6LO |
| 06:02:26 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 06:02:40 | → | qbt joins (~edun@user/edun) |
| 06:03:12 | × | aerona quits (~aerona@2600:6c54:4600:f300:44ca:5279:6dc:be77) (Quit: Leaving) |
| 06:03:28 | × | ddellacosta quits (~ddellacos@89.45.224.204) (Ping timeout: 272 seconds) |
| 06:06:45 | → | lavaman joins (~lavaman@98.38.249.169) |
| 06:07:30 | × | acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Ping timeout: 264 seconds) |
| 06:09:02 | → | beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
| 06:09:44 | × | hemlock quits (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Remote host closed the connection) |
| 06:09:54 | → | hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net) |
| 06:11:07 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 06:11:23 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 06:12:53 | zaquest_ | is now known as zaquest |
| 06:19:25 | <eflister> | cursors are discussed here: https://www.yesodweb.com/book/xml#xml_cursor, and i think this is the only stackoverflow question (with xml-conduit's author's reply) that hints at how to use `check`: https://stackoverflow.com/questions/51605604/how-to-check-on-nodes-content-in-text-xml-cursor |
| 06:21:00 | × | Sgeo_ quits (~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer) |
| 06:21:45 | <eflister> | in another context, i was able to use `checkElement` to filter based on a node's attribute values, but i don't see how to look at a node's childrens' names... |
| 06:21:47 | <eflister> | checkElement (maybe False (not . T.isInfixOf "Spanish") . M.lookup "ows_Document" . X.elementAttributes) |
| 06:25:08 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 252 seconds) |
| 06:27:23 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:28:32 | → | bfrk joins (~bfrk@200116b8451b0900bae0ed5ddd267e3d.dip.versatel-1u1.de) |
| 06:29:22 | → | acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) |
| 06:32:42 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 06:32:48 | × | eflister quits (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) (Quit: Client closed) |
| 06:33:37 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 06:35:13 | → | ddellacosta joins (~ddellacos@86.106.143.126) |
| 06:37:42 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:c6a2:6b31:b38d:d90c) |
| 06:37:54 | → | zaquest joins (~notzaques@5.128.210.178) |
| 06:38:43 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 06:39:02 | → | eflister joins (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) |
| 06:39:43 | <eflister> | DigitalKiwi: sorry, my irc client disconnected. did i miss anything? |
| 06:39:59 | × | ddellacosta quits (~ddellacos@86.106.143.126) (Ping timeout: 252 seconds) |
| 06:40:58 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:49:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:52:03 | → | rk04 joins (~rk04@user/rajk) |
| 06:53:54 | <Obo> | eflister: You didn't, the last message was yours "checkElement (maybe False (not . T.isInfixOf "Spanish") . M.lookup "ows_Document" . X.elementAttributes) " |
| 06:57:18 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 06:59:13 | → | chele joins (~chele@user/chele) |
| 07:00:20 | → | nsilv joins (~nsilv@212.103.198.210) |
| 07:01:12 | → | yoctocell joins (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
| 07:04:52 | <nsilv> | anyone know where to find a sort of tutorial for the tactic metaprogramming stuff in HLS/wingman? I'm very excited about it but i don't know how to use it at all and the command reference is not... "easy" enough for me |
| 07:05:35 | × | eflister quits (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) (Quit: Client closed) |
| 07:07:21 | → | eflister joins (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) |
| 07:09:07 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 07:09:35 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:11:41 | × | eflister quits (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) (Client Quit) |
| 07:11:57 | → | eflister joins (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) |
| 07:12:14 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 07:13:49 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 07:14:36 | × | rk04 quits (~rk04@user/rajk) (Ping timeout: 244 seconds) |
| 07:16:12 | → | fizbin joins (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) |
| 07:20:42 | × | fizbin quits (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Ping timeout: 264 seconds) |
| 07:22:50 | → | berberman_ joins (~berberman@user/berberman) |
| 07:23:08 | → | thyriaen joins (~thyriaen@45.178.75.13) |
| 07:23:29 | → | rk04 joins (~rk04@user/rajk) |
| 07:23:31 | × | berberman quits (~berberman@user/berberman) (Ping timeout: 272 seconds) |
| 07:23:54 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 07:25:31 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:29:39 | <DigitalKiwi> | eflister: i haven't figured it out but i have turned it into an executable lolol https://mostlyabsurd.com/files/eflister.hs |
| 07:30:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:30:27 | → | Bartosz joins (~textual@24.35.90.211) |
| 07:31:25 | <eflister> | DigitalKiwi: sweet, does it run for ya? :) |
| 07:32:41 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 244 seconds) |
| 07:33:12 | × | xff0x quits (~xff0x@2001:1a81:53fe:9900:43c6:955a:a60e:3a0) (Ping timeout: 244 seconds) |
| 07:35:16 | → | NanoCoaster joins (~NanoCoast@p200300e127264d001d3a04d52b588e67.dip0.t-ipconnect.de) |
| 07:35:29 | → | xff0x joins (~xff0x@port-92-193-146-235.dynamic.as20676.net) |
| 07:36:44 | <DigitalKiwi> | https://dpaste.com/HLNN5SGVU |
| 07:38:01 | → | xff0x_ joins (~xff0x@2001:1a81:5217:f900:b4f5:de89:c51f:a8f2) |
| 07:39:15 | <DigitalKiwi> | https://dpaste.com/9PMV5276F |
| 07:39:17 | <eflister> | nice, should have crashed after that last line w/ non-single entry for name or coordinates: |
| 07:39:22 | <DigitalKiwi> | not without issue ;( |
| 07:40:30 | × | xff0x quits (~xff0x@port-92-193-146-235.dynamic.as20676.net) (Ping timeout: 264 seconds) |
| 07:40:33 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 07:42:51 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 07:42:54 | × | xff0x_ quits (~xff0x@2001:1a81:5217:f900:b4f5:de89:c51f:a8f2) (Ping timeout: 264 seconds) |
| 07:43:02 | <DigitalKiwi> | apc --stdin only catches stdin not stderr ;) |
| 07:43:25 | → | zeenk joins (~zeenk@188.26.30.39) |
| 07:43:50 | <DigitalKiwi> | ...or is that stdout ;( |
| 07:44:21 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
| 07:44:23 | <DigitalKiwi> | alll i know is it's a pipe and pipes are not monads |
| 07:44:41 | → | ddellacosta joins (~ddellacos@89.45.224.139) |
| 07:44:52 | → | xff0x_ joins (~xff0x@2001:1a81:5218:3700:3ae4:4792:9b34:1aa4) |
| 07:46:42 | × | rk04 quits (~rk04@user/rajk) (Ping timeout: 272 seconds) |
| 07:48:59 | × | curiousgay__ quits (~quassel@178.217.208.8) (Read error: Connection reset by peer) |
| 07:49:17 | × | ddellacosta quits (~ddellacos@89.45.224.139) (Ping timeout: 252 seconds) |
| 07:49:37 | × | Adran quits (~adran@botters/adran) (Quit: Este é o fim.) |
| 07:49:42 | → | jonathanclarke joins (~jonathanc@103.10.29.113) |
| 07:57:18 | × | xff0x_ quits (~xff0x@2001:1a81:5218:3700:3ae4:4792:9b34:1aa4) (Ping timeout: 264 seconds) |
| 07:58:03 | → | Adran joins (adran@botters/adran) |
| 07:59:02 | → | xff0x_ joins (~xff0x@2001:1a81:5218:7800:b9e1:5f79:cd80:a599) |
| 08:00:00 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:02:08 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds) |
| 08:03:11 | → | lavaman joins (~lavaman@98.38.249.169) |
| 08:07:01 | × | nsilv quits (~nsilv@212.103.198.210) (Ping timeout: 272 seconds) |
| 08:07:40 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:09:10 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 08:10:28 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
| 08:14:48 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 08:15:19 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection) |
| 08:15:50 | × | seeg- quits (~seeg@2a05:f480:1400:311:5400:1ff:feff:256) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
| 08:16:11 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 08:16:47 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 252 seconds) |
| 08:17:38 | × | xff0x_ quits (~xff0x@2001:1a81:5218:7800:b9e1:5f79:cd80:a599) (Ping timeout: 244 seconds) |
| 08:18:13 | → | xff0x_ joins (~xff0x@2001:1a81:5219:1100:74ab:2dfb:4e35:abdc) |
| 08:18:40 | × | jespada quits (~jespada@90.254.242.55) (Ping timeout: 244 seconds) |
| 08:18:52 | × | hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:18:55 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 08:20:08 | → | ddellacosta joins (~ddellacos@89.46.62.230) |
| 08:22:40 | → | jespada joins (~jespada@90.254.242.55) |
| 08:22:52 | <tomsmeding> | 2>&1 |
| 08:24:31 | → | nsilv joins (~nsilv@212.103.198.210) |
| 08:24:54 | × | ddellacosta quits (~ddellacos@89.46.62.230) (Ping timeout: 264 seconds) |
| 08:25:49 | → | wonko joins (~wjc@62.115.229.50) |
| 08:25:55 | → | Katarushisu joins (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) |
| 08:27:52 | × | xff0x_ quits (~xff0x@2001:1a81:5219:1100:74ab:2dfb:4e35:abdc) (Ping timeout: 272 seconds) |
| 08:29:30 | → | xff0x_ joins (~xff0x@2001:1a81:5219:5000:9ac3:530e:1bca:1c56) |
| 08:29:44 | → | neceve joins (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) |
| 08:37:08 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 08:37:51 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 08:38:03 | × | lavaman quits (~lavaman@98.38.249.169) () |
| 08:38:19 | → | lavaman joins (~lavaman@98.38.249.169) |
| 08:42:37 | → | mpt joins (~tom@2a02:908:1862:49e0::5) |
| 08:44:23 | × | xff0x_ quits (~xff0x@2001:1a81:5219:5000:9ac3:530e:1bca:1c56) (Ping timeout: 272 seconds) |
| 08:44:27 | × | lemmih quits (~lemmih@2406:3003:2072:44:be73:ba81:5410:4a30) (Remote host closed the connection) |
| 08:44:45 | → | lemmih joins (~lemmih@2406:3003:2072:44:925e:d7ab:50d2:4457) |
| 08:45:41 | → | xff0x_ joins (~xff0x@2001:1a81:5219:ab00:f769:e02a:3ef8:6355) |
| 08:50:28 | → | kuribas joins (~user@ptr-25vy0ia399rh9n147f5.18120a2.ip6.access.telenet.be) |
| 08:54:34 | → | ddellacosta joins (~ddellacos@86.106.121.191) |
| 08:54:58 | → | fendor_ joins (~fendor@77.119.131.39.wireless.dyn.drei.com) |
| 08:55:12 | × | unyu quits (~pyon@user/pyon) (Ping timeout: 252 seconds) |
| 08:56:23 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 244 seconds) |
| 08:57:38 | × | fendor quits (~fendor@77.119.131.227.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
| 08:57:46 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 08:58:35 | → | unyu joins (~pyon@user/pyon) |
| 08:58:47 | → | dhil joins (~dhil@195.213.192.47) |
| 08:59:06 | × | ddellacosta quits (~ddellacos@86.106.121.191) (Ping timeout: 264 seconds) |
| 09:01:17 | × | eflister quits (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) (Quit: Client closed) |
| 09:02:23 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 09:02:42 | × | Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 264 seconds) |
| 09:02:58 | → | oxide joins (~lambda@user/oxide) |
| 09:07:28 | → | Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
| 09:07:48 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 09:08:03 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 09:10:29 | asm_ | is now known as asm |
| 09:10:36 | × | asm quits (~alexander@burner.asm89.io) (Changing host) |
| 09:10:36 | → | asm joins (~alexander@user/asm) |
| 09:11:47 | <teaSlurper> | i'm using a lib which has a function called note |
| 09:11:53 | × | mpt quits (~tom@2a02:908:1862:49e0::5) (Ping timeout: 244 seconds) |
| 09:11:58 | <teaSlurper> | it takes 2 args |
| 09:12:40 | <dminuoso> | optics question, is there a way to (unsafely) set a fixed index into an optic, along the lines of `10 <<% ifolded`, which would set the index of each target to 10? |
| 09:12:58 | <teaSlurper> | duration (fraction) and a predefined type thing called Pitch (A,4) |
| 09:12:58 | <dminuoso> | (Im fully aware that this would let me create wrong traversals, I just need this for indexed folds) |
| 09:13:10 | → | Guest25 joins (~Guest25@212.241.20.133) |
| 09:13:37 | <teaSlurper> | the function only works for me when i declare Pitch before hand with it's type |
| 09:13:53 | <dminuoso> | Ah I guess I can do: l <<% r = reindexed (const l) <% r |
| 09:14:02 | <teaSlurper> | it's like the note function or haskell can't infer that (A,4) is of Pitch type |
| 09:14:30 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:14:52 | × | Guest25 quits (~Guest25@212.241.20.133) (Client Quit) |
| 09:15:45 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 09:21:04 | × | unyu quits (~pyon@user/pyon) (Read error: Connection reset by peer) |
| 09:21:08 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 252 seconds) |
| 09:22:43 | → | flounders_ joins (~flounders@173.246.200.33) |
| 09:26:37 | × | flounders quits (~flounders@173.246.200.33) (Ping timeout: 268 seconds) |
| 09:27:11 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 09:28:14 | → | unyu joins (~pyon@user/pyon) |
| 09:29:42 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Ping timeout: 268 seconds) |
| 09:33:45 | → | ddellacosta joins (~ddellacos@86.106.143.74) |
| 09:35:18 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:36:10 | × | jonathanclarke quits (~jonathanc@103.10.29.113) (Ping timeout: 244 seconds) |
| 09:36:31 | <dminuoso> | teaSlurper: can you share the full code and error message? |
| 09:38:33 | → | chaosite joins (~chaosite@user/chaosite) |
| 09:38:51 | × | ddellacosta quits (~ddellacos@86.106.143.74) (Ping timeout: 272 seconds) |
| 09:39:50 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 252 seconds) |
| 09:44:46 | × | unyu quits (~pyon@user/pyon) (Read error: Connection reset by peer) |
| 09:45:41 | <teaSlurper> | sure, is there like a haskell editor online i can paste code too? |
| 09:45:52 | <teaSlurper> | @dminuoso |
| 09:45:52 | <lambdabot> | Unknown command, try @list |
| 09:45:59 | <teaSlurper> | dminuoso: |
| 09:47:58 | <dminuoso> | @where paste |
| 09:47:58 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 09:48:01 | → | jonathanclarke joins (~jonathanc@202.51.76.213) |
| 09:51:54 | → | unyu joins (~pyon@user/pyon) |
| 09:52:42 | <kuribas> | teaSlurper: why use a tuple for notes, instead of a datatype? |
| 09:53:13 | × | involans quits (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 244 seconds) |
| 09:53:13 | × | unyu quits (~pyon@user/pyon) (Read error: Connection reset by peer) |
| 09:53:39 | → | involans joins (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) |
| 09:56:38 | × | dustinm- quits (~dustinm@static.38.6.217.95.clients.your-server.de) (Quit: Leaving) |
| 09:57:43 | → | lavaman joins (~lavaman@98.38.249.169) |
| 09:59:06 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 10:00:42 | × | pe200012_ quits (~pe200012@183.63.73.36) (Remote host closed the connection) |
| 10:01:41 | → | unyu joins (~pyon@user/pyon) |
| 10:02:00 | → | pe200012 joins (~pe200012@183.63.73.36) |
| 10:02:07 | <teaSlurper> | dminuoso: https://paste.tomsmeding.com/impYIaVh |
| 10:02:17 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
| 10:02:29 | × | micro_ quits (~micro@user/micro) (Ping timeout: 272 seconds) |
| 10:02:36 | <teaSlurper> | kuribas: it's the lib i'm using called "Euterpea" |
| 10:02:59 | → | micro joins (~micro@user/micro) |
| 10:03:00 | <teaSlurper> | dminuoso: the first line of the mel when defined with primitives type made the rest work strangely |
| 10:03:16 | × | nsilv quits (~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1) |
| 10:03:38 | <tomsmeding> | teaSlurper: try adding a type signature to melInterpretation1 |
| 10:03:40 | <teaSlurper> | ef 4 qn == note qn (Ef,4) |
| 10:03:42 | → | saucyfox joins (~saucyfox@user/saucyfox) |
| 10:03:43 | → | nsilv joins (~nsilv@212.103.198.210) |
| 10:03:44 | ← | saucyfox parts (~saucyfox@user/saucyfox) (The Lounge - https://thelounge.chat) |
| 10:03:50 | <teaSlurper> | qn = 1/4 |
| 10:04:44 | <teaSlurper> | tomsmeding: does haskell sometimes have trouble infering correct type? |
| 10:04:45 | × | nsilv quits (~nsilv@212.103.198.210) (Client Quit) |
| 10:05:15 | <tomsmeding> | teaSlurper: well, yes, but only in complicated cases and this is probably not one |
| 10:05:30 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 10:05:35 | <tomsmeding> | but what having a type signature does help with, it making sure that you and the compiler agree on types of things |
| 10:05:45 | <teaSlurper> | i'll try adding type signature |
| 10:06:02 | <tomsmeding> | in case you don't agree, the type inferencer tends to give errors at different spots than where you expect them |
| 10:06:18 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 264 seconds) |
| 10:06:27 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 10:08:01 | × | unyu quits (~pyon@user/pyon) (Read error: Connection reset by peer) |
| 10:08:28 | → | pe200012_ joins (~pe200012@183.63.73.36) |
| 10:08:37 | × | pe200012 quits (~pe200012@183.63.73.36) (Ping timeout: 272 seconds) |
| 10:09:25 | <teaSlurper> | tomsmeding: looks like you were right |
| 10:10:16 | <teaSlurper> | i'm using visual studio code with haskell language server and it recommended the wrong type signature by default so i had to figure out what the actual type signature should be |
| 10:10:56 | <tomsmeding> | teaSlurper: for my curiosity, what was the correct signature and what was the inferred signature? |
| 10:11:37 | → | ddellacosta joins (~ddellacos@89.46.62.178) |
| 10:11:43 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 10:12:11 | → | dustinm joins (~dustinm@static.38.6.217.95.clients.your-server.de) |
| 10:13:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 10:14:16 | → | unyu joins (~pyon@user/pyon) |
| 10:14:55 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:15:57 | × | ddellacosta quits (~ddellacos@89.46.62.178) (Ping timeout: 244 seconds) |
| 10:16:14 | <teaSlurper> | tomsmeding: https://paste.tomsmeding.com/elqUIhUb |
| 10:16:49 | → | cfricke joins (~cfricke@user/cfricke) |
| 10:16:54 | <tomsmeding> | teaSlurper: ah right, that Any is ghc saying I have no idea what this should be |
| 10:17:40 | <tomsmeding> | had you replaced that Any with Octave, or equivalently Int, it should have worked |
| 10:17:46 | <teaSlurper> | ok cool, thx. i'm new to haskell so it's all a bit fuzzy at the mo, but i have a general idea |
| 10:18:00 | <teaSlurper> | oh cool |
| 10:18:01 | <tomsmeding> | because Pitch = (PitchClass, Octave) |
| 10:18:20 | <teaSlurper> | that does make sense |
| 10:18:27 | <teaSlurper> | have you used Euterpea? |
| 10:18:40 | <tomsmeding> | no, I just did https://github.com/Euterpea/Euterpea2/search?q=Pitch :p |
| 10:19:02 | <teaSlurper> | coolzies |
| 10:19:11 | <teaSlurper> | quick search |
| 10:20:13 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 10:20:21 | <teaSlurper> | i'm learning haskell for my msc dissertation based on computer music, i hear haskell is used quite a bit in that field |
| 10:20:35 | <teaSlurper> | going through a haskell book called "school of music" |
| 10:20:51 | <teaSlurper> | to learn both music theory and haskell simultaneously |
| 10:20:57 | <tomsmeding> | cool stuff! I know of at least one other person using haskell for computer music, but I'm really not in that scene |
| 10:21:14 | <tomsmeding> | though I know both music and haskell, so perhaps I should change that :p |
| 10:21:35 | × | thyriaen quits (~thyriaen@45.178.75.13) (Read error: No route to host) |
| 10:21:42 | <DigitalKiwi> | teaSlurper: plz let me know how you like that one i've had it on my list for ages heh |
| 10:21:49 | <teaSlurper> | cool, fair play. i'll give myself rest of june to see how far i get, that worst case scenario i'll pivot to JavaScript and use webAudio |
| 10:22:22 | <teaSlurper> | DigitalKiwi: ye sure, on chapter 2 now |
| 10:22:38 | fendor_ | is now known as fendor |
| 10:23:31 | <teaSlurper> | lazy evaluation and infix operations and recursion seem useful for music composition, but these concepts are very new to me |
| 10:23:37 | <teaSlurper> | operators* |
| 10:23:57 | <teaSlurper> | can express things with less code in haskell i guess |
| 10:24:20 | <tomsmeding> | that tends to be true in general with haskell, for a surprising number of purposes |
| 10:24:44 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 244 seconds) |
| 10:25:02 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 10:25:05 | <DigitalKiwi> | there are some hear who don't even write code they merely import their libraries |
| 10:25:30 | <tomsmeding> | that's more like python, right? |
| 10:25:45 | <teaSlurper> | in js/java i guess a recursive melody would crash or stack overflow at runtime, i guess haskell's lazy evaluation is what stops it crashing? |
| 10:25:52 | tomsmeding | . o O ( https://xkcd.com/353/ ) |
| 10:26:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:26:34 | <tomsmeding> | teaSlurper: that sounds accurate enough |
| 10:26:46 | <DigitalKiwi> | it is said that edwardk can solve any problem with 1 line of code and a vast number of imports |
| 10:26:59 | <tomsmeding> | depending I guess on exactly what you mean with "recursive melody" |
| 10:27:15 | <tomsmeding> | DigitalKiwi: can that line include ; |
| 10:27:27 | <DigitalKiwi> | i'll allow it |
| 10:27:37 | <teaSlurper> | a function that just calls itself for ever adding more notes and then sending that to a function to play |
| 10:27:41 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds) |
| 10:28:02 | <teaSlurper> | you don't have to specific an end point |
| 10:28:05 | <tomsmeding> | > let x = 1 : x in x |
| 10:28:06 | <teaSlurper> | specify* |
| 10:28:07 | <lambdabot> | [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1... |
| 10:28:53 | <teaSlurper> | cool |
| 10:29:34 | <teaSlurper> | i could define a recursive function that adds random notes to itself (an array) and then just that to a play function i guess |
| 10:29:44 | <teaSlurper> | just send that* |
| 10:29:47 | <tomsmeding> | s/array/list/, but yes |
| 10:29:48 | <teaSlurper> | or parse |
| 10:30:13 | <DigitalKiwi> | https://clrnd.com.ar/posts/2017-04-21-the-water-jug-problem-in-hedgehog.html |
| 10:30:56 | × | xff0x_ quits (~xff0x@2001:1a81:5219:ab00:f769:e02a:3ef8:6355) (Ping timeout: 244 seconds) |
| 10:31:52 | → | xff0x_ joins (~xff0x@2001:1a81:5219:ab00:108a:2215:f051:17c7) |
| 10:33:16 | × | juhp quits (~juhp@128.106.188.66) (Quit: juhp) |
| 10:33:23 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 10:35:10 | → | oxide joins (~lambda@user/oxide) |
| 10:36:06 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 244 seconds) |
| 10:36:49 | → | azeem joins (~azeem@176.201.21.98) |
| 10:36:54 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 10:37:45 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:38:06 | <kuribas> | would generics-eot be understandable by a beginner? |
| 10:38:10 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 244 seconds) |
| 10:38:20 | × | bpalmer quits (~user@user/bpalmer) (Remote host closed the connection) |
| 10:38:26 | <kuribas> | https://hackage.haskell.org/package/generics-eot-0.4.0.1/docs/Generics-Eot.html |
| 10:38:33 | → | bpalmer joins (~user@user/bpalmer) |
| 10:39:17 | → | cfricke joins (~cfricke@user/cfricke) |
| 10:43:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:43:24 | → | ddellacosta joins (~ddellacos@89.45.224.126) |
| 10:43:34 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:45:26 | → | pkkm2 joins (~pkkm@dgs4.neoplus.adsl.tpnet.pl) |
| 10:46:52 | ← | pkkm2 parts (~pkkm@dgs4.neoplus.adsl.tpnet.pl) () |
| 10:48:28 | × | ddellacosta quits (~ddellacos@89.45.224.126) (Ping timeout: 272 seconds) |
| 10:49:15 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 268 seconds) |
| 10:50:05 | → | Schrostfutz_ joins (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) |
| 10:50:31 | → | cfricke joins (~cfricke@user/cfricke) |
| 10:50:38 | <Schrostfutz_> | Hi, I saw a way to reverse the dot notation of function composition to make it a bit more readable, can someone remind me how that's done? |
| 10:51:06 | <tomsmeding> | :t Data.Function.(&) |
| 10:51:08 | <lambdabot> | error: |
| 10:51:08 | <lambdabot> | Not in scope: data constructor ‘Data.Function’ |
| 10:51:08 | <lambdabot> | Perhaps you meant one of these: |
| 10:51:35 | → | haskman joins (~haskman@171.61.149.211) |
| 10:51:36 | <tomsmeding> | % import Data.Function |
| 10:51:36 | <yahb> | tomsmeding: |
| 10:51:40 | <tomsmeding> | % :t (&) |
| 10:51:41 | <yahb> | tomsmeding: a -> (a -> b) -> b |
| 10:51:48 | <tomsmeding> | Schrostfutz_: that one? |
| 10:52:48 | <merijn> | Schrostfutz_: I highly recommend "just getting used to it" instead, though |
| 10:52:55 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Quit: Must not waste too much time here...) |
| 10:53:05 | <merijn> | Or you will be unable to read >80% of haskell out there |
| 10:53:31 | <Schrostfutz_> | tomsmeding: Yes, that one! |
| 10:53:51 | <tomsmeding> | it's the flipped version of ($) though, not of (.) |
| 10:53:57 | <Schrostfutz_> | merijn: I understand it and am used to it, but for long chains I still find it unwieldy |
| 10:54:12 | <Schrostfutz_> | tomsmeding: The difference being its associativity, right? |
| 10:54:21 | <tomsmeding> | :t ($) |
| 10:54:23 | <lambdabot> | (a -> b) -> a -> b |
| 10:54:24 | <tomsmeding> | :t (.) |
| 10:54:25 | <lambdabot> | (b -> c) -> (a -> b) -> a -> c |
| 10:54:27 | <merijn> | Schrostfutz_: One composes, the other does not |
| 10:54:48 | <tomsmeding> | apparently some libraries define a flipped version of (.) too but it's not nearly as common |
| 10:54:54 | <Schrostfutz_> | Ah |
| 10:54:58 | <dminuoso> | % :t (>>>) |
| 10:54:59 | <yahb> | dminuoso: forall {k} {cat :: k -> k -> *} {a :: k} {b :: k} {c :: k}. Category cat => cat a b -> cat b c -> cat a c |
| 10:55:04 | → | juhp joins (~juhp@128.106.188.66) |
| 10:55:04 | <tomsmeding> | (and even (&) is reasonably uncommon) |
| 10:55:04 | <merijn> | Schrostfutz_: i.e. "f . g . h" can be refactored into "let x = f . g in x . h" always typechecks for any f/g/h |
| 10:55:08 | <dminuoso> | This is a (generalized) version of flip (.) |
| 10:55:17 | tomsmeding | always forgets the arrow stuff |
| 10:55:19 | <merijn> | Schrostfutz_: That does not hold for $ and &, making them more difficult to refactor |
| 10:55:27 | <merijn> | tomsmeding: That's Category :p |
| 10:55:33 | <dminuoso> | (>>>) is rather oncommon though |
| 10:55:41 | <cstml> | aren't Arrows (>>>) basically flipped (.) |
| 10:55:45 | <merijn> | tomsmeding: There's also a >>> from Arrow, but at this point best just forget Arrow exists |
| 10:55:50 | <merijn> | cstml: Yes |
| 10:55:51 | <dminuoso> | cstml: They are more general than flipped (.) |
| 10:56:25 | <tomsmeding> | merijn: it took a while before I realised that Data.Bifunctor also exports first and second |
| 10:56:30 | <dminuoso> | For `instance Category (->)` you have `(>>>) = flip (.)` |
| 10:56:33 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 10:56:38 | <dminuoso> | But Category has other instances too, so.. |
| 10:56:58 | <Schrostfutz_> | dminuoso: That one also looks convenient |
| 10:57:54 | <merijn> | tomsmeding: The combination of Profunctor, Applicative, and Category pretty much completely obsolete Arrow and Bifunctor obsoletes the few combinators from Arrow that people use for non-arrowy things :p |
| 10:58:25 | <dminuoso> | Schrostfutz_: Id pick (.) for no reason other than visual symmetrich with function application. i.e. `(f . g) x = f (g x)` -- the relative order of variables dot not change. |
| 10:58:44 | <dminuoso> | Once you stick to a consistent style, it becomes easier for your brain to read intuitively too |
| 10:58:47 | <tomsmeding> | "dot not change" indeed |
| 10:59:02 | <dminuoso> | So many typos there. :( |
| 10:59:19 | <cstml> | reading the . dot as "after" really helps as well. So you read f . g as f "after" g |
| 10:59:34 | <merijn> | I use dminuoso's reading/parsing style, yeah |
| 10:59:38 | <cstml> | then it's easy to internalise |
| 10:59:48 | <Schrostfutz_> | I get that, but often times I find myself writing what would be pipelinens on the shell, so find ... | grep ... | sort ... | head, so I'm looking for something similar |
| 10:59:53 | × | azeem quits (~azeem@176.201.21.98) (Read error: Connection reset by peer) |
| 11:00:13 | <merijn> | mconcat + endo ;) |
| 11:00:28 | <merijn> | Although that only works for functions that all have the same type, I suppose |
| 11:00:31 | <cstml> | you can define your own `flip (.)` and then just use it |
| 11:00:32 | <merijn> | Sadly |
| 11:00:38 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 11:01:56 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 244 seconds) |
| 11:01:57 | <dminuoso> | Schrostfutz_: As it happens, for shell-type you have streaming. So with conduit you'd write .| just like that: |
| 11:02:11 | <merijn> | That depends on the kinda pipeline, though |
| 11:02:17 | <merijn> | That's mostly for more IO-y things |
| 11:02:23 | <merijn> | or monad-y things |
| 11:02:48 | <dminuoso> | And you also have (>=>) for a monadic version of (>>>) (and (<=<) for a monadic version of (.)/(<<<) |
| 11:03:18 | <cstml> | dminuoso: spot on. Exactly what I was going to write |
| 11:03:29 | <dminuoso> | Personally I'd just get used to this reverse style of (.) because it's so ubiquitous in Haskell.. |
| 11:03:45 | <dminuoso> | And because of visual symmetry with application |
| 11:03:50 | <dminuoso> | Simplified refactoring |
| 11:04:02 | <dminuoso> | So many reasons to use (.), so little reasons to use (>>>) :) |
| 11:04:04 | <cstml> | It's also mathematical notation |
| 11:04:21 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
| 11:04:24 | <Schrostfutz_> | Maybe that's also part of the reason why it annoys me: with monads I write code in the reverse order as I do regular functions so I'd want to have a consistent way |
| 11:04:40 | <dminuoso> | Reverse order? |
| 11:04:47 | <dminuoso> | Oh you mean with >>=? |
| 11:04:51 | <dminuoso> | You can use =<< too if you prefer. |
| 11:05:00 | <tomsmeding> | always an answer :p |
| 11:05:30 | <dminuoso> | gnidemsmot, doing things the wrong way around is not an option! |
| 11:06:13 | → | swistak joins (~swistak@185.21.216.141) |
| 11:06:14 | tomsmeding | was confused for too long by that |
| 11:06:25 | tomsmeding | adds that to my highlight list |
| 11:07:26 | <Schrostfutz_> | dminuoso: but code commonly is written using >>=, so then I'd find myself again using a style different from anyone else\ |
| 11:08:01 | <tomsmeding> | Schrostfutz_: code with more than one >>= is commonly written in do-notation, which is similar to let-bindings |
| 11:08:06 | <tomsmeding> | (in structure) |
| 11:08:49 | <tomsmeding> | hm I guess unless it's really a pipeline |
| 11:08:55 | <dminuoso> | And then, visually, data flows from right to left. |
| 11:09:13 | <dminuoso> | Though mmm. With applicative style its different |
| 11:09:18 | <dminuoso> | Or is it? |
| 11:09:24 | <dminuoso> | (,) <$> foo <*> bar |
| 11:09:29 | <tomsmeding> | applicative is directionless |
| 11:09:38 | <dminuoso> | is it really? |
| 11:09:41 | <tomsmeding> | which is the entire point, right? |
| 11:09:45 | × | rusua quits (uid124537@id-124537.highgate.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:09:58 | <dminuoso> | for all instances which also have monad, there's an inherent direction |
| 11:09:58 | <Schrostfutz_> | It |
| 11:10:08 | <dminuoso> | tomsmeding: consider attoparsec/megaparsec parsers. |
| 11:10:12 | <tomsmeding> | hm true |
| 11:10:17 | <Schrostfutz_> | It's bidirectional and matches the visual direction |
| 11:10:23 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:10:28 | <jophish> | https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Applicative-Backwards.html |
| 11:10:41 | <dminuoso> | jophish: that's a cute one :) |
| 11:10:55 | <dminuoso> | % getConst . forwards . traverse (Backwards . Const) $ ["foo", "bar", "quux"] |
| 11:10:56 | <yahb> | dminuoso: ; <interactive>:29:12: error: Variable not in scope: forwards :: f0 [b1] -> Const c b2; <interactive>:29:33: error:; * Data constructor not in scope: Backwards :: Const String b0 -> f0 b1; * Perhaps you meant variable `backwards' (imported from Control.Lens) |
| 11:10:56 | <merijn> | tomsmeding: It's not, though |
| 11:11:08 | tomsmeding | wants Backwards to also be a monad |
| 11:11:13 | <dminuoso> | % getConst . forwards . traverse (Backwards . Const) $ ["foo", "bar", "quux"] |
| 11:11:14 | <yahb> | dminuoso: "quuxbarfoo" |
| 11:11:26 | <merijn> | tomsmeding: The true difference is "effects can't depend on results of previous actions/effects) |
| 11:11:41 | <merijn> | And of course, then there's Selective as funky hybrid |
| 11:12:01 | <dminuoso> | There are combinators that get rid of direction, like permutation parsers. |
| 11:12:16 | <dminuoso> | Those dont have an obvious effect order anymore |
| 11:13:11 | <dminuoso> | In applicative style I rarely find myself using (<<), but that's probably because of things like (<*) and (*>) |
| 11:13:22 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 11:13:23 | <dminuoso> | So the applicative interface nudges you towards left-to-right style |
| 11:13:49 | <dminuoso> | Wait. (<<) is not even a thing haha |
| 11:14:03 | → | spirgel joins (spirgel@gateway/vpn/protonvpn/spirgel) |
| 11:14:43 | <tomsmeding> | would (<<) sequence the left effect first or the right effect first? |
| 11:14:58 | <tomsmeding> | the former is consistent with (<*), the latter is consistent with (=<<) |
| 11:14:58 | <dminuoso> | The latter |
| 11:15:16 | <tomsmeding> | maybe it doesn't exist because it would cause confusion |
| 11:15:45 | → | cfricke joins (~cfricke@user/cfricke) |
| 11:15:46 | <DigitalKiwi> | https://twitter.com/ArchKiwi/status/1247639264172670982?s=20 |
| 11:15:59 | → | Morrow joins (~Morrow@31.154.96.164) |
| 11:17:06 | <tomsmeding> | put that on a cake and give it to a haskeller on their birthday, and watch the flurry of emotions on their face |
| 11:17:50 | <DigitalKiwi> | throw back to that time i made stickers for everyone at zurihac |
| 11:18:51 | × | unyu quits (~pyon@user/pyon) (Ping timeout: 268 seconds) |
| 11:19:45 | → | bpalmer` joins (~user@user/bpalmer) |
| 11:19:54 | <DigitalKiwi> | (you know, famously, the one that wasn't canceled and everyone attended) |
| 11:20:27 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 11:20:30 | × | bpalmer quits (~user@user/bpalmer) (Killed (NickServ (GHOST command used by bpalmer`))) |
| 11:20:30 | → | unyu joins (~pyon@user/pyon) |
| 11:20:38 | bpalmer` | is now known as bpalmer |
| 11:20:46 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:20:52 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 11:20:53 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 11:21:43 | <tomsmeding> | where they mirrored? |
| 11:22:16 | ← | bpalmer parts (~user@user/bpalmer) () |
| 11:25:15 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 11:25:22 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 11:26:03 | → | xprlgjf joins (~gavin@60.27.93.209.dyn.plus.net) |
| 11:26:05 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 11:26:20 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:27:02 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 11:27:12 | NanoCoaster | is now known as NanoC |
| 11:27:21 | → | yd502 joins (~yd502@2409:891e:320:209e:b827:1a6a:79a7:5844) |
| 11:27:34 | × | ukari quits (~ukari@user/ukari) (Remote host closed the connection) |
| 11:28:05 | → | ukari joins (~ukari@user/ukari) |
| 11:29:44 | <Schrostfutz_> | So I now managed to write my function that I was trying to write (summing up intervals, accounting for potential overlap). I'm not happy with the fold though, I feel like there must be an easier way that I have missed: http://sprunge.us/tK5TIA Can any of you think of something? |
| 11:29:51 | <DigitalKiwi> | i'm sure there was some mirroring, striping, maybe even some good ol' JBOD arrays involved in the presentation of the entirely online event |
| 11:30:26 | <Schrostfutz_> | Also, when I try to apply the custom 'fst' to the result of the computation, I get a type mismatch error I don't understand |
| 11:30:34 | <DigitalKiwi> | https://zfoh.ch/zurihac2020/ |
| 11:31:33 | <tomsmeding> | Schrostfutz_: the result of what computation exactly? what's the error? |
| 11:31:36 | <merijn> | Schrostfutz_: You defined a new fst that works on tuple of 3 elements |
| 11:31:47 | <merijn> | Schrostfutz_: But the list you feed to sortOn has only 2 elements |
| 11:32:37 | <DigitalKiwi> | https://myfriendshate.me/files/2020-02-04-073632_2880x1800_scrot.png |
| 11:32:47 | <merijn> | Schrostfutz_: Unrelated tip: I'd ditch the if/then/else and use guards for f |
| 11:32:55 | <merijn> | Will be much more readable |
| 11:33:04 | × | Morrow quits (~Morrow@31.154.96.164) (Read error: Connection reset by peer) |
| 11:33:08 | <Schrostfutz_> | tomsmeding: http://sprunge.us/LzsD3K |
| 11:33:08 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 11:33:26 | <Schrostfutz_> | merijn: But the 'f' I defined converts that into a triple |
| 11:33:36 | → | Morrow joins (~Morrow@31.154.96.164) |
| 11:33:41 | <Schrostfutz_> | If I execute the code as pasted, I get (3, 1, 0) as a result |
| 11:33:42 | <merijn> | Schrostfutz_: You're not applying f to anything before sortOn, though? |
| 11:33:50 | <tomsmeding> | Schrostfutz_: merijn is right, you're only running the f after the sortOn |
| 11:34:00 | <DigitalKiwi> | Hecate and clementd requested them before covid lol |
| 11:34:30 | <Schrostfutz_> | Yeah, I only do it after sortOn, such that the interval enter/leave events are orderered by position |
| 11:34:36 | <Schrostfutz_> | Ah! |
| 11:34:47 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 11:35:00 | <tomsmeding> | Schrostfutz_: is that 'occupancy == 1' check correct? Shouldn't it be 'occupancy >= 1'? |
| 11:35:05 | <DigitalKiwi> | https://myfriendshate.me/files/2020-02-08-020023_2880x1800_scrot.png |
| 11:35:31 | <Schrostfutz_> | I redefine fst to work on triples, but I actually also use the regular fst, so renaming it to fst3 solved the second issue. |
| 11:35:45 | <tomsmeding> | DigitalKiwi: that λ is weird |
| 11:35:47 | <DigitalKiwi> | puffnfresh got that one on a his wall |
| 11:36:02 | <DigitalKiwi> | tomsmeding: it's the nixos lambda |
| 11:36:16 | <Schrostfutz_> | tomsmeding: No, because when the occupancy is greater, I'd be overwriting the first time the interval was entered |
| 11:36:43 | <tomsmeding> | oh right |
| 11:37:02 | <DigitalKiwi> | https://twitter.com/ArchKiwi/status/1269321790016364544?s=20 |
| 11:37:36 | × | ukari quits (~ukari@user/ukari) (Remote host closed the connection) |
| 11:37:49 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 11:38:22 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 11:38:22 | → | ukari joins (~ukari@user/ukari) |
| 11:38:42 | <Schrostfutz_> | But the way I did it feels weird, I'm summing and filtering overlap in the same fold. I'd rather filter first and create a non-overlapping interval. Is there a generalized version of scanl that doesn't require both lists to be the same size? |
| 11:38:59 | → | teaSlurper joins (~chris@81.96.113.213) |
| 11:39:59 | <nilof> | oh god damn it pairing heaps are cool |
| 11:40:31 | <nilof> | Since they have O(1) merging |
| 11:40:41 | <nilof> | and are persistent |
| 11:41:03 | <nilof> | you can do exponentiation by squaring to make a priority queue where elements repeat n times, in log(n) types |
| 11:41:09 | <nilof> | *log(n) time |
| 11:41:11 | <nilof> | and space |
| 11:41:43 | × | Morrow quits (~Morrow@31.154.96.164) (Ping timeout: 244 seconds) |
| 11:42:00 | <nilof> | and doing exponentiation by squaring also naturally produces a reasonably balanced heap so that it doesn't produce a too-unbalanced heap |
| 11:44:17 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 11:44:53 | <tomsmeding> | Schrostfutz_: you might be able to use unfoldr from Data.List, with some fiddling |
| 11:44:57 | × | haskman quits (~haskman@171.61.149.211) (Quit: Going to sleep. ZZZzzz…) |
| 11:46:58 | <nilof> | I think heapsorting a repeated list with them also becomes O(nlog(log(N)) where N is the number of repetitions? |
| 11:49:12 | <DigitalKiwi> | i don't remember how big it was (it's ~A3 or 12"x16") but it cost almost $50 dollars to ship and took 2 months to get to tasmania so presumably it was enormous |
| 11:49:16 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 272 seconds) |
| 11:49:25 | → | argento joins (~argent0@168-227-96-51.ptr.westnet.com.ar) |
| 11:50:22 | → | Topsi joins (~Tobias@dyndsl-095-033-094-176.ewe-ip-backbone.de) |
| 11:50:35 | → | Morrow joins (~Morrow@147.161.9.212) |
| 11:50:41 | → | ddellacosta joins (~ddellacos@89.46.62.191) |
| 11:50:45 | × | Katarushisu quits (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
| 11:51:23 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:51:25 | × | yoctocell quits (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection) |
| 11:51:34 | <Schrostfutz_> | tomsmeding: Thanks, I'll look into that |
| 11:51:51 | × | xff0x_ quits (~xff0x@2001:1a81:5219:ab00:108a:2215:f051:17c7) (Ping timeout: 272 seconds) |
| 11:52:41 | <Schrostfutz_> | I just found a solution to the problem that seems fancy, but I don't really understand: http://sprunge.us/Di6qVI |
| 11:53:11 | → | xff0x_ joins (~xff0x@2001:1a81:521d:b00:682b:ce6c:b74:cd5b) |
| 11:53:14 | <dminuoso> | What is `other-extensions` used for in cabal packages? |
| 11:54:01 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 11:55:08 | × | ddellacosta quits (~ddellacos@89.46.62.191) (Ping timeout: 252 seconds) |
| 11:56:04 | <DigitalKiwi> | .glirclogs/#haskell/2019-04-11.log:[21:26:23] <glguy> other-extensions just means you want to check at configure time that those extensions are supported |
| 11:56:14 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
| 11:57:07 | <merijn> | dminuoso: Noting all extensions used |
| 11:57:16 | <dminuoso> | merijn: is this used by the solver? |
| 11:57:20 | <merijn> | dminuoso: Not currently |
| 11:57:49 | <merijn> | dminuoso: But it could be used to detect impossible combinations of GHC and extensions, for example |
| 11:58:25 | <dminuoso> | merijn: So at best, other-extensions currently just saves the user some compilation time to issue a compatibility error before compiling the respective module? |
| 11:58:26 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 252 seconds) |
| 11:58:34 | <DigitalKiwi> | .glirclogs/freenode/#haskell/2020-10-18.log:[17:14:55] <c_wraith> ah, yes. other-extensions is purely documentation. I don't even know why it's there, really. If there were compilers other than GHC practically available, it might matter... |
| 11:58:34 | <dminuoso> | (potentially with a nicer error) |
| 11:58:36 | <DigitalKiwi> | .glirclogs/freenode/#haskell/2020-10-18.log:[17:17:43] <monochrom> Another is as in the user guide "In Cabal-1.24 the dependency solver will use [other-extensions] and default-extensions information" |
| 11:59:00 | <dminuoso> | Ah mm |
| 11:59:03 | <dminuoso> | So it's used in the solver after all |
| 11:59:18 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:59:21 | <dminuoso> | Lets see which cabal-install uses Cabal-1.24 |
| 11:59:48 | <dminuoso> | Seems like Cabal and cabal-install use the same versioning scheme |
| 12:00:49 | <merijn> | dminuoso: Also, you should just have correct metadata on your packages >.> |
| 12:01:15 | <DigitalKiwi> | i'm not sure but i think they might be related |
| 12:01:46 | <dminuoso> | merijn: Sure, it's why Im asking what this is about in the first place. |
| 12:01:57 | <dminuoso> | It's hard to write "correct metadata" when the semantics arent even clear |
| 12:02:06 | → | cfricke joins (~cfricke@user/cfricke) |
| 12:04:53 | <cdsmith> | Seems like over the last 10 years there's been a parade of different answers for how to throw and catch exceptions in MTL-style classes (MonadPeel, MonadBaseControl, blah, blah, blah). Is there a consensus for the right way to do it now? |
| 12:05:31 | <merijn> | dminuoso: How are they not clear? The docs say: " list of Haskell extensions used by some (but not necessarily all) modules." |
| 12:05:43 | × | jneira quits (~jneira_@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 268 seconds) |
| 12:05:45 | <dminuoso> | merijn: A note what this is even used for would be helpful. |
| 12:05:59 | <dminuoso> | This note about "some but not necessarily all" makes me really wonder why I should bother at all |
| 12:06:00 | <merijn> | cdsmith: edwardk's exceptions package |
| 12:06:17 | <merijn> | dminuoso: It means that you should list extensions that aren't used in *every* module too |
| 12:06:21 | <dminuoso> | When I add nothing to it, then I seem to satisfy the "some but not necessariy all" requirement, and its correct metadata, no? |
| 12:06:23 | <dminuoso> | ;) |
| 12:06:34 | <merijn> | dminuoso: "some, not all" refers to "which modules use the extension" |
| 12:06:41 | <merijn> | dminuoso: Not too which extensions to list |
| 12:06:48 | <DigitalKiwi> | they're not enabled like they are in default-extensions |
| 12:07:10 | <cdsmith> | <merijn "Chris Smith: edwardk's exception"> Cool. Is it fair to say that modern Haskell code is all using that? Or are there other options I'd also need to support? |
| 12:07:24 | <merijn> | dminuoso: If an extension used by some (i.e. more than 0) modules, it should be listed, even if its not used by *all* modules |
| 12:07:43 | → | haskman joins (~haskman@171.61.149.211) |
| 12:07:45 | <merijn> | cdsmith: I don't think there's a single thing supported by "all modern Haskell code" |
| 12:07:51 | <dminuoso> | It's wishful thinking to ask that cabal-install told me this, right? |
| 12:08:10 | <merijn> | How should it tell you that, though? |
| 12:09:02 | <cdsmith> | I'm writing a package that exports a monad transformer, and it's important that it work with most exception-heavy code. So I guess I need a list, rather than one answer, then? |
| 12:09:33 | <merijn> | cdsmith: tbh, I'd say supporting anything other than exceptions is doomed anyway |
| 12:10:00 | <merijn> | cdsmith: MonadBaseControl is a nightmare. In the past decade I've never even heard of MonadPeel, tbh |
| 12:10:02 | <[exa]> | cdsmith: "mechanism not policy" -- export tools so that everyone can make their instances easily |
| 12:10:03 | <DigitalKiwi> | if you write something and it works with edwardk code and not someone else good chance you did the right way ;D |
| 12:10:19 | <merijn> | cdsmith: unliftio-core is another option |
| 12:10:41 | <merijn> | cdsmith: I'd say support unliftio-core and exceptions and anything else is somebody else's problem |
| 12:11:10 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
| 12:11:20 | <cdsmith> | <merijn "Chris Smith: I'd say support unl"> Great. This sounds like the answer I was looking for. Much appreciated |
| 12:11:29 | × | srk quits (~sorki@user/srk) (Quit: ZNC 1.8.1 - https://znc.in) |
| 12:11:48 | → | srk joins (~sorki@user/srk) |
| 12:11:52 | <merijn> | cdsmith: MonadUnliftIO only works if your transformer is, effectively, a variation of ReaderT, though |
| 12:13:40 | <cdsmith> | <merijn "Chris Smith: MonadUnliftIO only "> That's fine. It's currently a StateT, but I can make it a ReaderT (MVar ...) I need to anyway, because I need to add multithreading support. |
| 12:15:17 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.1) |
| 12:16:33 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 272 seconds) |
| 12:18:04 | <teaSlurper> | when you have something of 2 types or a space between them, what does that mean? |
| 12:18:17 | <teaSlurper> | thing :: x y |
| 12:18:32 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 12:18:42 | <siers> | teaSlurper, those are higher order types. that means that the definition of x uses y |
| 12:18:46 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 12:19:04 | <teaSlurper> | ahh ok |
| 12:19:07 | <teaSlurper> | thx |
| 12:19:12 | <teaSlurper> | siers: |
| 12:19:15 | <siers> | (tehnically it may decide not to use it,) but it has it as an argument. |
| 12:19:28 | <siers> | just like regular functions have arguments |
| 12:20:07 | <[exa]> | teaSlurper: you may imagine x~Maybe and y~Int; giving `thing :: Maybe Int` |
| 12:20:48 | <teaSlurper> | ok cheers |
| 12:20:49 | → | nsilv joins (~nsilv@212.103.198.210) |
| 12:22:54 | → | boxscape joins (~boxscape@user/boxscape) |
| 12:24:43 | × | Xnuk quits (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in) |
| 12:25:01 | → | Xnuk joins (~xnuk@45.76.202.58) |
| 12:26:52 | → | lavaman joins (~lavaman@98.38.249.169) |
| 12:27:02 | × | hueso quits (~root@152.170.216.40) (Ping timeout: 252 seconds) |
| 12:27:12 | × | sekun quits (~sekun@180.190.222.37) (Remote host closed the connection) |
| 12:27:34 | → | sekun joins (~sekun@180.190.222.37) |
| 12:28:38 | → | hueso joins (~root@152.170.216.40) |
| 12:29:05 | → | dhil joins (~dhil@80.208.56.181) |
| 12:29:54 | → | ddellacosta joins (~ddellacos@89.45.224.191) |
| 12:31:11 | → | cfricke joins (~cfricke@user/cfricke) |
| 12:31:37 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 12:31:45 | × | yd502 quits (~yd502@2409:891e:320:209e:b827:1a6a:79a7:5844) (Ping timeout: 272 seconds) |
| 12:31:52 | → | waleee-cl joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 12:31:56 | <maerwald> | how does one develop base? |
| 12:32:22 | <merijn> | maerwald: You mean patches for base? |
| 12:32:32 | <maerwald> | yes... like... even build it |
| 12:32:53 | <merijn> | maerwald: 90% of people probably just build it as part of GHC checkout |
| 12:32:58 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 12:33:15 | <merijn> | maerwald: In theory base is separately buildable, because it was shared by GHC, Hugs, and some other now defunct compiler |
| 12:33:16 | <maerwald> | so I have to compile the entirety of GHC to test base patches? |
| 12:33:47 | <merijn> | maerwald: Once you build GHC once you only have to rebuild libraries. It might be possible to *only* build base, but that's probably a question better suited to #ghc |
| 12:34:30 | <merijn> | I was just saying that most people probably build it as part of GHC to test things, not that it's required too (because I don't know, tbh) |
| 12:34:30 | × | ddellacosta quits (~ddellacos@89.45.224.191) (Ping timeout: 264 seconds) |
| 12:37:00 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 244 seconds) |
| 12:37:22 | → | zebrag joins (~chris@user/zebrag) |
| 12:37:48 | <nsilv> | mmh... after updating HLS to the latest version for some reason now it segfaults lol |
| 12:39:51 | <maerwald> | nsilv: platform? |
| 12:40:33 | <nsilv> | maerwald: fedora on Windows via WSL2 |
| 12:40:41 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 12:43:00 | → | flipchan joins (~filip@user/flipchan) |
| 12:44:17 | <Hecate> | nsilv: welcome to the club lol |
| 12:44:26 | <nsilv> | might be an issue on my machine maybe? i'm using nix for the project and it only segfaults in a nix shell |
| 12:44:29 | <flipchan> | Hi all haskell devs :) Me and a friend just started a haskell job board in order to help out people that lost there job due to covid-19, check it out at https://haskell.careers |
| 12:45:25 | × | pottsy quits (~pottsy@2400:4050:b560:3700:79bb:fcd:bcf3:fe7c) (Quit: Leaving) |
| 12:45:44 | × | hemlock quits (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Ping timeout: 252 seconds) |
| 12:46:00 | → | hemlock joins (~hemlock@2607:fb90:96d4:b2db:6767:8423:197d:e850) |
| 12:46:19 | → | larryba joins (~bc817c21@217.29.117.252) |
| 12:46:24 | × | ukari quits (~ukari@user/ukari) (Remote host closed the connection) |
| 12:46:38 | <larryba> | hi. some of the functions in System.Directory don't work with windows extended-length paths. getDirectoryContents "\\\\?\\C:\\" works, but doesDirectoryExist "\\\\?\\C:\\" does not, it returns False |
| 12:47:35 | → | ukari joins (~ukari@user/ukari) |
| 12:48:22 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 12:48:50 | <nsilv> | I guess i'll temporarily turn off the nix stuff on my editor |
| 12:50:14 | <DigitalKiwi> | build base? you mean install something with haskell.nix but don't configure cachix and build 3 of them? |
| 12:50:30 | <maerwald> | nix? |
| 12:50:42 | × | xff0x_ quits (~xff0x@2001:1a81:521d:b00:682b:ce6c:b74:cd5b) (Ping timeout: 272 seconds) |
| 12:50:55 | <DigitalKiwi> | https://input-output-hk.github.io/haskell.nix/tutorials/getting-started/#setting-up-the-binary-cache |
| 12:51:08 | <maerwald> | was that in reponse to me? |
| 12:51:37 | × | mc47 quits (~mc47@xmonad/TheMC47) (Read error: Connection reset by peer) |
| 12:51:38 | <DigitalKiwi> | it was mostly in response to merijn (my original reply was like "i |
| 12:51:57 | <DigitalKiwi> | it was mostly in response to merijn (my original reply was like "i'd argue 90% of people who build base forgot to enable cachix" |
| 12:52:22 | → | xff0x_ joins (~xff0x@2001:1a81:521d:d300:6d92:b3ef:1f93:a591) |
| 12:53:02 | <janus> | flipchan: why should i advertise on your platform on not in Haskell Weekly? |
| 12:53:03 | <DigitalKiwi> | because why else would anyone build base unless they were forced to lol |
| 12:53:24 | <boxscape> | DigitalKiwi I'm fairly sure base isn't built even if you don't enable cachix |
| 12:53:25 | <maerwald> | DigitalKiwi: did you read the conversation? |
| 12:53:45 | <DigitalKiwi> | yes |
| 12:53:54 | <merijn> | DigitalKiwi: It was talking about developing/hacking on base... |
| 12:53:56 | <maerwald> | then I have no idea why you would bring up nix |
| 12:54:04 | <merijn> | DigitalKiwi: How would you ever hack on base without compiling base... |
| 12:54:27 | <merijn> | That makes no sense |
| 12:54:48 | <maerwald> | larryba: Imma try it |
| 12:55:12 | <flipchan> | janus: yeah, that would be a good idea, ty |
| 12:55:17 | <DigitalKiwi> | which is why i changed my original reply to not mention the 90% because the premise of that joke is more shaky |
| 12:55:26 | <flipchan> | janus: sorry, miss read it |
| 12:55:37 | <larryba> | maerwald, thanks. I'm using a rather old ghc, so perhaps it was fixed in future versions |
| 12:55:45 | <flipchan> | well this is meant to be a collection of the latest haskell jobs |
| 12:57:33 | <maerwald> | larryba: `doesDirectoryExist` works for me |
| 12:57:33 | <DigitalKiwi> | the premise for that would be that more people build base accidentally because of haskell.nix than build it intentionally because they want to hack on it. which i don't have enough data to suggest is or is not more likely ;p |
| 12:57:50 | <larryba> | maerwald, so it returns True? what ghc version? |
| 12:58:00 | <maerwald> | 8.10.5 |
| 12:58:06 | <maerwald> | yes, True |
| 12:58:20 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 12:58:38 | → | kmein joins (~weechat@user/kmein) |
| 12:58:51 | <larryba> | nice, so they fixed it. I'm using 8.8.4 |
| 12:58:51 | <janus> | flipchan: if i advertise with you, how long does the post stay up? |
| 12:59:11 | <janus> | flipchan: it only says the time, but not the duration |
| 12:59:12 | × | Morrow quits (~Morrow@147.161.9.212) (Read error: Connection reset by peer) |
| 12:59:20 | <merijn> | doesDirectoryExist is a race condition waiting to happen :p |
| 12:59:44 | <maerwald> | merijn: on C:\? |
| 12:59:51 | maerwald | blinks |
| 12:59:53 | <Taneb> | Most IO is a race condition waiting to appen |
| 13:00:00 | <DigitalKiwi> | for me anyway the number of times i have compiled ghc is hundreds the number of times i have "wanted" to is probably zero |
| 13:00:01 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 13:00:02 | <merijn> | maerwald: On anything |
| 13:00:07 | <merijn> | maerwald: C:\ *can* disappear |
| 13:00:11 | <maerwald> | yeah sure... |
| 13:00:20 | → | paolino joins (~paolo@84.33.156.246) |
| 13:00:26 | <merijn> | maerwald: Windows doesn't require an install on C: and for several years mine was on a different letter |
| 13:00:27 | <maerwald> | actually no, it can't I think |
| 13:00:49 | <merijn> | maerwald: Your system filesystem probably can't disappear, no |
| 13:00:50 | × | hemlock quits (~hemlock@2607:fb90:96d4:b2db:6767:8423:197d:e850) (Ping timeout: 272 seconds) |
| 13:00:54 | <maerwald> | you can't mess with the base device where your windews files are on |
| 13:00:56 | <maerwald> | it's locked |
| 13:00:59 | <merijn> | But there's no reason to assume C:\ will be system |
| 13:01:02 | → | alx741 joins (~alx741@181.196.69.243) |
| 13:01:03 | <maerwald> | sure |
| 13:01:06 | <maerwald> | but that's not a race |
| 13:01:25 | <merijn> | maerwald: My point is: If C:\ is not system, but, say, a USB drive it can just disappear |
| 13:01:27 | × | boxscape quits (~boxscape@user/boxscape) (Quit: Connection closed) |
| 13:01:43 | <maerwald> | also depends |
| 13:01:54 | <maerwald> | your cat might lie on the stick |
| 13:02:01 | → | hemlock joins (~hemlock@184.179.34.210) |
| 13:02:21 | × | mikolaj_ quits (~mikon@duch.mimuw.edu.pl) (Ping timeout: 272 seconds) |
| 13:02:29 | → | mikolaj_ joins (~mikon@duch.mimuw.edu.pl) |
| 13:02:33 | → | paolinoZ joins (~paolo@84.33.156.246) |
| 13:02:44 | <DigitalKiwi> | nsilv: Hecate i got nixos on wsl 2 last night :D |
| 13:04:03 | <larryba> | how do I write this properly? defaultIfException :: forall e. Exception e => IO a -> IO a -> IO a |
| 13:04:11 | <larryba> | it says "Not in scope: type variable �a�" |
| 13:04:30 | <maerwald> | bring it in scope! |
| 13:04:43 | <larryba> | what's the syntax for second forall? |
| 13:04:54 | <DigitalKiwi> | my windows 10 laptop had been stuck on a version of windows that didn't have wsl 2 (and could't update; it was stuck on installing updates at 61% for a year) i finally nuked it |
| 13:05:01 | <maerwald> | forall takes multiple identifiers |
| 13:05:05 | <maerwald> | separated by whitespace |
| 13:05:32 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds) |
| 13:06:00 | <DigitalKiwi> | https://github.com/Trundle/NixOS-WSL |
| 13:06:35 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 272 seconds) |
| 13:07:32 | <siers> | are haskell's profunctors anything like category theory's? |
| 13:08:06 | <larryba> | ok this worked defaultIfException :: forall a e. Exception e => IO a -> IO a -> IO a |
| 13:08:10 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 13:08:59 | <DigitalKiwi> | nsilv: earlier when i was looking at that code of eflister emacs kept completely freezing i may remember seeing something about HLS being able to casue that... |
| 13:09:19 | <nshepperd2> | you probably want to put the e first if you're planning to use TypeApplications to choose the type of exception |
| 13:09:30 | <larryba> | nshepperd2, yeah, I just figured that out! |
| 13:10:04 | <larryba> | will this give me considerable performance hit, when walking the directory tree? getDirectoryContentsSafe path = defaultIfException @SomeException (pure []) (getDirectoryContents path) |
| 13:10:38 | → | ddellacosta joins (~ddellacos@86.106.143.152) |
| 13:10:42 | <larryba> | compared to checking with doesDirectoryExist first, before calling getDirectoryContents |
| 13:11:06 | <DigitalKiwi> | https://mostlyabsurd.com/files/2021-06-14-131041_968x822_scrot.png apparently i've even searched it before ;_; |
| 13:12:40 | <larryba> | I'll call it on every file in a directory tree |
| 13:15:14 | × | ddellacosta quits (~ddellacos@86.106.143.152) (Ping timeout: 244 seconds) |
| 13:15:26 | <nshepperd2> | larryba: no, if anything it will be faster |
| 13:15:27 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
| 13:15:59 | × | nsilv quits (~nsilv@212.103.198.210) (Ping timeout: 252 seconds) |
| 13:16:03 | <nshepperd2> | probably |
| 13:16:12 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 13:16:33 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Remote host closed the connection) |
| 13:16:40 | × | argento quits (~argent0@168-227-96-51.ptr.westnet.com.ar) (Ping timeout: 272 seconds) |
| 13:16:47 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 13:17:59 | <dminuoso> | larryba: Are you sure you dont want `forall a e. Exception e => proxy e -> IO a -> IO a -> IO a`? |
| 13:18:09 | <dminuoso> | I find TypeApplications as public API to be quite offending |
| 13:18:18 | → | fluffyballoon joins (~fluffybal@2620:72:0:6480::10f7) |
| 13:18:26 | <merijn> | Word |
| 13:18:28 | <larryba> | how would the call look? |
| 13:18:44 | <dminuoso> | oh, drop the foralls |
| 13:18:47 | <dminuoso> | `Exception e => proxy e -> IO a -> IO a -> IO a` of course :) |
| 13:18:48 | <merijn> | TypeApplications is for people who love breaking APIs >.> |
| 13:19:14 | → | dhil joins (~dhil@195.213.192.47) |
| 13:22:54 | <DigitalKiwi> | flipchan: what should compel me to choose to spend money on haskell.careers when i can instead use Hecate' matchmaker for free |
| 13:23:12 | <nshepperd2> | for a function whose raisin d'etre is to be a thin convenience wrapper around 'catch' i think TypeApplications is fine |
| 13:23:23 | <Hecate> | (*raison) (krkrkrkr) |
| 13:23:32 | <Hecate> | am grape! <- raisin d'être |
| 13:23:33 | <nshepperd2> | raisins only |
| 13:24:32 | <nshepperd2> | if you're gonna have a proxy argument you might as well just 'catch' directly |
| 13:24:44 | <Hecate> | or just use type applications |
| 13:24:51 | <nshepperd2> | since at least 'catch' makes it impossible to mix the arguments up |
| 13:25:41 | <nshepperd2> | from a convenience POV, `forall e a. Exception e => a -> IO a -> IO a` is probably optimal |
| 13:26:16 | <Obo> | Hi, n00b question, I am getting an incomplete pattern warning, what am I missing? https://paste.tomsmeding.com/sF831ybx |
| 13:26:36 | <nshepperd2> | (the first argument is pure `a` so it's obviously the default, and can't be confused with the other argument) |
| 13:26:48 | <Obo> | s/treeI1nsert/treeInsert/ in paste |
| 13:27:12 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 13:29:04 | <larryba> | I like that version, listDirectorySafe path = defaultIfException @IOError [] (listDirectory path) |
| 13:29:17 | <larryba> | what would the proxy e call look like? |
| 13:29:36 | → | fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
| 13:29:39 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 13:29:40 | <DigitalKiwi> | flipchan: note that "haskell.careers is live and you've been waiting (im)patiently for hecate' kommissar for ~2 years" would probably score a few points |
| 13:30:12 | × | haskman quits (~haskman@171.61.149.211) (Quit: Going to sleep. ZZZzzz…) |
| 13:30:33 | → | reumeth joins (~reumeth@user/reumeth) |
| 13:32:55 | <janus> | what's kommissar? an eastern german police officer? |
| 13:33:30 | <janus> | or is it "commission" (payment) ? |
| 13:34:08 | × | fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 252 seconds) |
| 13:34:18 | <nshepperd2> | a high ranking soviet functionary |
| 13:34:32 | → | argento joins (~argent0@168-227-96-51.ptr.westnet.com.ar) |
| 13:34:49 | <merijn> | Obo: The compiler isn't smart enough to see that your 3 guards cover all possible cases |
| 13:34:51 | <Hecate> | janus: a CRM for commission workers that I planned on developing a couple of years ago |
| 13:34:57 | <Hecate> | never lived though |
| 13:35:05 | <merijn> | Obo: If you replace the final guard with "otherwise" the warning will go away |
| 13:35:06 | <janus> | nshepperd2: :O did not know that Hecate had the power to dispatch those from their graves |
| 13:35:18 | <Hecate> | ;-D |
| 13:35:38 | <Obo> | merijn: thanks :D |
| 13:35:54 | → | nsilv joins (~nsilv@212.103.198.210) |
| 13:36:08 | <merijn> | Obo: Basically, deciding if arbitrary boolean expressions cover all possible cases is...a non-trivial problem to put it mildly ;) |
| 13:36:09 | <DigitalKiwi> | janus: i wrote a time tracking program called (uncle) tito so Hecate had to outdo me |
| 13:36:15 | janus | is trying to resist pretending not to understand what CRM is :P |
| 13:36:24 | <Hecate> | janus: hehehe |
| 13:36:32 | <merijn> | Obo: So the compiler just checks "do you have a catch-all branch?" (otherwise is just a synonym for True) |
| 13:36:44 | janus | still always sees Crew Resource Management. read too many airplane crash reports :( |
| 13:38:16 | <larryba> | how do I check if operation failed with InvalidArgument? for some other failures there are is* functions that accept IOError https://hackage.haskell.org/package/directory-1.3.6.2/docs/System-Directory.html#v:listDirectory |
| 13:39:54 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 13:40:39 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:40:56 | <Obo> | merijn: I see. Thank you for the detailed explanation |
| 13:45:26 | → | ddellacosta joins (~ddellacos@89.45.224.126) |
| 13:45:31 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:c6a2:6b31:b38d:d90c) (Quit: WeeChat 2.8) |
| 13:47:16 | × | fluffyballoon quits (~fluffybal@2620:72:0:6480::10f7) (Ping timeout: 250 seconds) |
| 13:47:47 | × | flipchan quits (~filip@user/flipchan) (Ping timeout: 244 seconds) |
| 13:49:36 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Ping timeout: 272 seconds) |
| 13:50:17 | × | ddellacosta quits (~ddellacos@89.45.224.126) (Ping timeout: 272 seconds) |
| 13:50:33 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 13:50:42 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 13:50:58 | → | hendursaga joins (~weechat@user/hendursaga) |
| 13:52:02 | → | kspalaiologos joins (~kspalaiol@user/kspalaiologos) |
| 13:53:57 | → | warnz joins (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) |
| 13:55:40 | → | tremon joins (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) |
| 13:57:02 | → | yd502 joins (~yd502@2409:891e:320:209e:f07d:9f0f:e489:cc37) |
| 13:57:12 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds) |
| 13:57:52 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 13:58:58 | × | cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Ping timeout: 244 seconds) |
| 13:58:58 | × | oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 244 seconds) |
| 13:58:59 | × | cdepillabout[m] quits (~cdepillab@2001:470:69fc:105::3d3) (Ping timeout: 244 seconds) |
| 13:58:59 | × | unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Ping timeout: 244 seconds) |
| 13:58:59 | × | srid[m] quits (~sridmatri@2001:470:69fc:105::1c2) (Ping timeout: 244 seconds) |
| 13:58:59 | × | peddie quits (~peddie@2001:470:69fc:105::25d) (Ping timeout: 244 seconds) |
| 13:58:59 | × | kadoban quits (~kadoban@user/kadoban) (Ping timeout: 244 seconds) |
| 13:58:59 | × | MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Ping timeout: 244 seconds) |
| 13:58:59 | × | zfnmxt quits (~zfnmxtzfn@user/zfnmxt) (Read error: Connection reset by peer) |
| 13:59:00 | × | unclechu quits (~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer) |
| 13:59:00 | × | psydroid quits (~psydroidm@2001:470:69fc:105::165) (Read error: Connection reset by peer) |
| 13:59:00 | × | the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Read error: Connection reset by peer) |
| 13:59:00 | × | maralorn quits (~maralorn@2001:470:69fc:105::251) (Read error: Connection reset by peer) |
| 13:59:00 | × | thedward[m] quits (~thedwardm@2001:470:69fc:105::f79) (Read error: Connection reset by peer) |
| 13:59:00 | × | ac quits (~aloiscoch@2001:470:69fc:105::65) (Read error: Connection reset by peer) |
| 13:59:00 | × | fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Read error: Connection reset by peer) |
| 13:59:04 | × | marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Read error: Connection reset by peer) |
| 13:59:04 | × | carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Read error: Connection reset by peer) |
| 13:59:04 | × | Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Read error: Connection reset by peer) |
| 13:59:04 | × | jophish quits (~jophish@2001:470:69fc:105::670) (Read error: Connection reset by peer) |
| 13:59:04 | × | bb010g quits (~bb010gmat@2001:470:69fc:105::9a5) (Read error: Connection reset by peer) |
| 13:59:05 | × | sm[m] quits (~sm@plaintextaccounting/sm) (Read error: Connection reset by peer) |
| 13:59:05 | × | fgaz quits (~fgaz@2001:470:69fc:105::842) (Read error: Connection reset by peer) |
| 13:59:05 | × | eddiemundo quits (~eddiemund@2001:470:69fc:105::a9c) (Read error: Connection reset by peer) |
| 13:59:05 | × | siraben quits (~siraben@user/siraben) (Read error: Connection reset by peer) |
| 13:59:05 | × | ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Read error: Connection reset by peer) |
| 13:59:05 | × | jakefromstatefar quits (~jakefroms@2001:470:69fc:105::15ef) (Read error: Connection reset by peer) |
| 13:59:05 | × | hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Read error: Connection reset by peer) |
| 13:59:05 | × | jaror[m] quits (~jaror@2001:470:69fc:105::265) (Read error: Connection reset by peer) |
| 13:59:05 | × | tomferon[m] quits (~tomferon@2001:470:69fc:105::268) (Read error: Connection reset by peer) |
| 13:59:05 | × | bitonic quits (~bitonic@2001:470:69fc:105::1812) (Read error: Connection reset by peer) |
| 13:59:05 | × | yin[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer) |
| 13:59:05 | × | RohitGoswami[m] quits (~rgoswamim@2001:470:69fc:105::16cc) (Read error: Connection reset by peer) |
| 13:59:05 | × | adziahel[m] quits (~adziahelm@2001:470:69fc:105::b4d) (Read error: Connection reset by peer) |
| 13:59:05 | × | amesgen[m] quits (~amesgenam@2001:470:69fc:105::82b) (Read error: Connection reset by peer) |
| 13:59:05 | × | Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Read error: Connection reset by peer) |
| 13:59:05 | × | Drezil quits (~drezilkif@2001:470:69fc:105::7f8) (Read error: Connection reset by peer) |
| 13:59:05 | × | wallymathieu[m] quits (~wallymath@2001:470:69fc:105::16ae) (Read error: Connection reset by peer) |
| 13:59:05 | × | maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
| 13:59:05 | × | dualinverter[m] quits (~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer) |
| 13:59:05 | × | Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer) |
| 13:59:05 | × | vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer) |
| 13:59:05 | × | ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Read error: Connection reset by peer) |
| 13:59:05 | × | bryan[m] quits (~bchreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer) |
| 13:59:05 | × | autrim64[m] quits (~autrim64m@2001:470:69fc:105::16a1) (Read error: Connection reset by peer) |
| 13:59:05 | × | kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Read error: Connection reset by peer) |
| 13:59:05 | × | Soft quits (~soft-matr@2001:470:69fc:105::c75) (Read error: Connection reset by peer) |
| 14:01:19 | → | thedward[m] joins (~thedwardm@2001:470:69fc:105::f79) |
| 14:02:08 | × | dtman34 quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
| 14:02:30 | → | flukiluke joins (~flukiluke@plum.alephc.xyz) |
| 14:02:44 | → | dtman34 joins (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
| 14:04:03 | → | fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
| 14:04:07 | × | jespada quits (~jespada@90.254.242.55) (Ping timeout: 268 seconds) |
| 14:05:21 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 268 seconds) |
| 14:06:40 | → | jespada joins (~jespada@90.254.242.55) |
| 14:07:11 | × | nsilv quits (~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1) |
| 14:07:24 | × | dtman34 quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Client Quit) |
| 14:08:02 | → | dtman34 joins (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
| 14:08:21 | → | siraben joins (~siraben@user/siraben) |
| 14:08:21 | → | sm[m] joins (~sm@plaintextaccounting/sm) |
| 14:08:21 | → | ac joins (~aloiscoch@2001:470:69fc:105::65) |
| 14:08:21 | → | psydroid joins (~psydroidm@2001:470:69fc:105::165) |
| 14:08:21 | → | hjulle[m] joins (~hjullemat@2001:470:69fc:105::1dd) |
| 14:08:21 | → | MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22) |
| 14:08:22 | → | maralorn joins (~maralorn@2001:470:69fc:105::251) |
| 14:08:22 | → | jaror[m] joins (~jaror@2001:470:69fc:105::265) |
| 14:08:22 | → | fgaz joins (~fgaz@2001:470:69fc:105::842) |
| 14:08:22 | → | peddie joins (~peddie@2001:470:69fc:105::25d) |
| 14:08:22 | → | tomferon[m] joins (~tomferon@2001:470:69fc:105::268) |
| 14:08:23 | → | cdsmith joins (~cdsmithma@2001:470:69fc:105::284) |
| 14:08:23 | → | ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2) |
| 14:08:23 | → | marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8) |
| 14:08:23 | → | fabfianda[m] joins (~fabfianda@2001:470:69fc:105::6db) |
| 14:08:23 | → | bb010g joins (~bb010gmat@2001:470:69fc:105::9a5) |
| 14:08:23 | → | Las[m] joins (~lasmatrix@2001:470:69fc:105::74e) |
| 14:08:23 | → | Artem[m] joins (~artemtype@2001:470:69fc:105::75b) |
| 14:08:24 | → | cdepillabout[m] joins (~cdepillab@2001:470:69fc:105::3d3) |
| 14:08:24 | → | ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a) |
| 14:08:24 | → | the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f) |
| 14:08:24 | → | eddiemundo joins (~eddiemund@2001:470:69fc:105::a9c) |
| 14:08:24 | → | vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe) |
| 14:08:25 | → | zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32) |
| 14:08:25 | → | kadoban joins (~kadoban@user/kadoban) |
| 14:08:25 | → | bitonic joins (~bitonic@2001:470:69fc:105::1812) |
| 14:08:25 | → | carmysilna joins (~brightly-@2001:470:69fc:105::2190) |
| 14:08:25 | → | jophish joins (~jophish@2001:470:69fc:105::670) |
| 14:08:26 | → | unclechu joins (~unclechu@2001:470:69fc:105::354) |
| 14:08:26 | → | bryan[m] joins (~bchreekat@2001:470:69fc:105::16b5) |
| 14:08:26 | → | unrooted joins (~unrooted@2001:470:69fc:105::a4a) |
| 14:08:27 | → | jakefromstatefar joins (~jakefroms@2001:470:69fc:105::15ef) |
| 14:08:27 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 244 seconds) |
| 14:08:33 | → | maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee) |
| 14:08:34 | → | dualinverter[m] joins (~dualinver@2001:470:69fc:105::16a7) |
| 14:08:34 | → | Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0) |
| 14:08:34 | → | srid[m] joins (~sridmatri@2001:470:69fc:105::1c2) |
| 14:08:36 | → | wallymathieu[m] joins (~wallymath@2001:470:69fc:105::16ae) |
| 14:08:36 | → | amesgen[m] joins (~amesgenam@2001:470:69fc:105::82b) |
| 14:08:36 | → | Drezil joins (~drezilkif@2001:470:69fc:105::7f8) |
| 14:08:36 | → | adziahel[m] joins (~adziahelm@2001:470:69fc:105::b4d) |
| 14:08:37 | → | kosmikus[m] joins (~andresloe@2001:470:69fc:105::95d) |
| 14:08:37 | → | Soft joins (~soft-matr@2001:470:69fc:105::c75) |
| 14:08:39 | → | oak- joins (~oakuniver@2001:470:69fc:105::fcd) |
| 14:08:39 | → | RohitGoswami[m] joins (~rgoswamim@2001:470:69fc:105::16cc) |
| 14:08:39 | → | yin[m] joins (~zwromatri@2001:470:69fc:105::1d4) |
| 14:08:39 | → | autrim64[m] joins (~autrim64m@2001:470:69fc:105::16a1) |
| 14:09:20 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 14:10:16 | → | jneira_ joins (~jneira_@5.red-81-39-172.dynamicip.rima-tde.net) |
| 14:10:17 | × | xff0x_ quits (~xff0x@2001:1a81:521d:d300:6d92:b3ef:1f93:a591) (Ping timeout: 268 seconds) |
| 14:10:26 | × | fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 252 seconds) |
| 14:10:51 | → | fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
| 14:11:31 | → | bontaq joins (~user@ool-18e47f8d.dyn.optonline.net) |
| 14:11:32 | → | xff0x_ joins (~xff0x@185.65.135.235) |
| 14:11:33 | × | xprlgjf quits (~gavin@60.27.93.209.dyn.plus.net) (Ping timeout: 244 seconds) |
| 14:14:21 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 14:14:35 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 14:16:48 | <Schrostfutz_> | Is there something like mapAdjacent in the Haskell standard library?: https://hackage.haskell.org/package/utility-ht-0.0.16/docs/Data-List-HT.html#v:mapAdjacent |
| 14:17:01 | → | dave_uy joins (~dave_uy@108.61.193.26) |
| 14:18:38 | → | fishfinger_ joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
| 14:18:57 | × | fishfinger_ quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Client Quit) |
| 14:19:02 | → | muto joins (~muto@d75-159-225-7.abhsia.telus.net) |
| 14:21:43 | × | psydroid quits (~psydroidm@2001:470:69fc:105::165) (Changing host) |
| 14:21:43 | → | psydroid joins (~psydroidm@user/psydroid) |
| 14:23:59 | → | jolly joins (~jolly@208.180.97.158) |
| 14:25:03 | → | haskman joins (~haskman@171.61.149.211) |
| 14:25:35 | → | beka_ joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
| 14:26:06 | <larryba> | @hoogle (a -> a -> b) -> [a] -> [b] |
| 14:26:07 | <lambdabot> | Data.List.HT mapAdjacent :: (a -> a -> b) -> [a] -> [b] |
| 14:26:07 | <lambdabot> | Test.Speculate.Utils zipWithReverse :: (a -> a -> b) -> [a] -> [b] |
| 14:26:07 | <lambdabot> | Test.Speculate.Utils medianate :: (a -> a -> b) -> [a] -> [b] |
| 14:26:52 | <larryba> | @hoogle (a -> a -> b) -> t a -> t b |
| 14:26:53 | <lambdabot> | Control.Lens.Combinators imap :: FunctorWithIndex i f => (i -> a -> b) -> f a -> f b |
| 14:26:53 | <lambdabot> | Control.Lens.Indexed imap :: FunctorWithIndex i f => (i -> a -> b) -> f a -> f b |
| 14:26:53 | <lambdabot> | Diagrams.Prelude imap :: FunctorWithIndex i f => (i -> a -> b) -> f a -> f b |
| 14:27:00 | <larryba> | probably not |
| 14:27:09 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:28:17 | × | beka quits (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 272 seconds) |
| 14:28:44 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 14:29:20 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Read error: Connection reset by peer) |
| 14:29:57 | × | xff0x_ quits (~xff0x@185.65.135.235) (Ping timeout: 244 seconds) |
| 14:30:02 | <jumper149> | Hi, is there a library providing a type-level list? So that I can write something like `[Int, String, Maybe ()]`. |
| 14:30:11 | <jumper149> | Or is that even possible with current GHC? |
| 14:30:23 | <dminuoso> | Zou can |
| 14:30:46 | <larryba> | why not use a tuple instead? |
| 14:30:47 | <jumper149> | Also it would be nice when the kind was constrained, so `[Int, Maybe]` doesn't typecheck |
| 14:30:51 | <dminuoso> | % f = Const Int '[Int, Char]; f = Const 10 |
| 14:30:51 | <yahb> | dminuoso: ; <interactive>:35:17: error: parse error on input `Int' |
| 14:31:06 | <dminuoso> | jumper149: Use '[Int, Maybe] |
| 14:31:34 | <jumper149> | dminuoso: Where is '[] from? base? |
| 14:31:43 | → | xff0x_ joins (~xff0x@2001:1a81:521f:1b00:13ff:1633:fd2e:2df7) |
| 14:31:48 | <dminuoso> | GHC.TypeLits |
| 14:32:02 | <tomsmeding> | :t \f a -> zipWith f a (tail a) -- Schrostfutz_ (you probably know this but just in case) |
| 14:32:03 | <lambdabot> | (b -> b -> c) -> [b] -> [c] |
| 14:32:10 | <dminuoso> | or mmm |
| 14:32:31 | <Schrostfutz_> | larryba: Yeah, I tried that but didn't find anything installed by default |
| 14:32:35 | <dminuoso> | jumper149: they should be available through -XDataKinds alone |
| 14:32:45 | <nshepperd2> | jumper149: enable DataKinds, then you can use lists at type level. however type level lists are rarely what you want |
| 14:32:49 | <Schrostfutz_> | tomsmeding: Yeah, I ended up just defining mapAdjacent as exactly that |
| 14:33:43 | <dminuoso> | % f :: Const Int '[Char, Int]; f = Const 10 -- jumper149 |
| 14:33:43 | <yahb> | dminuoso: |
| 14:33:44 | <nshepperd2> | jumper149: they are spelled '[Int, String, Maybe ()], the initial ' is ghc syntax to take a data construct and make 'promote' it to type level |
| 14:34:13 | <dminuoso> | jumper149: keep in mind that '[Int, Maybe] cant type check |
| 14:34:26 | × | fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Read error: Connection reset by peer) |
| 14:34:28 | <dminuoso> | jumper149: Consider what the kind of that type list should be? |
| 14:34:40 | <dminuoso> | Is it [Type]? Or [Type -> Type]? It cant be both. |
| 14:34:45 | → | fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
| 14:35:05 | <jumper149> | dminuoso: Yeah, that's what I was trying to say :D |
| 14:35:36 | <dminuoso> | jumper149: You can only have homogeneous type level lists, just like you can only have homogeneous value level lists. |
| 14:35:53 | <jumper149> | dminuoso: YES! I think you misunderstood what I said x) |
| 14:36:50 | × | hemlock quits (~hemlock@184.179.34.210) (Ping timeout: 252 seconds) |
| 14:37:05 | → | hemlock joins (~hemlock@2607:fb90:96f5:984c:7052:59fe:eabe:ddfc) |
| 14:39:37 | → | fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
| 14:39:37 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 14:39:58 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 14:43:54 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 14:44:42 | × | fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 272 seconds) |
| 14:47:43 | × | Schrostfutz_ quits (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 14:48:09 | → | pavonia joins (~user@user/siracusa) |
| 14:49:55 | × | adios quits (~adios@244.92.151.186.static.intelnet.net.gt) (Quit: Client closed) |
| 14:51:42 | → | spirgel_ joins (spirgel@gateway/vpn/protonvpn/spirgel) |
| 14:51:51 | × | hemlock quits (~hemlock@2607:fb90:96f5:984c:7052:59fe:eabe:ddfc) (Ping timeout: 244 seconds) |
| 14:51:57 | → | nschoe joins (~quassel@178.251.84.79) |
| 14:52:40 | → | hemlock joins (~hemlock@wsip-70-163-92-141.tu.ok.cox.net) |
| 14:52:52 | → | shryke joins (~shryke@91.103.43.254) |
| 14:53:34 | × | hemlock quits (~hemlock@wsip-70-163-92-141.tu.ok.cox.net) (Read error: Connection reset by peer) |
| 14:53:53 | → | hemlock joins (~hemlock@wsip-70-163-92-141.tu.ok.cox.net) |
| 14:55:26 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 14:56:06 | × | spirgel quits (spirgel@gateway/vpn/protonvpn/spirgel) (Ping timeout: 272 seconds) |
| 14:57:15 | × | hemlock quits (~hemlock@wsip-70-163-92-141.tu.ok.cox.net) (Read error: Connection reset by peer) |
| 14:57:41 | → | ddellacosta joins (~ddellacos@86.106.121.204) |
| 14:58:54 | <[exa]> | cabal question: why's there no x86_64 binary release for debian? (there's only ubuntu) |
| 14:58:55 | → | hemlock joins (~hemlock@wsip-70-163-92-141.tu.ok.cox.net) |
| 15:00:13 | <merijn> | because no one built it yet? |
| 15:00:34 | <merijn> | Are you sure you can't just use the ubuntu binary? |
| 15:00:57 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.1) |
| 15:01:11 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 15:01:59 | × | ddellacosta quits (~ddellacos@86.106.121.204) (Ping timeout: 244 seconds) |
| 15:02:42 | <maerwald> | there's even a static one |
| 15:02:42 | × | xff0x_ quits (~xff0x@2001:1a81:521f:1b00:13ff:1633:fd2e:2df7) (Ping timeout: 244 seconds) |
| 15:02:49 | × | beka_ quits (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Read error: Connection reset by peer) |
| 15:03:09 | → | beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
| 15:03:54 | → | xff0x_ joins (~xff0x@2001:1a81:521f:1b00:f01:e8ca:b853:4d4) |
| 15:04:30 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:05:10 | × | arahael quits (~arahael@203-206-83-196.tpgi.com.au) (Ping timeout: 268 seconds) |
| 15:07:23 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 15:11:33 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 15:12:14 | × | fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Remote host closed the connection) |
| 15:12:43 | <jumper149> | I would like to use the type-level list to define instances of a type-class recursively. Having a base case for '[] and then an inductive case for (x ': xs). |
| 15:13:28 | → | arahael joins (~arahael@203-206-95-53.tpgi.com.au) |
| 15:14:28 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
| 15:14:29 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:15:34 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:16:54 | → | fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
| 15:16:57 | <jumper149> | Ignore that. Writing it down it all became clear to me :) |
| 15:17:14 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:17:25 | edmundnoble_ | is now known as edmundnoble |
| 15:18:14 | <DigitalKiwi> | janus: have you heard of wordpress? if you have then it's real simple to understand what a CRM is if you define the content of the cms to be relationships; another key difference is while wordpress is really good at some things; most notably being so customizeable that people (mis/ab)use it for everything they can think of (but not that they should, quite the contrary) dream of doing (but doing so badly), instead of reaching for more appropr |
| 15:18:15 | <DigitalKiwi> | iate solutions. if one were so inclined you could even use wordpress to build a somewhat acceptable but probably overwhelmingly "meh" CRM! wordpress greatest strength is really a bit of a curse. now most CRM avoid this curse of being so easy to use that people use it when they shouldn't and instead focus on being so hard to use that it's rare they are used even for their intended purposes let alone correctly or willingly... /s |
| 15:18:49 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 15:22:18 | × | zeenk quits (~zeenk@188.26.30.39) (Quit: Konversation terminated!) |
| 15:23:20 | → | Schrostfutz_ joins (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) |
| 15:26:21 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 15:27:01 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:27:24 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 15:27:29 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 15:27:43 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 15:28:52 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:29:09 | → | ddellacosta joins (~ddellacos@86.106.121.230) |
| 15:29:34 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 244 seconds) |
| 15:29:34 | × | argento quits (~argent0@168-227-96-51.ptr.westnet.com.ar) (Ping timeout: 244 seconds) |
| 15:30:03 | → | iamarpandey joins (~iamarpand@110.235.238.174) |
| 15:30:08 | → | nschoe joins (~quassel@2a04:cec0:10b8:624e:c4a3:2667:fa41:694c) |
| 15:30:19 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:30:42 | <iamarpandey> | hello |
| 15:30:46 | <iamarpandey> | how's everyone |
| 15:31:27 | <shapr> | I'm pure and functional |
| 15:31:32 | <shapr> | or something |
| 15:31:33 | <DigitalKiwi> | i'm ok |
| 15:31:38 | × | hemlock quits (~hemlock@wsip-70-163-92-141.tu.ok.cox.net) (Read error: Connection reset by peer) |
| 15:31:53 | <Obo> | i'm not ok |
| 15:32:01 | shapr | hugs Obo |
| 15:32:12 | <Obo> | How do I return the hug? New to IRC |
| 15:32:20 | <shapr> | Obo: you can use "/me hugs shapr" |
| 15:32:30 | Obo | hugs shapr |
| 15:32:34 | <shapr> | yay! |
| 15:32:39 | <DigitalKiwi> | (tbh i'm not ok either but pretty sure people knew that lol) |
| 15:32:56 | <shapr> | I think I'll try the VELDT getting started repo today after work. |
| 15:32:57 | Obo | hugs DigitalKiwi |
| 15:33:01 | shapr | hugs DigitalKiwi |
| 15:33:04 | <shapr> | hugs are good |
| 15:33:04 | <tomsmeding> | lambdabot is also quite ok if you feed it a snack |
| 15:33:05 | × | iamarpandey quits (~iamarpand@110.235.238.174) (Client Quit) |
| 15:33:08 | <tomsmeding> | @botsnack |
| 15:33:08 | <shapr> | @botsnack |
| 15:33:09 | <lambdabot> | :) |
| 15:33:09 | <lambdabot> | :) |
| 15:33:11 | <shapr> | yay! |
| 15:33:12 | <tomsmeding> | :D |
| 15:33:22 | × | fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Read error: Connection reset by peer) |
| 15:33:29 | <shapr> | so this will be my fun after work: https://github.com/standardsemiconductor/VELDT-getting-started |
| 15:33:30 | × | ddellacosta quits (~ddellacos@86.106.121.230) (Ping timeout: 244 seconds) |
| 15:33:31 | <DigitalKiwi> | OH NO I HAVE BEEN HUGGED |
| 15:33:32 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:33:35 | → | fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
| 15:34:03 | <tomsmeding> | https://xkcd.com/2419/ |
| 15:34:54 | <DigitalKiwi> | shapr: is this the hearing aid project |
| 15:35:17 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:35:49 | → | hemlock joins (~hemlock@wsip-70-163-92-141.tu.ok.cox.net) |
| 15:36:11 | <tomsmeding> | shapr: that cabal.project template contains a comment that I find disturbing |
| 15:36:15 | <tomsmeding> | "'large-tuples' generates tuple instances for various classes up to the GHC imposed maximum of 62 elements. This severely slows down compiling Clash, and triggers Template Haskell bugs on Windows. Hence, we disable it by default. This will be the default for Clash >=1.4." |
| 15:36:32 | <tomsmeding> | in particular the "Template Haskell bugs on Windows" |
| 15:36:43 | <DigitalKiwi> | https://hackage.haskell.org/package/arduino-copilot i have one of these blink on an uno |
| 15:36:48 | <shapr> | DigitalKiwi: nah, I haven't picked up the hearing aid project in awhile, but that's a good reminder. |
| 15:36:55 | <tomsmeding> | why would having large tuples bring problems on a particular operating system only |
| 15:37:02 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:37:44 | <shapr> | I don't know, but it sounds like an adventure I would rather not have today. |
| 15:39:20 | <[exa]> | tomsmeding: any program may trigger halting problem unexplainability, but windows loves doing it |
| 15:41:12 | <shapr> | DigitalKiwi: I mostly want to get comfy writing FPGA code. If I reach that, I have some ideas for speeding up FPGA place and route that probably won't work, but will be fun to read about. |
| 15:42:05 | <shapr> | I still find it strange that I haven't found any FPGA bitstreams used to speed up FPGA development. Seems like that should exist. |
| 15:47:22 | <DigitalKiwi> | probably does exist somewhere proprietary |
| 15:47:29 | × | nschoe quits (~quassel@2a04:cec0:10b8:624e:c4a3:2667:fa41:694c) (Read error: Connection reset by peer) |
| 15:48:22 | → | degraafk joins (sid71464@id-71464.tooting.irccloud.com) |
| 15:49:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 15:51:02 | → | Bartosz joins (~textual@24.35.90.211) |
| 15:51:18 | → | nschoe joins (~quassel@178.251.84.79) |
| 15:51:57 | <nshepperd2> | one source of potential os-specific large-tuple bugs i can imagine is deforestation/inlining leading to allocating lots of registers |
| 15:53:26 | → | fef joins (~thedawn@user/thedawn) |
| 15:54:07 | <[exa]> | nshepperd2: like that some certain OS would break register contents? |
| 15:54:15 | <[exa]> | that sounds pretty harsh |
| 15:54:48 | <tomsmeding> | and that also sounds like a bug that should manifest in a lot of other places, if true |
| 15:57:00 | <nshepperd2> | i don't know |
| 15:57:38 | <geekosaur> | I'm under the impression Windows has a very different notion of things like caller-saves registers and registers used to access DLL data than Unix-derived systems |
| 15:57:42 | <nshepperd2> | the thing about bugs is that something has to go wrong |
| 15:58:42 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
| 15:59:19 | → | hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com) |
| 15:59:42 | <geekosaur> | that said, I find it difficult to believe that TH is related to registers since on the one hand TH itself is bytecode and on the other what it generates is too high level to involve registers |
| 16:00:00 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:00:24 | <geekosaur> | unless they're bytecode-linking to objects in other packages, but that one should show up in lots of other packages on Windows |
| 16:00:39 | <DigitalKiwi> | i find a lot of bugs so it's quite possible i'm meeting your quota too |
| 16:00:58 | <nshepperd2> | huh, i thought TH used to be compiled to object code and dynamically loaded into ghc? |
| 16:01:06 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 16:01:09 | → | ddellacosta joins (~ddellacos@89.45.224.125) |
| 16:01:30 | <geekosaur> | bytecode is a large part of why TH is so slow |
| 16:03:37 | → | fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
| 16:03:40 | × | bfrk quits (~bfrk@200116b8451b0900bae0ed5ddd267e3d.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
| 16:04:25 | × | hemlock quits (~hemlock@wsip-70-163-92-141.tu.ok.cox.net) (Read error: Connection reset by peer) |
| 16:04:59 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds) |
| 16:05:13 | × | ddellacosta quits (~ddellacos@89.45.224.125) (Ping timeout: 244 seconds) |
| 16:06:09 | × | jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.1) |
| 16:07:05 | × | NanoC quits (~NanoCoast@p200300e127264d001d3a04d52b588e67.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 16:07:30 | × | chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 264 seconds) |
| 16:08:45 | → | xprlgjf joins (~gavin@60.27.93.209.dyn.plus.net) |
| 16:09:18 | × | yd502 quits (~yd502@2409:891e:320:209e:f07d:9f0f:e489:cc37) (Ping timeout: 268 seconds) |
| 16:09:40 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
| 16:09:55 | → | hemlock joins (~hemlock@2607:fb90:96f5:984c:fcd7:c5eb:b752:8ad5) |
| 16:09:56 | <kuribas> | is there a library that can read a record subset from a superset? |
| 16:10:02 | <kuribas> | using generics? |
| 16:10:23 | × | fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 244 seconds) |
| 16:11:14 | <[exa]> | kuribas: we did something similar with surgery, but not sure if that's desirable for simple usecases |
| 16:11:41 | → | fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
| 16:12:08 | <[exa]> | (the package is `generic-data-surgery`) |
| 16:12:09 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:12:30 | <kuribas> | it would save me a moderate amount of boilerplate |
| 16:12:42 | <kuribas> | Currently I am abusing RecordWildCards for it :) |
| 16:12:45 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:13:13 | <kuribas> | [exa]: that library looks complicated |
| 16:13:24 | → | Bartosz joins (~textual@24.35.90.211) |
| 16:13:49 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 16:14:19 | <[exa]> | kuribas: it's not that bad, the use usually reduces to a simple scheme like `fromOR . removeSomeFields . toOR` |
| 16:14:21 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 16:14:36 | → | tinco joins (~tinco@tinco.nl) |
| 16:15:14 | <kuribas> | maybe I'll roll my own with generics-eot |
| 16:15:38 | → | lbseale_ joins (~lbseale@user/ep1ctetus) |
| 16:15:40 | <kuribas> | oh, that's not powerful enough |
| 16:16:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:16:39 | <[exa]> | like, I was sold just the name of the operating room for types |
| 16:16:46 | <[exa]> | and it worked, so I left it there :D |
| 16:16:46 | <kuribas> | yeah :) |
| 16:17:02 | <kuribas> | [exa]: by do I need to manually remove fields? |
| 16:17:06 | <kuribas> | or can it detect them? |
| 16:17:10 | × | fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 272 seconds) |
| 16:17:46 | <[exa]> | not sure, we had datatypes with `id` that were falling out of some database adaptor (likely selda) and we were removing the `id` and some other db-specific stuff |
| 16:18:02 | <kuribas> | yeah, that's my usecase as well |
| 16:18:19 | <[exa]> | I'm not sure if you can do "everything except these fields" |
| 16:18:36 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 16:18:48 | → | fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
| 16:19:03 | → | __monty__ joins (~toonn@user/toonn) |
| 16:19:04 | × | lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 272 seconds) |
| 16:19:20 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 16:19:36 | <[exa]> | like, "data Suture :: MajorSurgery k -- Use this if a patient ever needs to go out and back into the operating room ..." |
| 16:19:39 | <[exa]> | c'mon |
| 16:19:41 | <[exa]> | too good |
| 16:20:01 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 16:21:33 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 16:24:08 | × | beka quits (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 244 seconds) |
| 16:25:12 | → | killsushi joins (~killsushi@user/killsushi) |
| 16:26:23 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 16:26:39 | × | fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Remote host closed the connection) |
| 16:27:01 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:31:43 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:4db:4b63:b94f:d66e) |
| 16:32:28 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 16:33:12 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Read error: Connection reset by peer) |
| 16:33:34 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 16:33:54 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 16:34:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:34:52 | → | fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
| 16:35:39 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:36:32 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
| 16:36:44 | × | hemlock quits (~hemlock@2607:fb90:96f5:984c:fcd7:c5eb:b752:8ad5) (Ping timeout: 244 seconds) |
| 16:37:07 | → | ddellacosta joins (~ddellacos@89.46.62.190) |
| 16:37:51 | → | hemlock joins (~hemlock@184.179.34.210) |
| 16:39:15 | → | danso joins (~danso@modemcable156.91-20-96.mc.videotron.ca) |
| 16:39:50 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 16:40:13 | × | fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Remote host closed the connection) |
| 16:41:42 | × | ddellacosta quits (~ddellacos@89.46.62.190) (Ping timeout: 244 seconds) |
| 16:42:05 | × | haskman quits (~haskman@171.61.149.211) (Quit: Going to sleep. ZZZzzz…) |
| 16:42:37 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 16:44:47 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:46:08 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 16:48:22 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 16:49:59 | × | warnz quits (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) (Remote host closed the connection) |
| 16:50:37 | → | warnz joins (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) |
| 16:51:30 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 16:54:07 | flounders_ | is now known as flounders |
| 16:55:48 | × | fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 272 seconds) |
| 16:59:10 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 17:01:04 | × | spirgel_ quits (spirgel@gateway/vpn/protonvpn/spirgel) () |
| 17:03:08 | → | larkfisherman joins (~larkfishe@178.77.35.251) |
| 17:03:41 | × | larkfisherman quits (~larkfishe@178.77.35.251) (Remote host closed the connection) |
| 17:03:59 | → | beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
| 17:04:17 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 272 seconds) |
| 17:05:18 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
| 17:05:59 | → | shryke_ joins (~shryke@190.43.6.93.rev.sfr.net) |
| 17:07:28 | xerox_ | is now known as xerox |
| 17:08:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:08:21 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 17:09:05 | × | shryke quits (~shryke@91.103.43.254) (Ping timeout: 244 seconds) |
| 17:10:19 | × | jneira_ quits (~jneira_@5.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 244 seconds) |
| 17:10:37 | × | ukari quits (~ukari@user/ukari) (Remote host closed the connection) |
| 17:11:01 | → | ukari joins (~ukari@user/ukari) |
| 17:12:03 | → | ddellacosta joins (~ddellacos@86.106.143.138) |
| 17:12:33 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 17:13:13 | × | shryke_ quits (~shryke@190.43.6.93.rev.sfr.net) (Ping timeout: 244 seconds) |
| 17:13:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 17:13:35 | × | alx741 quits (~alx741@181.196.69.243) (Ping timeout: 272 seconds) |
| 17:14:27 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 244 seconds) |
| 17:14:53 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:14:58 | → | nschoe joins (~quassel@2a04:cec0:10b8:624e:498:d1f2:d457:163f) |
| 17:15:01 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 17:16:50 | × | ddellacosta quits (~ddellacos@86.106.143.138) (Ping timeout: 244 seconds) |
| 17:18:16 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 17:19:02 | → | pe200012 joins (~pe200012@183.63.73.36) |
| 17:19:30 | × | pe200012_ quits (~pe200012@183.63.73.36) (Ping timeout: 264 seconds) |
| 17:20:14 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 17:20:42 | → | fef joins (~thedawn@user/thedawn) |
| 17:21:47 | → | haskman joins (~haskman@171.61.149.211) |
| 17:23:34 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 17:23:48 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 17:23:58 | <lyxia> | heh |
| 17:25:09 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 268 seconds) |
| 17:26:15 | → | alx741 joins (~alx741@186.178.108.66) |
| 17:27:54 | → | econo joins (uid147250@user/econo) |
| 17:30:54 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 17:32:16 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 17:32:32 | × | nschoe quits (~quassel@2a04:cec0:10b8:624e:498:d1f2:d457:163f) (Ping timeout: 272 seconds) |
| 17:34:27 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 17:38:00 | → | paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
| 17:39:27 | × | dtman34 quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
| 17:39:34 | → | vicfred joins (~vicfred@user/vicfred) |
| 17:39:51 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 17:45:58 | × | mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 244 seconds) |
| 17:49:00 | × | GIANTWORLDKEEPR_ quits (~pjetcetal@2.95.204.25) (*.net *.split) |
| 17:49:22 | → | GIANTWORLDKEEPR_ joins (~pjetcetal@2.95.204.25) |
| 17:52:26 | → | ddellacosta joins (~ddellacos@83.143.246.104) |
| 17:52:29 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
| 17:53:25 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 17:55:29 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 17:57:08 | × | ddellacosta quits (~ddellacos@83.143.246.104) (Ping timeout: 244 seconds) |
| 17:57:18 | lbseale_ | is now known as lbseale |
| 17:57:39 | → | dtman34 joins (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
| 17:59:05 | → | eflister joins (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) |
| 18:00:14 | <eflister> | hi, using an xml-conduit cursor i want to filter out nodes that have a child <LineString> -- i think i need to use one of the check* functions here: https://hackage.haskell.org/package/xml-conduit-1.9.1.1/docs/Text-XML-Cursor.html#g:4 |
| 18:00:15 | <eflister> | my guess is something like: check (\c -> "LineString" `notElem` (c $/ nameLocalName . elementName)) |
| 18:00:15 | <eflister> | but that doesn't type check :( |
| 18:00:16 | <eflister> | in another context, i was able to use `checkElement` to filter based on a node's attribute values, but i don't see how to look at a node's childrens' names... |
| 18:00:16 | <eflister> | checkElement (maybe False (not . T.isInfixOf "Spanish") . M.lookup "ows_Document" . X.elementAttributes) |
| 18:00:17 | <eflister> | here's a paste w/running code: https://paste.tomsmeding.com/eZbfKbES |
| 18:00:17 | <eflister> | most of it is just for downloading and unzipping a .kmz, you can ignore that part. inside is a kml file, which is just xml. the `extract` function is where i need to filter out nodes that have <LineString> children |
| 18:00:41 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer) |
| 18:01:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
| 18:06:19 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 18:06:34 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 18:07:19 | → | argento joins (~argent0@168-227-96-51.ptr.westnet.com.ar) |
| 18:12:04 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 18:13:25 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 18:17:39 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:19:42 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:23:12 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 18:23:19 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 18:24:50 | → | ddellacosta joins (~ddellacos@86.106.143.216) |
| 18:26:45 | → | chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
| 18:26:49 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 18:26:50 | × | MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Ping timeout (120 seconds)) |
| 18:27:10 | → | MidAutumnMoon joins (~MidAutumn@user/midautumnmoon) |
| 18:27:39 | × | ystael quits (~ystael@user/ystael) (Quit: Lost terminal) |
| 18:28:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:29:22 | × | ddellacosta quits (~ddellacos@86.106.143.216) (Ping timeout: 244 seconds) |
| 18:33:30 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
| 18:33:43 | → | bfrk joins (~bfrk@200116b8451b0900bae0ed5ddd267e3d.dip.versatel-1u1.de) |
| 18:35:52 | → | fishfinger joins (~fishfinge@85.255.236.178) |
| 18:35:52 | × | fishfinger quits (~fishfinge@85.255.236.178) (Client Quit) |
| 18:36:08 | → | fishfinger joins (~fishfinge@85.255.236.178) |
| 18:36:24 | <eflister> | anyone have time to help with my xml-conduit cursor problem? :) |
| 18:37:21 | → | gensyst joins (gensyst@user/gensyst) |
| 18:37:22 | <monochrom> | Perhaps most haven't used xml-conduit. I certainly haven't. |
| 18:37:44 | × | qbt quits (~edun@user/edun) (Ping timeout: 252 seconds) |
| 18:37:44 | <gensyst> | If n is KnownNat, why isn't n+1 automatically a KnownNat? |
| 18:39:12 | <eflister> | monochrom: should be able to work it out from the types tho :) i could use help just with that. the parts that aren't straightforward are the distinctions between Node and Element, and the Cursor/Axis types... |
| 18:39:35 | <nshepperd> | gensyst: it can be, if you enable a ghc plugin |
| 18:40:09 | <eflister> | monochrom: there's a good quick overview here: https://www.yesodweb.com/book/xml#xml_cursor |
| 18:40:17 | × | mnrmnaugh quits (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 18:40:40 | → | ericson2314 joins (~ericson23@2001:470:69fc:105::70c) |
| 18:40:42 | → | mnrmnaugh joins (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
| 18:40:51 | → | fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
| 18:42:31 | <nshepperd> | as for why it's not built into ghc, it's probably because KnownNat inference is basically arithmetic theorem proving and it's not obvious what algorithm would serve all use cases best |
| 18:43:15 | × | tubogram quits (~tubogram@user/tubogram) (*.net *.split) |
| 18:43:35 | → | tubogram joins (~tubogram@user/tubogram) |
| 18:43:40 | × | tubogram quits (~tubogram@user/tubogram) (*.net *.split) |
| 18:43:40 | × | Axman6 quits (~Axman6@user/axman6) (*.net *.split) |
| 18:43:52 | <nshepperd> | @hackage ghc-typelits-knownnat |
| 18:43:52 | <lambdabot> | https://hackage.haskell.org/package/ghc-typelits-knownnat |
| 18:44:05 | → | tubogram joins (~tubogram@user/tubogram) |
| 18:44:13 | <maerwald> | is -rtsopts ignored for test suites? |
| 18:44:45 | <monochrom> | The specific case of n+1 does not need very general theorem proving. However, I would attribute its absence to "on the TODO list". |
| 18:45:23 | × | fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 244 seconds) |
| 18:46:04 | <monochrom> | An upon the clearly rhetorical question "why isn't" the very obvious answer is "patches welcome". |
| 18:46:58 | <monochrom> | Dependent typing for Haskell is a huge program on essentially a one-person band. Expect additions to be very slowly trickling down. |
| 18:47:40 | <monochrom> | Uh, unlike the usual me, no pun intended there, honest! |
| 18:48:43 | tomsmeding | is suspicious |
| 18:48:45 | <monochrom> | I think it is very safe to assume that: |
| 18:49:14 | <monochrom> | 1. Every "why isn't foo available" question is rhetorical. The asker doesn't really care about "why", they're just complaining. |
| 18:49:25 | <monochrom> | 2. Therefore the correct answer is "patches welcome". |
| 18:49:45 | <monochrom> | 3. Therefore, we can set up a bot to handle those questions. |
| 18:50:10 | <monochrom> | . o O ( Why isn't there such a bot??!!! >:) ) |
| 18:51:38 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 18:51:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
| 18:52:10 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:53:20 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 268 seconds) |
| 18:53:36 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds) |
| 18:54:19 | <tomsmeding> | patches welcome! |
| 18:54:40 | <tomsmeding> | ... which raises the obvious question: patches to what? |
| 18:55:07 | <monochrom> | The empty, newly created git repo? :) |
| 18:55:19 | <nshepperd> | it doesn't seem very obvious when i think about it. like reducing KnownNat (n + 1) to KnownNat n is an intuitive reduction step but not the only one possible |
| 18:55:35 | <tomsmeding> | such a bot wouldn't be able to have perfect accuracy without significant haskell domain knowledge, though |
| 18:55:58 | <nshepperd> | and it must eventually terminate in whatever KnownNat instances are in scope |
| 18:56:26 | <tomsmeding> | "why isn't type Abc an instance of class Xyz" could very well be a non-complaining question, depending on the asker and the type and class in question |
| 18:56:53 | <gensyst> | nshepperd, thanks this plugin seems to work! |
| 18:57:25 | <tomsmeding> | nshepperd: I don't know how + on Nats is defined internally in GHC; if it's the typical, naive recursive definition, then it's either recursive on the left argument or on the right |
| 18:57:29 | <gensyst> | is there ANY other language that has stuff like vector-sized? this is REALLY great stuff! |
| 18:57:51 | → | ddellacosta joins (~ddellacos@89.46.62.164) |
| 18:57:51 | <tomsmeding> | and hence you might see different behaviour with 1 + n than with n + 1 |
| 18:57:57 | <monochrom> | tomsmeding, but this one is a type-level +. KnownNat is a class; n is a type. |
| 18:59:03 | <tomsmeding> | monochrom: which makes my point all the more relevant, because on the type level, at least for type families, ghc has to be careful with choosing type family branches when it's not yet clear that the argument is apart from the previous pattern |
| 18:59:08 | <nshepperd> | inferring KnownNat (n + 1) from KnownNat (n+2) which is in scope might be equally valid |
| 18:59:15 | <monochrom> | I am now convinced by nshepperd. "If n's kind is Nat, then n+1's kind is Nat" is easy. But the type class version is much harder. |
| 19:00:05 | <tomsmeding> | but if the implementation of type-level nats in ghc is magical, then it can of course get around this tip-toeing restriction |
| 19:00:22 | <tomsmeding> | but it has to explicitly implemented |
| 19:00:23 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 19:00:40 | <tomsmeding> | which returns to the initial response: patches welcome |
| 19:01:33 | × | fishfinger quits (~fishfinge@85.255.236.178) (Remote host closed the connection) |
| 19:01:45 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 19:02:26 | × | ddellacosta quits (~ddellacos@89.46.62.164) (Ping timeout: 244 seconds) |
| 19:02:31 | × | neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 272 seconds) |
| 19:02:44 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:03:41 | × | warnz quits (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) (Remote host closed the connection) |
| 19:05:03 | × | sekun quits (~sekun@180.190.222.37) (Ping timeout: 268 seconds) |
| 19:06:07 | × | Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving) |
| 19:06:09 | → | dhil joins (~dhil@80.208.56.181) |
| 19:06:14 | × | GIANTWORLDKEEPR_ quits (~pjetcetal@2.95.204.25) (Remote host closed the connection) |
| 19:07:19 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 19:07:25 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 19:09:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:10:41 | → | ystael joins (~ystael@user/ystael) |
| 19:10:59 | → | MoC joins (~moc@user/moc) |
| 19:12:05 | → | GIANTWORLDKEEPER joins (~pjetcetal@2.95.204.25) |
| 19:15:52 | → | curiousgay joins (~quassel@178.217.208.8) |
| 19:18:04 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 19:18:36 | → | Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
| 19:18:40 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 19:18:46 | → | Guest995 joins (~Guest9@103.249.234.176) |
| 19:20:27 | × | beka quits (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 272 seconds) |
| 19:20:28 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 19:23:11 | × | gensyst quits (gensyst@user/gensyst) (Quit: Leaving) |
| 19:25:43 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:25:43 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 19:25:53 | × | GIANTWORLDKEEPER quits (~pjetcetal@2.95.204.25) (Quit: EXIT) |
| 19:26:16 | → | GIANTWORLDKEEPER joins (~pjetcetal@2.95.204.25) |
| 19:26:22 | × | bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:26:24 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 19:26:43 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds) |
| 19:27:49 | × | kuribas quits (~user@ptr-25vy0ia399rh9n147f5.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 19:29:02 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:29:43 | → | ddellacosta joins (~ddellacos@89.45.224.177) |
| 19:31:07 | × | larryba quits (~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 19:31:10 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 19:32:08 | × | xsperry quits (~as@user/xsperry) (Remote host closed the connection) |
| 19:34:16 | × | ddellacosta quits (~ddellacos@89.45.224.177) (Ping timeout: 244 seconds) |
| 19:34:37 | × | xff0x_ quits (~xff0x@2001:1a81:521f:1b00:f01:e8ca:b853:4d4) (Quit: xff0x_) |
| 19:34:59 | × | hololeap quits (hololeap@user/hololeap) (Ping timeout: 244 seconds) |
| 19:36:28 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
| 19:36:35 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:37:56 | × | mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 272 seconds) |
| 19:40:19 | → | xff0x joins (~xff0x@2001:1a81:521f:1b00:7e7c:d0a5:c0e1:6eb7) |
| 19:40:53 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 19:41:07 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:43:53 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 19:43:58 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 19:44:17 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds) |
| 19:44:25 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:45:19 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 19:46:49 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:50:04 | × | cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds) |
| 19:53:59 | → | cheater joins (~Username@user/cheater) |
| 19:55:53 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 19:55:55 | × | xff0x quits (~xff0x@2001:1a81:521f:1b00:7e7c:d0a5:c0e1:6eb7) (Ping timeout: 272 seconds) |
| 19:56:36 | × | Schrostfutz_ quits (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 19:56:50 | → | Schrostfutz_ joins (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) |
| 19:57:19 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 19:57:31 | → | xff0x joins (~xff0x@2001:1a81:5224:8900:b094:cc23:ed27:1430) |
| 19:58:04 | → | neilfulwiler joins (~neilfulwi@2a02:c7f:821d:4000:a8c6:8b39:4a1f:ba3c) |
| 19:58:23 | → | cheater1__ joins (~Username@user/cheater) |
| 19:59:28 | × | cheater quits (~Username@user/cheater) (Ping timeout: 272 seconds) |
| 19:59:28 | × | killsushi quits (~killsushi@user/killsushi) (Ping timeout: 272 seconds) |
| 19:59:40 | × | neilfulwiler quits (~neilfulwi@2a02:c7f:821d:4000:a8c6:8b39:4a1f:ba3c) (Client Quit) |
| 20:00:23 | × | BestSteve quits (~beststeve@220-135-3-239.HINET-IP.hinet.net) (*.net *.split) |
| 20:00:56 | → | ddellacosta joins (~ddellacos@86.106.121.242) |
| 20:01:00 | → | BestSteve joins (~beststeve@220-135-3-239.HINET-IP.hinet.net) |
| 20:02:25 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 20:02:56 | → | cheater joins (~Username@user/cheater) |
| 20:03:12 | × | cheater1__ quits (~Username@user/cheater) (Ping timeout: 244 seconds) |
| 20:04:00 | × | niko quits (~niko@libera/staff/niko) (*.net *.split) |
| 20:04:00 | × | bcmiller quits (~bm3719@66.42.95.185) (*.net *.split) |
| 20:04:05 | → | bcmiller_ joins (~bm3719@66.42.95.185) |
| 20:04:19 | → | niko joins (~niko@libera/staff/niko) |
| 20:05:03 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 20:05:28 | × | juhp quits (~juhp@128.106.188.66) (Ping timeout: 244 seconds) |
| 20:05:52 | → | jneira_ joins (~jneira_@5.red-81-39-172.dynamicip.rima-tde.net) |
| 20:06:30 | × | awth13 quits (~user@user/awth13) (Read error: Connection reset by peer) |
| 20:06:32 | <eflister> | whew, figured it out: check (null . ($/ checkName ((== "LineString") . nameLocalName))) |
| 20:07:06 | → | awth13 joins (~user@user/awth13) |
| 20:07:32 | × | cheater quits (~Username@user/cheater) (Ping timeout: 244 seconds) |
| 20:08:08 | → | juhp joins (~juhp@128.106.188.66) |
| 20:08:58 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
| 20:09:32 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 20:13:48 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 20:15:17 | → | cheater joins (~Username@user/cheater) |
| 20:16:00 | → | bor0 joins (~boro@user/bor0) |
| 20:16:21 | → | fizbin joins (~fizbin@c-68-83-100-68.hsd1.nj.comcast.net) |
| 20:16:31 | → | fishfinger joins (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
| 20:16:50 | × | fishfinger quits (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Remote host closed the connection) |
| 20:17:12 | × | muto quits (~muto@d75-159-225-7.abhsia.telus.net) (Ping timeout: 268 seconds) |
| 20:18:10 | × | fjmorazan quits (~quassel@user/fjmorazan) (Quit: fjmorazan) |
| 20:18:55 | → | fjmorazan joins (~quassel@user/fjmorazan) |
| 20:19:19 | × | Schrostfutz_ quits (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 20:19:35 | → | Schrostfutz_ joins (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) |
| 20:19:35 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:19:40 | <eflister> | can anyone be frank with me about what's happening to haskell the last few years? it's my favorite but i'm just a hobbyist, so i only do about one project a year, and i have no inside scoop. the community doesn't seem to have the vitality it did 5-10 years ago, there doesn't seem to be the same volume of exciting new discoveries and developments. |
| 20:19:40 | <eflister> | did people move on to something else? why? |
| 20:20:31 | <wz1000> | is there anything in particular that makes you say that? |
| 20:21:05 | <[exa]> | eflister: imo the community is super excited, except many people got haskell jobs which makes them far less radical :D |
| 20:22:22 | <[exa]> | (and yeah, stuff is getting stabilized, that's good isn't it?) |
| 20:22:59 | <eflister> | well when i was first learning, there were millions of blogs with explainers of recent advances that everyone was buzzing about -- applicative, transformers, lenses, etc. i haven't seen stuff like that in a few years. and spj seems to be way less active? |
| 20:23:32 | <geekosaur> | these days type level is the new hotness |
| 20:23:36 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 20:23:53 | <geekosaur> | but nobody understands it well enough to explain it to the rest of us :þ |
| 20:23:54 | <Vq> | We should have avoided success, now we're paying the price for it... |
| 20:24:08 | <Rembane> | geekosaur: Sounds like monads ... but on the type level. :) |
| 20:25:11 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 20:25:18 | <[exa]> | also linear haskell!!111 |
| 20:25:21 | <Schrostfutz_> | Is there a way to "build" recursive functions not from the top down, but from the bottom up? I'm looking at a problem where a call for `n` requires one call each for `1..n - 1`, which quickly becomes unfeasible |
| 20:25:57 | <wz1000> | https://gitlab.haskell.org/simonpj seems quite active to me... |
| 20:25:57 | <[exa]> | Schrostfutz_: this is a wild shot but you might refer to "memoization algorithms" or "dynamic programming" |
| 20:26:05 | <bor0> | eflister, it just so happens that the same moment I am watching https://www.twitch.tv/videos/1052714670 and it covers some of your questions. I am halfway through but they covered the current community, the proposal system, experimenting with Haskell, etc. |
| 20:26:54 | <geekosaur> | there's a lot of effort going into haskell-language-server as IDE support |
| 20:26:56 | <bor0> | I am in a similar situation to you (Haskell as a hobby, small projects, advent of code, etc.), but it looks pretty alive to me :) |
| 20:27:03 | <bor0> | to yours* |
| 20:27:07 | <geekosaur> | I think the community is maturing, not dying |
| 20:27:16 | <geekosaur> | mid 20s instead of mid teens |
| 20:27:43 | <DigitalKiwi> | "the community doesn't seem to have the vitality it did 5-10 years ago" stack was released 6 years ago; highly sus |
| 20:27:47 | <Schrostfutz_> | [exa]: Thanks! I'll look into it |
| 20:28:08 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 20:28:21 | <[exa]> | Schrostfutz_: generally, just make an array (or whatever) for caching the results, and update it with small systematic steps until it contains the final result |
| 20:28:31 | → | teaSlurper joins (~chris@81.96.113.213) |
| 20:28:46 | <[exa]> | Schrostfutz_: nice illustrating algorithm is the Floyd-Warshall massive shortest path finder |
| 20:28:46 | <DigitalKiwi> | dibblego: https://twitter.com/dibblego/status/816424706316189696 |
| 20:29:16 | <Schrostfutz_> | [exa]: Yeah, that's what I thought was gonna be the solution but naive me assumed the compiler would "just figure it out"... |
| 20:29:31 | <eflister> | wz1000: well i mean at the level of talks explaining amazing new ideas. bor0: thanks for the vid, definitely what i'm asking! i'll watch. DigitalKiwi: heh :) |
| 20:29:33 | <maerwald> | eflister: there certainly are some community issues, but I'm not sure how big those effects really are |
| 20:29:50 | <DigitalKiwi> | geekosaur: am i too old for haskell now ;( (just turned 33 ;( ) |
| 20:29:57 | <eflister> | maerwald: any examples? |
| 20:30:07 | <[exa]> | Schrostfutz_: it might tbh, but needs some technique to get it out properly |
| 20:30:07 | <geekosaur> | if you are, I'm definitely over the hill (56) |
| 20:30:48 | <DigitalKiwi> | was first interested in it in my early 20s though does that count |
| 20:31:02 | <wz1000> | eflister: SPJ does have a couple of talks at the major conferences every year. |
| 20:31:37 | <maerwald> | eflister: I'd rather not engage in gossip. But comparing with the rust community I feel there's definitely more tension... some of it technical disagreements others not |
| 20:31:41 | <[exa]> | Schrostfutz_: but something like this should do the memoization kinda right: `solutions = map (\i -> createSolution i (take i solutions)) [0..]` |
| 20:31:58 | <DigitalKiwi> | eflister: just the other day i noticed tony has a bunch of youtube videos i haven't seen yet he's usually fun |
| 20:33:17 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 272 seconds) |
| 20:33:31 | <DigitalKiwi> | this by pufffnfresh is good too https://www.youtube.com/watch?v=NzIZzvbplSM&list=PLly9WMAVMrayYo2c-1E_rIRwBXG_FbLBW |
| 20:33:43 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 20:33:47 | × | reumeth quits (~reumeth@user/reumeth) (Ping timeout: 252 seconds) |
| 20:34:03 | <Schrostfutz_> | [exa]: That makes sense, I'm working on an array solution right now, let's see whether that get's me somewhere |
| 20:34:50 | <eflister> | DigitalKiwi: who's tony i haven't heard of him? maerwald: yeah it seems rust has the energy haskell had a few years ago. i've only quickly looked at it and i don't get the big deal? |
| 20:35:00 | <[exa]> | Schrostfutz_: with mutable vectors it should be even pretty fast |
| 20:35:20 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 20:36:25 | <DigitalKiwi> | https://www.youtube.com/watch?v=mit3KBw2Amw&t=929s |
| 20:37:16 | <DigitalKiwi> | eflister: tony = dibblego |
| 20:37:58 | <DigitalKiwi> | also voldemort |
| 20:38:28 | <DigitalKiwi> | https://twitter.com/ArchKiwi/status/1079560165333045248?s=20 |
| 20:38:38 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 20:38:47 | → | zeenk joins (~zeenk@188.26.30.39) |
| 20:39:25 | → | fluffyballoon joins (~fluffybal@2620:72:0:6480::10f7) |
| 20:39:44 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 20:39:50 | × | xprlgjf quits (~gavin@60.27.93.209.dyn.plus.net) (Remote host closed the connection) |
| 20:41:38 | × | cheater quits (~Username@user/cheater) (Ping timeout: 244 seconds) |
| 20:42:17 | → | cheater joins (~Username@user/cheater) |
| 20:42:48 | <Schrostfutz_> | [exa]: Hm, even with memoization my solution is too slow, I guess I'm doing it wrong |
| 20:43:06 | <Schrostfutz_> | `it` being the approach, not the memoization |
| 20:43:18 | × | kspalaiologos quits (~kspalaiol@user/kspalaiologos) (Quit: Leaving) |
| 20:45:47 | × | Guest995 quits (~Guest9@103.249.234.176) (Quit: Connection closed) |
| 20:45:47 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 20:46:06 | <eflister> | DigitalKiwi: quick look at that mckenna playlist seems like intro stuff, not big new research developments becoming practically applicable, that was what seemed to be so exciting a few years ago. maybe most of the implications of categorical structure have played out? |
| 20:46:48 | <DigitalKiwi> | how much do you know about holes |
| 20:46:55 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 20:47:07 | × | cheater quits (~Username@user/cheater) (Ping timeout: 244 seconds) |
| 20:47:42 | → | cheater joins (~Username@user/cheater) |
| 20:49:16 | → | Deide joins (~Deide@wire.desu.ga) |
| 20:49:16 | × | Deide quits (~Deide@wire.desu.ga) (Changing host) |
| 20:49:16 | → | Deide joins (~Deide@user/deide) |
| 20:50:36 | <eflister> | DigitalKiwi: only vague familiarity :) |
| 20:50:41 | <DigitalKiwi> | you're right that it's mostly intro stuff yeah i didn't mean to imply that it was revolutionary ideas (but puffnfresh is a joy to learn from and i really like those videos and he does a good intro to type holes at some point during it that i hadn't known about before) |
| 20:52:06 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 20:52:21 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 20:52:28 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 20:52:34 | → | pe200012_ joins (~pe200012@120.236.161.38) |
| 20:53:18 | × | pe200012 quits (~pe200012@183.63.73.36) (Ping timeout: 272 seconds) |
| 20:53:34 | <DigitalKiwi> | https://github.com/system-f/fp-course/commit/9fda35854f048fbf65de737b9850f8a416f05843# |
| 20:55:36 | <DigitalKiwi> | https://twitter.com/puffnfresh/status/1270573845695455234 |
| 20:59:08 | → | chisui joins (~chisui@200116b8662d980089ca00d34d7b3df6.dip.versatel-1u1.de) |
| 21:00:02 | <chisui> | Hey, Is there a way to have fundeps on closed type families? |
| 21:00:04 | <DigitalKiwi> | eflister: also keep in mind that there's been a bit of an ongoing event that's thrown wrenches in everything lol; like eg. earlier when i was mentioning the art i made for the people who were going to zuirhac ;) |
| 21:01:57 | × | fizbin quits (~fizbin@c-68-83-100-68.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 21:02:50 | → | muto joins (~muto@d75-159-225-7.abhsia.telus.net) |
| 21:03:22 | <chisui> | never mind, I was looking for injective type families again. |
| 21:04:14 | → | bilegeek joins (~bilegeek@2600:1008:b041:5047:48ad:ae3d:d2ea:7d42) |
| 21:04:22 | × | ddellacosta quits (~ddellacos@86.106.121.242) (Ping timeout: 244 seconds) |
| 21:04:22 | × | paolinoZ quits (~paolo@84.33.156.246) (Ping timeout: 244 seconds) |
| 21:04:22 | × | paolino quits (~paolo@84.33.156.246) (Ping timeout: 244 seconds) |
| 21:04:43 | × | ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer) |
| 21:05:47 | <DigitalKiwi> | https://zfoh.ch/zurihac2020/#program i started the art in february; good thing it was canceled though because the post took a month to get it to hecate ...several days too late heh |
| 21:07:29 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 21:07:43 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:08:45 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:4db:4b63:b94f:d66e) (Quit: Leaving) |
| 21:10:53 | → | warnz joins (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) |
| 21:12:18 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 272 seconds) |
| 21:13:33 | → | fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
| 21:20:02 | × | fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 21:20:52 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:21:20 | → | ystael joins (~ystael@user/ystael) |
| 21:23:10 | → | abarbu joins (~user@c-66-31-23-28.hsd1.ma.comcast.net) |
| 21:23:15 | ← | abarbu parts (~user@c-66-31-23-28.hsd1.ma.comcast.net) () |
| 21:23:18 | <maerwald> | @hoogle a -> m (Maybe a) -> m a |
| 21:23:19 | <lambdabot> | Network.AWS.Prelude (.! |
| 21:23:47 | <maerwald> | @hoogle m a -> m (Maybe a) -> m a |
| 21:23:48 | <lambdabot> | Control.Monad.Extra fromMaybeM :: Monad m => m a -> m (Maybe a) -> m a |
| 21:23:48 | <lambdabot> | Extra fromMaybeM :: Monad m => m a -> m (Maybe a) -> m a |
| 21:23:48 | <lambdabot> | Control.Conditional (<<|) :: Monad m => m a -> m (Maybe a) -> m a |
| 21:24:21 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 21:24:26 | <maerwald> | not worth a dependency |
| 21:24:29 | → | tonyday joins (~user@202-65-93-249.ip4.superloop.com) |
| 21:25:01 | → | a6a45081-2b83 joins (~aditya@27.58.175.254) |
| 21:26:22 | <tonyday> | hi haskell, on ghcup-0.1.15.2, I'm trying ghc 9.0.1 and hls 1.2.0, and it doesn't seem to create haskell-language-server-9.0.1~1.2.0 in ~/.ghcup/bin Is this right? If so, what would be the recommendation? Locally build the hls project and place the binary in the ghcup directory with this naming convention? |
| 21:27:31 | <geekosaur> | I don''t see "hls-powered" on 9.0.1 yet |
| 21:27:38 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 21:27:58 | <maerwald> | yes, because it's not in the tar.gz archive |
| 21:28:03 | <maerwald> | that's an upstream issue |
| 21:28:06 | <maerwald> | jneira_: ^ |
| 21:28:31 | <maerwald> | https://imgur.com/kS2tzEo.png |
| 21:30:05 | <jneira_> | to get a version of hls with support for ghc-9.0 you would need to build it from source, yeah |
| 21:30:31 | <jneira_> | using the `cabal-ghc901.project` |
| 21:31:37 | → | ddellacosta joins (~ddellacos@89.46.62.203) |
| 21:31:46 | <jneira_> | placing it in ghcup with the appropiate name could work |
| 21:32:01 | <jneira_> | ghcup directory |
| 21:32:03 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:32:37 | <tonyday> | https://github.com/haskell/haskell-language-server/issues/297#issuecomment-855522891 |
| 21:33:03 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 21:33:17 | <maerwald> | yes, you need to place the binary at ~/.ghcup/bin/haskell-language-server-9.0.1~1.2.0 and then run `ln -s haskell-language-server-9.0.1~1.2.0 ~/.ghcup/bin/haskell-language-server-9.0.1` |
| 21:33:49 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 21:33:50 | × | danso quits (~danso@modemcable156.91-20-96.mc.videotron.ca) (Quit: WeeChat 3.1) |
| 21:34:02 | <jneira_> | not all plugins work for ghc-9.0 though, the list is here: https://github.com/haskell/haskell-language-server/issues/297#issuecomment-855522891 |
| 21:35:26 | <tonyday> | perfect, thanks! And yes, I'm going from no HLS to HLS something, which is a big boost for my productivity. |
| 21:35:56 | <maerwald> | hope you don't use 9.0. in production though |
| 21:36:24 | × | ddellacosta quits (~ddellacos@89.46.62.203) (Ping timeout: 244 seconds) |
| 21:37:24 | geekosaur | decides it's time to update to 8.10.5 |
| 21:37:33 | <maerwald> | geekosaur: I'd not advise :p |
| 21:37:40 | <maerwald> | it's a flaky release |
| 21:37:48 | <maerwald> | 8.10.6 might come soon |
| 21:38:10 | <geekosaur> | ok, so I'll leave 8.10.4 set |
| 21:38:38 | <maerwald> | if you're on darwin, it's likely that it's outright broken for you |
| 21:38:46 | <tonyday> | production includes us noodling around in ghc-lib-parser and putting in linear types, so I do! The 8.10 series is being pensioned off. |
| 21:38:49 | <geekosaur> | so I've been seeing |
| 21:38:58 | <maerwald> | tonyday: 9.0.1 is unsound |
| 21:38:59 | <tonyday> | yes, on darwin |
| 21:39:34 | <maerwald> | tonyday: https://mail.haskell.org/pipermail/haskell-cafe/2021-March/133540.html |
| 21:39:45 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:39:58 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 21:42:03 | <geekosaur> | so is there a metadata issue that 8.10.5 shows as recommended? |
| 21:42:15 | <maerwald> | geekosaur: you mean in ghcup? |
| 21:42:20 | <geekosaur> | yes |
| 21:42:28 | <maerwald> | "the only way is forward" :p |
| 21:42:41 | <maerwald> | reverting to 8.10.4 seems odd |
| 21:42:42 | <tonyday> | I jest, but we intend to change our prelude, back to Prelude, and our build to cabal. 9.0 is good practice. |
| 21:43:58 | <maerwald> | geekosaur: but yeah, next point release we might need to be more conservative. 8.10.5 was a pretty big release for a point release |
| 21:46:51 | × | a6a45081-2b83 quits (~aditya@27.58.175.254) (Quit: Konversation terminated!) |
| 21:49:53 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1) |
| 21:49:55 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 21:51:34 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds) |
| 21:52:15 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:54:07 | → | safinaskar joins (~safinaska@109.252.90.89) |
| 21:55:41 | <safinaskar> | Terminology question. Is there some agreement on definition of "type"? For example, are entities of kind "* -> *" (such as Maybe) considered to be types? Even haskell report 2010 doesn't give answer, it uses "type" in both meanings (i. e. any entities in type syntax and entities of kind *) |
| 21:56:02 | × | hemlock quits (~hemlock@184.179.34.210) (Ping timeout: 244 seconds) |
| 21:56:50 | <ski> | there are two schools of terminology |
| 21:56:54 | → | hemlock joins (~hemlock@2607:fb90:9629:beeb:c0f9:725f:e469:1bcf) |
| 21:57:00 | <safinaskar> | >_< |
| 21:57:17 | <monochrom> | I am a big fan of using different definitions in different contexts. |
| 21:57:26 | <ski> | in the former, `Int',`Maybe Int' are types, `Maybe |
| 21:57:33 | <safinaskar> | i am plan to teach some aspects of haskell to my friend. In what sense i should use "type"? |
| 21:58:16 | <maerwald> | safinaskar: I doubt most people will need that refined terminology to understand or learn |
| 21:58:19 | <ski> | in the former, `Int',`Maybe Int',`Either String Int' are types, `Maybe',`Either',`Either String' are type constructors (and `Eq' is a type class, while `Functor' is a constructor class) |
| 21:58:41 | <monochrom> | For teaching purposes, I am also a big fan of the onion analogy, i.e., there are multiple layers of truths and white lies. |
| 21:58:42 | <hpc> | Functor is also a type class |
| 21:58:53 | <hpc> | oh, i see what you mean |
| 21:58:57 | <safinaskar> | s/ and entities of kind *) / and entities of kind * ) / |
| 21:59:12 | <ski> | (with `Maybe',`Either',`Either String' not being counted as types there. types being disjoint from type constructors) |
| 21:59:51 | <safinaskar> | okey, i understand that there is no agreement |
| 22:00:15 | <monochrom> | There is going to be an early, simplistic stage of "Maybe doesn't count as a type", and an intermediate stage of needing to care about the kind system, in which case Maybe is a type, just that its kind is not * |
| 22:01:14 | <maerwald> | you can teach 10 weeks of haskell without ever mentioning kinds :) |
| 22:01:15 | <ski> | in the latter, all of `Int',`Maybe Int',`Either String Int',`Maybe',`Either',`Either String' are types (the first three are sometimes called "concrete types", while the latter three are parameterized types, are type functions). (both `Eq' and `Functor` are type classes) |
| 22:02:02 | <monochrom> | You need to make a decision on how much you want to teach your friend, and optimize for that. There will not be one single "standard" "agreement" "truth" that is optimal for all purposes and contexts. I would think you already knew. |
| 22:02:12 | <geekosaur> | safinaskar, even ghc disagrees with itself, sometimes it uses "type" to mean kind * and other times other kinds |
| 22:02:39 | <geekosaur> | notably "Expected a type, but found…" |
| 22:02:54 | <hpc> | there's also the symmetry with the value level to consider |
| 22:03:02 | <ski> | (and all type constructors are types, but not vice versa. type constructors, of the aforementioned, are (only) `Int',`Maybe' (`String' is a type synonym for `[Char]', which is syntactic sygar for `[] Char'. `[]' and `Char' are also type constructors)) |
| 22:03:09 | ski | prefers the latter terminology |
| 22:03:14 | <hpc> | we don't say "functions are not values", or that True is a value but Just is a value constructor? |
| 22:03:15 | <monochrom> | In fact, I teach 12 weeks and still don't need to talk about kinds. |
| 22:03:21 | <hpc> | s/?// |
| 22:03:43 | <maerwald> | navigation is more important than terminology |
| 22:03:57 | <monochrom> | I think the 1st time you really need to discuss kinds is monad transformers. |
| 22:04:18 | × | tonyday quits (~user@202-65-93-249.ip4.superloop.com) (Ping timeout: 244 seconds) |
| 22:04:27 | charukiewicz_ | is now known as charukiewicz |
| 22:04:29 | <ski> | `fmap |
| 22:04:33 | <ski> | ' ? |
| 22:05:08 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:05:19 | <monochrom> | And yeah, if the audience know that "x :: Maybe Int" is cool and "x :: Maybe" isn't, you've already succeeded. |
| 22:05:32 | <safinaskar> | leaving |
| 22:05:34 | ← | safinaskar parts (~safinaska@109.252.90.89) () |
| 22:05:43 | <maerwald> | haskellers misuse 'purity' all the time, but it helps them navigate through concepts relevant to them |
| 22:06:51 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 22:06:55 | <monochrom> | May I take a naughty take on that? |
| 22:07:11 | → | tonyday joins (~user@202-65-93-249.ip4.superloop.com) |
| 22:07:15 | <janus> | yes, please tell us! |
| 22:07:23 | <monochrom> | haskellers miuses "unsafe" all the time, and it helps them wage endian wars >:) |
| 22:07:50 | × | tremon quits (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
| 22:07:55 | × | hemlock quits (~hemlock@2607:fb90:9629:beeb:c0f9:725f:e469:1bcf) (Ping timeout: 244 seconds) |
| 22:07:56 | × | eflister quits (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) (Quit: Client closed) |
| 22:08:12 | → | hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net) |
| 22:08:24 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
| 22:08:59 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 22:09:00 | → | ddellacosta joins (~ddellacos@89.46.62.229) |
| 22:09:28 | <monochrom> | Really, "is Maybe a type?" is an XY problem. Probably all terminlogy questions are. |
| 22:09:49 | <monochrom> | The asker is using that to hide the real question "is x::Maybe legal?" |
| 22:10:00 | <monochrom> | for example. |
| 22:10:26 | <maerwald> | I'm a bit worried about the friend |
| 22:11:00 | <monochrom> | I agree, but this terminology question is very minor and trivial compared to: |
| 22:11:43 | <monochrom> | We're talking about a speaker who says "THREAT of making yet another parser library" |
| 22:12:05 | <monochrom> | Are they delusional or what. Did they forget their meds. |
| 22:12:36 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
| 22:12:43 | → | xsperry joins (~as@user/xsperry) |
| 22:12:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 22:13:07 | <monochrom> | Raising a trivial first-world problem of having more or fewer libraries to the level of, like, terrorism. |
| 22:13:44 | × | ddellacosta quits (~ddellacos@89.46.62.229) (Ping timeout: 272 seconds) |
| 22:14:04 | <monochrom> | It's why I refused to answer their parser question a few days ago. |
| 22:14:12 | <maerwald> | unification seems to be a common theme these days |
| 22:14:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 22:15:05 | <geekosaur> | looked to me like they were making so much noise over "can't be monadic" yet one of their requirements seemed to require a monadic parser |
| 22:16:09 | <monochrom> | Oh, I wouldn't be surprised if they had two points that logically imply "can't be monoadic" and one point that logically implies "must be monadic". |
| 22:16:11 | × | Schrostfutz_ quits (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 22:16:29 | <maerwald> | maybe they need selective! |
| 22:16:36 | <maerwald> | oh, do we have selective parsers? |
| 22:16:38 | <monochrom> | I mean what do you expect from someone who spams the word "THREAT" in all caps. |
| 22:17:09 | <monochrom> | I think no, but I haven't really checked. |
| 22:17:14 | × | bor0 quits (~boro@user/bor0) (Quit: Leaving) |
| 22:17:17 | <maerwald> | I admit I have no intuition about what a selective parser looks like |
| 22:17:18 | × | chisui quits (~chisui@200116b8662d980089ca00d34d7b3df6.dip.versatel-1u1.de) (Ping timeout: 250 seconds) |
| 22:18:06 | <monochrom> | Maybe I can somewhat explain it. |
| 22:18:40 | × | Topsi quits (~Tobias@dyndsl-095-033-094-176.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 22:19:09 | × | awth13 quits (~user@user/awth13) (Remote host closed the connection) |
| 22:19:10 | <monochrom> | Suppose you only need to parse for a CFG. And suppose someone has already given you "satisfy :: (Token -> Bool) -> Parser Token" as a given primitive. |
| 22:19:20 | <monochrom> | Then you find out that you only need Alternative. |
| 22:19:23 | → | awth13 joins (~user@user/awth13) |
| 22:19:42 | <monochrom> | Furthermore, you find that to implement satisfy, you only need Selective. |
| 22:22:37 | → | alexeikale joins (~alexeikal@2601:1c2:1b80:100:4ea5:a35a:95ba:fcb1) |
| 22:23:13 | <monochrom> | So for example, these days when I teach chainl1 and chainr1 to my students, I show them an implementation that stays within Alternative. (The traditional Hutton version uses MonadPlus, e.g., uses >>=.) |
| 22:23:43 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
| 22:24:01 | <maerwald> | right, selective is a way to recover from a parse failure, but it still doesn't allow you to dynamically choose parsers |
| 22:24:03 | <tonyday> | Is there a new parser library? I love them - a good way to check on latest technique etc. |
| 22:26:09 | <geekosaur> | not yet, at least |
| 22:26:21 | <shachaf> | The latest technique: Make your grammar LL(1) and then use any old way of writing a parser. |
| 22:26:39 | <shachaf> | The secret parser library authors don't want you to know. |
| 22:26:41 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
| 22:27:43 | × | involans quits (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 272 seconds) |
| 22:27:47 | <maerwald> | I switched to regex-posix :> |
| 22:28:04 | <maerwald> | (and then got memory errors on darwin) |
| 22:28:13 | <monochrom> | haha yikes |
| 22:28:26 | <maerwald> | or was it windows, I forget |
| 22:29:42 | × | haskman quits (~haskman@171.61.149.211) (Quit: Going to sleep. ZZZzzz…) |
| 22:30:04 | <maerwald> | ah yeah, windows https://gitlab.haskell.org/ghc/ghc/-/issues/19945 |
| 22:30:18 | × | tonyday quits (~user@202-65-93-249.ip4.superloop.com) (Remote host closed the connection) |
| 22:30:37 | <maerwald> | I remember merijn boasting how easy FFI is in haskell |
| 22:30:39 | <maerwald> | yeah... no |
| 22:31:41 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 244 seconds) |
| 22:34:19 | → | benin036 joins (~benin@183.82.176.206) |
| 22:35:34 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:36:08 | × | nckx quits (~nckx@tobias.gr) (Quit: Updating my Guix System <https://guix.gnu.org>) |
| 22:38:02 | × | eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Quit: Restarting) |
| 22:38:12 | → | eL_Bart0 joins (eL_Bart0@dietunichtguten.org) |
| 22:40:37 | → | nckx joins (~nckx@tobias.gr) |
| 22:42:52 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:44:02 | → | tonyday joins (~user@202-65-93-249.ip4.superloop.com) |
| 22:45:11 | <janus> | how can it be that `catMaybes = [... | Just x <- xs]` works? is it a property of the list comprehension that it skips an element when the pattern fails? |
| 22:45:15 | <janus> | or is it something more general? |
| 22:46:11 | → | econo joins (uid147250@user/econo) |
| 22:46:13 | <geekosaur> | the former, when the pattern match fails it appends the empty list to the result instead of the result of the pattern as a singleton list |
| 22:47:25 | <janus> | so MonadFail is not involved? |
| 22:47:25 | <geekosaur> | if you use the monadic desugaring of list comprehensions, the pattern failing alls fail which is [] in the list monad |
| 22:48:02 | <geekosaur> | but that's I think only used when MonadComprehensions is turned on; I don't recall the simpler desugaring it otherwise uses |
| 22:48:27 | <geekosaur> | @undo [x | Just x <- xs] |
| 22:48:27 | <lambdabot> | concatMap (\ a -> case a of { Just x -> [x]; _ -> []}) xs |
| 22:48:43 | <geekosaur> | there you go |
| 22:48:49 | <janus> | oh, cool |
| 22:49:15 | × | NieDzejkob_ quits (~quassel@195.149.98.3) (Ping timeout: 244 seconds) |
| 22:49:17 | <janus> | @undo [(x,y) | (x, Just y) <- xs] |
| 22:49:17 | <lambdabot> | concatMap (\ a -> case a of { (x, Just y) -> [(x, y)]; _ -> []}) xs |
| 22:49:28 | <ski> | > do Just x <- [Just 0,Nothing,Just 2]; [x] |
| 22:49:30 | <lambdabot> | [0,2] |
| 22:49:40 | → | ddellacosta joins (~ddellacos@86.106.143.21) |
| 22:49:45 | <ski> | @undo do Just x <- [Just 0,Nothing,Just 2]; [x] |
| 22:49:46 | <lambdabot> | [Just 0, Nothing, Just 2] >>= \ a -> case a of { Just x -> [x]; _ -> fail ""} |
| 22:50:01 | <monochrom> | It is up to you which model to use: "it's a rule of list comprehension to skip pattern mismatches", "it is a special case of MonadFail". They give the same prediction, I wouldn't draw a hard line between them. |
| 22:50:38 | <monochrom> | That is, unless you ask about possible differences in generated asm code even under -O10^80. |
| 22:50:47 | <janus> | don't like it calling fail with an empty string. so i am happy to avoid `fail` |
| 22:51:05 | <ski> | @src Maybe fail |
| 22:51:06 | <lambdabot> | fail _ = Nothing |
| 22:51:22 | <ski> | @src [] fail |
| 22:51:22 | <lambdabot> | fail _ = [] |
| 22:51:29 | <janus> | but what if was another monad? tempting fate |
| 22:51:49 | <hpc> | @src IO fail |
| 22:51:49 | <lambdabot> | fail s = failIO s |
| 22:51:49 | <monochrom> | Sure, if it's another monad, then MonadFail is really invoked. |
| 22:52:02 | × | ham quits (~ham4@user/ham) (Read error: Connection reset by peer) |
| 22:54:13 | × | ddellacosta quits (~ddellacos@86.106.143.21) (Ping timeout: 244 seconds) |
| 22:54:38 | → | ham joins (~ham4@user/ham) |
| 22:55:34 | → | NieDzejkob joins (~quassel@195.149.98.3) |
| 22:56:17 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 22:56:44 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 22:56:48 | × | hemlock quits (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Ping timeout: 272 seconds) |
| 22:57:17 | × | hgolden quits (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Remote host closed the connection) |
| 22:57:41 | → | hemlock joins (~hemlock@2607:fb90:9629:beeb:8fe5:1eb6:ded9:dd19) |
| 22:57:41 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 22:58:10 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 23:02:36 | → | fizbin joins (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
| 23:02:53 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Remote host closed the connection) |
| 23:03:08 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 272 seconds) |
| 23:04:07 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:04:20 | × | warnz quits (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) (Remote host closed the connection) |
| 23:06:49 | × | fizbin quits (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 244 seconds) |
| 23:09:28 | <DigitalKiwi> | 21:57 ski: in the former, `Int',`Maybe Int' are types, `Maybe |
| 23:09:28 | × | bfrk quits (~bfrk@200116b8451b0900bae0ed5ddd267e3d.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
| 23:10:18 | <DigitalKiwi> | i was very concerned for a minute |
| 23:10:55 | <monochrom> | You should have faith in ski. :) |
| 23:13:10 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 23:13:41 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 23:13:42 | <DigitalKiwi> | i have no lack of faith in ski, maybe |
| 23:15:27 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 23:15:54 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 23:16:30 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:20:04 | × | tonyday quits (~user@202-65-93-249.ip4.superloop.com) (Remote host closed the connection) |
| 23:20:08 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 23:20:46 | × | hemlock quits (~hemlock@2607:fb90:9629:beeb:8fe5:1eb6:ded9:dd19) (Ping timeout: 244 seconds) |
| 23:21:38 | → | tonyday joins (~user@202-65-93-249.ip4.superloop.com) |
| 23:21:40 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 23:21:42 | → | hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) |
| 23:22:07 | → | ddellacosta joins (~ddellacos@86.106.121.190) |
| 23:22:52 | ski | smiles |
| 23:25:44 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 244 seconds) |
| 23:26:46 | × | ddellacosta quits (~ddellacos@86.106.121.190) (Ping timeout: 244 seconds) |
| 23:31:11 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 23:34:48 | × | chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 272 seconds) |
| 23:35:02 | × | oo_miguel quits (~pi@89-72-187-203.dynamic.chello.pl) (Ping timeout: 244 seconds) |
| 23:35:38 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 23:35:44 | → | oo_miguel joins (~pi@89-72-187-203.dynamic.chello.pl) |
| 23:37:27 | → | danso joins (~danso@23-233-111-52.cpe.pppoe.ca) |
| 23:37:58 | → | fendor_ joins (~fendor@77.119.128.134.wireless.dyn.drei.com) |
| 23:39:53 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Ping timeout: 244 seconds) |
| 23:40:42 | × | fendor quits (~fendor@77.119.131.39.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 23:41:12 | → | larryba joins (~bc817c21@217.29.117.252) |
| 23:41:43 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 23:42:34 | <larryba> | hi. is there some extension that would allow me to create an operator called | and ~? I'm getting "parse error on input �|�" and "parse error on input �)�". |
| 23:42:46 | <larryba> | (I know that | is part of haskell syntax, and probably something similar with ~, so it's probably a long shot) |
| 23:43:03 | <geekosaur> | both are part of haskell syntax and can't be overridden |
| 23:43:24 | <geekosaur> | even with RebindableSyntax, neither can be made an operator |
| 23:43:59 | <larryba> | where is ~ used? I don't recall ever seeing it |
| 23:44:10 | <geekosaur> | it makes a strict pattern lazy |
| 23:44:20 | <monochrom> | ~? should be OK, HUnit uses ~?= all the time. |
| 23:44:23 | <geekosaur> | it's also used at type level to express type equality |
| 23:44:30 | <monochrom> | | is reserved. |
| 23:44:40 | <monochrom> | But you can make ||||| or something |
| 23:45:15 | <geekosaur> | right, both can be used as parts of other operators, just not by themsleves |
| 23:52:12 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 23:52:24 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:55:17 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 23:55:57 | → | ddellacosta joins (~ddellacos@89.46.62.164) |
| 23:56:44 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 23:59:14 | × | tonyday quits (~user@202-65-93-249.ip4.superloop.com) (Remote host closed the connection) |
All times are in UTC on 2021-06-14.