Logs on 2023-05-08 (liberachat/#haskell)
| 00:00:09 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 00:08:09 | × | oo_miguel quits (~Thunderbi@77.252.47.78) (Ping timeout: 256 seconds) |
| 00:10:02 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
| 00:10:37 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 00:10:56 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
| 00:13:08 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 00:13:08 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 00:13:08 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:13:11 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 00:16:39 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 00:16:55 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
| 00:18:25 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:19:44 | × | pyook quits (~puke@user/puke) (Ping timeout: 248 seconds) |
| 00:20:00 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds) |
| 00:23:57 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 00:31:45 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 00:33:29 | × | Achylles quits (~Achylles_@45.182.57.30) (Remote host closed the connection) |
| 00:34:37 | → | freeside joins (~mengwong@103.252.202.85) |
| 00:36:16 | × | titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 00:38:15 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 00:39:19 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 260 seconds) |
| 00:43:03 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 00:45:36 | ← | CalculusCats parts (NyaaTheKit@user/calculuscat) (Meow Meow Meow Meow Meow Meow Meow...) |
| 00:58:48 | → | freeside joins (~mengwong@103.252.202.85) |
| 01:02:38 | × | Yumemi_ quits (~Yumemi@chamoin.net) (Quit: .) |
| 01:09:57 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 268 seconds) |
| 01:11:28 | → | Yumemi joins (~Yumemi@chamoin.net) |
| 01:11:30 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:12:39 | → | nate2 joins (~nate@98.45.169.16) |
| 01:17:25 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 01:17:39 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:18:41 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds) |
| 01:20:03 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 01:20:34 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:8124:9f4a:3c7a:eaa0) (Remote host closed the connection) |
| 01:24:39 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 01:27:54 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 01:28:10 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds) |
| 01:28:50 | → | freeside joins (~mengwong@103.252.202.85) |
| 01:30:07 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:30:47 | × | xff0x quits (~xff0x@2405:6580:b080:900:6d1c:d01c:159d:3310) (Ping timeout: 264 seconds) |
| 01:32:05 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 01:33:50 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 01:34:08 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 01:34:17 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 01:34:51 | → | pyook joins (~puke@user/puke) |
| 01:35:59 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 256 seconds) |
| 01:38:17 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
| 01:40:42 | → | freeside joins (~mengwong@103.252.202.85) |
| 01:40:47 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 01:45:03 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 256 seconds) |
| 01:46:21 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 250 seconds) |
| 01:50:26 | × | mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
| 01:50:28 | → | merijn joins (~merijn@c-001-001-013.client.esciencecenter.eduvpn.nl) |
| 01:51:39 | → | mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001) |
| 01:52:03 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 01:52:03 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 01:52:03 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:52:24 | × | mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
| 01:52:40 | × | emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 01:53:16 | → | mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001) |
| 01:58:24 | × | rf quits (~rf@2605:59c8:179c:f610:714:d89a:5981:51ab) (Ping timeout: 248 seconds) |
| 02:02:58 | → | freeside joins (~mengwong@103.252.202.85) |
| 02:04:44 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:04:44 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:04:44 | finn_elija | is now known as FinnElija |
| 02:11:28 | × | mmhat quits (~mmh@p200300f1c706687dee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8) |
| 02:12:40 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
| 02:13:07 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 260 seconds) |
| 02:13:17 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:18:04 | → | nate2 joins (~nate@98.45.169.16) |
| 02:18:04 | × | Yumemi quits (~Yumemi@chamoin.net) (Quit: .) |
| 02:20:57 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) |
| 02:23:45 | × | td_ quits (~td@i53870927.versanet.de) (Ping timeout: 240 seconds) |
| 02:23:57 | × | merijn quits (~merijn@c-001-001-013.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
| 02:25:21 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) (Ping timeout: 250 seconds) |
| 02:25:54 | → | td_ joins (~td@i53870906.versanet.de) |
| 02:33:01 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 02:36:02 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) |
| 02:39:57 | → | cheater_ joins (~Username@user/cheater) |
| 02:40:35 | × | cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds) |
| 02:40:42 | cheater_ | is now known as cheater |
| 02:42:27 | × | jero98772 quits (~jero98772@190.158.28.80) (Remote host closed the connection) |
| 02:51:13 | → | nick4 joins (~nick@2600:8807:9103:b700:c91d:758a:9123:f8a2) |
| 02:52:26 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
| 02:53:03 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 02:57:35 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds) |
| 03:00:00 | × | Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.) |
| 03:01:09 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 03:05:01 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 03:06:08 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
| 03:07:13 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 03:11:10 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 03:17:28 | → | evin joins (~evin@118.140.166.145) |
| 03:18:50 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds) |
| 03:19:07 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 03:20:58 | → | Yumemi joins (~Yumemi@chamoin.net) |
| 03:23:05 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 03:24:57 | × | evin quits (~evin@118.140.166.145) (Quit: Konversation terminated!) |
| 03:29:08 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 03:33:20 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 03:39:35 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 03:44:14 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 250 seconds) |
| 04:01:19 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 04:03:39 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 04:13:05 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
| 04:20:24 | → | merijn joins (~merijn@c-001-001-013.client.esciencecenter.eduvpn.nl) |
| 04:20:31 | <Inst_> | ugh, this is embarrassing |
| 04:21:23 | <Inst_> | i have an algorithm that works but is unperformant with lists, and doesn't work and is performant with maps |
| 04:23:00 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 04:24:30 | × | nick4 quits (~nick@2600:8807:9103:b700:c91d:758a:9123:f8a2) (Ping timeout: 260 seconds) |
| 04:26:40 | × | merijn quits (~merijn@c-001-001-013.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
| 04:26:43 | <Inst_> | ah, figured it out |
| 04:26:47 | <Inst_> | keys are unique |
| 04:32:08 | <mauke> | I should write a book: Blazing Fast Algorithms (that Don't Work) |
| 04:33:24 | <jade[m]1> | hahaha |
| 04:33:54 | → | freeside joins (~mengwong@122.11.248.245) |
| 04:37:55 | <Axman6> | data ProbabalisticBool = Hmm'YeahCouldBeIGuess |
| 04:46:11 | <jackdk> | `data AustralianBool = Yeah AustralianBool | Nah AustralianBool | Mate` |
| 04:49:33 | <[Leary]> | `data KiwiBool = Yeah | Nah | YeahNah` |
| 04:51:32 | <mauke> | Yeah (Nah (Nah (Yeah Mate))) |
| 04:55:57 | → | Square joins (~Square@user/square) |
| 04:58:57 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 04:59:31 | <Square> | Is there a mechanism (or languge extension) that can achieve the same things as RecordWildcards, but for classes? Ie, if I had *data type* SomeType i can write foo :: SomeType -> Int :: foo (SomeType {..}) = undefined |
| 05:00:10 | <Square> | Now, could I do the same thing if i changed SomeType into a class? |
| 05:01:47 | <jade[m]1> | if the signature had a constraint instead you wouldn't be able to know whether it's a record - and it shouldn't matter |
| 05:02:05 | <jade[m]1> | classes in haskell don't have fields. |
| 05:02:06 | <jade[m]1> | do you have an example of what you want to do? |
| 05:03:42 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 265 seconds) |
| 05:05:58 | <Square> | jade[m]1, I had a big data type A for which i wanted to create access limiting view on. Before I picked the parts from A and passed them around. Now I had hoped to create a ReadAccess class for A. |
| 05:07:01 | <jade[m]1> | that sounds more like you want a specific datatype (like a record) that just holds all the fields that are allowed to be seen |
| 05:07:31 | <Square> | yeah, maybe thats the way. |
| 05:07:31 | <jade[m]1> | then you can write `limitView :: SomeData -> LimitedData` |
| 05:11:29 | → | bgs joins (~bgs@212-85-160-171.dynamic.telemach.net) |
| 05:17:42 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:31:27 | × | freeside quits (~mengwong@122.11.248.245) (Ping timeout: 260 seconds) |
| 05:33:00 | × | werneta_ quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 250 seconds) |
| 05:33:36 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 05:33:50 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 05:36:21 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 05:38:35 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 264 seconds) |
| 05:43:49 | → | freeside joins (~mengwong@122.11.248.245) |
| 05:48:20 | → | trev joins (~trev@user/trev) |
| 05:48:45 | <Inst_> | mauke: tbh, you could actually write a decent DSA book based on that comment |
| 05:48:57 | <Inst_> | instead of teaching algorithms, you'd teach methods of designing algorithms |
| 05:52:59 | → | michalz joins (~michalz@185.246.207.221) |
| 05:56:24 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 06:00:45 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 240 seconds) |
| 06:03:04 | → | attacker0211 joins (~attacker0@lnsm5-toronto11-142-116-133-30.internet.virginmobile.ca) |
| 06:05:46 | → | freeside_ joins (~mengwong@202.161.55.11) |
| 06:07:25 | × | freeside quits (~mengwong@122.11.248.245) (Ping timeout: 256 seconds) |
| 06:10:54 | × | attacker0211 quits (~attacker0@lnsm5-toronto11-142-116-133-30.internet.virginmobile.ca) (Quit: Connection closed) |
| 06:12:09 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 06:13:43 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 06:17:38 | × | lav quits (~pi@wikipedia/maddy-from-celeste) (Ping timeout: 250 seconds) |
| 06:18:08 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 248 seconds) |
| 06:22:35 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 06:24:44 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:2d52:c5aa:cfa9:3177) |
| 06:29:26 | → | lav joins (~pi@wikipedia/maddy-from-celeste) |
| 06:30:34 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 06:34:31 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 06:36:43 | → | gentauro joins (~gentauro@user/gentauro) |
| 06:37:10 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 06:40:40 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 06:41:59 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds) |
| 06:45:34 | → | acidjnk joins (~acidjnk@p200300d6e7072f29d032399e5afc9b1f.dip0.t-ipconnect.de) |
| 06:45:40 | <mauke> | you could even wrap it in a class |
| 06:46:23 | <mauke> | class HasLimitView a where { limitView :: a -> LimitedData } |
| 06:46:59 | <mauke> | instance HasLimitView SomeType where { limitView SomeType{..} = LimitedData{..} } |
| 06:47:13 | <mauke> | instance HasLimitView LimitedData where { limitView = id } |
| 06:48:00 | <mauke> | foo :: (HasLimitView a) => a -> Int; foo (limitView -> LimitedData{..}) = ... |
| 06:48:58 | <mauke> | although since the only thing you can do with `(HasLimitView a) => a` is to call limitView on it, it might make more sense for foo to take a LimitedData directly |
| 06:49:21 | × | Square quits (~Square@user/square) (Ping timeout: 256 seconds) |
| 06:52:26 | × | bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 06:53:12 | <talismanick> | Before feeding a string to (atto)parsec, how might I pad parentheses and brackets with spaces or achieve the effect of that? |
| 06:54:07 | <jade[m]1> | why do you want to preprocess that? |
| 06:54:25 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 06:54:30 | <jade[m]1> | can you not parse and take into account whitespace when building an AST? |
| 06:54:51 | <talismanick> | jade[m]1: because it's annoying to parse whitespace and handle edge cases |
| 06:55:34 | <talismanick> | Everything's great if I can vacuum String data into Text, do stuff with it, and only spit back out String at endpoints, but, even with laziness, fmap'ing over [Char] seems... poorly advised |
| 06:55:46 | <jade[m]1> | I would suggest to just use a lexer/lexeme parser and wrap your primitives with that - I would assume that padding things beforehand would be much much more complicated |
| 06:55:47 | <talismanick> | fmap'ing a pad function, that is |
| 06:56:40 | <talismanick> | jade[m]1: You think? What I just suggested would be really easy, just... inefficient (I think) |
| 06:56:53 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 06:57:10 | <jade[m]1> | well, you'd have to essentially parse the file, pad and then reparse |
| 06:57:20 | <jade[m]1> | because for example you wouldn't wanna pad parantheses in strings |
| 06:57:30 | <jade[m]1> | so you have context to consider |
| 06:57:38 | <talismanick> | oh, that's true |
| 06:57:49 | <jackdk> | talismanick: perhaps not as complicated as you fear. See "Design Patterns for Parser Combinators" https://www.youtube.com/watch?v=RwzX1XltOGY (talk); https://dl.acm.org/doi/10.1145/3471874.3472984 (paper) |
| 06:58:06 | <talismanick> | jackdk: thanks, I'll take a look |
| 06:58:27 | <jade[m]1> | Using a lexer and wrapping your primitives in them makes parsing whitespace pretty ergonomic in my experience |
| 06:58:29 | <jackdk> | in particular, the trick about making each lexeme consume all following whitespace |
| 06:58:34 | <jackdk> | jade[m]1: ++ |
| 06:58:59 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds) |
| 06:59:28 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 07:08:19 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 07:12:00 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 07:16:00 | → | nate2 joins (~nate@98.45.169.16) |
| 07:17:27 | <tomsmeding> | yep, that trick is the one you're looking for |
| 07:18:01 | <tomsmeding> | mind to consume all _following_ whitespace: consuming all preceding whitespace also works, but results in a whole bunch of additional uses of 'try' and inefficiency around large blocks of whitespace/comments |
| 07:19:43 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 260 seconds) |
| 07:21:04 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 07:26:23 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 07:28:37 | → | gmg joins (~user@user/gehmehgeh) |
| 07:30:01 | → | oo_miguel joins (~Thunderbi@77.252.47.78) |
| 07:30:31 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 240 seconds) |
| 07:32:47 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 07:35:18 | → | merijn joins (~merijn@c-001-001-013.client.esciencecenter.eduvpn.nl) |
| 07:37:31 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds) |
| 07:47:34 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 07:48:15 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:48:58 | × | freeside_ quits (~mengwong@202.161.55.11) (Ping timeout: 265 seconds) |
| 07:50:12 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 07:52:28 | → | freeside joins (~mengwong@122.11.248.245) |
| 07:54:24 | × | Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving) |
| 07:54:28 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 240 seconds) |
| 07:55:30 | <Inst_> | curious about one factor of Haskell |
| 07:55:36 | <Inst_> | I was translating my O'Neill sieve into Julia |
| 07:55:37 | <Inst_> | it's bugged |
| 07:55:50 | <Inst_> | and when I write imperative languages, I tend to overcomment |
| 07:55:58 | <Inst_> | so much that the Haskell code was 1/3rd the size of the Julia code's size |
| 07:56:06 | <Inst_> | erm, 1/3rd the size of the Julia code |
| 07:56:21 | → | titibandit joins (~titibandi@user/titibandit) |
| 07:56:26 | <Inst_> | but the overcommenting in Haskell, it seems that comments in Haskell code seem unnatural |
| 07:56:55 | <[exa]> | yeah there are no "good" points to attach comments into expressions that fit in 1 line |
| 07:57:39 | <jade[m]1> | It's better to comment functions and types, rather than expressions |
| 07:57:47 | <jade[m]1> | because the expressions are by design declarative |
| 07:57:48 | <[exa]> | in do notation you can go ham with EOL --comments or interline {-comments-} because it kinda fits there, elsewhere it's weird except for docstrings on stuff |
| 07:57:51 | <Inst_> | i know overcommenting is bad |
| 07:58:01 | <Inst_> | but it's sort of funny to try to break up the Haskell code for overcommenting |
| 07:58:04 | <jackdk> | overcommenting is in the eye of the reader |
| 07:58:24 | <jackdk> | I have some pretty big slab comments in work code where the detailed explanation matters a lot |
| 07:58:25 | <Inst_> | tbh everything less than overcommenting I think is undercommenting for a newbie or non-Haskeller coming in |
| 07:58:39 | <[exa]> | also, like, you're free to write the code in a way that requires no commentary |
| 07:58:55 | <jackdk> | that is the ideal but is sometimes unreachable. |
| 07:59:01 | <jade[m]1> | [exa]: yep, if possible this is the best solution in my opinion |
| 07:59:35 | <Inst_> | what cancer have I wrought! |
| 07:59:36 | <Inst_> | https://media.discordapp.net/attachments/968989726633779215/1105041261104222208/image.png?width=1184&height=1404 |
| 07:59:59 | <[exa]> | ideally the only non-docstring comments are ones for a really tricky stuff ("danger here! you're going to trip over this") |
| 08:00:20 | <[exa]> | if you need more comments just break the code to allow for more docstring places |
| 08:00:36 | <Inst_> | but the commenting story IS sort of interesting, i.e, Haskell's terseness makes possible really ridiculous comment : code ratios |
| 08:00:36 | <jade[m]1> | that is a lot of comments |
| 08:01:01 | → | zeenk joins (~zeenk@2a02:2f04:a105:f00::fba) |
| 08:01:06 | <jackdk> | my main objection is that it's a screenshot of code rather than a pastebin link |
| 08:01:07 | <Inst_> | it was posted in the Julia Discord to ask them for help on improving the Julia translation, i.e, it's a variation on O'Neill Sieve |
| 08:01:27 | <jackdk> | It seems completely defensible to me to write a lot of comments when explaining haskell code to a newcomer |
| 08:01:32 | <Inst_> | https://paste.tomsmeding.com/ZVIDob9B |
| 08:01:35 | <Inst_> | oh fine |
| 08:01:39 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:02:06 | <jade[m]1> | jackdk: oh yeah, for sure |
| 08:02:08 | <[exa]> | Inst_: actually that's okay, the only problem I see (don't see actually) is the case head completely lost among the comment block |
| 08:02:15 | <jade[m]1> | it depends on who is intended to read the code |
| 08:02:24 | <Inst_> | should Haskellers actually overcomment? |
| 08:02:40 | <[exa]> | there's reddit for that |
| 08:02:45 | <jade[m]1> | having started to work myself into the GHC codebase, I have to say that I really like the amount of comments and notes |
| 08:02:57 | <jade[m]1> | they make the code very readable and also very explicit at the same time |
| 08:03:22 | <[exa]> | Inst_: anyway at this point you might just want to go literate haskell |
| 08:03:44 | → | chele joins (~chele@user/chele) |
| 08:04:01 | <Inst_> | i know; it's sorely underused |
| 08:04:15 | <Inst_> | I'm trying to make time to go back to work on my cabal wrapper project, which is going nowhere |
| 08:04:21 | <[exa]> | as in, the ghc code is kinda literate haskell, except not formatted in lhc :D |
| 08:04:30 | <Inst_> | maybe putting it up as .lhs might be interesting |
| 08:05:12 | → | enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
| 08:05:41 | <[exa]> | more generally, most problems with layout and information bumping into each other are best solved by changing the format |
| 08:06:03 | <[exa]> | so well, yeah. :D |
| 08:13:36 | <ski> | Inst_ : i think i would try put the comment about (or maybe below) the item it's commenting, rather than put it to the right of the item. that would also mean those comment lines could be longer, and so there'd be fewer comment lines |
| 08:13:53 | <Inst_> | yeah, sorry, i got used to vertical commenting |
| 08:13:57 | <Inst_> | erm, horizontal commenting |
| 08:14:02 | <ski> | (i'd also put `:' just before the code on the next line, instead of at the end of the line before) |
| 08:15:46 | <Inst_> | the point of horizontal vs vertical is more that, say, with imperative code, you can now be explicit with what each step is doing |
| 08:16:03 | <Inst_> | whereas, as it's been mentioned before, it's hard to be able to comment directly |
| 08:16:05 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 240 seconds) |
| 08:16:05 | <ski> | (i would also not use as much indentation for the code itself) |
| 08:16:23 | <Inst_> | i wonder if you could upgrade haddock for this |
| 08:16:37 | <Inst_> | or put it into an IDE, i.e, have comments that only exist for the IDE parsing the AST |
| 08:16:42 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:16:58 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-c8bd-37f2-a0dc-5f82.rev.sfr.net) |
| 08:17:22 | <ski> | you're sometimes using `Sieve' infix, sometimes not |
| 08:17:27 | <jade[m]1> | I think you can hook into treesitter for stuff like that |
| 08:19:52 | <ski> | (generally i also don't like using the same name for a data constructor as for a data type) |
| 08:20:03 | × | zeenk quits (~zeenk@2a02:2f04:a105:f00::fba) (Remote host closed the connection) |
| 08:20:19 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:20:24 | → | zeenk joins (~zeenk@2a02:2f04:a105:f00::7fe) |
| 08:21:40 | <jade[m]1> | https://int-index.github.io/posts/haskell-punning :) |
| 08:22:53 | × | titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 08:23:18 | <ski> | instead of `Set.findMin' and `Set.delete', i think you could use `Set.deleteFindMin' |
| 08:23:26 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 08:24:21 | × | freeside quits (~mengwong@122.11.248.245) (Read error: Connection reset by peer) |
| 08:24:29 | → | freeside joins (~mengwong@122.11.248.245) |
| 08:25:11 | <Inst_> | i know, MkSieve |
| 08:25:13 | <Inst_> | idiomatic |
| 08:25:38 | <Inst_> | https://media.discordapp.net/attachments/968989726633779215/1105047812032434266/image.png?width=1616&height=1404 |
| 08:26:15 | <Inst_> | you know what we really need? Not literate Haskell, but Latex Haskell ;) |
| 08:27:36 | <ski> | jade[m]1 : yea, i'm (mostly) okay with the former use, but don't like the latter use (have thought of all those points before) |
| 08:29:29 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 08:29:45 | × | freeside quits (~mengwong@122.11.248.245) (Ping timeout: 240 seconds) |
| 08:32:18 | <jade[m]1> | yep, I agree, especially as we (hopefully) move towards dependent types as described in (dependent haskell)[https://gitlab.haskell.org/ghc/ghc/-/wikis/dependent-haskell] there would be thing like `foo :: foreach a. a -> OtherType` in which `a` is also brought into the term namespace |
| 08:33:10 | <jade[m]1> | im amazing at markdown as you can see /s |
| 08:33:48 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 240 seconds) |
| 08:36:27 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 08:38:05 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 08:42:32 | <carbolymer> | How do you guys test simple things with hackage libraries? I mean, things like simple json serialization in repl. Do you install a library globally, or do you keep a project with handy dependencies like aeson, or megaparsec somewhere and start repl there? |
| 08:42:42 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) (Remote host closed the connection) |
| 08:44:11 | <kaol> | I'm not coming up with the right words for searching for this. What's a String -> String function that would unescape HTML escapes? Like "Göteborg" to "Göteborg". |
| 08:45:40 | <[exa]> | kaol: decodeHtmlEntities (that's from xml-conduit, other packages might have similar) |
| 08:45:46 | <probie> | carbolymer: I have a "project with handy dependencies" |
| 08:46:09 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 08:46:21 | <Inst_> | https://paste.tomsmeding.com/pqWzI2ib |
| 08:46:24 | <Inst_> | updated code, thanks for the suggestions |
| 08:46:47 | <Inst_> | the deleteFindMin reduced the processing time for the 100_000th prime to 20 seconds from 30 |
| 08:46:51 | <[exa]> | Inst_: ascii art >>>>>> anything else |
| 08:46:54 | → | gmg joins (~user@user/gehmehgeh) |
| 08:47:19 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 08:48:13 | <Inst_> | I guess it's an interesting direction that hasn't been explored, people say there's really three main Haskell communities, the maintenance guys, who love how Haskell makes maintenance and refactoring a breeze |
| 08:48:28 | <Inst_> | there's the correctness guys, who really want Idris, but lazy, and Haskell's ecosystem |
| 08:48:41 | <Inst_> | there's the type theory guys, who want to push the boundaries of what's possible with types |
| 08:49:05 | <Inst_> | there's actually a fourth community, i.e, the simplicity guys, which is where stuff like Elm comes from |
| 08:49:37 | <Inst_> | we already have declarative GUI via the Elm and JS communities, but FP is declarative data transformation algorithms at its heart |
| 08:50:19 | <Inst_> | the simplicity guys like Haskell for how simple and clean code can be in Haskell, but they're a small minority and I don't think there's much progress in that direction |
| 08:51:50 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds) |
| 08:51:56 | × | JScript quits (~JScript@144.48.39.39) (Ping timeout: 246 seconds) |
| 08:52:50 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 08:55:29 | <jade[m]1> | <Inst_> "there's the type theory guys..." <- i love types |
| 08:55:40 | <Inst_> | sorry for the gendered term |
| 08:56:07 | <jade[m]1> | is guys gendered? |
| 08:56:15 | <jade[m]1> | I always saw it as neutral |
| 08:56:58 | <jade[m]1> | but yeah, types and the boundaries of safety originally drew me towards haskell |
| 08:58:39 | → | freeside joins (~mengwong@103.252.202.85) |
| 09:00:08 | × | aaronv quits (~aaronv@user/aaronv) (Quit: You have been kicked for being idle) |
| 09:02:04 | <ski> | Inst_ : <https://paste.tomsmeding.com/Dvr4WtJ0> |
| 09:03:05 | × | michalz quits (~michalz@185.246.207.221) (Ping timeout: 240 seconds) |
| 09:03:23 | → | michalz joins (~michalz@185.246.207.203) |
| 09:03:31 | × | merijn quits (~merijn@c-001-001-013.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 09:03:45 | <ski> | jade[m]1 : it's quite often used (both by weremen and by women) in a non-gendered sense (possibly depending on age, and region .. not too sure) |
| 09:05:41 | <ski> | jade[m]1 : "thing like `foo :: foreach a. a -> OtherType` in which `a` is also brought into the term namespace" -- i actually quite dislike the `forall' (here `foreach') bringing `a' into scope in the corresponding defining equations .. it's exactly backwards to what i would expect |
| 09:07:36 | <jade[m]1> | it's outlined here https://gitlab.haskell.org/ghc/ghc/-/wikis/dependent-haskell |
| 09:08:18 | <jade[m]1> | forall does not bring it into the term namespace whereas foreach does |
| 09:09:07 | <jade[m]1> | it's really interesting imo |
| 09:09:34 | <ski> | `forall' does, unfortunately, if you have `ScopedTypeVariables' enabled |
| 09:10:01 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 09:10:16 | <ski> | % :t let id :: forall a. a -> a; id x = x :: a in id |
| 09:10:16 | <yahb2> | let id :: forall a. a -> a; id x = x :: a in id :: a -> a |
| 09:10:20 | <ski> | % :t let id :: a -> a; id x = x :: a in id |
| 09:10:20 | <yahb2> | <interactive>:1:26: error: ; • Couldn't match expected type ‘a2’ with actual type ‘a1’ ; ‘a2’ is a rigid type variable bound by ; an expression type signature: ; forall ... |
| 09:10:29 | <ski> | (this is exactly backwards, to me) |
| 09:10:57 | tomsmeding | prefers 'id :: forall a -> a -> a' |
| 09:11:25 | <tomsmeding> | % :t let id :: forall a -> a -> a |
| 09:11:25 | <yahb2> | <no location info>: error: ; not an expression: ‘let id :: forall a -> a -> a’ |
| 09:11:29 | <tomsmeding> | % :t let id :: forall a -> a -> a ; id = _ |
| 09:11:29 | <yahb2> | <no location info>: error: ; not an expression: ‘let id :: forall a -> a -> a ; id = _’ |
| 09:11:35 | <tomsmeding> | % :t let id :: forall a -> a -> a ; id = _ in _ |
| 09:11:35 | <yahb2> | <interactive>:1:11: error: ; • Illegal visible, dependent quantification in the type of a term: ; forall a -> a -> a ; (GHC does not yet support this) ; • In the type signatur... |
| 09:11:49 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-c8bd-37f2-a0dc-5f82.rev.sfr.net) (Remote host closed the connection) |
| 09:11:49 | <tomsmeding> | the parser even supports it already :p |
| 09:12:29 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:13:03 | → | merijn joins (~merijn@185.143.104.11) |
| 09:13:12 | <jade[m]1> | ski: but that's still on the type level |
| 09:14:07 | <ski> | % :t let id (x :: a) :: a = x in id -- i'm also missing this |
| 09:14:07 | <yahb2> | <interactive>:1:5: error: Parse error in pattern: id |
| 09:14:13 | <jade[m]1> | term level means you'd be able to write... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/5463f2673567dba9550e7cbb8d4b25a15556128c>) |
| 09:14:22 | <ski> | % :t let id (x :: a) = x :: a in id -- while this works |
| 09:14:22 | <yahb2> | let id (x :: a) = x :: a in id -- while this works :: a -> a |
| 09:14:28 | <jade[m]1> | no, wait |
| 09:14:32 | <jade[m]1> | I made an oopsie |
| 09:14:39 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds) |
| 09:16:33 | jade[m]1 | sent a code block: https://libera.ems.host/_matrix/media/v3/download/libera.chat/09a270e7d57b3fbb6a90a87d1562886cebdbf4b9 |
| 09:17:55 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:18:46 | <jade[m]1> | A more practical example from there would be... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/9ebc83656373660ce8102694db1466721f13e7c0>) |
| 09:19:59 | <ski> | % :t let myNot (x :: a) = not x :: a in myNot -- heh, istr SML actually doesn't allow this |
| 09:19:59 | <yahb2> | let myNot (x :: a) = not x :: a in myNot -- heh, istr SML actually doesn't allow this ; :: Bool -> Bool |
| 09:20:58 | <ski> | (OCaml seem to allow it, though) |
| 09:21:59 | <ski> | jade[m]1 : yes. however, i wasn't really talking about type-level versus term-level here, but rather about type signature vs. defining equations |
| 09:22:32 | <jade[m]1> | mhm |
| 09:23:54 | <ski> | (and yea, i've seen `foreach' before) |
| 09:25:39 | → | titibandit joins (~titibandi@user/titibandit) |
| 09:27:10 | <Inst_> | ugh, i can't traverse a set |
| 09:27:50 | <Inst_> | that's a bit of an annoying limitation, i want to STRef a set to run my algorithm mutably and see what happens if i don't have to keep on copying the data type |
| 09:28:47 | <ski> | using some mutable version of sets ? |
| 09:28:51 | → | gurkenglas joins (~gurkengla@dynamic-046-114-183-044.46.114.pool.telefonica.de) |
| 09:29:43 | <Inst_> | hey, snoyman is still updating this! |
| 09:29:44 | <Inst_> | https://hackage.haskell.org/package/mutable-containers |
| 09:30:41 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
| 09:32:47 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 09:37:01 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 240 seconds) |
| 09:43:08 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) |
| 09:43:15 | × | ft quits (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:44:25 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 240 seconds) |
| 09:47:31 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) (Ping timeout: 256 seconds) |
| 09:53:41 | → | JScript joins (~JScript@1.132.24.18) |
| 09:53:43 | × | JScript quits (~JScript@1.132.24.18) (Max SendQ exceeded) |
| 09:56:11 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 10:05:13 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
| 10:16:18 | → | JScript joins (~JScript@45.248.77.157) |
| 10:16:23 | × | JScript quits (~JScript@45.248.77.157) (Max SendQ exceeded) |
| 10:17:25 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds) |
| 10:18:30 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 10:19:03 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 10:21:17 | → | JScript joins (~JScript@45.248.77.157) |
| 10:21:21 | × | JScript quits (~JScript@45.248.77.157) (Max SendQ exceeded) |
| 10:23:08 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 240 seconds) |
| 10:25:09 | → | __monty__ joins (~toonn@user/toonn) |
| 10:25:48 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 10:26:16 | → | JScript joins (~JScript@45.248.77.157) |
| 10:26:19 | × | JScript quits (~JScript@45.248.77.157) (Max SendQ exceeded) |
| 10:31:07 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 10:34:57 | → | freeside joins (~mengwong@122.11.212.59) |
| 10:35:28 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 250 seconds) |
| 10:37:58 | → | JScript joins (~JScript@45.248.77.157) |
| 10:38:02 | × | JScript quits (~JScript@45.248.77.157) (Max SendQ exceeded) |
| 10:38:27 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 10:40:28 | → | JScript joins (~JScript@45.248.77.157) |
| 10:40:32 | × | JScript quits (~JScript@45.248.77.157) (Max SendQ exceeded) |
| 10:41:02 | → | JScript joins (~JScript@45.248.77.157) |
| 10:41:06 | × | JScript quits (~JScript@45.248.77.157) (Max SendQ exceeded) |
| 10:44:45 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 10:53:56 | → | JScript joins (~JScript@45.248.77.157) |
| 10:54:03 | × | JScript quits (~JScript@45.248.77.157) (Max SendQ exceeded) |
| 10:57:03 | → | JScript joins (~JScript@45.248.77.157) |
| 10:57:06 | × | JScript quits (~JScript@45.248.77.157) (Max SendQ exceeded) |
| 11:00:03 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 11:00:23 | × | Vq quits (~vq@90-227-195-9-no77.tbcn.telia.com) (Read error: Connection reset by peer) |
| 11:03:35 | → | xff0x joins (~xff0x@ai098135.d.east.v6connect.net) |
| 11:04:40 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 260 seconds) |
| 11:05:00 | → | Vq joins (~vq@90-227-195-9-no77.tbcn.telia.com) |
| 11:10:14 | → | JScript joins (~JScript@103.137.12.149) |
| 11:10:21 | × | JScript quits (~JScript@103.137.12.149) (Max SendQ exceeded) |
| 11:12:08 | → | JScript joins (~JScript@103.137.12.149) |
| 11:12:11 | × | JScript quits (~JScript@103.137.12.149) (Max SendQ exceeded) |
| 11:12:51 | × | oo_miguel quits (~Thunderbi@77.252.47.78) (Ping timeout: 256 seconds) |
| 11:17:11 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 11:17:31 | → | nate2 joins (~nate@98.45.169.16) |
| 11:20:45 | × | freeside quits (~mengwong@122.11.212.59) (Ping timeout: 240 seconds) |
| 11:21:55 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds) |
| 11:22:51 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 11:30:15 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 11:34:43 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 11:40:50 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 260 seconds) |
| 11:41:08 | × | enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
| 11:47:37 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 11:47:55 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 11:48:37 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
| 11:48:50 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 11:49:28 | × | vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
| 11:51:43 | jade[m]1 | uploaded an image: (23KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/XQKlLEZktPCZiMzsedgiNTLD/image.png > |
| 11:51:43 | <jade[m]1> | what the heck is this syntax? |
| 11:53:00 | <ncf> | looks like a clipboard failure on top of a clipboard failure |
| 11:53:46 | <dminuoso> | Or some bizarre LSP lens bug |
| 11:55:18 | <ski> | the context looks a bit weird to me, as well |
| 11:56:11 | jade[m]1 | uploaded an image: (31KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/BmHnnfVRZtRxwailziCMnbvf/image.png > |
| 11:56:12 | <jade[m]1> | indeed |
| 11:56:18 | <jade[m]1> | the file seems to be too big for LSP |
| 11:56:26 | <jade[m]1> | 5194 lines |
| 11:56:37 | <dminuoso> | What do you mean by "too big"? |
| 11:56:56 | <jade[m]1> | my lsp seems to have issues with large files |
| 11:57:05 | <jade[m]1> | at some point it just stops working properly |
| 11:58:15 | <ski> | what's the line after the last one, in that last, jade[m]1 ? |
| 11:59:05 | <dminuoso> | For what its worth, Ive seen emacs lsp lenses insert very broken fragments. |
| 11:59:32 | <jade[m]1> | I don't use lsp lenses |
| 11:59:34 | <dminuoso> | At times I wish we didnt use raw text for exchanging code with a compiler. |
| 11:59:50 | <jade[m]1> | ` |
| 11:59:51 | <jade[m]1> | ski: ```... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/ba18be8323281bf3e52f1a7e2b0ebfce319bb81e>) |
| 12:00:50 | <ski> | ok, at least not starting with `=', then |
| 12:02:35 | → | mmhat joins (~mmh@p200300f1c706687dee086bfffe095315.dip0.t-ipconnect.de) |
| 12:13:01 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:32:57 | → | vulfe_ joins (~vulfe@207.229.148.168) |
| 12:52:05 | × | juri_ quits (~juri@217.138.194.165) (Ping timeout: 240 seconds) |
| 12:53:36 | <jean-paul[m]> | I'm having trouble handling all possible IO exceptions. I want to turn them into some kind of Left. I don't mind losing some details if necessary, though it would be nice to at least be able to get a string representation. I've run into Could not decide (Exception e0) and I'm not sure what to do with it. Here's my current attempt - https://gist.github.com/exarkun/b8cf950c584b8b2d9eeba66fe44bc6b0 |
| 12:54:06 | <merijn> | jean-paul[m]: Catch SomeException |
| 12:54:14 | → | juri_ joins (~juri@84-19-175-187.pool.ovpn.com) |
| 12:57:42 | <jean-paul[m]> | Aha. That works. Thanks. I guess I should try to understand exceptions/SomeException better. |
| 13:01:34 | <merijn> | jean-paul[m]: The paper mentioned at the top of Control.Exception ("An Extensible Dynamically-Typed Hierarchy of Exceptions") is pretty good |
| 13:01:51 | <merijn> | jean-paul[m]: It actually lets you do OO style subclassing of exceptions and catching them |
| 13:02:06 | <merijn> | SomeException being the root exception that catches "everything" |
| 13:02:37 | <jean-paul[m]> | awesome, thank you |
| 13:11:18 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 13:12:14 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 13:24:16 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:28:08 | × | micro quits (~micro@user/micro) (Remote host closed the connection) |
| 13:28:35 | × | xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Quit: xff0x) |
| 13:31:07 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 13:33:51 | → | wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
| 13:34:20 | → | vulfe joins (~vulfe@207.229.148.168) |
| 13:34:24 | × | vulfe_ quits (~vulfe@207.229.148.168) (Read error: Connection reset by peer) |
| 13:37:39 | <yin> | i'm using hls on nvim and when performing code actions i notice that the most obvious/useful one is usually the last option on the provived list. is there a logic to this ordering? if so, would there be an easy way to automatically bind a command to choose the last option by default? |
| 13:38:09 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 13:38:09 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 13:38:09 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:39:12 | × | wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 248 seconds) |
| 13:39:26 | <yin> | oh maybe this is a question for #haskell-langage-server |
| 13:39:31 | → | rf joins (~rf@2605:59c8:179c:f610:3bd2:4ecb:9b16:aa4f) |
| 13:40:13 | → | micro joins (~micro@user/micro) |
| 13:44:00 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
| 13:46:43 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) |
| 13:51:29 | → | freeside joins (~mengwong@103.252.202.85) |
| 13:51:30 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) (Ping timeout: 260 seconds) |
| 13:56:16 | → | jero98772 joins (~jero98772@2800:484:1d84:9000::2) |
| 13:56:28 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 268 seconds) |
| 13:58:59 | × | titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 14:05:40 | × | vulfe quits (~vulfe@207.229.148.168) (Remote host closed the connection) |
| 14:06:26 | → | freeside joins (~mengwong@103.252.202.85) |
| 14:10:51 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 260 seconds) |
| 14:12:38 | → | xff0x joins (~xff0x@2405:6580:b080:900:8bd4:f87d:a79b:d165) |
| 14:13:09 | → | vulfe joins (~vulfe@207.229.148.168) |
| 14:19:42 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
| 14:35:26 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 15:06:58 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:2d52:c5aa:cfa9:3177) (Quit: WeeChat 2.8) |
| 15:19:16 | → | nate2 joins (~nate@98.45.169.16) |
| 15:22:02 | <Axman6> | jean-paul[m]: Parallel and Concurrent Programming in Haskell does a food job explaining how exceptions wor, iirc |
| 15:22:11 | <Axman6> | @where pcph |
| 15:22:11 | <lambdabot> | "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive. |
| 15:22:11 | <lambdabot> | org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/> |
| 15:24:15 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 15:26:19 | → | freeside joins (~mengwong@103.252.202.85) |
| 15:27:09 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 15:28:50 | × | gurkenglas quits (~gurkengla@dynamic-046-114-183-044.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
| 15:29:57 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:30:58 | → | gurkenglas joins (~gurkengla@dynamic-046-114-179-106.46.114.pool.telefonica.de) |
| 15:31:49 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 256 seconds) |
| 15:34:24 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds) |
| 15:38:27 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 15:44:03 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 15:44:48 | → | bgs joins (~bgs@212-85-160-171.dynamic.telemach.net) |
| 15:46:29 | × | mexpr quits (~mexpr@user/mexpr) (Quit: leaving) |
| 15:48:17 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) |
| 15:48:32 | Inst_ | is now known as Inst |
| 15:50:55 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 15:52:28 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) (Ping timeout: 240 seconds) |
| 15:53:25 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) |
| 15:53:59 | → | oo_miguel joins (~Thunderbi@77.252.47.78) |
| 15:54:27 | → | elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) |
| 15:55:55 | → | nick4 joins (~nick@wsip-174-78-110-18.pn.at.cox.net) |
| 16:05:03 | → | Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi) |
| 16:08:19 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 16:12:46 | → | titibandit joins (~titibandi@user/titibandit) |
| 16:18:05 | × | merijn quits (~merijn@185.143.104.11) (Ping timeout: 240 seconds) |
| 16:20:17 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 16:26:22 | → | freeside joins (~mengwong@103.252.202.85) |
| 16:29:06 | × | talismanick quits (~user@2601:204:ef80:6c80::a8e2) (Remote host closed the connection) |
| 16:31:00 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 265 seconds) |
| 16:33:53 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:39:11 | × | vulfe quits (~vulfe@207.229.148.168) (Remote host closed the connection) |
| 16:40:58 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:42:44 | → | freeside joins (~mengwong@103.252.202.85) |
| 16:43:47 | × | jjb quits (~jjb@user/jjb) (Ping timeout: 256 seconds) |
| 16:44:59 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.8) |
| 16:47:07 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 248 seconds) |
| 16:52:04 | → | cheater_ joins (~Username@user/cheater) |
| 16:54:05 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 16:54:57 | → | cheater__ joins (~Username@user/cheater) |
| 16:54:57 | cheater__ | is now known as cheater |
| 16:58:05 | × | cheater_ quits (~Username@user/cheater) (Ping timeout: 246 seconds) |
| 17:03:56 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 17:08:45 | → | chomwitt joins (~chomwitt@2a02:587:7a1f:b500:f431:9979:9130:4486) |
| 17:15:54 | → | learner-monad joins (~ehanneken@user/learner-monad) |
| 17:19:21 | → | roboguy_ joins (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) |
| 17:20:31 | → | vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 17:20:43 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 248 seconds) |
| 17:22:15 | → | t0ngub1n_mobile joins (~t0ngub1n_@95-24-68-157.broadband.corbina.ru) |
| 17:23:53 | × | czy quits (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
| 17:42:10 | × | michalz quits (~michalz@185.246.207.203) (Ping timeout: 268 seconds) |
| 17:43:14 | → | michalz joins (~michalz@185.246.207.203) |
| 17:47:12 | × | cheater quits (~Username@user/cheater) (Read error: Connection reset by peer) |
| 17:47:20 | → | titibandit joins (~titibandi@user/titibandit) |
| 17:47:49 | → | cheater joins (~Username@user/cheater) |
| 17:58:29 | → | mud joins (~mud@user/kadoban) |
| 18:02:16 | → | ubert joins (~Thunderbi@p548c9371.dip0.t-ipconnect.de) |
| 18:09:07 | × | jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 265 seconds) |
| 18:12:35 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 18:17:18 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
| 18:17:41 | → | gensyst joins (~gensyst@user/gensyst) |
| 18:18:13 | <gensyst> | Do performMajorGC and performMinorGC wait until they complete before continuing? |
| 18:18:25 | <gensyst> | i.e. does GC completely finish |
| 18:18:31 | <gensyst> | or do they run "async" in the background? |
| 18:18:35 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds) |
| 18:19:49 | → | rlj joins (~rlj@194-218-34-180.customer.telia.com) |
| 18:20:32 | → | jero98772 joins (~jero98772@2800:484:1d84:9000::2) |
| 18:26:15 | <geekosaur> | pretty sure they have to complete because the next action would probably allocate memory and block on the GC anyway |
| 18:26:45 | <geekosaur> | s/action/computation |
| 18:27:37 | <geekosaur> | and the main reason to invoke either of those is to free up nursery / heap space for that next computation |
| 18:28:04 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 18:29:08 | → | czy joins (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
| 18:31:33 | → | n0nesense joins (~n0nesense@2001:470:69fc:105::3:5697) |
| 18:33:03 | → | img joins (~img@user/img) |
| 18:34:06 | <gensyst> | geekosaur, thanks |
| 18:38:36 | → | freeside joins (~mengwong@103.252.202.85) |
| 18:40:14 | → | ft joins (~ft@p4fc2a88b.dip0.t-ipconnect.de) |
| 18:42:12 | × | czy quits (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
| 18:43:12 | → | jay-invariant joins (~jay@066-189-100-190.res.spectrum.com) |
| 18:43:23 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 264 seconds) |
| 18:46:59 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) (Remote host closed the connection) |
| 18:53:42 | → | gmg joins (~user@user/gehmehgeh) |
| 18:54:41 | × | gensyst quits (~gensyst@user/gensyst) (Quit: Leaving) |
| 18:58:38 | × | nick4 quits (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 268 seconds) |
| 18:59:03 | × | iteratee_ quits (~kyle@162.218.222.207) (Read error: Connection reset by peer) |
| 18:59:18 | → | iteratee joins (~kyle@162.218.222.207) |
| 19:04:02 | → | freeside joins (~mengwong@103.252.202.85) |
| 19:07:09 | → | titibandit joins (~titibandi@user/titibandit) |
| 19:08:16 | × | t0ngub1n_mobile quits (~t0ngub1n_@95-24-68-157.broadband.corbina.ru) (Quit: Quit) |
| 19:08:17 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 256 seconds) |
| 19:12:26 | × | n0nesense quits (~n0nesense@2001:470:69fc:105::3:5697) (Quit: issued !quit command) |
| 19:19:03 | × | jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 256 seconds) |
| 19:20:45 | → | nate2 joins (~nate@98.45.169.16) |
| 19:25:51 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 19:26:05 | × | jay-invariant quits (~jay@066-189-100-190.res.spectrum.com) (Remote host closed the connection) |
| 19:27:21 | → | jay-invariant joins (~jay@066-189-100-190.res.spectrum.com) |
| 19:29:06 | → | czy joins (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
| 19:30:24 | → | jero98772 joins (~jero98772@2800:484:1d84:9000::2) |
| 19:33:47 | × | chomwitt quits (~chomwitt@2a02:587:7a1f:b500:f431:9979:9130:4486) (Ping timeout: 256 seconds) |
| 19:35:36 | × | jay-invariant quits (~jay@066-189-100-190.res.spectrum.com) (Remote host closed the connection) |
| 19:36:15 | → | jay-invariant joins (~jay@066-189-100-190.res.spectrum.com) |
| 19:36:53 | × | roboguy_ quits (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Remote host closed the connection) |
| 19:37:31 | → | roboguy_ joins (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) |
| 19:37:38 | × | roboguy_ quits (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Remote host closed the connection) |
| 19:37:50 | → | roboguy_ joins (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) |
| 19:38:05 | × | czy quits (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
| 19:43:31 | → | czy joins (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
| 19:45:15 | × | jay-invariant quits (~jay@066-189-100-190.res.spectrum.com) (Remote host closed the connection) |
| 19:45:48 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
| 19:46:47 | → | jay-invariant joins (~jay@066-189-100-190.res.spectrum.com) |
| 19:47:26 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) |
| 19:47:58 | → | mjrosenb joins (7U2UjFMg@WHELK.CLUB.CC.CMU.EDU) |
| 19:50:48 | → | cyphase joins (~cyphase@user/cyphase) |
| 19:52:00 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc86:9d0c:407:3c24) (Ping timeout: 260 seconds) |
| 19:55:30 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 19:55:58 | <drlkf_> | how do you properly implement an 'Enum' and 'Bounded' type such that '[minBound..]' does not call 'succ' on a 'maxBound' value ? |
| 19:56:36 | <geekosaur> | > [minBound..] :: [Bool] |
| 19:56:37 | <lambdabot> | [False,True] |
| 19:56:58 | <geekosaur> | if you derive both Enum and Bounded then that should just work |
| 19:56:58 | <mauke> | @undo [minBound..] |
| 19:56:58 | <lambdabot> | [minBound ..] |
| 19:57:18 | <drlkf_> | that's easy when deriving 'Enum' and 'Bounded', but i can't figure out how to do it with custom implementations even when my 'Enum' and 'Bounded' instances are correct |
| 19:57:30 | <geekosaur> | you could use -ddump-deriv to see how ghc does it |
| 19:57:42 | <drlkf_> | good idea, ill try that |
| 19:58:08 | <geekosaur> | I don't know if there's a specified way to do it, just a specification that it should work |
| 19:58:51 | <jade[m]1> | I would assume they just override enumFrom and friends |
| 19:59:01 | <mauke> | yeah |
| 19:59:09 | <mauke> | enumFrom is a method of Enum |
| 19:59:14 | <drlkf_> | i've been struggling with a data type that has correct 'Enum' and 'Bounded' and somehow '[minBound ..]' produces a runtime error while '[minBound .. maxBound]' works fine |
| 19:59:16 | <jade[m]1> | and the custom implementation can make sure that it "does it right" |
| 19:59:49 | <geekosaur> | does the Enum instance know about the Bounded instance? it's supposed to if it exists |
| 20:00:07 | <drlkf_> | how do i know ? |
| 20:00:25 | <drlkf_> | they are defined sequentially in the same file so i assume it does |
| 20:00:47 | <jade[m]1> | does it error if you use minBound :: YourType in the instance? |
| 20:00:56 | <mauke> | what does your enumFrom look like? |
| 20:01:37 | <geekosaur> | actually the Report does specify. see https://paste.tomsmeding.com/ihUKBJiV |
| 20:02:01 | <geekosaur> | it gives a sample Enum specification for a type which has both Enum and Bounded |
| 20:02:56 | <geekosaur> | cf. 6.3.4 of the Report |
| 20:05:48 | <drlkf_> | ah, i see. i have only defined 'toEnum' and 'fromEnum' since it was minimal required definition, but '[minBound ..]' relies on 'enumFrom', correct? |
| 20:06:01 | → | n0nesense86 joins (~n0nesense@91.98.210.222) |
| 20:06:08 | <geekosaur> | it is enumFrom |
| 20:06:25 | × | n0nesense86 quits (~n0nesense@91.98.210.222) (Client Quit) |
| 20:06:30 | <drlkf_> | that explains everything. thanks |
| 20:06:38 | <jade[m]1> | s u g a r |
| 20:06:41 | <geekosaur> | the .. forms are syntax sugar |
| 20:06:51 | <jade[m]1> | system of a down starts playing |
| 20:06:59 | <mauke> | sugr? |
| 20:07:15 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-7566-04fc-ae15-ab7d.rev.sfr.net) |
| 20:08:12 | → | n0nesense86 joins (~n0nesense@91.98.210.222) |
| 20:08:34 | × | n0nesense86 quits (~n0nesense@91.98.210.222) (Client Quit) |
| 20:09:25 | → | freeside joins (~mengwong@103.252.202.85) |
| 20:10:11 | × | rlj quits (~rlj@194-218-34-180.customer.telia.com) (Quit: Client closed) |
| 20:11:18 | → | n0nesense11 joins (~n0nesense@91.98.210.222) |
| 20:12:35 | n0nesense11 | is now known as Alphred |
| 20:13:04 | × | Alphred quits (~n0nesense@91.98.210.222) (Client Quit) |
| 20:13:52 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 248 seconds) |
| 20:15:45 | → | n0nesense75 joins (~n0nesense@91.98.210.222) |
| 20:15:54 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-7566-04fc-ae15-ab7d.rev.sfr.net) (Remote host closed the connection) |
| 20:16:11 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-7566-04fc-ae15-ab7d.rev.sfr.net) |
| 20:16:16 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-7566-04fc-ae15-ab7d.rev.sfr.net) (Remote host closed the connection) |
| 20:16:52 | → | nick4 joins (~nick@2600:8807:9103:b700:d8e6:a031:6c5c:b040) |
| 20:16:59 | × | n0nesense75 quits (~n0nesense@91.98.210.222) (Client Quit) |
| 20:17:13 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-7566-04fc-ae15-ab7d.rev.sfr.net) |
| 20:18:13 | <ncf> | i just realised that Reader r is the centre of State r |
| 20:18:59 | <Rembane> | How? |
| 20:19:05 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-7566-04fc-ae15-ab7d.rev.sfr.net) (Remote host closed the connection) |
| 20:19:07 | <geekosaur> | yes. and I'm not the only one who wishes State had an equivalent of `local`… |
| 20:19:50 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-7566-04fc-ae15-ab7d.rev.sfr.net) |
| 20:20:18 | <ncf> | Reader r a consists of the elements m of State r a that commute with all other n : State r a, in the sense that (do x ← n; y ← m; f x y) == (do y ← m; x ← n; f x y) |
| 20:20:55 | <Rembane> | That's cool! Thank you! |
| 20:21:13 | <ncf> | which looks like the definition of the centre of a group/monoid/whatever, and is in fact exactly the definition of the centre of a monad as found in https://arxiv.org/pdf/2207.09190.pdf |
| 20:21:20 | × | nick4 quits (~nick@2600:8807:9103:b700:d8e6:a031:6c5c:b040) (Ping timeout: 248 seconds) |
| 20:21:35 | <ncf> | (well, "exactly" modulo translation of Set nonsense into Hask nonsense) |
| 20:25:04 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 20:27:18 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-7566-04fc-ae15-ab7d.rev.sfr.net) (Ping timeout: 245 seconds) |
| 20:29:19 | × | jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 256 seconds) |
| 20:34:57 | → | freeside joins (~mengwong@103.252.202.85) |
| 20:37:15 | → | goodtimeswithtom joins (~goodtimes@2600:1700:4010:6d20:6ced:4b7c:e16e:c74c) |
| 20:38:46 | × | goodtimeswithtom quits (~goodtimes@2600:1700:4010:6d20:6ced:4b7c:e16e:c74c) (Client Quit) |
| 20:39:08 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 240 seconds) |
| 20:39:09 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
| 20:40:28 | → | jero98772 joins (~jero98772@2800:484:1d84:9000::2) |
| 20:41:18 | → | tomtestingacct joins (~tom@104-191-145-180.lightspeed.dybhfl.sbcglobal.net) |
| 20:45:31 | → | Sciencentistguy0 joins (~sciencent@hacksoc/ordinary-member) |
| 20:48:01 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 256 seconds) |
| 20:48:02 | Sciencentistguy0 | is now known as Sciencentistguy |
| 20:49:38 | × | ubert quits (~Thunderbi@p548c9371.dip0.t-ipconnect.de) (Quit: ubert) |
| 20:52:49 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:54:16 | × | tomtestingacct quits (~tom@104-191-145-180.lightspeed.dybhfl.sbcglobal.net) (Quit: Lost terminal) |
| 20:55:42 | → | stevenxl joins (uid133530@id-133530.uxbridge.irccloud.com) |
| 20:58:05 | → | taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-659e-5ae7-d859-4995.rev.sfr.net) |
| 21:00:22 | → | tanyastopguy joins (~username@2600:1700:4010:6d20:3aea:f984:552:57de) |
| 21:05:16 | → | goodtimeswithtom joins (~goodtimes@2600:1700:4010:6d20:3aea:f984:552:57de) |
| 21:05:26 | × | jay-invariant quits (~jay@066-189-100-190.res.spectrum.com) (Quit: Leaving) |
| 21:05:35 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection) |
| 21:05:51 | × | goodtimeswithtom quits (~goodtimes@2600:1700:4010:6d20:3aea:f984:552:57de) (Client Quit) |
| 21:06:21 | × | taupiqueur quits (~taupiqueu@2a02-842a-8180-4601-659e-5ae7-d859-4995.rev.sfr.net) (Quit: WeeChat 3.8) |
| 21:09:37 | × | byte quits (~byte@user/byte) (Read error: Connection reset by peer) |
| 21:12:20 | → | byte joins (~byte@user/byte) |
| 21:12:45 | → | Feuermagier_ joins (~Feuermagi@user/feuermagier) |
| 21:13:59 | → | chomwitt joins (~chomwitt@2a02:587:7a14:af00:9080:176a:ae9d:81cc) |
| 21:14:27 | × | Feuermagier_ quits (~Feuermagi@user/feuermagier) (Client Quit) |
| 21:15:13 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 256 seconds) |
| 21:16:21 | × | titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 21:20:38 | → | taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-18c4-e25f-ca07-3bb1.rev.sfr.net) |
| 21:24:26 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-18c4-e25f-ca07-3bb1.rev.sfr.net) |
| 21:30:44 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 21:31:07 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:718d:894b:b41:1ab9) |
| 21:35:37 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:718d:894b:b41:1ab9) (Ping timeout: 256 seconds) |
| 21:39:15 | × | jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 256 seconds) |
| 21:48:08 | × | bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 21:50:20 | × | michalz quits (~michalz@185.246.207.203) (Remote host closed the connection) |
| 21:50:33 | → | jero98772 joins (~jero98772@2800:484:1d84:9000::2) |
| 22:00:51 | × | chomwitt quits (~chomwitt@2a02:587:7a14:af00:9080:176a:ae9d:81cc) (Remote host closed the connection) |
| 22:04:59 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 265 seconds) |
| 22:07:50 | <Inst> | axman6: I'm begging another professional Haskeller for tutorials on laziness (I know about thunks, I know about some standard lazy coding patterns, I've skimmed through parts of Parallel and Concurrent Programming in Haskell) |
| 22:08:24 | <Inst> | tbh, I think long-term, making Haskell's laziness desirable (i.e, FP is popping its head everywhere, laziness a la Haskell, not so much) and a selling feature would at least be interesting |
| 22:09:03 | × | oo_miguel quits (~Thunderbi@77.252.47.78) (Ping timeout: 256 seconds) |
| 22:13:01 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 22:13:47 | → | freeside joins (~mengwong@103.252.202.85) |
| 22:16:51 | × | elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:17:25 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 22:18:26 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 268 seconds) |
| 22:18:35 | → | jargon joins (~jargon@184.101.78.160) |
| 22:26:53 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:30:42 | <roboguy_> | Inst: What sort of topics would you want it to cover? |
| 22:33:52 | <Inst> | it basically comes down to an understanding of GHC's unstable evaluation model beyond the stuff Bird covered (lazy is outside in, eager / strict is inside out), how sharing creates space leaks, how to exploit laziness for fun and profit |
| 22:34:21 | <Inst> | might actually be better to cover the topics in reverse, because everyone who needs to know the information needs to get all the way to "how not to space leak yourself to death" |
| 22:34:42 | <Inst> | I'm hoping HLS will eventually come with a space leak warning overlay, tbh |
| 22:35:23 | <ncf> | (i think i told a lie: elements of Reader r a commute with all other elements of Reader r a, not generally with State r a. it seems like Reader r is the "largest commutative submonad" of State r, but i don't think you get it from the centre construction, which is weird) |
| 22:36:21 | <vulfe> | I feel like that also has a name but I can't summon it to mind |
| 22:37:12 | <c_wraith> | Inst: the single most important topic is "why -XStrict is not the answer to the question you have" |
| 22:37:21 | <c_wraith> | Need to get people out of that cargo cult |
| 22:39:17 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 22:42:06 | <geekosaur> | sadly I think you'll have to convince SPJ first, since he's on record as considering lazy-by-default a mistake |
| 22:46:43 | <Inst> | c_wraith: the way I understand it, -XStrict is equivalent to admitting you suck |
| 22:47:04 | <Inst> | I suck, and I don't even use -XStrict |
| 22:47:37 | <c_wraith> | There are very specific cases where it's a great time-saver. |
| 22:47:49 | <geekosaur> | it's the bad parts of OCaml minus the good parts |
| 22:49:04 | × | jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 248 seconds) |
| 22:49:36 | <Inst> | geekosaur: that's a subjective interpretation of his comments |
| 22:49:44 | <Inst> | Haskell is, I think, the only major lazy-by-default language? |
| 22:50:03 | <Inst> | it's more, "the market for laziness related research and production is tapped" |
| 23:02:14 | → | jero98772 joins (~jero98772@2800:484:1d84:9000::2) |
| 23:03:27 | <jackdk> | ISTM that if you really want the code reuse and the purity, you have to have laziness. See https://www.reddit.com/r/haskell/comments/l98v73/can_you_share_a_realworld_anecdote_of_when/glgun65/ and https://www.reddit.com/r/haskell/comments/5xge0v/today_i_used_laziness_for/ |
| 23:04:31 | → | taupiqueur1 joins (~taupiqueu@2a02-842a-8180-4601-64af-550d-b7f1-261b.rev.sfr.net) |
| 23:05:09 | × | mmhat quits (~mmh@p200300f1c706687dee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 23:05:31 | → | mmhat joins (~mmh@p200300f1c706684eee086bfffe095315.dip0.t-ipconnect.de) |
| 23:06:08 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds) |
| 23:06:25 | × | gurkenglas quits (~gurkengla@dynamic-046-114-179-106.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
| 23:06:28 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-18c4-e25f-ca07-3bb1.rev.sfr.net) (Ping timeout: 245 seconds) |
| 23:06:51 | × | taupiqueur quits (~taupiqueu@2a02-842a-8180-4601-18c4-e25f-ca07-3bb1.rev.sfr.net) (Ping timeout: 256 seconds) |
| 23:06:58 | → | emmanuelux_ joins (~emmanuelu@user/emmanuelux) |
| 23:08:04 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
| 23:08:17 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 23:08:44 | <geekosaur> | https://news.ycombinator.com/item?id=23454642 which claims among other things that purity is actually independent of laziness |
| 23:08:59 | <geekosaur> | although laziness is what revealed it |
| 23:12:32 | <int-e> | Didn't SPJ say "laziness kept us pure"? |
| 23:13:53 | <geekosaur> | that one implies the opposite direction, that laziness requires purity |
| 23:14:05 | → | Guest|20 joins (~Guest|20@192.228.163.95) |
| 23:14:14 | <int-e> | In any case we've learned a lot from lazy by default. |
| 23:14:45 | <int-e> | geekosaur: It pretty much does, because reasoning about effects when evaluation order is unpredictable is very hard. |
| 23:15:17 | <geekosaur> | and in any case my point is there's a lot of people who believe what I said earlier, which is making laziness a hard sell |
| 23:15:23 | <int-e> | Sure, we still have unsafePerformIO and ST and the state# token trick |
| 23:17:18 | <int-e> | well, it's not independent if one of the 4 possible combinations (pure,strict), (impure, strict), (pure, lazy), (impure, lazy) is too wild for programming. |
| 23:17:46 | × | xff0x quits (~xff0x@2405:6580:b080:900:8bd4:f87d:a79b:d165) (Quit: xff0x) |
| 23:19:22 | <int-e> | (while the other three all make sense) |
| 23:20:51 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 23:20:51 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 23:21:01 | × | acidjnk quits (~acidjnk@p200300d6e7072f29d032399e5afc9b1f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 23:21:05 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 23:21:21 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 23:22:17 | → | nate2 joins (~nate@98.45.169.16) |
| 23:23:02 | → | xff0x joins (~xff0x@2405:6580:b080:900:7ba2:121c:2a4c:a692) |
| 23:27:15 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 23:29:15 | → | mauke_ joins (~mauke@user/mauke) |
| 23:31:12 | × | mauke quits (~mauke@user/mauke) (Ping timeout: 268 seconds) |
| 23:31:12 | mauke_ | is now known as mauke |
| 23:31:33 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:40:27 | × | Guest|20 quits (~Guest|20@192.228.163.95) (Ping timeout: 268 seconds) |
| 23:51:11 | → | phma joins (phma@2001:5b0:210b:ef98:fc16:fb7:1e9c:8673) |
| 23:57:50 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 23:57:50 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 23:57:50 | → | wroathe joins (~wroathe@user/wroathe) |
All times are in UTC on 2023-05-08.