2022-03-24 00:03:48 +0100 | gdown | (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
2022-03-24 00:07:55 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2022-03-24 00:09:11 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-03-24 00:10:32 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) (Remote host closed the connection) |
2022-03-24 00:11:12 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-03-24 00:11:52 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) |
2022-03-24 00:13:01 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 240 seconds) |
2022-03-24 00:14:43 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-03-24 00:17:24 +0100 | leah2 | (~leah@vuxu.org) (Ping timeout: 240 seconds) |
2022-03-24 00:26:15 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2022-03-24 00:26:41 +0100 | cosimone | (~user@93-44-187-176.ip98.fastwebnet.it) |
2022-03-24 00:27:00 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
2022-03-24 00:27:37 +0100 | machinedgod | (~machinedg@mtrlpq02-1168108095.sdsl.bell.ca) (Ping timeout: 240 seconds) |
2022-03-24 00:31:47 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:653f:80d3:c158:3650) (Ping timeout: 260 seconds) |
2022-03-24 00:32:37 +0100 | leah2 | (~leah@vuxu.org) |
2022-03-24 00:32:59 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-03-24 00:33:35 +0100 | catch22 | (~catch22@204.40.96.58.static.exetel.com.au) |
2022-03-24 00:33:47 +0100 | acidjnk | (~acidjnk@p200300d0c7049f94c956cb44f746ab1f.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2022-03-24 00:33:58 +0100 | Crash0verrid3 | (~IceChat95@2601:151:4500:17b:981f:f251:77de:55e5) |
2022-03-24 00:38:59 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-03-24 00:44:08 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-03-24 00:44:29 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-03-24 00:45:01 +0100 | dsrt^ | (~dsrt@96-67-120-105-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds) |
2022-03-24 00:45:23 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4.1) |
2022-03-24 00:45:57 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 00:46:37 +0100 | Everything | (~Everythin@37.115.210.35) |
2022-03-24 00:48:22 +0100 | slack1256 | (~slack1256@186.11.118.121) |
2022-03-24 00:49:45 +0100 | <Axman6> | koala_man: how have I never connected that you are _the_ shellcheck koalaman. Love you work my friend, Shellcheck is a godsend |
2022-03-24 00:49:46 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-03-24 00:49:56 +0100 | <koala_man> | aww, I'm happy you find it useful! |
2022-03-24 00:50:55 +0100 | slac45879 | (~slack1256@191.126.227.64) (Ping timeout: 260 seconds) |
2022-03-24 00:53:38 +0100 | <Axman6> | I've been subscribed to the infamous zsh ticket for years and live in hope but understanding =) |
2022-03-24 00:53:38 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-03-24 00:54:10 +0100 | <koala_man> | haha yup, zsh is quite different from the rest both syntactically and semantically |
2022-03-24 00:55:18 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 00:56:03 +0100 | <geekosaur> | zsh is nice for those of us who know both tcsh and sh/bash, but yes, the combination is … interesting |
2022-03-24 00:57:03 +0100 | slac45998 | (~slack1256@191.125.227.64) |
2022-03-24 00:57:15 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2022-03-24 00:57:28 +0100 | <Axman6> | I wish all languages had tools as nice as shellcheck, imagine having something that nice for Haskell |
2022-03-24 00:58:27 +0100 | <hpc> | but what language would it be written in? :P |
2022-03-24 00:59:07 +0100 | slack1256 | (~slack1256@186.11.118.121) (Ping timeout: 256 seconds) |
2022-03-24 01:00:12 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-03-24 01:00:48 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-03-24 01:00:50 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
2022-03-24 01:04:09 +0100 | slac45998 | (~slack1256@191.125.227.64) (Remote host closed the connection) |
2022-03-24 01:04:48 +0100 | zeenk | (~zeenk@2a02:2f04:a110:7d00:2011:cfed:bad7:3c94) (Quit: Konversation terminated!) |
2022-03-24 01:05:22 +0100 | Crash0verrid3 | (~IceChat95@2601:151:4500:17b:981f:f251:77de:55e5) (Quit: For Sale: Parachute. Only used once, never opened, small stain.) |
2022-03-24 01:07:03 +0100 | xff0x | (~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Ping timeout: 256 seconds) |
2022-03-24 01:07:30 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4) |
2022-03-24 01:07:31 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4.1) |
2022-03-24 01:10:07 +0100 | <dons> | shellcheck is excellent. |
2022-03-24 01:10:57 +0100 | dsrt^ | (~dsrt@96-67-120-105-static.hfc.comcastbusiness.net) |
2022-03-24 01:11:00 +0100 | <koala_man> | praise from caesar |
2022-03-24 01:11:35 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 256 seconds) |
2022-03-24 01:18:11 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 01:20:56 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-03-24 01:25:14 +0100 | pavonia | (~user@user/siracusa) (Read error: Connection reset by peer) |
2022-03-24 01:25:24 +0100 | pavonia | (~user@user/siracusa) |
2022-03-24 01:27:39 +0100 | <sm> | Axman6: I was in here saying the same thing a few weeks ago. Conclusion: that's GHC plus hlint, isn't it ? |
2022-03-24 01:32:26 +0100 | mvk | (~mvk@2607:fea8:5cc3:7e00::7980) |
2022-03-24 01:32:40 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-24 01:33:05 +0100 | mud | (~mud@user/kadoban) (Quit: quit) |
2022-03-24 01:33:18 +0100 | <Axman6> | I've never really felt like the experiences are really comparable, but the problem is also significantly more difficult in Haskell IMO |
2022-03-24 01:33:57 +0100 | <Axman6> | adding a type system where things aren't just nearly always strings makes things much harder to automate good advice |
2022-03-24 01:36:45 +0100 | <sm> | what makes the experience different ? shellcheck can give more definite concrete advice ? |
2022-03-24 01:37:19 +0100 | <sm> | I think hlint is pretty good at that, but GHC less so - unless you restrict to some kind of Simple Haskell maybe |
2022-03-24 01:38:03 +0100 | <sm> | that's why we need racket-like language levels (I think Helium does that) |
2022-03-24 01:38:53 +0100 | chenqisu1 | (~chenqisu1@183.217.201.88) |
2022-03-24 01:42:08 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-24 01:42:57 +0100 | nautical | (~nautical@2601:602:900:1630::7cbb) |
2022-03-24 01:43:37 +0100 | gardnan | (~max@c-75-70-252-201.hsd1.co.comcast.net) |
2022-03-24 01:45:10 +0100 | phma | (phma@2001:5b0:2172:dab8:f6f:c543:829a:340a) (Read error: Connection reset by peer) |
2022-03-24 01:46:32 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-03-24 01:46:45 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-24 01:47:28 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
2022-03-24 01:50:15 +0100 | phma | (~phma@host-67-44-209-94.hnremote.net) |
2022-03-24 01:52:45 +0100 | phma | (~phma@host-67-44-209-94.hnremote.net) (Read error: Connection reset by peer) |
2022-03-24 01:53:56 +0100 | nautical | (~nautical@2601:602:900:1630::7cbb) (Quit: WeeChat 3.4) |
2022-03-24 01:54:49 +0100 | phma | (~phma@host-67-44-209-94.hnremote.net) |
2022-03-24 01:56:49 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
2022-03-24 01:58:17 +0100 | nicbk | (~nicbk@user/nicbk) |
2022-03-24 02:00:57 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 240 seconds) |
2022-03-24 02:05:12 +0100 | dsrt^ | (~dsrt@96-67-120-105-static.hfc.comcastbusiness.net) (Remote host closed the connection) |
2022-03-24 02:09:57 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 256 seconds) |
2022-03-24 02:10:32 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
2022-03-24 02:11:18 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-03-24 02:12:20 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-03-24 02:15:02 +0100 | Everything | (~Everythin@37.115.210.35) () |
2022-03-24 02:17:25 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-03-24 02:18:30 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-03-24 02:22:33 +0100 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
2022-03-24 02:22:39 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
2022-03-24 02:26:33 +0100 | Benzi-Junior | (~BenziJuni@88-149-64-179.du.xdsl.is) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-03-24 02:28:05 +0100 | <abastro[m]> | What language is shellcheck made in? |
2022-03-24 02:31:24 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-2420-4733-60a5-9d17.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-03-24 02:34:40 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-0874-3206-ce5b-fa50.res6.spectrum.com) |
2022-03-24 02:35:16 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-0874-3206-ce5b-fa50.res6.spectrum.com) (Remote host closed the connection) |
2022-03-24 02:41:24 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
2022-03-24 02:41:49 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) (Remote host closed the connection) |
2022-03-24 02:42:37 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) |
2022-03-24 02:45:48 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2022-03-24 02:48:18 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-0874-3206-ce5b-fa50.res6.spectrum.com) |
2022-03-24 02:49:08 +0100 | <boxscape_> | abastro[m] haskell |
2022-03-24 02:49:24 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-0874-3206-ce5b-fa50.res6.spectrum.com) (Read error: Connection reset by peer) |
2022-03-24 02:50:06 +0100 | <abastro[m]> | ?!?!? Wait |
2022-03-24 02:50:06 +0100 | <lambdabot> | Unknown command, try @list |
2022-03-24 02:50:09 +0100 | <abastro[m]> | How? |
2022-03-24 02:50:46 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-0874-3206-ce5b-fa50.res6.spectrum.com) |
2022-03-24 02:51:03 +0100 | <boxscape_> | abastro[m] haskell is typically well suited to parsing languages and handling ASTs (in this case a bash AST), so it kind of makes sense |
2022-03-24 02:51:31 +0100 | <abastro[m]> | I see. Seems it would be hard to gather contributors though. |
2022-03-24 02:51:50 +0100 | <boxscape_> | https://github.com/koalaman/shellcheck says there are 126 contributors |
2022-03-24 02:52:54 +0100 | <boxscape_> | though of course as with all repos almost all of them have only a couple of commits |
2022-03-24 02:52:57 +0100 | alp | (~alp@user/alp) (Ping timeout: 252 seconds) |
2022-03-24 02:53:49 +0100 | <abastro[m]> | Wow, impressive |
2022-03-24 02:54:59 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-03-24 03:01:50 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-03-24 03:03:49 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-03-24 03:05:48 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-03-24 03:06:27 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-03-24 03:07:38 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-03-24 03:09:47 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
2022-03-24 03:14:33 +0100 | catch22 | (~catch22@204.40.96.58.static.exetel.com.au) (Quit: Client closed) |
2022-03-24 03:20:36 +0100 | notzmv | (~zmv@user/notzmv) |
2022-03-24 03:29:27 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 03:31:14 +0100 | Guest39 | (~Guest39@49.207.207.238) |
2022-03-24 03:32:37 +0100 | Guest39 | (~Guest39@49.207.207.238) (Client Quit) |
2022-03-24 03:32:52 +0100 | cyphase | (~cyphase@user/cyphase) |
2022-03-24 03:34:12 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 03:34:53 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-03-24 03:39:27 +0100 | xff0x | (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) |
2022-03-24 03:40:07 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
2022-03-24 03:45:23 +0100 | mud | (~mud@user/kadoban) |
2022-03-24 03:46:50 +0100 | vglfr | (~vglfr@88.155.118.203) (Ping timeout: 252 seconds) |
2022-03-24 03:54:04 +0100 | <sm> | why would it be hard ? everyone who ever wrote a shell script needs this tool :) |
2022-03-24 03:55:41 +0100 | <sm> | well maintained, well documented, highly practical haskell code - what could be more pleasant |
2022-03-24 03:56:06 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving) |
2022-03-24 03:58:48 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-03-24 03:58:57 +0100 | <sm> | oh, you mean why would haskellers sully themselves enabling the writing of more shell scripts. Well yes.. they're just too useful and we can't live without them |
2022-03-24 04:00:40 +0100 | <abastro[m]> | Oh, that as well. Shell scripts are painful |
2022-03-24 04:01:49 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds) |
2022-03-24 04:02:35 +0100 | <sm> | they kind of magically became not so painful when I noticed my editor showing errors and advice in real time |
2022-03-24 04:02:41 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-03-24 04:02:41 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-03-24 04:02:41 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-03-24 04:03:17 +0100 | <sm> | I never even configured it, AFAIK. What ? It's unheard of |
2022-03-24 04:03:35 +0100 | <abastro[m]> | Wow, I should use that as well then |
2022-03-24 04:03:55 +0100 | <abastro[m]> | But mostly I meant how many ppl don't know haskell |
2022-03-24 04:04:33 +0100 | <abastro[m]> | As haskell is relatively unpopular language, it is harder for people to volunteer. A price to pay. |
2022-03-24 04:04:47 +0100 | <sm> | there's a great https://github.com/koalaman/shellcheck/wiki/DevGuide, and it looks like you could contribute to this knowing very little haskell |
2022-03-24 04:10:33 +0100 | <sm> | also, haskell might be relatively unpopular in industry, but it's highly popular among curious software devs. One of the largest IRC channels, etc |
2022-03-24 04:11:14 +0100 | <sm> | lots of high quality free support, relative to some languages |
2022-03-24 04:13:27 +0100 | <sm> | ok I suppose python, javascript, C sharp, Java, C++ are not lacking in support |
2022-03-24 04:15:56 +0100 | abradabara | (~abradabar@185.183.97.187) (Quit: Lost terminal) |
2022-03-24 04:17:12 +0100 | <koala_man> | boxscape_: yeah there's basically 2-3 people who have made substantial Haskell improvements |
2022-03-24 04:17:26 +0100 | <boxscape_> | I see |
2022-03-24 04:18:20 +0100 | <sm> | have there been similar shell-checking tools built in other languages ? |
2022-03-24 04:18:38 +0100 | <koala_man> | shfmt in Go |
2022-03-24 04:20:36 +0100 | <sm> | shfmt related projects doesn't mention ShellCheck. Because it doesn't reformat things I suppose |
2022-03-24 04:22:01 +0100 | <koala_man> | ShellCheck never cared about formatting except as it relates to correctness, and shfmt filled in that gap. It's since added some checking functionality of its own which is neat |
2022-03-24 04:22:01 +0100 | <abastro[m]> | I wonder how you guys think about block/visual coding, would it make stuffs easier? |
2022-03-24 04:22:36 +0100 | <boxscape_> | I definitely think coding by writing an ASCII string isn't the pinnacle of user experience, but I'm not sure what a better interface would actually look like |
2022-03-24 04:23:04 +0100 | [_] | [itchyjunk] |
2022-03-24 04:23:10 +0100 | <sm> | it seems usually not to abastro, with a few exceptions with constrained scope (scratch.. that lab ide thing..) |
2022-03-24 04:24:05 +0100 | <abastro[m]> | Oh, so it should be like, Domain-specific. Right? |
2022-03-24 04:25:13 +0100 | <sm> | yes, that can be a better fit |
2022-03-24 04:25:17 +0100 | <sm> | have you tried https://code.world/blocks ? |
2022-03-24 04:25:48 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
2022-03-24 04:25:53 +0100 | <sm> | it looks like scratch in haskell |
2022-03-24 04:26:09 +0100 | <koala_man> | one such formatting issue is one of my favorite checks that never triggers, SC2262. If you run alias f='echo foo'; f; then it won't print 'foo' the first time |
2022-03-24 04:26:18 +0100 | <koala_man> | but it will the second time |
2022-03-24 04:26:28 +0100 | <sm> | yikes |
2022-03-24 04:26:31 +0100 | <koala_man> | yup |
2022-03-24 04:27:05 +0100 | <sm> | as a shell user, I'd never try something that crazy of course |
2022-03-24 04:27:38 +0100 | <sm> | though, now with flycheck and shellcheck at my back, I totally would 👍️ |
2022-03-24 04:28:08 +0100 | <koala_man> | haha |
2022-03-24 04:28:26 +0100 | <sm> | you made me dangerous with bash, koala_man |
2022-03-24 04:29:37 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 04:29:46 +0100 | <koala_man> | haha |
2022-03-24 04:29:48 +0100 | <koala_man> | oof |
2022-03-24 04:31:56 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-03-24 04:31:57 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-03-24 04:31:57 +0100 | finn_elija | FinnElija |
2022-03-24 04:34:03 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-03-24 04:34:45 +0100 | <abastro[m]> | How have you felf about haskell, koala_man? |
2022-03-24 04:38:02 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-03-24 04:42:51 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-03-24 04:42:54 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) (Ping timeout: 272 seconds) |
2022-03-24 04:42:57 +0100 | terrorjack | (~terrorjac@static.3.200.12.49.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
2022-03-24 04:43:49 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-03-24 04:44:11 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-03-24 04:48:01 +0100 | dsrt^ | (~dsrt@96-67-120-105-static.hfc.comcastbusiness.net) |
2022-03-24 04:50:37 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-03-24 04:52:58 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 04:53:28 +0100 | <jackdk> | koala_man: that makes sense - I assume alias expansion happens before the first command in a compound is evaluated? |
2022-03-24 04:59:59 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
2022-03-24 05:00:33 +0100 | kilolympus | (~kilolympu@31.205.200.235) |
2022-03-24 05:02:57 +0100 | <Axman6> | oh ouch, yeah I was trying to figure out whyit would be the case. that's very gross |
2022-03-24 05:04:05 +0100 | awpr | (uid446117@id-446117.lymington.irccloud.com) |
2022-03-24 05:04:22 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 05:04:38 +0100 | <Axman6> | so, semicolons are not the same as new lines. that's so gross |
2022-03-24 05:05:26 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 05:07:05 +0100 | <Axman6> | koala_man: you've ruined my day now, I'm mad about this and I've never even run into the problem, because it now complicated my mental model of the already insane nature of bash |
2022-03-24 05:07:21 +0100 | Unicorn_Princess | (~Unicorn_P@46-54-248-191.static.kate-wing.si) (Quit: Leaving) |
2022-03-24 05:08:06 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 05:12:25 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-24 05:13:15 +0100 | nicbk | (~nicbk@user/nicbk) (Ping timeout: 240 seconds) |
2022-03-24 05:15:48 +0100 | deadmarshal_ | (~deadmarsh@95.38.112.219) |
2022-03-24 05:18:39 +0100 | <hololeap> | shellcheck has lsp support? |
2022-03-24 05:24:22 +0100 | <abastro[m]> | I found it in VSCode, tho it says nothing about lsp |
2022-03-24 05:24:32 +0100 | <abastro[m]> | https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck&ssr=false#overview |
2022-03-24 05:25:07 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) |
2022-03-24 05:25:20 +0100 | <Axman6> | I wonder how shellcheck handles those fun files where someone decides that storing binaries in shell scripts is a good idea... |
2022-03-24 05:25:48 +0100 | <abastro[m]> | Ewwww |
2022-03-24 05:26:24 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:2b3e:70f8:165f:be99) (Ping timeout: 252 seconds) |
2022-03-24 05:31:25 +0100 | <monochrom> | I hope it is a "utf-8 decoding error" >:) |
2022-03-24 05:31:48 +0100 | <Axman6> | last time I saw it it was base64'd |
2022-03-24 05:31:59 +0100 | <Axman6> | I think the vmwaretools installer does this |
2022-03-24 05:32:00 +0100 | <monochrom> | "switching to EBCDIC mode" |
2022-03-24 05:32:46 +0100 | <monochrom> | OK, base64 may be just forgiven and ignored. |
2022-03-24 05:33:31 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
2022-03-24 05:34:33 +0100 | <Axman6> | looking at https://kb.vmware.com/s/article/1018414 it might actually be a perl script |
2022-03-24 05:37:05 +0100 | <monochrom> | ooohhhh now I wonder what shellcheck would complain about a perl script >:) |
2022-03-24 05:37:25 +0100 | <jackdk> | Axman6: I find that bash is more predictable if you imagine a rushed C programmer wrote the interpreter. The same is true for Python |
2022-03-24 05:39:41 +0100 | <abastro[m]> | When I somehow unironically like C :< |
2022-03-24 05:40:29 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 05:41:05 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 05:44:04 +0100 | rvbcldud | (~rvbcldud@2601:602:87f:4220:c526:c452:c7e1:199e) |
2022-03-24 05:44:14 +0100 | <Axman6> | C is mostly fine for what it is and the time it comes from |
2022-03-24 05:45:51 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2022-03-24 05:47:01 +0100 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2022-03-24 05:47:06 +0100 | <abastro[m]> | Yea, I mean for low-level / embedded dev |
2022-03-24 05:47:19 +0100 | <abastro[m]> | Granted, it might be due to my lack of affinity with rust. |
2022-03-24 05:47:28 +0100 | dsrt^ | (~dsrt@96-67-120-105-static.hfc.comcastbusiness.net) (Remote host closed the connection) |
2022-03-24 05:47:40 +0100 | <Axman6> | If I did have to do that sort of work these days though, I would probably use it as an excuse to learn rust |
2022-03-24 05:47:43 +0100 | vglfr | (~vglfr@88.155.118.203) (Ping timeout: 260 seconds) |
2022-03-24 05:48:50 +0100 | jack-fs | (~textual@125-209-162-166.tpgi.com.au) |
2022-03-24 05:49:14 +0100 | <Axman6> | So stackoverflow gave me access to review queues... and they put in tests to make sure you're up to the task; like showing posts which are spam and making sure you flag them, but also posts from communities you're familliar with which have been already accepted as good, to make sure you also keep the good stuff. it's a kinda cool system |
2022-03-24 05:50:29 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2022-03-24 05:51:06 +0100 | <abastro[m]> | I wonder how mainstream rust would have become in embedded/driver dev space |
2022-03-24 05:51:30 +0100 | <abastro[m]> | I mean, how is rust fairing now there? |
2022-03-24 05:53:05 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:16b7:58d0:d6fd:f99c) |
2022-03-24 05:53:51 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Remote host closed the connection) |
2022-03-24 05:54:16 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) |
2022-03-24 05:55:44 +0100 | jack-fs | (~textual@125-209-162-166.tpgi.com.au) (Ping timeout: 272 seconds) |
2022-03-24 05:56:12 +0100 | mbuf | (~Shakthi@223.178.127.254) |
2022-03-24 06:02:39 +0100 | monochrom | (trebla@216.138.220.146) |
2022-03-24 06:03:06 +0100 | <Axman6> | Aren't they allowing Rust in the linux kernel these days? |
2022-03-24 06:05:15 +0100 | <abastro[m]> | Did they? How? |
2022-03-24 06:06:03 +0100 | <Axman6> | https://security.googleblog.com/2021/04/rust-in-linux-kernel.html looks like it would give some good answers tot hat |
2022-03-24 06:06:42 +0100 | quintasan | (~quassel@quintasan.pl) () |
2022-03-24 06:07:15 +0100 | quintasan | (~quassel@quintasan.pl) |
2022-03-24 06:07:39 +0100 | <abastro[m]> | Oh, so rust got actually afloat |
2022-03-24 06:07:51 +0100 | <abastro[m]> | I envy them a bit |
2022-03-24 06:07:58 +0100 | <Axman6> | well, it's been in Firefox for years now |
2022-03-24 06:08:06 +0100 | <Axman6> | it'as not exactly a toy language these days |
2022-03-24 06:08:50 +0100 | <abastro[m]> | Eek, that implies haskell is toy language :< |
2022-03-24 06:09:13 +0100 | <Axman6> | why? |
2022-03-24 06:09:26 +0100 | <Axman6> | It's being used in lots of places commercially |
2022-03-24 06:09:45 +0100 | <abastro[m]> | Haskell is comparably less popular than rust, you know |
2022-03-24 06:09:54 +0100 | <abastro[m]> | So if rust is not exactly a toy language.. haskell is.. |
2022-03-24 06:09:54 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-03-24 06:10:04 +0100 | <Axman6> | If you've used Facebook in the past few years your posts were filtered through the Haskell based spam filtering system there |
2022-03-24 06:12:14 +0100 | <abastro[m]> | <del>Yea but I do not use facebook so apparently that does not count</del> |
2022-03-24 06:12:54 +0100 | <abastro[m]> | Btw, does facebook employ haskell/FP programmers then? |
2022-03-24 06:16:16 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-03-24 06:16:51 +0100 | <Axman6> | yes, some of the best. dons is one of them |
2022-03-24 06:16:59 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
2022-03-24 06:17:37 +0100 | deadmarshal_ | (~deadmarsh@95.38.112.219) (Ping timeout: 240 seconds) |
2022-03-24 06:18:00 +0100 | <jackdk> | abastro[m]: I don't have anything against C or C programmers. But imagining how a C programmer would've implemented something is often a great way to predict its behaviour |
2022-03-24 06:19:03 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-03-24 06:19:12 +0100 | <abastro[m]> | Yea, I agree, it is hard |
2022-03-24 06:19:54 +0100 | <Axman6> | Aww geez, more strings? better do the most confusing thing for the user I can think of... |
2022-03-24 06:20:54 +0100 | Me-me | (~me-me@user/me-me) (Quit: Disconnecting on purpose.) |
2022-03-24 06:20:56 +0100 | <abastro[m]> | Hm on a different note, FunctionalDependencies did not make it to GHC2021 it seems |
2022-03-24 06:21:33 +0100 | <Axman6> | probably they're not clearly a better choice than associated type families or something |
2022-03-24 06:22:59 +0100 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
2022-03-24 06:24:15 +0100 | <abastro[m]> | Associated type families? |
2022-03-24 06:24:29 +0100 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) (Changing host) |
2022-03-24 06:24:29 +0100 | Me-me | (~me-me@user/me-me) |
2022-03-24 06:29:42 +0100 | deadmarshal_ | (~deadmarsh@95.38.112.219) |
2022-03-24 06:30:29 +0100 | <Axman6> | class Request a where type family Response a :: Type; send :: a -> IO (Response a); instance Request GetObject where type instance Responce GetObject = GetObjectResponse; send :: GetObject -> IO (Response GetObject) -- a.k.a send :: GetObject -> IO GetObjectResponse |
2022-03-24 06:30:46 +0100 | <Axman6> | stealing an example from jackdk from a day or so ago |
2022-03-24 06:33:13 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-03-24 06:33:30 +0100 | <abastro[m]> | Oh, the one using type families? |
2022-03-24 06:33:41 +0100 | <abastro[m]> | IIRC type families are also not in GHC2021 |
2022-03-24 06:34:36 +0100 | <Axman6> | right, they're mostly equivalent to fundeps, so choosing which should be enabled by default makes sense; and IMO it's the sort of extension I would want to know is being used in a file by having a LANGUAGE pragma |
2022-03-24 06:36:01 +0100 | <jackdk> | I don't think you can do bidirectional inference through an associated TF? |
2022-03-24 06:36:14 +0100 | <jackdk> | whereas you can do `class C a b | a -> b, b -> a` |
2022-03-24 06:37:08 +0100 | <abastro[m]> | I see, good rationale |
2022-03-24 06:38:45 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) |
2022-03-24 06:40:05 +0100 | benin | (~benin@183.82.207.30) (Quit: The Lounge - https://thelounge.chat) |
2022-03-24 06:40:15 +0100 | amino_ | (~amino@94.13.111.159) (Ping timeout: 256 seconds) |
2022-03-24 06:41:20 +0100 | bahamas | (~lucian@84.232.140.158) |
2022-03-24 06:41:37 +0100 | <Axman6> | yeah they're not completely equivalent |
2022-03-24 06:43:14 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) (Ping timeout: 272 seconds) |
2022-03-24 06:43:45 +0100 | benin | (~benin@183.82.207.30) |
2022-03-24 06:45:48 +0100 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 240 seconds) |
2022-03-24 06:46:09 +0100 | _xor | (~xor@74.215.232.169) (Quit: WeeChat 3.4) |
2022-03-24 06:52:27 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
2022-03-24 06:58:25 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 07:01:09 +0100 | inversed | (~inversed@94.13.111.159) |
2022-03-24 07:05:10 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-03-24 07:08:32 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-03-24 07:08:41 +0100 | vysn | (~vysn@user/vysn) |
2022-03-24 07:19:08 +0100 | pnotequalnp | (~pnotequal@207-118-121-128.dyn.centurytel.net) |
2022-03-24 07:23:46 +0100 | leungbk` | (~user@2603-8000-1201-2dd2-1c2f-c4f4-0d21-a4ac.res6.spectrum.com) |
2022-03-24 07:25:17 +0100 | Hash | (~Hash@hey.howstoned.ru) (Ping timeout: 240 seconds) |
2022-03-24 07:26:12 +0100 | leungbk | (~user@2603-8000-1201-2dd2-1d5f-5d86-90b5-efe4.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-03-24 07:28:28 +0100 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-03-24 07:33:44 +0100 | Pickchea | (~private@user/pickchea) |
2022-03-24 07:34:09 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-03-24 07:34:11 +0100 | <abastro[m]> | I just found the moment where I thought my algorithm was wrong |
2022-03-24 07:34:31 +0100 | <abastro[m]> | But actually it was typo in input |
2022-03-24 07:42:31 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Ping timeout: 260 seconds) |
2022-03-24 07:42:50 +0100 | <abastro[m]> | I wonder if this code is standard haskell enough:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/497e661378c1c8fecaea658f6eab322cb7ae…) |
2022-03-24 07:42:59 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-03-24 07:46:46 +0100 | tadyshev | (uid547048@id-547048.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-03-24 07:49:37 +0100 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-03-24 07:50:35 +0100 | acidjnk | (~acidjnk@p200300d0c7049f7644ba050f51358f71.dip0.t-ipconnect.de) |
2022-03-24 07:51:10 +0100 | <Axman6> | this feels like that brackets problem from a few days ago, but using a queue instead of a stack |
2022-03-24 07:51:48 +0100 | karim | (~karim@156.200.223.2) |
2022-03-24 07:52:16 +0100 | <Axman6> | it looks fine as far as it is Haskell, but I am struggling a lot with what it actually does |
2022-03-24 07:53:21 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 256 seconds) |
2022-03-24 07:53:59 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2022-03-24 07:57:03 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
2022-03-24 07:59:14 +0100 | Hash | (~Hash@hey.howstoned.ru) |
2022-03-24 08:01:53 +0100 | <abastro[m]> | Yep, brackets problem |
2022-03-24 08:02:05 +0100 | <abastro[m]> | Hmm, perhaps I am bad at writing readable code.. :< |
2022-03-24 08:02:34 +0100 | <Axman6> | if it's for matching pairs of brackets, then you probably want a stack/list no? |
2022-03-24 08:02:54 +0100 | <Axman6> | I don't really understand why k is there though, so I probably don't understand the problem at all |
2022-03-24 08:03:44 +0100 | <abastro[m]> | Oh, I see. |
2022-03-24 08:04:08 +0100 | <abastro[m]> | It is to exhaustively consume a list into (n, n+k) pairs |
2022-03-24 08:04:39 +0100 | <abastro[m]> | So, for k = 5 and [1,3,4,6,6,8,9,11], it gives [(1,6),(3,8),(4,9),(6,11)] |
2022-03-24 08:05:49 +0100 | <rvbcldud> | Hello! I have a function that inserts an element into a list that does not work how I want it to. Currently it can start at an a singleton, go to a Tree with 3 elements, but after this I want to alternate which side I want to add to. |
2022-03-24 08:06:05 +0100 | <rvbcldud> | treeInsert _ x (Node num left elem right) |
2022-03-24 08:06:06 +0100 | <rvbcldud> | | left == Leaf = Node num (Node (num-1) Leaf x Leaf) elem right |
2022-03-24 08:06:08 +0100 | <rvbcldud> | | right == Leaf = Node num left elem (Node (num-1) Leaf x Leaf) |
2022-03-24 08:06:10 +0100 | <rvbcldud> | | otherwise = Node num newLeft elem right |
2022-03-24 08:06:12 +0100 | <rvbcldud> | where newLeft = treeInsert 0 x left |
2022-03-24 08:06:14 +0100 | <rvbcldud> | newRight = treeInsert 0 x right |
2022-03-24 08:06:16 +0100 | <rvbcldud> | This is my current function |
2022-03-24 08:06:18 +0100 | <abastro[m]> | (Guess I have to delay my explanation) |
2022-03-24 08:06:23 +0100 | <rvbcldud> | Sorry! |
2022-03-24 08:06:25 +0100 | <Axman6> | @where paste |
2022-03-24 08:06:25 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2022-03-24 08:06:26 +0100 | <abastro[m]> | (I mean on my problem) |
2022-03-24 08:06:40 +0100 | zaquest | (~notzaques@5.130.79.72) (Quit: Leaving) |
2022-03-24 08:06:45 +0100 | <abastro[m]> | Sorry for confusion, I was describing my algorithm when you came in. |
2022-03-24 08:07:19 +0100 | <rvbcldud> | https://paste.tomsmeding.com/blIuVvbM |
2022-03-24 08:07:20 +0100 | <abastro[m]> | I meant to say, I'll explain my algorithm later. What was your problem, rvbcldud? As suggested above, could you make a paste? |
2022-03-24 08:07:33 +0100 | <abastro[m]> | (Oops, bridge delay) |
2022-03-24 08:08:19 +0100 | zaquest | (~notzaques@5.130.79.72) |
2022-03-24 08:08:40 +0100 | <abastro[m]> | You want a criteria to decide which side you'd add the element to, I think. |
2022-03-24 08:08:43 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 08:08:45 +0100 | <rvbcldud> | Basically, after it sees that both the right and left are not Leaves ... I want it to add the element to the right and left, alternating |
2022-03-24 08:08:50 +0100 | <rvbcldud> | Basically |
2022-03-24 08:09:18 +0100 | <Axman6> | is it possible to do this from the bottom up? |
2022-03-24 08:09:19 +0100 | <rvbcldud> | Perhaps that is not the best explanation or implementation of what I want to accomplish, but I hope you get what I am saying |
2022-03-24 08:09:24 +0100 | <Axman6> | rather than top down? |
2022-03-24 08:09:42 +0100 | <abastro[m]> | What is "alternating" here? So you insert into the tree many times? |
2022-03-24 08:09:50 +0100 | <rvbcldud> | I am sure, what would you do? |
2022-03-24 08:10:20 +0100 | <Axman6> | given treeInsert 0 [1,2,3,4,5], what should we get back? |
2022-03-24 08:11:07 +0100 | <rvbcldud> | I apologize, I did not include my type signature |
2022-03-24 08:11:29 +0100 | <Axman6> | uh yeah, that's definitely not the right way to call that |
2022-03-24 08:11:33 +0100 | pottsy | (~pottsy@2400:4050:b560:3700:95a9:bb69:4209:aa9b) |
2022-03-24 08:11:49 +0100 | <rvbcldud> | treeInsert takes an Integer, which we don't have to worry about right now, the element we want to add, and the current list |
2022-03-24 08:12:15 +0100 | <Axman6> | list? not tree? |
2022-03-24 08:12:37 +0100 | <rvbcldud> | So I would call something like: treeInsert 0 "B" (Node 1 Leaf "A" Leaf) |
2022-03-24 08:12:40 +0100 | <rvbcldud> | Tree, my bad |
2022-03-24 08:13:19 +0100 | mvk | (~mvk@2607:fea8:5cc3:7e00::7980) (Ping timeout: 260 seconds) |
2022-03-24 08:13:43 +0100 | mmhat | (~mmh@55d4e56a.access.ecotel.net) |
2022-03-24 08:13:57 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:4b28:938b:c022:9725) |
2022-03-24 08:13:59 +0100 | <rvbcldud> | Does that make sense? The output would be (Node 1 (Node 0 Leaf "B" Leaf) "A" Leaf) |
2022-03-24 08:14:30 +0100 | <Axman6> | sure - what should happen if you insert "C" into that result? |
2022-03-24 08:15:00 +0100 | <rvbcldud> | We would then have (Node 1 (Node 0 Leaf "B" Leaf) "A" (Node 0 Leaf "C" Leaf) |
2022-03-24 08:15:15 +0100 | <Axman6> | and then "D"? |
2022-03-24 08:15:16 +0100 | <rvbcldud> | But NOW I want to add "D" to the left of B |
2022-03-24 08:15:22 +0100 | <abastro[m]> | Oh, so you want some kind of balance? |
2022-03-24 08:15:26 +0100 | <rvbcldud> | Exactly |
2022-03-24 08:15:39 +0100 | <Axman6> | and "E" would go to the right of "B"? |
2022-03-24 08:15:54 +0100 | <Axman6> | or somewhere right of "A"? |
2022-03-24 08:16:05 +0100 | <rvbcldud> | I would probably want to put it to the left or right of "c" |
2022-03-24 08:16:39 +0100 | <Axman6> | this feels a lot like a finger tree |
2022-03-24 08:16:50 +0100 | <Axman6> | which Data.Sequence is built on |
2022-03-24 08:17:06 +0100 | <abastro[m]> | Do you have a specific kind of balance you need? Like https://en.wikipedia.org/wiki/AVL_tree or something |
2022-03-24 08:17:13 +0100 | <abastro[m]> | Oh wait. Finger tree? |
2022-03-24 08:18:13 +0100 | <rvbcldud> | I don't need a specific balance, I just want balance ... preferably one that isn't too difficult to understand |
2022-03-24 08:18:20 +0100 | <Axman6> | rvbcldud: if you stored the size of each side, then you could do this pretty easily |
2022-03-24 08:18:21 +0100 | <rvbcldud> | I am learning haskell, after all |
2022-03-24 08:18:57 +0100 | <rvbcldud> | like writing a function that calculates the height, given the side |
2022-03-24 08:18:57 +0100 | <Axman6> | each Node stoores how many elements are in it and below it, and then you always inset into the side with the smaller size |
2022-03-24 08:19:09 +0100 | <Axman6> | use a smart constructor to ensure those sizes are always kepy up to date |
2022-03-24 08:19:12 +0100 | <Axman6> | kept* |
2022-03-24 08:19:40 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:72bf:4d2e:4b07:eb6c) |
2022-03-24 08:21:41 +0100 | <Axman6> | data Tree a = Node { size :: Int, num :: Int, left :: Tree a, elem :: a, right :: Tree a } | Leaf; node :: Int -> a -> Tree a -> Tree a -> Tree a; node n a l r = Node {size = 1 + s l + s r, num = n, left = l, elem = a, right = r} where s Leaf = 0; s Node{size} = size |
2022-03-24 08:23:32 +0100 | <Axman6> | then to insert, you so something like: insert a (Node s n l e r) | if s l <= s r = node n a (insert a l) r (a lot missing here because I need to leave) |
2022-03-24 08:24:38 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2022-03-24 08:25:50 +0100 | mmhat | (~mmh@55d4e56a.access.ecotel.net) (Ping timeout: 272 seconds) |
2022-03-24 08:25:52 +0100 | <rvbcldud> | I think I figured out a similar implementation ... although yours is a bit tricky to read for me |
2022-03-24 08:26:16 +0100 | <rvbcldud> | https://paste.tomsmeding.com/DMmBJMZQ |
2022-03-24 08:32:47 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2022-03-24 08:36:35 +0100 | <rvbcldud> | Thanks for all your help guys!! It works |
2022-03-24 08:37:40 +0100 | neurocyte0917090 | (~neurocyte@IP-094046076012.dynamic.medianet-world.de) |
2022-03-24 08:37:41 +0100 | neurocyte0917090 | (~neurocyte@IP-094046076012.dynamic.medianet-world.de) (Changing host) |
2022-03-24 08:37:41 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-03-24 08:38:19 +0100 | Natch | (~natch@c-67bae255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
2022-03-24 08:42:08 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-03-24 08:43:26 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-03-24 08:43:41 +0100 | Natch | (~natch@c-67bae255.014-297-73746f25.bbcust.telenor.se) |
2022-03-24 08:44:08 +0100 | ccntrq | (~Thunderbi@2a01:c22:8401:2f00:927:6de8:e589:73f0) |
2022-03-24 08:45:20 +0100 | lainon | (~lainon@2601:7c0:c500:4d20::ffef) |
2022-03-24 08:47:51 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 260 seconds) |
2022-03-24 08:49:43 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-03-24 08:52:34 +0100 | zeenk | (~zeenk@2a02:2f04:a110:7d00:2011:cfed:bad7:3c94) |
2022-03-24 08:54:59 +0100 | mikoto-chan | (~mikoto-ch@84.199.144.235) |
2022-03-24 08:58:14 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-03-24 09:00:21 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
2022-03-24 09:02:39 +0100 | july541[m] | (~july541ma@2001:470:69fc:105::1:e416) |
2022-03-24 09:03:15 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-03-24 09:04:24 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-03-24 09:06:27 +0100 | pnotequalnp | (~pnotequal@207-118-121-128.dyn.centurytel.net) (Ping timeout: 256 seconds) |
2022-03-24 09:11:41 +0100 | alp | (~alp@user/alp) |
2022-03-24 09:13:44 +0100 | MajorBiscuit | (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) |
2022-03-24 09:15:18 +0100 | michalz | (~michalz@185.246.204.61) |
2022-03-24 09:15:33 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-03-24 09:16:08 +0100 | Major_Biscuit | (~MajorBisc@c-001-015-045.client.tudelft.eduvpn.nl) |
2022-03-24 09:19:56 +0100 | MajorBiscuit | (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 245 seconds) |
2022-03-24 09:24:55 +0100 | lainon | (~lainon@2601:7c0:c500:4d20::ffef) (Ping timeout: 256 seconds) |
2022-03-24 09:25:17 +0100 | fendor | (~fendor@178.115.46.236.wireless.dyn.drei.com) |
2022-03-24 09:27:22 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-03-24 09:31:59 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-03-24 09:32:15 +0100 | ccntrq | (~Thunderbi@2a01:c22:8401:2f00:927:6de8:e589:73f0) (Ping timeout: 252 seconds) |
2022-03-24 09:32:33 +0100 | ccntrq | (~Thunderbi@2a01:c22:897f:4a00:b1c:1884:168b:a47f) |
2022-03-24 09:36:22 +0100 | mmhat | (~mmh@55d4e56a.access.ecotel.net) |
2022-03-24 09:38:37 +0100 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-03-24 09:38:55 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2022-03-24 09:42:10 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-03-24 09:42:18 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-03-24 09:44:09 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-03-24 09:48:31 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 260 seconds) |
2022-03-24 09:48:48 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2022-03-24 09:48:59 +0100 | acidjnk | (~acidjnk@p200300d0c7049f7644ba050f51358f71.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-03-24 09:54:30 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Ping timeout: 272 seconds) |
2022-03-24 09:58:52 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 09:59:51 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 10:00:26 +0100 | FernandoChu[m] | (~ryunaqmat@2001:470:69fc:105::1:4dc0) (Quit: You have been kicked for being idle) |
2022-03-24 10:00:26 +0100 | MosheTeutsch[m] | (~moteutsch@2001:470:69fc:105::1:c250) (Quit: You have been kicked for being idle) |
2022-03-24 10:04:12 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-03-24 10:06:27 +0100 | dcoutts__ | (~duncan@host86-167-90-249.range86-167.btcentralplus.com) |
2022-03-24 10:07:34 +0100 | gardnan | (~max@c-75-70-252-201.hsd1.co.comcast.net) (Quit: Lost terminal) |
2022-03-24 10:08:57 +0100 | dcoutts_ | (~duncan@host86-167-90-249.range86-167.btcentralplus.com) (Ping timeout: 240 seconds) |
2022-03-24 10:09:50 +0100 | _xor | (~xor@74.215.232.169) |
2022-03-24 10:12:43 +0100 | AlexZenon | (~alzenon@178.34.150.116) |
2022-03-24 10:12:54 +0100 | hsw | (~hsw@112-104-141-52.adsl.dynamic.seed.net.tw) (Remote host closed the connection) |
2022-03-24 10:13:10 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 10:13:24 +0100 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
2022-03-24 10:14:39 +0100 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Client Quit) |
2022-03-24 10:14:51 +0100 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
2022-03-24 10:16:19 +0100 | _xor | (~xor@74.215.232.169) (Quit: brb) |
2022-03-24 10:21:40 +0100 | vglfr | (~vglfr@88.155.118.203) (Read error: Connection reset by peer) |
2022-03-24 10:21:53 +0100 | acidjnk | (~acidjnk@p200300d0c7049f76ad7ddf43206a2c16.dip0.t-ipconnect.de) |
2022-03-24 10:22:52 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 10:23:31 +0100 | karim | (~karim@156.200.223.2) (Ping timeout: 260 seconds) |
2022-03-24 10:23:46 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) |
2022-03-24 10:29:32 +0100 | Alex_test | (~al_test@178.34.150.116) |
2022-03-24 10:29:43 +0100 | AlexNoo | (~AlexNoo@178.34.150.116) |
2022-03-24 10:31:14 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Quit: Leaving) |
2022-03-24 10:34:47 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) |
2022-03-24 10:37:46 +0100 | <siers> | is it possible to write code that would make a list that would contain all the cases of an ADT and verify this at compile time? you can check that all inputs of an ADT are handled, but I assume not this |
2022-03-24 10:40:10 +0100 | <merijn> | siers: What is the use case, exactly? |
2022-03-24 10:41:58 +0100 | <siers> | merijn, I want the compiler to remind me to write tests about each case for code that handles that data structure |
2022-03-24 10:42:25 +0100 | <merijn> | -Wall warns about missed cases already? |
2022-03-24 10:46:19 +0100 | <lortabac> | siers: what do you want to do with all the constructors? just print them? |
2022-03-24 10:49:39 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
2022-03-24 10:50:07 +0100 | vglfr | (~vglfr@88.155.118.203) (Read error: Connection reset by peer) |
2022-03-24 10:50:19 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 10:51:23 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 10:55:29 +0100 | toulene9 | (~toulene@user/toulene) |
2022-03-24 10:55:49 +0100 | toulene | (~toulene@user/toulene) (Ping timeout: 240 seconds) |
2022-03-24 10:55:49 +0100 | toulene9 | toulene |
2022-03-24 10:59:16 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-03-24 11:01:00 +0100 | Natch | (~natch@c-67bae255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 272 seconds) |
2022-03-24 11:11:18 +0100 | romesrf | (~romes@2001:8a0:6d13:9700:6d76:5070:aa75:b09) |
2022-03-24 11:12:51 +0100 | haskl | (~haskl@user/haskl) (Ping timeout: 245 seconds) |
2022-03-24 11:13:26 +0100 | Natch | (~natch@c-67bae255.014-297-73746f25.bbcust.telenor.se) |
2022-03-24 11:15:48 +0100 | vglfr | (~vglfr@88.155.118.203) (Read error: Connection reset by peer) |
2022-03-24 11:15:55 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 11:16:48 +0100 | notzmv | (~zmv@user/notzmv) |
2022-03-24 11:19:19 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4.1) |
2022-03-24 11:19:20 +0100 | vglfr | (~vglfr@88.155.118.203) (Read error: Connection reset by peer) |
2022-03-24 11:19:34 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 11:21:07 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-03-24 11:23:18 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-03-24 11:23:37 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-03-24 11:29:48 +0100 | vglfr | (~vglfr@88.155.118.203) (Read error: Connection reset by peer) |
2022-03-24 11:29:57 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 11:30:00 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 11:30:30 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 11:32:13 +0100 | vglfr | (~vglfr@88.155.118.203) (Read error: Connection reset by peer) |
2022-03-24 11:32:44 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 11:33:23 +0100 | zeenk | (~zeenk@2a02:2f04:a110:7d00:2011:cfed:bad7:3c94) (Quit: Konversation terminated!) |
2022-03-24 11:35:11 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-03-24 11:35:46 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-03-24 11:36:12 +0100 | haskl | (~haskl@user/haskl) |
2022-03-24 11:37:55 +0100 | mmhat | (~mmh@55d4e56a.access.ecotel.net) (Quit: WeeChat 3.4.1) |
2022-03-24 11:39:13 +0100 | <maerwald> | don't worry, technically the compiler fills out missed cases for you :D |
2022-03-24 11:39:49 +0100 | <maerwald> | hey, I wonder if you could hook wingman into GHC such that it tries to fill out those instead of throwing error |
2022-03-24 11:40:04 +0100 | vglfr | (~vglfr@88.155.118.203) (Read error: Connection reset by peer) |
2022-03-24 11:40:16 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 11:42:17 +0100 | vglfr | (~vglfr@88.155.118.203) (Read error: Connection reset by peer) |
2022-03-24 11:42:48 +0100 | vglfr | (~vglfr@88.155.118.203) |
2022-03-24 11:45:04 +0100 | <dminuoso> | Haha |
2022-03-24 11:45:37 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2022-03-24 11:45:50 +0100 | <dminuoso> | Who wouldn't want their compiler to provide a guessed implementation for missing code paths. |
2022-03-24 11:46:31 +0100 | <kuribas> | What was the limitation again with higher kinded types? That type families have to be fully applied? |
2022-03-24 11:46:37 +0100 | <maerwald> | dminuoso: a truly lazy language |
2022-03-24 11:47:06 +0100 | <dminuoso> | maerwald: Why not rig GPT3 into the runtime, and all you do is just write a README.md? |
2022-03-24 11:47:23 +0100 | vglfr | (~vglfr@88.155.118.203) (Ping timeout: 256 seconds) |
2022-03-24 11:47:33 +0100 | <dminuoso> | This is where we are headed already. |
2022-03-24 11:47:42 +0100 | <tomsmeding> | not into the runtime, hopefully |
2022-03-24 11:47:56 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4.1) |
2022-03-24 11:47:57 +0100 | <kuribas> | Does that include data families? |
2022-03-24 11:48:02 +0100 | <[exa]> | tomsmeding: adds situational awareness |
2022-03-24 11:48:30 +0100 | xff0x | (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds) |
2022-03-24 11:48:32 +0100 | <kuribas> | like MyHKD f = MyHKD {field1 :: f Int, field2 :: f Double} |
2022-03-24 11:49:27 +0100 | <kuribas> | f cannot be a type family? |
2022-03-24 11:49:52 +0100 | <tomsmeding> | f cannot be a type family that does case analysis on its argument |
2022-03-24 11:50:04 +0100 | <maerwald> | dminuoso: does it mean I won't have to code anymore? |
2022-03-24 11:50:23 +0100 | <tomsmeding> | like, you could have `type family F a where F a = a` and then `MyHKD (F Maybe)` |
2022-03-24 11:50:30 +0100 | <kuribas> | tomsmeding: so that excludes a data family? |
2022-03-24 11:50:47 +0100 | <tomsmeding> | because then F is fully applied, even though it resolves to something of kind * -> * |
2022-03-24 11:50:56 +0100 | <tomsmeding> | I guess so |
2022-03-24 11:50:58 +0100 | <romesrf> | program synthesis is a real thing :) it does just the kind of thing you mentioined |
2022-03-24 11:51:24 +0100 | <kuribas> | tomsmeding: now I wrap it with a newtype, and that works :) |
2022-03-24 11:51:29 +0100 | <tomsmeding> | precisely :) |
2022-03-24 11:51:31 +0100 | <maerwald> | alright, I'll look for another job then |
2022-03-24 11:51:33 +0100 | <tomsmeding> | that's the fix usually |
2022-03-24 11:51:37 +0100 | <dminuoso> | maerwald: To be fair, this already exists. It's called management position. :p |
2022-03-24 11:52:07 +0100 | <tomsmeding> | it will be many years until I attain a management position |
2022-03-24 11:52:18 +0100 | <dminuoso> | If you want it at all. |
2022-03-24 11:52:25 +0100 | <tomsmeding> | many could be >100 |
2022-03-24 11:52:29 +0100 | Natch | (~natch@c-67bae255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 256 seconds) |
2022-03-24 11:52:35 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-03-24 11:52:43 +0100 | <maerwald> | so Haskell is dying after all! |
2022-03-24 11:55:03 +0100 | Natch | (~natch@c-67bae255.014-297-73746f25.bbcust.telenor.se) |
2022-03-24 11:56:03 +0100 | <abastro[m]> | Whhh |
2022-03-24 11:56:36 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-03-24 11:56:39 +0100 | <maerwald> | an AI will be doing our work and this channel will be occupied by managers instead |
2022-03-24 11:58:02 +0100 | <abastro[m]> | Indeed |
2022-03-24 11:59:05 +0100 | <dminuoso> | Heck, if we have plugged GPT into writing code, we might as well go all the way and have just a bunch of GPT3 bots talk to each other here in IRC. |
2022-03-24 11:59:11 +0100 | <maerwald> | maybe we need to destroy all AI technology to save Haskell |
2022-03-24 11:59:13 +0100 | <dminuoso> | No need to converse either. |
2022-03-24 11:59:42 +0100 | <dminuoso> | We already have the occasional markov chain bot :) |
2022-03-24 12:01:19 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-03-24 12:02:26 +0100 | <jackdk> | dminuoso: Why is it you say that We already have the occasional markov chain bot :)? |
2022-03-24 12:03:24 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-03-24 12:06:40 +0100 | razetime | (~quassel@117.193.6.156) |
2022-03-24 12:07:21 +0100 | chenqisu1 | (~chenqisu1@183.217.201.88) (Quit: Leaving) |
2022-03-24 12:07:26 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-03-24 12:09:56 +0100 | <abastro[m]> | I mean |
2022-03-24 12:10:07 +0100 | <abastro[m]> | AI would not only threaten haskell |
2022-03-24 12:10:22 +0100 | <abastro[m]> | It would threaten most fields of study! |
2022-03-24 12:10:41 +0100 | <abastro[m]> | Clearly, only looks would matter afterwards |
2022-03-24 12:12:40 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-24 12:12:47 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-24 12:13:33 +0100 | In0perable | (~PLAYER_1@fancydata.science) (Quit: All your buffer are belong to us!) |
2022-03-24 12:14:18 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-03-24 12:20:23 +0100 | Inoperable | (~PLAYER_1@fancydata.science) |
2022-03-24 12:28:12 +0100 | <romesrf> | dminuoso: that's a funny idea for an IRC channel. Imagine the conversations |
2022-03-24 12:29:23 +0100 | xff0x | (~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) |
2022-03-24 12:29:29 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-24 12:29:36 +0100 | <kuribas> | I don't think AI will threaten anything. Except democracy, through facebook... |
2022-03-24 12:29:37 +0100 | <geekosaur> | M-x psychoanalyze-pinhead |
2022-03-24 12:29:51 +0100 | <Franciman> | M-x cure-rsi |
2022-03-24 12:30:00 +0100 | <Franciman> | too futuristic? |
2022-03-24 12:32:25 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
2022-03-24 12:33:21 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1) |
2022-03-24 12:33:53 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 12:39:57 +0100 | <abastro[m]> | I thought we were talking satiristically |
2022-03-24 12:40:07 +0100 | <abastro[m]> | Satirically* |
2022-03-24 12:41:35 +0100 | romesrf | (~romes@2001:8a0:6d13:9700:6d76:5070:aa75:b09) (Quit: WeeChat 3.4) |
2022-03-24 12:43:41 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
2022-03-24 12:44:18 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-03-24 12:44:48 +0100 | <dminuoso> | jackdk: Recall fog? |
2022-03-24 12:45:54 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-24 12:47:47 +0100 | Midjak | (~Midjak@82.66.147.146) |
2022-03-24 12:48:39 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
2022-03-24 12:50:16 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 12:51:34 +0100 | acidjnk | (~acidjnk@p200300d0c7049f76ad7ddf43206a2c16.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-03-24 12:54:05 +0100 | lainon | (~lainon@2601:7c0:c500:4d20::ffef) |
2022-03-24 12:54:13 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-03-24 12:54:31 +0100 | Major_Biscuit | (~MajorBisc@c-001-015-045.client.tudelft.eduvpn.nl) (Ping timeout: 245 seconds) |
2022-03-24 12:54:49 +0100 | alp | (~alp@user/alp) (Ping timeout: 256 seconds) |
2022-03-24 12:57:38 +0100 | Pickchea | (~private@user/pickchea) |
2022-03-24 12:59:13 +0100 | Major_Biscuit | (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) |
2022-03-24 13:00:12 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:16b7:58d0:d6fd:f99c) (Ping timeout: 240 seconds) |
2022-03-24 13:03:35 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
2022-03-24 13:03:52 +0100 | <siers> | merijn, Wall warns about code that is not added, but not about tests, because the test is dependent on the values which, if a new case is added, won't show a warning, because the types would be satisfied |
2022-03-24 13:05:40 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 13:07:46 +0100 | boxscape_ | (~boxscape_@vpn-44-78.hq.eso.org) |
2022-03-24 13:07:57 +0100 | <lortabac> | siers: can you give an example? I don't understand what you mean |
2022-03-24 13:09:11 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-03-24 13:09:19 +0100 | <siers> | "data X = A | B; f A = 1; f B = 2". if you add "| C" to X later, you'll be reminded by the compiler to update f, but not reminded to add a C case in tests |
2022-03-24 13:09:19 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 13:09:54 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 13:11:08 +0100 | <lortabac> | siers: what's the difference between tests and the rest? |
2022-03-24 13:11:24 +0100 | <abastro[m]> | Which tests? |
2022-03-24 13:11:32 +0100 | <lortabac> | maybe they don't do pattern-matching? |
2022-03-24 13:11:37 +0100 | <abastro[m]> | The test project? |
2022-03-24 13:11:47 +0100 | <siers> | unit tests |
2022-03-24 13:11:58 +0100 | <siers> | the test code would be "f A `assert` 1; f B `assert` 2". |
2022-03-24 13:12:09 +0100 | vglfr | (~vglfr@46.96.167.246) |
2022-03-24 13:12:17 +0100 | <abastro[m]> | (I mean, yourproject:test or something) |
2022-03-24 13:12:22 +0100 | <lortabac> | maybe you forgot to enable -Wall in the tests |
2022-03-24 13:12:45 +0100 | <siers> | what would the test code look like? if the tests look like I wrote, Wall won't help |
2022-03-24 13:12:57 +0100 | <siers> | am I completely off base? |
2022-03-24 13:13:09 +0100 | <lortabac> | oh sorry I misread your tests :D |
2022-03-24 13:13:15 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-03-24 13:13:18 +0100 | <lortabac> | now I understand |
2022-03-24 13:13:37 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-03-24 13:13:55 +0100 | <siers> | suppose you had a list of [(X, Int)] for test cases – I would like to know that the Xs had all possible values exactly |
2022-03-24 13:13:59 +0100 | <abastro[m]> | Oh, ya that is not pattern matching |
2022-03-24 13:14:06 +0100 | <abastro[m]> | If you are just testing concrete cases |
2022-03-24 13:14:08 +0100 | <siers> | I am here to be told "no can do" |
2022-03-24 13:14:17 +0100 | <lortabac> | siers: it's doable |
2022-03-24 13:14:22 +0100 | <abastro[m]> | Perhaps assert is not a good way to test that |
2022-03-24 13:14:23 +0100 | <siers> | template haskell? |
2022-03-24 13:14:39 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-03-24 13:14:39 +0100 | <lortabac> | in fact we have a similar problem in my team |
2022-03-24 13:14:39 +0100 | <siers> | abastro[m], tests are literally all asserts |
2022-03-24 13:14:42 +0100 | <abastro[m]> | Though `f` is possibly too simple to test imho |
2022-03-24 13:14:57 +0100 | <lortabac> | and the solution is simply that these cases must be checked during code reviews |
2022-03-24 13:15:28 +0100 | <siers> | lortabac, haha, yeah, that's a soft solution. I am just checking that there is no obvious way to get the compiler to tell you |
2022-03-24 13:15:48 +0100 | <lortabac> | you can use Data.Data |
2022-03-24 13:15:50 +0100 | vysn | (~vysn@user/vysn) |
2022-03-24 13:15:55 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
2022-03-24 13:16:20 +0100 | <lortabac> | find the number of constructors with Data.Data and compare with the number of unique constructors in the tests |
2022-03-24 13:16:38 +0100 | <abastro[m]> | Oh, I thought those tests are like equivalent to.. |
2022-03-24 13:17:00 +0100 | acidjnk | (~acidjnk@p200300d0c7049f76ad7ddf43206a2c16.dip0.t-ipconnect.de) |
2022-03-24 13:17:03 +0100 | <siers> | lortabac, I guess that is the solution, yeah |
2022-03-24 13:17:14 +0100 | <abastro[m]> | g A = fA |
2022-03-24 13:17:14 +0100 | <abastro[m]> | g B = fB |
2022-03-24 13:17:14 +0100 | <abastro[m]> | g C = fC |
2022-03-24 13:17:14 +0100 | <abastro[m]> | And tests that f == g |
2022-03-24 13:17:23 +0100 | <siers> | that is kind of what I was thinking was the only way |
2022-03-24 13:17:56 +0100 | <abastro[m]> | Uhm tests are asserts? Oh wait it is.. duh me |
2022-03-24 13:18:01 +0100 | <lortabac> | there is a function called 'dataTypeConstrs', it should do the job |
2022-03-24 13:18:04 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-03-24 13:18:43 +0100 | <abastro[m]> | Right, if the ADT is complex, approach of defining g and testing against it might not work |
2022-03-24 13:18:58 +0100 | <siers> | lortabac, nice |
2022-03-24 13:19:56 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Client Quit) |
2022-03-24 13:21:28 +0100 | <lortabac> | however the solution proposed by abastro[m] is simpler |
2022-03-24 13:21:29 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Read error: Connection reset by peer) |
2022-03-24 13:21:48 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2022-03-24 13:21:48 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2022-03-24 13:21:52 +0100 | allbery_b | geekosaur |
2022-03-24 13:21:56 +0100 | <siers> | complex meaning nested? |
2022-03-24 13:22:09 +0100 | lavaman | (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
2022-03-24 13:22:15 +0100 | <lortabac> | erm no, you still need to verify that all constructors are fed to 'g' |
2022-03-24 13:22:27 +0100 | <lortabac> | so you are back to square 1 |
2022-03-24 13:22:59 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) |
2022-03-24 13:24:26 +0100 | <abastro[m]> | I mean, g is pattern matching function. |
2022-03-24 13:24:34 +0100 | <abastro[m]> | So it is subjected to exhaustiveness checker |
2022-03-24 13:24:46 +0100 | <abastro[m]> | Problem is, ofc, when you dislike having a function g |
2022-03-24 13:25:02 +0100 | <lortabac> | yes, but if you want to test all the cases you need to do 'g A', 'g B', 'g C' |
2022-03-24 13:25:13 +0100 | <lortabac> | and the compiler doesn't check that |
2022-03-24 13:25:44 +0100 | <siers> | you write map assert listTestCases and that's kind of taken care of, because it don't need changing the next time something's added to the ADT and you just check that the list of test cases is long enough |
2022-03-24 13:25:51 +0100 | vglfr | (~vglfr@46.96.167.246) (Read error: Connection reset by peer) |
2022-03-24 13:26:04 +0100 | vglfr | (~vglfr@46.96.167.246) |
2022-03-24 13:26:27 +0100 | <lortabac> | yeah, so at some point you need some trick like the one with Data.Data |
2022-03-24 13:27:15 +0100 | <lortabac> | otherwise you can't check that listTestCases contains all the constructors |
2022-03-24 13:27:46 +0100 | <siers> | yes, that's the puzzle piece I was wondering about, so my inquiry is resolved |
2022-03-24 13:28:19 +0100 | <jackdk> | dminuoso: I think so, but mostly I was LARPing the chatty doctor program I had in my emacs once |
2022-03-24 13:29:09 +0100 | CiaoSen | (~Jura@p200300c95735b0002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-03-24 13:30:10 +0100 | <abastro[m]> | I guess I need to learn more about testing |
2022-03-24 13:34:20 +0100 | mmhat | (~mmh@55d4e56a.access.ecotel.net) |
2022-03-24 13:34:50 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 13:37:07 +0100 | mmhat | (~mmh@55d4e56a.access.ecotel.net) (Client Quit) |
2022-03-24 13:38:37 +0100 | mmhat | (~mmh@55d4e56a.access.ecotel.net) |
2022-03-24 13:42:37 +0100 | vglfr | (~vglfr@46.96.167.246) (Read error: Connection reset by peer) |
2022-03-24 13:42:48 +0100 | vglfr | (~vglfr@46.96.167.246) |
2022-03-24 13:43:00 +0100 | dispater | (~dispater@user/brprice) (Ping timeout: 240 seconds) |
2022-03-24 13:43:00 +0100 | orcus | (~orcus@user/brprice) (Ping timeout: 240 seconds) |
2022-03-24 13:43:02 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
2022-03-24 13:44:12 +0100 | dispater | (~dispater@user/brprice) |
2022-03-24 13:44:44 +0100 | orcus | (~orcus@user/brprice) |
2022-03-24 13:45:10 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2022-03-24 13:45:10 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2022-03-24 13:45:10 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2022-03-24 13:46:31 +0100 | Major_Biscuit | (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 260 seconds) |
2022-03-24 13:48:26 +0100 | Major_Biscuit | (~MajorBisc@c-001-015-045.client.tudelft.eduvpn.nl) |
2022-03-24 13:48:42 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-03-24 13:49:49 +0100 | vglfr | (~vglfr@46.96.167.246) (Read error: Connection reset by peer) |
2022-03-24 13:50:24 +0100 | vglfr | (~vglfr@46.96.167.246) |
2022-03-24 13:50:43 +0100 | belphegor666 | (~satan@user/belphegor666) (Ping timeout: 260 seconds) |
2022-03-24 13:50:58 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-03-24 13:55:11 +0100 | vglfr | (~vglfr@46.96.167.246) (Read error: Connection reset by peer) |
2022-03-24 13:55:20 +0100 | vglfr | (~vglfr@46.96.167.246) |
2022-03-24 13:57:30 +0100 | vglfr | (~vglfr@46.96.167.246) (Read error: Connection reset by peer) |
2022-03-24 13:57:42 +0100 | vglfr | (~vglfr@46.96.167.246) |
2022-03-24 14:02:47 +0100 | vglfr | (~vglfr@46.96.167.246) (Read error: Connection reset by peer) |
2022-03-24 14:03:09 +0100 | vglfr | (~vglfr@46.96.167.246) |
2022-03-24 14:04:18 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
2022-03-24 14:04:40 +0100 | deadmarshal_ | (~deadmarsh@95.38.112.219) (Ping timeout: 272 seconds) |
2022-03-24 14:05:39 +0100 | acidjnk | (~acidjnk@p200300d0c7049f76ad7ddf43206a2c16.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-03-24 14:06:36 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-03-24 14:07:27 +0100 | ystael | (~ystael@user/ystael) (Quit: Lost terminal) |
2022-03-24 14:07:31 +0100 | vglfr | (~vglfr@46.96.167.246) (Ping timeout: 260 seconds) |
2022-03-24 14:08:05 +0100 | vglfr | (~vglfr@46.96.132.108) |
2022-03-24 14:08:05 +0100 | __monty__ | (~toonn@user/toonn) |
2022-03-24 14:08:54 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 14:10:08 +0100 | boxscape_25 | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
2022-03-24 14:10:34 +0100 | vglfr | (~vglfr@46.96.132.108) (Read error: Connection reset by peer) |
2022-03-24 14:10:46 +0100 | vglfr | (~vglfr@46.96.132.108) |
2022-03-24 14:11:43 +0100 | boxscape_ | (~boxscape_@vpn-44-78.hq.eso.org) (Ping timeout: 260 seconds) |
2022-03-24 14:13:07 +0100 | __monty__ | (~toonn@user/toonn) (Ping timeout: 260 seconds) |
2022-03-24 14:14:03 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 260 seconds) |
2022-03-24 14:15:47 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 14:15:59 +0100 | vysn | (~vysn@user/vysn) |
2022-03-24 14:16:21 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 14:17:19 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-03-24 14:19:16 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 14:19:21 +0100 | vglfr | (~vglfr@46.96.132.108) (Ping timeout: 252 seconds) |
2022-03-24 14:25:43 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 260 seconds) |
2022-03-24 14:30:07 +0100 | alp | (~alp@user/alp) |
2022-03-24 14:32:31 +0100 | pottsy | (~pottsy@2400:4050:b560:3700:95a9:bb69:4209:aa9b) (Remote host closed the connection) |
2022-03-24 14:34:35 +0100 | pottsy | (~pottsy@2400:4050:b560:3700:95a9:bb69:4209:aa9b) |
2022-03-24 14:35:49 +0100 | deadmarshal_ | (~deadmarsh@95.38.112.219) |
2022-03-24 14:40:03 +0100 | deadmarshal_ | (~deadmarsh@95.38.112.219) (Ping timeout: 250 seconds) |
2022-03-24 14:48:58 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-03-24 14:49:31 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-03-24 14:49:31 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-03-24 14:49:31 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-03-24 14:53:15 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-03-24 14:54:09 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-03-24 14:55:14 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
2022-03-24 15:00:35 +0100 | zeenk | (~zeenk@2a02:2f04:a110:7d00:2011:cfed:bad7:3c94) |
2022-03-24 15:01:46 +0100 | lainon | (~lainon@2601:7c0:c500:4d20::ffef) (Quit: WeeChat 3.4) |
2022-03-24 15:03:55 +0100 | lumberjack123 | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-03-24 15:05:02 +0100 | Major_Biscuit | (~MajorBisc@c-001-015-045.client.tudelft.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-03-24 15:07:25 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-03-24 15:16:26 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 15:19:44 +0100 | Major_Biscuit | (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) |
2022-03-24 15:21:43 +0100 | mikoto-chan | (~mikoto-ch@84.199.144.235) (Ping timeout: 260 seconds) |
2022-03-24 15:22:29 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 256 seconds) |
2022-03-24 15:24:17 +0100 | vysn | (~vysn@user/vysn) |
2022-03-24 15:25:06 +0100 | benin | (~benin@183.82.207.30) (Quit: Ping timeout (120 seconds)) |
2022-03-24 15:27:34 +0100 | dextaa_ | (~dextaa@user/dextaa) |
2022-03-24 15:30:07 +0100 | benin | (~benin@183.82.207.30) |
2022-03-24 15:33:54 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2022-03-24 15:33:54 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2022-03-24 15:33:57 +0100 | allbery_b | geekosaur |
2022-03-24 15:34:53 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-03-24 15:40:35 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2022-03-24 15:40:53 +0100 | nicbk | (~nicbk@user/nicbk) |
2022-03-24 15:42:13 +0100 | CiaoSen | (~Jura@p200300c95735b0002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-03-24 15:47:51 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 260 seconds) |
2022-03-24 15:49:52 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed) |
2022-03-24 15:50:11 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-03-24 15:50:11 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-03-24 15:50:11 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-03-24 15:50:16 +0100 | rkrishnan | (~user@2402:e280:215c:2cd:4a3a:c3a9:68b9:db9a) |
2022-03-24 15:50:20 +0100 | Digit | (~user@user/digit) (Read error: Connection reset by peer) |
2022-03-24 15:50:26 +0100 | acidjnk | (~acidjnk@p200300d0c7049f76ad7ddf43206a2c16.dip0.t-ipconnect.de) |
2022-03-24 15:56:24 +0100 | benin | (~benin@183.82.207.30) (Quit: Ping timeout (120 seconds)) |
2022-03-24 15:59:25 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-03-24 16:01:17 +0100 | benin | (~benin@183.82.207.30) |
2022-03-24 16:11:55 +0100 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2022-03-24 16:12:48 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
2022-03-24 16:13:22 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:966d:f1e8:4bae:826f) |
2022-03-24 16:14:03 +0100 | benin | (~benin@183.82.207.30) (Quit: Ping timeout (120 seconds)) |
2022-03-24 16:14:22 +0100 | benin | (~benin@183.82.207.30) |
2022-03-24 16:14:53 +0100 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-03-24 16:15:05 +0100 | __monty__ | (~toonn@user/toonn) |
2022-03-24 16:16:28 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-03-24 16:16:53 +0100 | kaph | (~kaph@net-109-116-124-149.cust.vodafonedsl.it) |
2022-03-24 16:20:40 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 16:21:41 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 16:26:13 +0100 | bahamas | (~lucian@84.232.140.158) |
2022-03-24 16:26:45 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2022-03-24 16:27:26 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:966d:f1e8:4bae:826f) (Ping timeout: 245 seconds) |
2022-03-24 16:28:38 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-03-24 16:28:41 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:4042:4584:26e0:bc36) |
2022-03-24 16:31:15 +0100 | xkuru | (~xkuru@user/xkuru) |
2022-03-24 16:33:07 +0100 | Major_Biscuit | (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 260 seconds) |
2022-03-24 16:33:51 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-03-24 16:34:44 +0100 | Major_Biscuit | (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) |
2022-03-24 16:34:57 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-24 16:36:38 +0100 | jpds1 | jpds |
2022-03-24 16:41:55 +0100 | Pickchea | (~private@user/pickchea) |
2022-03-24 16:44:01 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-03-24 16:46:51 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 16:48:16 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-03-24 16:48:17 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:4b28:938b:c022:9725) (Quit: WeeChat 2.8) |
2022-03-24 16:49:22 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-03-24 16:51:15 +0100 | nicbk | (~nicbk@user/nicbk) (Ping timeout: 240 seconds) |
2022-03-24 16:53:24 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
2022-03-24 16:54:51 +0100 | nicbk | (~nicbk@user/nicbk) |
2022-03-24 17:00:46 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 245 seconds) |
2022-03-24 17:03:20 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-03-24 17:04:06 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-03-24 17:04:46 +0100 | belphegor666 | (~satan@ip-046-223-003-068.um13.pools.vodafone-ip.de) |
2022-03-24 17:04:55 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-03-24 17:05:48 +0100 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 272 seconds) |
2022-03-24 17:08:20 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 17:08:54 +0100 | kilolympus | (~kilolympu@31.205.200.235) (Quit: Quitting IRC :() |
2022-03-24 17:08:55 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 17:09:12 +0100 | kilolympus | (~kilolympu@31.205.200.235) |
2022-03-24 17:10:09 +0100 | belphegor666 | (~satan@ip-046-223-003-068.um13.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2022-03-24 17:10:42 +0100 | razetime | (~quassel@117.193.6.156) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-03-24 17:12:07 +0100 | belphegor666 | (~satan@ip-046-223-003-068.um13.pools.vodafone-ip.de) |
2022-03-24 17:12:49 +0100 | Major_Biscuit | (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 250 seconds) |
2022-03-24 17:14:02 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-03-24 17:14:58 +0100 | Major_Biscuit | (~MajorBisc@c-001-015-045.client.tudelft.eduvpn.nl) |
2022-03-24 17:16:20 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 17:22:05 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-03-24 17:22:50 +0100 | Digit | (~user@user/digit) |
2022-03-24 17:23:41 +0100 | pottsy | (~pottsy@2400:4050:b560:3700:95a9:bb69:4209:aa9b) (Ping timeout: 265 seconds) |
2022-03-24 17:24:45 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) |
2022-03-24 17:26:19 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
2022-03-24 17:28:24 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 17:29:05 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds) |
2022-03-24 17:29:49 +0100 | acidjnk | (~acidjnk@p200300d0c7049f76ad7ddf43206a2c16.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-03-24 17:29:52 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-03-24 17:30:17 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-03-24 17:31:39 +0100 | michalz | (~michalz@185.246.204.61) (Read error: No route to host) |
2022-03-24 17:33:18 +0100 | alp_ | (~alp@user/alp) |
2022-03-24 17:33:43 +0100 | michalz | (~michalz@185.246.204.109) |
2022-03-24 17:33:56 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-24 17:34:11 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-24 17:34:26 +0100 | bahamas | (~lucian@84.232.140.158) |
2022-03-24 17:35:49 +0100 | alp | (~alp@user/alp) (Ping timeout: 268 seconds) |
2022-03-24 17:36:01 +0100 | ccntrq | (~Thunderbi@2a01:c22:897f:4a00:b1c:1884:168b:a47f) (Remote host closed the connection) |
2022-03-24 17:36:55 +0100 | nicbk | (~nicbk@user/nicbk) (Ping timeout: 240 seconds) |
2022-03-24 17:37:26 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-03-24 17:38:44 +0100 | gdown | (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
2022-03-24 17:42:11 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-03-24 17:45:02 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-03-24 17:45:25 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-03-24 17:45:35 +0100 | jtm | (~jtm@user/jtm) |
2022-03-24 17:46:21 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) |
2022-03-24 17:46:57 +0100 | rkrishnan | (~user@2402:e280:215c:2cd:4a3a:c3a9:68b9:db9a) (Ping timeout: 240 seconds) |
2022-03-24 17:47:04 +0100 | alp | (~alp@user/alp) |
2022-03-24 17:48:29 +0100 | benin0 | (~benin@183.82.207.30) |
2022-03-24 17:49:11 +0100 | alp_ | (~alp@user/alp) (Ping timeout: 260 seconds) |
2022-03-24 17:50:01 +0100 | Hanicef | (~gustaf@81-229-9-108-no92.tbcn.telia.com) |
2022-03-24 17:50:03 +0100 | benin | (~benin@183.82.207.30) (Ping timeout: 256 seconds) |
2022-03-24 17:50:03 +0100 | benin0 | benin |
2022-03-24 17:50:31 +0100 | belphegor666 | (~satan@ip-046-223-003-068.um13.pools.vodafone-ip.de) (Changing host) |
2022-03-24 17:50:31 +0100 | belphegor666 | (~satan@user/belphegor666) |
2022-03-24 17:51:00 +0100 | Guest94 | (~Guest94@94.54.249.160) |
2022-03-24 17:51:31 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.4.1) |
2022-03-24 17:51:31 +0100 | Guest9446 | (~Guest94@94.54.249.160) |
2022-03-24 17:52:03 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-03-24 17:52:28 +0100 | Guest94 | (~Guest94@94.54.249.160) (Client Quit) |
2022-03-24 17:53:08 +0100 | Guest9446 | (~Guest94@94.54.249.160) () |
2022-03-24 17:53:14 +0100 | Guest9446 | (~Guest94@94.54.249.160) |
2022-03-24 17:56:10 +0100 | gdown | (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
2022-03-24 17:58:48 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Quit: ec) |
2022-03-24 17:59:07 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-03-24 17:59:31 +0100 | shiraeeshi | (~shiraeesh@77.94.25.181) |
2022-03-24 18:00:08 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Client Quit) |
2022-03-24 18:00:20 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-03-24 18:09:17 +0100 | mbuf | (~Shakthi@223.178.127.254) (Quit: Leaving) |
2022-03-24 18:11:17 +0100 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 240 seconds) |
2022-03-24 18:14:36 +0100 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) |
2022-03-24 18:15:09 +0100 | <cdsmith> | Is there a way to get cabal to print the commands that it's running? I'm trying to get a different build system to do things that I know how to do with cabal. |
2022-03-24 18:16:54 +0100 | <cdsmith> | (Specifically, building an so file for a c++ library that uses foreign exports from Haskell) |
2022-03-24 18:17:08 +0100 | <maerwald> | cabal -v3? |
2022-03-24 18:17:35 +0100 | <cdsmith> | Ah, I should have just tried --verbose before asking. That does it! |
2022-03-24 18:18:37 +0100 | raym | (~raym@user/raym) (Read error: Connection reset by peer) |
2022-03-24 18:19:21 +0100 | raym | (~raym@user/raym) |
2022-03-24 18:19:31 +0100 | erts | (~erts@user/erts) |
2022-03-24 18:22:58 +0100 | fendor_ | (~fendor@178.115.44.78.wireless.dyn.drei.com) |
2022-03-24 18:24:20 +0100 | boxscape_25 | boxscape__ |
2022-03-24 18:25:21 +0100 | fendor | (~fendor@178.115.46.236.wireless.dyn.drei.com) (Ping timeout: 245 seconds) |
2022-03-24 18:25:56 +0100 | vglfr | (~vglfr@46.96.132.108) |
2022-03-24 18:28:15 +0100 | Guest9446 | (~Guest94@94.54.249.160) (Quit: Client closed) |
2022-03-24 18:28:32 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2022-03-24 18:29:17 +0100 | alp | (~alp@user/alp) (Ping timeout: 240 seconds) |
2022-03-24 18:29:41 +0100 | Benzi-Junior | (~BenziJuni@dsl-149-64-179.hive.is) |
2022-03-24 18:34:31 +0100 | Pickchea | (~private@user/pickchea) |
2022-03-24 18:34:51 +0100 | econo | (uid147250@user/econo) |
2022-03-24 18:41:58 +0100 | gdown | (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
2022-03-24 18:44:27 +0100 | Hanicef | (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving) |
2022-03-24 18:45:14 +0100 | <Putonlalla> | How do you open issues or submit pull requests for this package? It doesn't have a `pngcairo` terminal and the author has made it impossible to add new instances. https://hackage.haskell.org/package/gnuplot |
2022-03-24 18:47:25 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-03-24 18:47:28 +0100 | fendor_ | (~fendor@178.115.44.78.wireless.dyn.drei.com) (Remote host closed the connection) |
2022-03-24 18:49:19 +0100 | <geekosaur> | email henning thielemann, I guess, since the listed repo and issue tracker both went away some years ago |
2022-03-24 18:49:45 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 18:50:32 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 18:50:42 +0100 | <Putonlalla> | I need a few days to gather enough politeness to do that. |
2022-03-24 18:51:40 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 18:52:54 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-03-24 18:53:16 +0100 | <Putonlalla> | The author should look at the `graphviz` package to learn how to make proper bindings. |
2022-03-24 18:53:18 +0100 | <geekosaur> | yeh, I know that one only too well |
2022-03-24 18:53:39 +0100 | <geekosaur> | henning is … opinionated about such things |
2022-03-24 18:54:58 +0100 | chomwitt | (~chomwitt@2a02:587:dc0d:b200:f874:1c07:de06:7cf8) |
2022-03-24 18:55:32 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 240 seconds) |
2022-03-24 18:56:25 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) |
2022-03-24 18:57:59 +0100 | <Putonlalla> | Even looking past the stupid programming style, this issue would have never arisen if the package was engineered properly. |
2022-03-24 18:58:20 +0100 | <opqdonut> | now I'm curious, how is it impossible to add new instances? |
2022-03-24 18:58:42 +0100 | <Putonlalla> | The class is exported, but its methods are not. |
2022-03-24 18:59:13 +0100 | <opqdonut> | ah |
2022-03-24 18:59:28 +0100 | <Putonlalla> | It's the difference between `C` and `C (..)`. |
2022-03-24 18:59:36 +0100 | <opqdonut> | yeah |
2022-03-24 18:59:48 +0100 | fef | (~thedawn@user/thedawn) |
2022-03-24 19:02:42 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
2022-03-24 19:03:29 +0100 | vicfred | (~vicfred@user/vicfred) |
2022-03-24 19:04:57 +0100 | vglfr | (~vglfr@46.96.132.108) (Ping timeout: 240 seconds) |
2022-03-24 19:08:26 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-03-24 19:09:50 +0100 | zebrag | (~chris@user/zebrag) |
2022-03-24 19:11:09 +0100 | bahamas | (~lucian@84.232.140.158) |
2022-03-24 19:14:18 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) |
2022-03-24 19:15:53 +0100 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 250 seconds) |
2022-03-24 19:21:38 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 19:21:52 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) |
2022-03-24 19:22:16 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 19:24:54 +0100 | ph88^ | (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2022-03-24 19:24:57 +0100 | boxscape__ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-03-24 19:25:49 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2022-03-24 19:26:24 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-03-24 19:26:32 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) |
2022-03-24 19:26:57 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-03-24 19:27:23 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) |
2022-03-24 19:27:55 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-24 19:28:07 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-24 19:28:52 +0100 | Codaraxis__ | (~Codaraxis@user/codaraxis) |
2022-03-24 19:29:54 +0100 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-03-24 19:31:13 +0100 | mvk | (~mvk@2607:fea8:5cc3:7e00::7980) |
2022-03-24 19:31:29 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds) |
2022-03-24 19:31:42 +0100 | nicbk | (~nicbk@user/nicbk) |
2022-03-24 19:32:03 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds) |
2022-03-24 19:32:34 +0100 | hololeap | (~hololeap@user/hololeap) |
2022-03-24 19:33:42 +0100 | vglfr | (~vglfr@46.96.132.108) |
2022-03-24 19:38:21 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection) |
2022-03-24 19:42:00 +0100 | mason0 | (~bc8147f2@cerf.good1.com) |
2022-03-24 19:42:04 +0100 | gurkenglas | (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) |
2022-03-24 19:43:09 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 256 seconds) |
2022-03-24 19:43:20 +0100 | <mason0> | hi. what's a better way of expressing this? |
2022-03-24 19:43:34 +0100 | <mason0> | > (\n -> foldr (\_ acc -> acc / 2) 100 (replicate n 0)) 3 |
2022-03-24 19:43:36 +0100 | <lambdabot> | 12.5 |
2022-03-24 19:44:05 +0100 | <mason0> | > 100 / 2 / 2 / 2 -- with 3 as an argument |
2022-03-24 19:44:05 +0100 | <gurkenglas> | Thoughts on HVM? It sounded amazing to me until I heard that "clone's can't clone their own clones" and now it sounds like a scam because surely this pops up all the time... |
2022-03-24 19:44:07 +0100 | <lambdabot> | 12.5 |
2022-03-24 19:44:25 +0100 | <gurkenglas> | s/clone's/clones/ |
2022-03-24 19:44:31 +0100 | <tomsmeding> | > iterate (/2) 100 !! 3 |
2022-03-24 19:44:32 +0100 | <lambdabot> | 12.5 |
2022-03-24 19:44:49 +0100 | bahamas | (~lucian@84.232.140.158) |
2022-03-24 19:45:32 +0100 | <mason0> | it is prettier and more concise, but won't that create a list from 0 to n? |
2022-03-24 19:45:44 +0100 | <tomsmeding> | hm? |
2022-03-24 19:45:49 +0100 | <tomsmeding> | > take 10 (iterate (/2) 100 |
2022-03-24 19:45:51 +0100 | <tomsmeding> | > take 10 (iterate (/2) 100) |
2022-03-24 19:45:51 +0100 | <lambdabot> | <hint>:1:26: error: |
2022-03-24 19:45:51 +0100 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2022-03-24 19:45:53 +0100 | <lambdabot> | [100.0,50.0,25.0,12.5,6.25,3.125,1.5625,0.78125,0.390625,0.1953125] |
2022-03-24 19:46:03 +0100 | <mason0> | yeah, a list with n elements |
2022-03-24 19:46:14 +0100 | <tomsmeding> | ah right, I see what you mean |
2022-03-24 19:46:31 +0100 | <tomsmeding> | well, yours will too with the same reasoning :p |
2022-03-24 19:46:43 +0100 | <mason0> | yes. but I was looking for an improvement :) |
2022-03-24 19:46:56 +0100 | <tomsmeding> | but most probably 'iterate' and '!!' will be inlined and the intermediate list fused away |
2022-03-24 19:47:18 +0100 | <mason0> | so there's no "repeat a function N times" combinator? |
2022-03-24 19:47:28 +0100 | <tomsmeding> | not in base at least |
2022-03-24 19:47:36 +0100 | <tomsmeding> | let me check about the fusion |
2022-03-24 19:48:07 +0100 | <mason0> | mine probably won't create a list at all? I'm not even touching the list arguments |
2022-03-24 19:48:50 +0100 | <mason0> | apart from pattern matching on (:) |
2022-03-24 19:49:17 +0100 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 240 seconds) |
2022-03-24 19:50:00 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-03-24 19:50:26 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
2022-03-24 19:51:00 +0100 | justOkay | (~justache@user/justache) (Read error: Connection reset by peer) |
2022-03-24 19:51:20 +0100 | pnotequalnp | (~pnotequal@207-118-121-128.dyn.centurytel.net) |
2022-03-24 19:51:57 +0100 | <tomsmeding> | why does ghc not inline interate and !! |
2022-03-24 19:51:58 +0100 | justOkay | (~justache@user/justache) |
2022-03-24 19:52:37 +0100 | <tomsmeding> | mason0: your foldr/replicate thing has similar Core to the explicit 'foo x 0 = x ; foo x k = foo (x / 2) (k - 1)', but my version just calls iterate and !! from Prelude |
2022-03-24 19:53:48 +0100 | <tomsmeding> | oh apparently iterate is marked NOINLINE [1] |
2022-03-24 19:54:01 +0100 | <tomsmeding> | Does anyone in this channel know what that [1] means? |
2022-03-24 19:54:49 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-03-24 19:55:48 +0100 | <mason0> | interesting |
2022-03-24 19:56:01 +0100 | <mason0> | does this seem like a good name, and good argument order? |
2022-03-24 19:56:02 +0100 | <mason0> | reapply :: Int -> (a -> a) -> a -> a |
2022-03-24 19:57:15 +0100 | <mason0> | reapply 3 (++"!") "foo" => "foo!!!" |
2022-03-24 19:57:19 +0100 | <mason0> | maybe reap? apN? |
2022-03-24 19:57:27 +0100 | <tomsmeding> | argument order yes, name meh but I honestly don't know anything really better; I might have done 'ntimes' but not sure |
2022-03-24 19:59:10 +0100 | <pnotequalnp> | composeN |
2022-03-24 19:59:29 +0100 | alp | (~alp@user/alp) |
2022-03-24 19:59:30 +0100 | <pnotequalnp> | composeN 3 f = f . f . f |
2022-03-24 20:01:03 +0100 | <tomsmeding> | quite good |
2022-03-24 20:02:15 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
2022-03-24 20:03:15 +0100 | <tomsmeding> | mason0: https://tomsmeding.com/vang/0Ke4zm/report.html |
2022-03-24 20:03:30 +0100 | <tomsmeding> | apparently I didn't judge the Core correctly |
2022-03-24 20:04:15 +0100 | <tomsmeding> | with this source https://paste.tomsmeding.com/Zbav9zzQ |
2022-03-24 20:04:22 +0100 | <tomsmeding> | (pasting the cabal file to show that I'm using -O2) |
2022-03-24 20:04:41 +0100 | <byorgey> | tomsmeding: the [1] has something to do with phases, it's some kind of hacky way to ensure that various rewriting/inlining rules fire in the right order. I don't know the details though. |
2022-03-24 20:05:17 +0100 | <tomsmeding> | byorgey: thanks! Can that be the cause that 'iterate' isn't inlined here? (!!) is marked INLINABLE, which sounds promising but it too is not inlined |
2022-03-24 20:05:48 +0100 | <gurkenglas> | > (\n -> foldr (.) id . replicate n) 3 (/2) 100 |
2022-03-24 20:05:50 +0100 | <lambdabot> | 12.5 |
2022-03-24 20:05:53 +0100 | <byorgey> | no idea. All this stuff is black magic to me. |
2022-03-24 20:07:30 +0100 | <byorgey> | tomsmeding: that's unfortunate, I always assumed iterate f x !! k would fuse away the intermediate list. |
2022-03-24 20:07:43 +0100 | <tomsmeding> | gurkenglas: nice, has the same performance (up to .02 ns -- I expect same Core) as the original foldr-replicate version |
2022-03-24 20:07:55 +0100 | <tomsmeding> | byorgey: me too :p |
2022-03-24 20:08:01 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2022-03-24 20:09:43 +0100 | <gurkenglas> | :t [ala Endo foldMap, foldr (.) id] |
2022-03-24 20:09:45 +0100 | <lambdabot> | Foldable t => [t (b -> b) -> b -> b] |
2022-03-24 20:10:19 +0100 | <tomsmeding> | wow ok so using iterate' instead of iterate gives a huge performance improvement; direct-recursive is still faster, but not by much anymore https://tomsmeding.com/vang/HQzhtC/report.html |
2022-03-24 20:12:02 +0100 | neurocyte0917090 | (~neurocyte@IP-094046076012.dynamic.medianet-world.de) |
2022-03-24 20:12:03 +0100 | neurocyte0917090 | (~neurocyte@IP-094046076012.dynamic.medianet-world.de) (Changing host) |
2022-03-24 20:12:03 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-03-24 20:14:06 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 252 seconds) |
2022-03-24 20:15:37 +0100 | <gurkenglas> | > (under (_Wrapping Endo) . stimes) 3 (/2) 100 |
2022-03-24 20:15:39 +0100 | <lambdabot> | 12.5 |
2022-03-24 20:15:40 +0100 | <tomsmeding> | so somehow, `iterate' (/2) x !! k`, where neither iterate' nor !! are inlined, ends up being faster than the foldr-replicate version where everything is inlined and the only calls are to GHC.Prim operations |
2022-03-24 20:15:55 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) |
2022-03-24 20:16:58 +0100 | <pnotequalnp> | Have you tried foldl'? |
2022-03-24 20:17:04 +0100 | <pnotequalnp> | It should be faster since `/` is strict |
2022-03-24 20:17:48 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-03-24 20:19:01 +0100 | kevin[m]1 | (~pnotequal@2001:470:69fc:105::a54) |
2022-03-24 20:20:47 +0100 | <tomsmeding> | interesting, the foldr-replicate version with foldr replaced by foldl' and the lambda flipped, but nothing else, makes it optimise down to the same as the direct recursive one |
2022-03-24 20:20:51 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 260 seconds) |
2022-03-24 20:20:58 +0100 | <tomsmeding> | and indeed the runtime is the same, i.e. fastest |
2022-03-24 20:21:35 +0100 | <tomsmeding> | at this point it's 2.15ns for recursive or foldl'-replicate, 5.5ns for iterate'-!!, 10.1ns for foldr-replicate, and 102ns for iterate-!! on my machine |
2022-03-24 20:22:31 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-03-24 20:22:38 +0100 | <pnotequalnp> | I really want to try benchmarking unlifted versions of stuff but Criterion doesn't support that yet (levity polymorphism yada yada) and I don't feel like implementing it myself. |
2022-03-24 20:23:21 +0100 | <tomsmeding> | pnotequalnp: why does criterion need to support unlifted levity in order to benchmark it? |
2022-03-24 20:23:38 +0100 | awpr | (uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-03-24 20:23:49 +0100 | <tomsmeding> | in any case, the fastest ones are already worker-wrapper transformed to do the actual inner loop on unlifted values only |
2022-03-24 20:24:39 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) (Read error: Connection reset by peer) |
2022-03-24 20:25:39 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-03-24 20:28:24 +0100 | <pnotequalnp> | Hmm I suppose I could just use the lower level interface. I've just been thinking about the whnf-type utilities. |
2022-03-24 20:28:55 +0100 | <tomsmeding> | pnotequalnp: you can use this template https://paste.tomsmeding.com/Zbav9zzQ |
2022-03-24 20:33:43 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) |
2022-03-24 20:34:55 +0100 | nicbk | (~nicbk@user/nicbk) (Ping timeout: 240 seconds) |
2022-03-24 20:37:06 +0100 | <gurkenglas> | Why is there stimes but not mtimes? |
2022-03-24 20:37:29 +0100 | <monochrom> | It got the name mconcat. |
2022-03-24 20:37:35 +0100 | <gurkenglas> | ah ^^ |
2022-03-24 20:37:37 +0100 | <monochrom> | err no, nevermind. |
2022-03-24 20:37:53 +0100 | <monochrom> | @type stimes |
2022-03-24 20:37:54 +0100 | <lambdabot> | (Semigroup a, Integral b) => b -> a -> a |
2022-03-24 20:38:38 +0100 | <pnotequalnp> | Because the monoid version doesn't have a different type. |
2022-03-24 20:39:12 +0100 | <monochrom> | > stimes 0 ([] :: [Int]) |
2022-03-24 20:39:14 +0100 | <lambdabot> | [] |
2022-03-24 20:39:18 +0100 | <pnotequalnp> | There is mtimesDefault |
2022-03-24 20:39:28 +0100 | <pnotequalnp> | Which is used as the definition for `stimes` for types that are monoids. |
2022-03-24 20:39:30 +0100 | <monochrom> | > stimes 0 "x" |
2022-03-24 20:39:32 +0100 | <lambdabot> | "" |
2022-03-24 20:39:58 +0100 | <monochrom> | Hrm how does it know that mempty="" exists? |
2022-03-24 20:40:10 +0100 | <pnotequalnp> | And it's the same thing as the default stimes except it uses mempty for 0 instead of an error |
2022-03-24 20:40:24 +0100 | <monochrom> | But I don't get an error :) |
2022-03-24 20:41:03 +0100 | benin3 | (~benin@183.82.207.30) |
2022-03-24 20:41:04 +0100 | <pnotequalnp> | It's overridden on the semigroup instance for lists. |
2022-03-24 20:41:08 +0100 | <monochrom> | Err nevermind. Yeah. |
2022-03-24 20:41:12 +0100 | <gurkenglas> | aaaaiiiiieeeee |
2022-03-24 20:41:21 +0100 | <pnotequalnp> | Since stimes is a class method and not just a polymorphic function. |
2022-03-24 20:43:17 +0100 | benin | (~benin@183.82.207.30) (Ping timeout: 268 seconds) |
2022-03-24 20:43:17 +0100 | benin3 | benin |
2022-03-24 20:44:59 +0100 | <gurkenglas> | the despair-inducing part is that any two monoid instances for the same semigroup are isomorphic so i can't even really go "but what if someone makes a semigroup with two monoid instances" |
2022-03-24 20:46:53 +0100 | <pnotequalnp> | Coherence prevents that anyway. Any given semigroup instance can only have one monoid instance based on it. |
2022-03-24 20:47:01 +0100 | <gurkenglas> | yes i just said that |
2022-03-24 20:47:28 +0100 | mud | (~mud@user/kadoban) (Quit: quit) |
2022-03-24 20:47:29 +0100 | <pnotequalnp> | Well I mean, the fact that semigroups can only have one identity is superfluous. |
2022-03-24 20:47:51 +0100 | <monochrom> | Why is that despair-inducing? I find it comforting and beautiful. :) |
2022-03-24 20:48:04 +0100 | <pnotequalnp> | Since you can't define multiple monoid instances based on the same semigroup instance to begin with, even if they could have multiple identities, Haskell wouldn't let you write that. |
2022-03-24 20:48:14 +0100 | <gurkenglas> | you can use the constraints library to get around that haskell limitation i think |
2022-03-24 20:48:43 +0100 | <gurkenglas> | it's despair-inducing because stimes is *wrong* to refer to mempty but how am i supposed to convince people of this |
2022-03-24 20:49:35 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 20:49:57 +0100 | <pnotequalnp> | Tell that to all the people writing instance Applicative M where (<*>) = ap :b |
2022-03-24 20:50:14 +0100 | <gurkenglas> | that's fine, it's just a shortcut |
2022-03-24 20:50:25 +0100 | briandaed | (~root@109.95.142.93.r.toneticgroup.pl) |
2022-03-24 20:50:53 +0100 | <monochrom> | The robust moral reason is that if the type says Semigroup only, one does not expect it to have access to mempty. |
2022-03-24 20:50:53 +0100 | <tomsmeding> | why would it be better for stimes to throw an error on 0? |
2022-03-24 20:51:13 +0100 | <gurkenglas> | tomsmeding: because of the s |
2022-03-24 20:51:25 +0100 | <monochrom> | This doesn't need "there can be two conflicting ways". |
2022-03-24 20:51:57 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-24 20:52:44 +0100 | <monochrom> | IOW parametricity is a more robust moral reason. |
2022-03-24 20:53:12 +0100 | <monochrom> | I mean, as far as moral reasons are concerned. I don't really mind either way. |
2022-03-24 20:53:36 +0100 | <gurkenglas> | ah the thing that monochrom said inspires in me the argument that i previously failed to find: "forall m. Semigroup m => m" should not have an implementation, but it has "stimes 0 undefined" |
2022-03-24 20:54:21 +0100 | <gurkenglas> | (or i suppose by modus tollens, and at that point at least you're consistent so no more aaaaiiieee, remove Monoid and put mempty in Semigroup with default implementation stimes 0 undefined) |
2022-03-24 20:55:23 +0100 | <tomsmeding> | gurkenglas: I guess you're arguing that stimes should not be a class method? |
2022-03-24 20:56:25 +0100 | <gurkenglas> | tomsmeding: presumably it is a class method because it's sometimes asymptotically faster than the default implementation, and that's valid |
2022-03-24 20:56:49 +0100 | <tomsmeding> | I kind of follow your and monochrom's argument that morally stimes should throw for 0, to make it have the same behaviour as if it was a top-level function -- inclusion in the class is only to enable a more optimised implementation in some cases. But I'm... just not able to get worked up over this. There are worse things in the design of Haskell :p |
2022-03-24 20:57:25 +0100 | <tomsmeding> | this is not the hill to die on |
2022-03-24 20:57:30 +0100 | <gurkenglas> | are there worse newer things, though? |
2022-03-24 20:57:35 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
2022-03-24 20:58:07 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 3.0) |
2022-03-24 21:00:13 +0100 | <pnotequalnp> | I was motivated to make something cursed. https://paste.tomsmeding.com/hPK0qgjb |
2022-03-24 21:00:15 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:a9ba:a14e:e332:b83f) |
2022-03-24 21:00:49 +0100 | <tomsmeding> | makes me think of the hack to detect whether ScopedTypeVariables is on |
2022-03-24 21:00:52 +0100 | pnotequalnp | (~pnotequal@207-118-121-128.dyn.centurytel.net) (Quit: Client closed) |
2022-03-24 21:01:06 +0100 | pnotequalnp | (~pnotequal@207-118-121-128.dyn.centurytel.net) |
2022-03-24 21:02:19 +0100 | <pnotequalnp> | Oh I haven't seen that, how does it work? |
2022-03-24 21:02:49 +0100 | <tomsmeding> | pnotequalnp: https://paste.tomsmeding.com/4nHVRS92 |
2022-03-24 21:02:57 +0100 | Pickchea | (~private@user/pickchea) |
2022-03-24 21:03:24 +0100 | <tomsmeding> | what you're really testing is what the implementer of the Semigroup instance did with stimes, not whether the type has a Monoid instance :p |
2022-03-24 21:03:32 +0100 | admin[m] | (~adminzgoc@2001:470:69fc:105::1:51c4) |
2022-03-24 21:03:41 +0100 | <pnotequalnp> | Yeah it only works if you override stimes like the base instances all do |
2022-03-24 21:06:02 +0100 | briandaed | (~root@109.95.142.93.r.toneticgroup.pl) (Quit: Lost terminal) |
2022-03-24 21:07:47 +0100 | <tomsmeding> | pnotequalnp: hm there's this one but there was a clearer one, still searching https://codegolf.stackexchange.com/a/153762 |
2022-03-24 21:08:32 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-03-24 21:08:55 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-03-24 21:09:31 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2022-03-24 21:09:34 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-24 21:09:53 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-24 21:10:06 +0100 | <pnotequalnp> | You can use it to recover """type information""" at runtime. https://paste.tomsmeding.com/fpb4A8gQ |
2022-03-24 21:10:14 +0100 | Lord_of_Life_ | Lord_of_Life |
2022-03-24 21:10:22 +0100 | <pnotequalnp> | I wonder if it's possible to magic up a monoid dictionary somehow |
2022-03-24 21:11:21 +0100 | <pnotequalnp> | By converting the `Either SomeException s` to a `Maybe (DIct (Monoid s))` |
2022-03-24 21:11:46 +0100 | pieguy128_ | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) |
2022-03-24 21:11:50 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) (Ping timeout: 260 seconds) |
2022-03-24 21:11:59 +0100 | <tomsmeding> | to construct a Monoid dict out of thin air using the mempry you got from stimes? |
2022-03-24 21:12:04 +0100 | <tomsmeding> | *mempty |
2022-03-24 21:12:16 +0100 | <pnotequalnp> | Yeah |
2022-03-24 21:12:50 +0100 | <pnotequalnp> | And of course the semigroup dict hidden under the GADT constructor |
2022-03-24 21:13:15 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
2022-03-24 21:13:20 +0100 | leah2_ | (~leah@vuxu.org) |
2022-03-24 21:15:06 +0100 | jgeerds | (~jgeerds@55d4548e.access.ecotel.net) |
2022-03-24 21:15:10 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-03-24 21:16:28 +0100 | leah2 | (~leah@vuxu.org) (Ping timeout: 260 seconds) |
2022-03-24 21:17:11 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-03-24 21:17:17 +0100 | <maerwald> | I forgot whether Handle's are closed by the GC? |
2022-03-24 21:18:09 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 21:18:16 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-03-24 21:19:09 +0100 | Pickchea | (~private@user/pickchea) |
2022-03-24 21:20:15 +0100 | <maerwald> | seems so |
2022-03-24 21:20:16 +0100 | zyklotomic | (~ethan@res388d-128-61-90-23.res.gatech.edu) |
2022-03-24 21:20:51 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-03-24 21:21:38 +0100 | <zyklotomic> | i'm not sure how to describe this, i want to restrict in a type signature, a monad to only have MonadWrite, but for it to be the same MonadWrite in the return value |
2022-03-24 21:21:58 +0100 | admin[m] | (~adminzgoc@2001:470:69fc:105::1:51c4) () |
2022-03-24 21:22:09 +0100 | hololeap | (~hololeap@user/hololeap) |
2022-03-24 21:22:28 +0100 | <zyklotomic> | so something like (MonadWrite w m1, MonadState s m2) => m1 () -> (m1 and m2) () ? |
2022-03-24 21:23:07 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-03-24 21:23:13 +0100 | <tomsmeding> | how would `(MonadWrite w m) => m () -> m ()` be wrong? |
2022-03-24 21:23:45 +0100 | <tomsmeding> | and `(MonadWrite w m1, MonadWrite s m2) => m1 () -> m2 ()` |
2022-03-24 21:24:04 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) |
2022-03-24 21:25:02 +0100 | pieguy128_ | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) (Ping timeout: 252 seconds) |
2022-03-24 21:25:30 +0100 | <zyklotomic> | tomsmeding: I also want to modify state in the former, in the latter I want to use the first argument as a callback |
2022-03-24 21:25:38 +0100 | <zyklotomic> | maybe there is a better way to structure this logic |
2022-03-24 21:26:14 +0100 | <zyklotomic> | and why (MonadWrite w m) |
2022-03-24 21:26:37 +0100 | <zyklotomic> | `(MonadWrite w m, MonadState s m) => m () -> m ()` would be wrong for me is because i don't want the first argument to be able to touch state |
2022-03-24 21:26:45 +0100 | <tomsmeding> | ignoring the constraints for now, just focusing on the type itself -- should be argument monad be the same as the output monad, or not? |
2022-03-24 21:27:32 +0100 | <tomsmeding> | oh you want the argument to be MonadWrite in w and MonadState in s, but have a static guarantee that the argument cannot actually use that State? |
2022-03-24 21:27:43 +0100 | <zyklotomic> | now that i think of it, yes, it should. but i'm hoping to yeah, not let myself use state in this case |
2022-03-24 21:27:47 +0100 | <zyklotomic> | yes, i think you got it |
2022-03-24 21:28:08 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) (Max SendQ exceeded) |
2022-03-24 21:28:12 +0100 | <tomsmeding> | should the argument have access to other properties of m? Or should it just know that it's working on some monad that has MonadWrite w, not knowing what monad that is? |
2022-03-24 21:28:28 +0100 | <dminuoso> | You could work with RankNTypes here, if you wanted to badly enough. |
2022-03-24 21:28:36 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) |
2022-03-24 21:28:57 +0100 | <tomsmeding> | yeah, if yes, that would be `(MonadWrite w m, MonadState s m) => (forall m'. MonadWrite w m' => m' ()) -> m ()` |
2022-03-24 21:29:24 +0100 | <dminuoso> | But honestly, I'd go for `MonadWrite w m => m () -> m ()` |
2022-03-24 21:29:31 +0100 | <pnotequalnp> | I'm curious if `(MonadWrite w m1, MonadState s m2, m1 ~ m2) => m1 () -> m2 ()` would work, or if GHC is smart enough to carry the instances across the equality. |
2022-03-24 21:29:39 +0100 | <tomsmeding> | dminuoso: presumably the function that zyklotomic is writing now _does_ need the MonadState |
2022-03-24 21:29:45 +0100 | <tomsmeding> | otherwise the question is moot |
2022-03-24 21:30:05 +0100 | <dminuoso> | tomsmeding: So? |
2022-03-24 21:30:07 +0100 | <tomsmeding> | pnotequalnp: that's equivalent |
2022-03-24 21:30:40 +0100 | <dminuoso> | tomsmeding: Let's call that function f. f can use MonadState all it wants to, you can still apply it to another polymorphic thing that doesnt have MonadState in its contraints. |
2022-03-24 21:30:41 +0100 | <tomsmeding> | dminuoso: oh meant "just use `(MonadWrite w m, MonadState s m) => m () -> m ()` ? |
2022-03-24 21:30:54 +0100 | <dminuoso> | Yeah that then. |
2022-03-24 21:30:55 +0100 | <tomsmeding> | right, so just not have the static guarantee |
2022-03-24 21:31:07 +0100 | <tomsmeding> | that's definitely the pragmatic approach :p |
2022-03-24 21:31:15 +0100 | <dminuoso> | RankNTypes has a big sanity check for me. |
2022-03-24 21:31:16 +0100 | <zyklotomic> | yeah i guess that works too :D |
2022-03-24 21:31:27 +0100 | <zyklotomic> | not the most exciting answer though |
2022-03-24 21:31:44 +0100 | <dminuoso> | Yes, sometimes boring and simple is better. |
2022-03-24 21:31:54 +0100 | <tomsmeding> | my threshold for using RankNTypes is probably a lot lower than dminuoso's, but I would also give up if the argument needs more stuff from m than just the MonadWrite w |
2022-03-24 21:32:14 +0100 | shiraeeshi | (~shiraeesh@77.94.25.181) (Quit: Leaving) |
2022-03-24 21:32:27 +0100 | <dminuoso> | In my experience, trying to be cute with the type system ends up with headaches when type inference doesn't work out, you get bizarre unreadable diagnostics, and after RankNTypes you add 5 more extensions because you feel like "encoding another property into the type system" |
2022-03-24 21:32:49 +0100 | <dminuoso> | To the point where nobody but you understands whats going on, you have bugs in your type system instead, and the code becomes hard to refactor or extend.. |
2022-03-24 21:33:07 +0100 | <tomsmeding> | heh |
2022-03-24 21:33:18 +0100 | <tomsmeding> | yeah it definitely depends on how much you're getting out of it |
2022-03-24 21:34:07 +0100 | <zyklotomic> | tomsmeding: your rank 2 signature should work though right |
2022-03-24 21:34:25 +0100 | <tomsmeding> | zyklotomic: it should, but only if the argument doesn't need any more information from m than that it's MonadWrite w |
2022-03-24 21:35:20 +0100 | <zyklotomic> | first time where I can say I experienced a potential real need for rank2/N lol |
2022-03-24 21:35:25 +0100 | <dminuoso> | It's also my experience that encoding properties in the type system is not done out of necessity in the sense that you regularly violate these properties. |
2022-03-24 21:35:25 +0100 | <tomsmeding> | like, suppose this function is called f; if at a call site of f, you know that m is WriterT [String] IO, the argument of f can't use the fact that it's in WriterT [String] IO, it just knows "I'm in MonadWrite w m => m" |
2022-03-24 21:35:29 +0100 | <zyklotomic> | thanks for the discussion / pointers everyone |
2022-03-24 21:35:30 +0100 | alp | (~alp@user/alp) (Ping timeout: 252 seconds) |
2022-03-24 21:36:05 +0100 | <zyklotomic> | dminuoso: what do you mean re "violate these properties" |
2022-03-24 21:36:20 +0100 | <dminuoso> | I think a lot of haskell programmers have a lot of imaginative power, thinking these "but what if you accidentally used state here.." problems into the world - just as a way to justify to themselves to try out fancy type system tricks. |
2022-03-24 21:36:39 +0100 | <dminuoso> | zyklotomic: Okay, so let me give you an example. |
2022-03-24 21:36:52 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-03-24 21:37:46 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-03-24 21:37:54 +0100 | <dminuoso> | We have a RADIUS server, and RADIUS broadly is separated into Accounting and Access requests, but they are often multiplexed onto a single TCP/UDP listener. So I used various type tricks to ensure that *access* handlers didn't accidentally produce accountings responses, and accounting handlers dint accidentally produce access responses. |
2022-03-24 21:38:11 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-03-24 21:38:55 +0100 | <dminuoso> | It was completely absurd, because it all boiled down to just 15 lines of code that you can a) just test and b) easily inspect if written in simple style. |
2022-03-24 21:39:30 +0100 | <dminuoso> | It felt good to argue "You cant possibly misuse this", but the relaity is: I never had misused it before, and I had absolutely no good reason to assume this type of misuse could happen |
2022-03-24 21:39:55 +0100 | <dminuoso> | The price I paid was everybody looking at the implemention asking tons of "what are all these type tricks going on" |
2022-03-24 21:40:30 +0100 | <dminuoso> | I've seen some haskellers make the same mistake |
2022-03-24 21:41:05 +0100 | Pickchea | (~private@user/pickchea) |
2022-03-24 21:42:01 +0100 | <zyklotomic> | lol, that's a very relatable mistake dminuoso |
2022-03-24 21:42:03 +0100 | pgib | (~textual@173.38.117.90) (Ping timeout: 260 seconds) |
2022-03-24 21:42:43 +0100 | <zyklotomic> | and probably good enough with just very good comments |
2022-03-24 21:43:07 +0100 | <dminuoso> | What I really needed was a simple: wrapHandler f = do ty <- requestType; resp <- f; when (radiusType resp != ty) (throwIO (ConstraintViolation "Request/Response type mismatch)) |
2022-03-24 21:43:18 +0100 | <dminuoso> | Inside the server, unconditionally wrapped around the entirety |
2022-03-24 21:43:25 +0100 | <dminuoso> | There. Done. |
2022-03-24 21:43:43 +0100 | <zyklotomic> | does put things into perspective |
2022-03-24 21:43:46 +0100 | <dminuoso> | Sometimes programmers are really good at creating problems for the sole purpose of justifying an engineering solution |
2022-03-24 21:43:52 +0100 | <tomsmeding> | BuT tHe PeRfOrMaNcE |
2022-03-24 21:44:03 +0100 | <Rembane> | FUN! :D |
2022-03-24 21:44:08 +0100 | <tomsmeding> | and that :) |
2022-03-24 21:44:19 +0100 | leah2_ | leah2 |
2022-03-24 21:46:13 +0100 | <zyklotomic> | since this is just for homework and myself, going to do the fun route anyways, but def will keep in mind the advice |
2022-03-24 21:46:52 +0100 | <tomsmeding> | dminuoso: I have the luck that all the code I write, for now, is either for myself or for PL research -- and PL research people are usually quite accepting w.r.t. this stuff :p |
2022-03-24 21:46:52 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
2022-03-24 21:47:23 +0100 | mikail | (~mikail@2a02:c7f:bd03:2c00:38bf:5983:b068:95f1) |
2022-03-24 21:47:55 +0100 | <tomsmeding> | zyklotomic: having practice with the fancy stuff is definitely not bad; though for code that is going to be shared with others, dminuoso's advice does indeed apply: have fun, but with moderation |
2022-03-24 21:47:55 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 240 seconds) |
2022-03-24 21:48:30 +0100 | <zyklotomic> | :) |
2022-03-24 21:50:00 +0100 | <mikail> | Does anybody have any good references (papers/software apps) of event driven applications in Haskell. |
2022-03-24 21:50:19 +0100 | pnotequalnp | (~pnotequal@207-118-121-128.dyn.centurytel.net) (Ping timeout: 256 seconds) |
2022-03-24 21:50:35 +0100 | <jackdk> | I would look at functional reactive programming. What are you trying to do? |
2022-03-24 21:51:39 +0100 | <dminuoso> | zyklotomic: The project that really kept be at bay was GHC. Structurally there's really no fancy tricks going on. It's essentially just very imperative IO code, with a lot of IORefs being flung around |
2022-03-24 21:51:51 +0100 | <dminuoso> | Simple is good! :) |
2022-03-24 21:52:41 +0100 | <zyklotomic> | dminuoso: oddly enough, this is for a compilers hw assignment |
2022-03-24 21:53:01 +0100 | <zyklotomic> | we did get the autonomy to choose whatever language though |
2022-03-24 21:53:26 +0100 | <tomsmeding> | is the teacher going to grade the code |
2022-03-24 21:54:23 +0100 | <zyklotomic> | no, just black box run it |
2022-03-24 21:54:48 +0100 | <tomsmeding> | interesting assignment |
2022-03-24 21:55:05 +0100 | <zyklotomic> | yeah, kinda nice to have an excuse to write haskell |
2022-03-24 21:55:21 +0100 | <tomsmeding> | but yeah, lately I've been messing mostly with compiler-like code transformations, and I've been doing so on well-typed well-scoped De Bruijn ASTs |
2022-03-24 21:55:26 +0100 | <tomsmeding> | which is... a lot of RankNTypes |
2022-03-24 21:55:52 +0100 | <zyklotomic> | are those related to De Bruijn indicies, not that i know about what those are either |
2022-03-24 21:56:09 +0100 | acidjnk | (~acidjnk@p200300d0c7049f76ad7ddf43206a2c16.dip0.t-ipconnect.de) |
2022-03-24 21:56:45 +0100 | <Rembane> | tomsmeding: It sounds painful, how painful is it? |
2022-03-24 21:57:43 +0100 | <tomsmeding> | Fun! :) |
2022-03-24 21:57:56 +0100 | <tomsmeding> | but also some type tetris sometimes |
2022-03-24 21:58:30 +0100 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-03-24 22:00:15 +0100 | <Rembane> | Good stuff. :) |
2022-03-24 22:01:43 +0100 | fef | (~thedawn@user/thedawn) |
2022-03-24 22:04:06 +0100 | mikail | (~mikail@2a02:c7f:bd03:2c00:38bf:5983:b068:95f1) (Ping timeout: 252 seconds) |
2022-03-24 22:05:43 +0100 | <tomsmeding> | super brief summary: data Idx env t where Z :: Idx (t ': env) t ; S :: Idx env t -> Idx (a ': env) t |
2022-03-24 22:05:53 +0100 | <dolio> | They seem painful when you're using them. But then when you use something more lax, it's also painful to keep finding variable management errors. |
2022-03-24 22:05:55 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:a9ba:a14e:e332:b83f) (Remote host closed the connection) |
2022-03-24 22:06:17 +0100 | <tomsmeding> | data Exp env t where Var :: Idx env t -> Exp env t ; App :: Exp env (a -> b) -> Exp env a -> Exp env b ; Lam :: Exp (a ': env) b -> Exp env (a -> b) ; -- etc. |
2022-03-24 22:06:37 +0100 | <tomsmeding> | dolio: especially with these kinds of code transformations that I'm working with lol |
2022-03-24 22:08:23 +0100 | <energizer> | why does toGregorian give (Integer, Int, Int) instead of a date? |
2022-03-24 22:09:35 +0100 | Digit | (~user@user/digit) (Ping timeout: 260 seconds) |
2022-03-24 22:10:20 +0100 | <Rembane> | energizer: Which toGregorian are you thinking of? |
2022-03-24 22:11:29 +0100 | <energizer> | oh maybe i did it wrong |
2022-03-24 22:13:11 +0100 | <jackdk> | Rembane: https://hackage.haskell.org/package/time-1.13/docs/Data-Time-Calendar.html#v:toGregorian probably |
2022-03-24 22:13:25 +0100 | <jackdk> | The components of the tuple are type aliases IIRC |
2022-03-24 22:13:42 +0100 | <Rembane> | jackdk: I realized that a bit too late. :) |
2022-03-24 22:14:47 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Remote host closed the connection) |
2022-03-24 22:15:52 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-03-24 22:16:03 +0100 | <energizer> | how to construct a DayOfMonth? |
2022-03-24 22:16:36 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 245 seconds) |
2022-03-24 22:16:47 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-03-24 22:17:02 +0100 | <monochrom> | Click on "DayOfMonth" to discover "type DayOfMonth = ...". Also, what jackdk said. |
2022-03-24 22:17:06 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-03-24 22:17:32 +0100 | <monochrom> | I thought people clicked on all links. |
2022-03-24 22:17:59 +0100 | <energizer> | DayOfMonth 1 doesnt do what i thought |
2022-03-24 22:18:16 +0100 | <jackdk> | DayOfMonth is a type alias, not a data declaration |
2022-03-24 22:18:28 +0100 | <monochrom> | and not a data constructor |
2022-03-24 22:18:35 +0100 | pavonia | (~user@user/siracusa) |
2022-03-24 22:18:47 +0100 | <energizer> | so that means i'm supposed to just use 1 instead? |
2022-03-24 22:19:14 +0100 | <monochrom> | Have you learned "type aliases" and what "type Foo = Bool" means? |
2022-03-24 22:19:56 +0100 | <energizer> | well i guess not if you're asking me that |
2022-03-24 22:22:19 +0100 | tzh_ | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-03-24 22:24:00 +0100 | <energizer> | ok so i guess my question is, why are these type aliases instead of newtypes |
2022-03-24 22:24:18 +0100 | <energizer> | er |
2022-03-24 22:24:41 +0100 | <energizer> | i guess i mean why isnt there such thing as a date |
2022-03-24 22:24:49 +0100 | <energizer> | it's just (Integer, Int, Int) |
2022-03-24 22:25:07 +0100 | alp | (~alp@user/alp) |
2022-03-24 22:25:10 +0100 | pnotequalnp | (~pnotequal@207-118-121-128.dyn.centurytel.net) |
2022-03-24 22:25:16 +0100 | <shapr> | Anyone used the validity test library? ( https://github.com/NorfairKing/validity ) I can't figure out how to hook it into hspec. |
2022-03-24 22:25:27 +0100 | <energizer> | and relatedly, why is Year a type alias instead of a newtype |
2022-03-24 22:25:34 +0100 | Major_Biscuit | (~MajorBisc@c-001-015-045.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.4) |
2022-03-24 22:26:00 +0100 | tomsmeding | expects "perhaps they should be newtypes, but it's too late to change now |
2022-03-24 22:26:09 +0100 | <energizer> | thanks tomsmeding |
2022-03-24 22:26:17 +0100 | <tomsmeding> | but I don't actually know :p |
2022-03-24 22:26:20 +0100 | GuestyMcGuest | (~GuestyMcG@200.89.69.134) |
2022-03-24 22:26:54 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2022-03-24 22:27:01 +0100 | <GuestyMcGuest> | Hi, I have a question regarding the installation of ghcup on linux. |
2022-03-24 22:27:17 +0100 | <monochrom> | Day is already the "date" type you sought. |
2022-03-24 22:28:05 +0100 | <geekosaur> | GuestyMcGuest, you should just ask your question, not ask to ask |
2022-03-24 22:29:17 +0100 | tzh_ | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Remote host closed the connection) |
2022-03-24 22:29:38 +0100 | <GuestyMcGuest> | Does the installation work for a multi user system? Perusing the procedure, it appears that it installs at user level. |
2022-03-24 22:29:43 +0100 | tzh_ | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-03-24 22:29:52 +0100 | <koz> | GuestyMcGuest: You'd be correct. |
2022-03-24 22:30:09 +0100 | <maerwald> | GuestyMcGuest: depends how you install it |
2022-03-24 22:30:24 +0100 | <koz> | maerwald: Wait, you can do a global ghcup-based install? |
2022-03-24 22:30:30 +0100 | <maerwald> | you can set GHCUP_INSTALL_BASE_PREFIX=/var/ghcup or so |
2022-03-24 22:30:42 +0100 | <maerwald> | you may have to fix permissions |
2022-03-24 22:30:59 +0100 | <koz> | Suppose I have several lists, and I wanna itraverse them all in sequence, but not have to concatenate them first. Is there a way I can spell that? |
2022-03-24 22:31:00 +0100 | <maerwald> | you can also install into /usr/local (but then it's unmanaged) |
2022-03-24 22:31:17 +0100 | <koz> | Sorry, itraverse_. |
2022-03-24 22:31:17 +0100 | <maerwald> | ghcup install ghc --isolate=/usr/local --force 8.10.7 |
2022-03-24 22:31:23 +0100 | <koz> | (aka, I don't care about the result) |
2022-03-24 22:31:40 +0100 | tzh_ | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Read error: Connection reset by peer) |
2022-03-24 22:31:44 +0100 | xax__ | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-03-24 22:31:44 +0100 | <maerwald> | if you use --isolate, then ghcup won't be able to uninstall |
2022-03-24 22:31:50 +0100 | <monochrom> | I was the person who single-handedly drove ghcup to have some compatibility with /usr/local installs. >:) |
2022-03-24 22:32:07 +0100 | <koz> | So I'm hunting for something like `itraverseMany_ :: (Applicative f) => (Int -> a -> f b) -> http://en.wikipedia.org/wiki/Special:Search?go=Go&search=a -> f ()` |
2022-03-24 22:32:16 +0100 | <koz> | Lolwat. |
2022-03-24 22:32:33 +0100 | <maerwald> | GuestyMcGuest: so, do you care about uninstallation? |
2022-03-24 22:32:36 +0100 | <koz> | Do I just want some kind of traverse . traverse nesting? |
2022-03-24 22:33:04 +0100 | <sm> | so yes, 1 can be interpreted as a DayOfMonth. 1 :: DayOfMonth if you want to be explicit/certain |
2022-03-24 22:33:53 +0100 | <GuestyMcGuest> | Absolutely, I'm looking for the documentation (as we write :D) |
2022-03-24 22:34:55 +0100 | <maerwald> | https://www.haskell.org/ghcup/guide/#env-variables |
2022-03-24 22:34:57 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-03-24 22:35:10 +0100 | <maerwald> | and https://www.haskell.org/ghcup/guide/#isolated-installs |
2022-03-24 22:40:05 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 22:42:01 +0100 | GuestyMcGuest | (~GuestyMcG@200.89.69.134) () |
2022-03-24 22:42:21 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4) |
2022-03-24 22:42:35 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 240 seconds) |
2022-03-24 22:43:47 +0100 | Batzy | (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-03-24 22:44:00 +0100 | xax__ | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2022-03-24 22:44:43 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-03-24 22:44:50 +0100 | <shapr> | @paste |
2022-03-24 22:44:50 +0100 | <lambdabot> | A pastebin: https://paste.debian.net/ |
2022-03-24 22:45:38 +0100 | <geekosaur> | @where paste |
2022-03-24 22:45:38 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2022-03-24 22:46:57 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-03-24 22:48:15 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:72bf:4d2e:4b07:eb6c) (Remote host closed the connection) |
2022-03-24 22:49:10 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-03-24 22:49:31 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-03-24 22:49:57 +0100 | <tomsmeding> | @where lambdabot |
2022-03-24 22:49:57 +0100 | <lambdabot> | http://haskell.org/haskellwiki/Lambdabot |
2022-03-24 22:54:23 +0100 | <shapr> | @where shapr |
2022-03-24 22:54:23 +0100 | <lambdabot> | I run to hug and cuddle shapr |
2022-03-24 22:54:26 +0100 | <shapr> | yay? |
2022-03-24 22:54:30 +0100 | <tomsmeding> | :D |
2022-03-24 22:54:47 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-03-24 22:56:19 +0100 | <hpc> | @where hpc |
2022-03-24 22:56:19 +0100 | <lambdabot> | http://www.haskell.org/haskellwiki/Haskell_Program_Coverage |
2022-03-24 22:56:21 +0100 | <hpc> | yep, that's me |
2022-03-24 22:56:29 +0100 | <tomsmeding> | classic |
2022-03-24 22:57:32 +0100 | pnotequalnp | (~pnotequal@207-118-121-128.dyn.centurytel.net) (Quit: Client closed) |
2022-03-24 23:01:50 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-03-24 23:05:56 +0100 | <jackdk> | koz: Folds can be combined with <>. |
2022-03-24 23:06:06 +0100 | <jackdk> | % let x = ("hello", "world") |
2022-03-24 23:06:06 +0100 | <yahb> | jackdk: |
2022-03-24 23:06:30 +0100 | <jackdk> | % x ^.. ((_2 <> _1) . traverse) |
2022-03-24 23:06:30 +0100 | <yahb> | jackdk: "worldhello" |
2022-03-24 23:06:55 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-03-24 23:07:02 +0100 | <jackdk> | % itraverseOf (indexing ((_2 <> _1) . traverse)) (\i a -> print (i, a)) x |
2022-03-24 23:07:02 +0100 | <yahb> | jackdk: ; <interactive>:50:31: error:; * Couldn't match type `()' with `Char'; arising from a functional dependency between:; constraint `Field1 (String, String) ([Char], [()]) [Char] [()]' arising from a use of `_1'; instance Field1 (a, b) (a', b) a a' at <no location info>; * In the second argument of `(<>)', namely `_1'; In the first argument of `(.)', namely `(_2 <> |
2022-03-24 23:07:25 +0100 | <jackdk> | % itraverseOf_ (indexing ((_2 <> _1) . traverse)) (\i a -> print (i, a)) x |
2022-03-24 23:07:25 +0100 | <yahb> | jackdk: (0,'w'); (1,'o'); (2,'r'); (3,'l'); (4,'d'); (5,'h'); (6,'e'); (7,'l'); (8,'l'); (9,'o') |
2022-03-24 23:07:31 +0100 | <jackdk> | koz: ^ |
2022-03-24 23:07:33 +0100 | <jackdk> | % :quit |
2022-03-24 23:07:33 +0100 | <yahb> | jackdk: |
2022-03-24 23:08:40 +0100 | <jackdk> | koz: so you could assemble the lists into a tuple, and use `itraverseOf_ (indexed $ each . traverse)`, I think |
2022-03-24 23:10:46 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-03-24 23:11:02 +0100 | <jackdk> | Axman6: I know you like lens fun ^ |
2022-03-24 23:15:10 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) |
2022-03-24 23:18:54 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 252 seconds) |
2022-03-24 23:20:12 +0100 | yauhsien | (~yauhsien@61-231-38-131.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-03-24 23:22:41 +0100 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-03-24 23:24:52 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-03-24 23:25:10 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-03-24 23:27:38 +0100 | Digit | (~user@user/digit) |
2022-03-24 23:28:41 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Quit: ec) |
2022-03-24 23:33:00 +0100 | pwug | (~pwug@user/pwug) (Read error: Connection reset by peer) |
2022-03-24 23:37:08 +0100 | deadmarshal_ | (~deadmarsh@95.38.229.223) |
2022-03-24 23:39:51 +0100 | michalz | (~michalz@185.246.204.109) (Remote host closed the connection) |
2022-03-24 23:41:22 +0100 | alp | (~alp@user/alp) (Remote host closed the connection) |
2022-03-24 23:41:31 +0100 | deadmarshal_ | (~deadmarsh@95.38.229.223) (Ping timeout: 260 seconds) |
2022-03-24 23:41:42 +0100 | alp | (~alp@user/alp) |
2022-03-24 23:42:27 +0100 | k8yun | (~k8yun@user/k8yun) |
2022-03-24 23:53:29 +0100 | cosimone | (~user@93-44-187-176.ip98.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1)) |
2022-03-24 23:53:44 +0100 | <Axman6> | :o |
2022-03-24 23:59:55 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |