Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→
Page 1 .. 681 682 683 684 685 686 687 688 689 690 691 .. 18015
1,801,457 events total
2021-06-28 09:07:58 <tomsmeding> that's opinion :p
2021-06-28 09:08:24 <merijn> Profpatsch: It's not wrong, it's the only sensible option
2021-06-28 09:08:33 <tomsmeding> in the same vein you would be against supporting non-record constructors wholesale, I think
2021-06-28 09:08:36 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-28 09:08:52 × jespada quits (~jespada@90.254.247.46) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-28 09:08:58 <Profpatsch> I mean we can disagree
2021-06-28 09:09:01 <merijn> tomsmeding: Oh, that reminds me, is NoFieldSelectors in yet
2021-06-28 09:09:14 <Profpatsch> don’t want to list the amount of times somebody was lazy and mixed up fields
2021-06-28 09:09:19 <Profpatsch> which were both text
2021-06-28 09:09:21 <merijn> Profpatsch: You are free to propose an alternative to constructor ordering that does *not* use "a random heuristic guess"
2021-06-28 09:09:30 <merijn> Profpatsch: But I don't think you will be able to
2021-06-28 09:09:46 <tomsmeding> merijn: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0160-no-toplevel-field-selectors.rst ("Implemented: 9.2")
2021-06-28 09:09:49 <merijn> Profpatsch: Shouldn't use Text as type, imo
2021-06-28 09:09:52 <merijn> tomsmeding: \o/
2021-06-28 09:09:55 <Profpatsch> merijn: Disallow using constructors in that way in the surface
2021-06-28 09:10:02 <merijn> Profpatsch: You can already do that
2021-06-28 09:10:03 jespada joins (~jespada@90.254.247.46)
2021-06-28 09:10:09 <Profpatsch> merijn: how?
2021-06-28 09:10:09 <merijn> Profpatsch: Just don't export the constructor
2021-06-28 09:10:18 <merijn> That's what I do for a lot of code
2021-06-28 09:10:26 <Profpatsch> then you can’t construct the record?
2021-06-28 09:10:36 <Profpatsch> Data.Lens in 3 2 1
2021-06-28 09:10:42 <merijn> I don't use lens
2021-06-28 09:10:55 <merijn> Haven't had a need for it in the past decade, tbh
2021-06-28 09:11:29 <merijn> Profpatsch: I export either parsers/explicit construction functions/etc. from the module defining the record and only use those
2021-06-28 09:11:42 <Profpatsch> so builder pattern
2021-06-28 09:11:44 <merijn> And aggressively newtype things like Text, Int, etc.
2021-06-28 09:11:58 <Profpatsch> Thing is: that’s the verbose thing
2021-06-28 09:12:05 <Profpatsch> And the nonverbose thing is the bad thing
2021-06-28 09:12:10 <Profpatsch> Which is bad language design
2021-06-28 09:12:40 <merijn> Profpatsch: What alternative do you propose that does not involve magic?
2021-06-28 09:12:42 <Profpatsch> I mean that train has left the station, but we can at least give some good new defaults
2021-06-28 09:12:54 <merijn> It's easy to say "that's bad language design" if you don't have to come up with something better
2021-06-28 09:13:03 <merijn> I'm not convinced something better can exist
2021-06-28 09:13:21 <Profpatsch> like a linter that disallows construction by field order
2021-06-28 09:13:26 <merijn> All the languages that attempt to do "better" seem to settle on "convoluted implicit magic"
2021-06-28 09:13:39 warnz joins (~warnz@2600:1700:77c0:5610:eca1:bc9d:4345:931f)
2021-06-28 09:13:56 <tomsmeding> record construction syntax seems to be a way that Profpatsch approves of
2021-06-28 09:13:59 <Profpatsch> Or maybe even a compiler warning by default
2021-06-28 09:14:09 <Profpatsch> Unless it’s a newtype
2021-06-28 09:14:31 <merijn> tomsmeding: Everyone's excited about these terrible complicated extensions like LinearHaskell, but me? I'm *hyped* for NoFieldSelectors :>
2021-06-28 09:14:55 <tomsmeding> am I excited about LinearHaskell? cool!
2021-06-28 09:15:12 <merijn> tomsmeding: Terror is a form of excitement ;)
2021-06-28 09:16:11 <Profpatsch> merijn: Ah, nice, NoFieldSelectors sounds like a step in the right direction
2021-06-28 09:16:16 <boxscape_> doesn't the same argument apply to function application without keyword args?
2021-06-28 09:16:28 <boxscape_> i.e. disallowing positional arguments
2021-06-28 09:16:29 <tomsmeding> yes
2021-06-28 09:16:41 <Profpatsch> boxscape_: yes
2021-06-28 09:16:44 <boxscape_> okay
2021-06-28 09:17:27 <merijn> The solution to that problem is: Use a record as function argument, imo
2021-06-28 09:17:34 <Unhammer> can I {- HLINT ignore "some hint" -} only in a specific function?
2021-06-28 09:17:36 <merijn> Which is something I've been doing *a lot* in my code
2021-06-28 09:17:51 <Profpatsch> merijn: yeah, as soon as your function isn’t plumbing, that’s the way to go
2021-06-28 09:18:02 <Profpatsch> I just want RowType & Anonymous records :(
2021-06-28 09:18:22 <merijn> Profpatsch: That's not happening in Haskell as we know it
2021-06-28 09:18:25 × warnz quits (~warnz@2600:1700:77c0:5610:eca1:bc9d:4345:931f) (Ping timeout: 272 seconds)
2021-06-28 09:18:30 <merijn> Profpatsch: Maybe switch to Ur/Web? ;)
2021-06-28 09:18:42 <Profpatsch> Conflicts with inference too much?
2021-06-28 09:18:54 tomsmeding . o O ( Unrestricted Web? )
2021-06-28 09:19:08 <merijn> tomsmeding: You don't know Ur/Web?
2021-06-28 09:19:14 × yauhsien quits (~yauhsien@61-231-57-141.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-06-28 09:19:19 <tomsmeding> heard of it at some point
2021-06-28 09:19:19 <Profpatsch> merijn: thanks, I prefer to stick with general purpose langs :)
2021-06-28 09:19:47 <merijn> tomsmeding: Imagine if the PHP inventor was actually competent at PL design and fell into a cauldron of type theory as a baby... ;)
2021-06-28 09:20:09 <tomsmeding> lol
2021-06-28 09:20:12 <Unhammer> oh {- HLINT ignore haveFun "some hint" -} works :)
2021-06-28 09:20:15 <merijn> tomsmeding: It's quite cool, but to call it "niche" would be an understatement :p
2021-06-28 09:20:18 <merijn> tomsmeding: http://www.impredicative.com/ur/
2021-06-28 09:20:26 <boxscape_> merijn: what about https://github.com/ghc-proposals/ghc-proposals/pull/180 ? Or would that not qualify as "as we know it"?
2021-06-28 09:20:41 <boxscape_> (tbh it's been a year since I looked at that proposal so I don't remember it very well)
2021-06-28 09:21:35 <merijn> boxscape_: That's not even close to a prototype or worked-out implementation
2021-06-28 09:21:42 <boxscape_> that's fair
2021-06-28 09:22:15 <Profpatsch> merijn: you never know when some company decides that’s what they should put $1M into
2021-06-28 09:22:22 <Profpatsch> And then it happens within 5 years
2021-06-28 09:22:34 <Profpatsch> Like it happened with linear types
2021-06-28 09:22:41 × wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-28 09:23:03 <Profpatsch> Although that’s probably closer to $3–5M at this point
2021-06-28 09:23:25 × zeenk quits (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!)
2021-06-28 09:23:33 × azeem quits (~azeem@dynamic-adsl-94-34-9-28.clienti.tiscali.it) (Ping timeout: 250 seconds)
2021-06-28 09:23:52 <merijn> I wouldn't consider LinearHaskell "Haskell as we know it" either
2021-06-28 09:24:11 azeem joins (~azeem@176.201.40.58)
2021-06-28 09:24:23 <Profpatsch> I’m not married to the language as I know it
2021-06-28 09:24:35 <Profpatsch> It’s a local maximum at best
2021-06-28 09:24:43 <merijn> Oh, agreed
2021-06-28 09:24:57 <merijn> But I don't believe *adding stuff* will make it better
2021-06-28 09:25:09 <merijn> I think we can do much better than Haskell now
2021-06-28 09:25:28 <merijn> I don't believe trying to that *within Haskell* is viable without making the language *worse*
2021-06-28 09:26:03 <merijn> I understand the pragmatic reasons why people don't want to create a new language...but that seems like a silly problem, because they're making a new language *anyway*
2021-06-28 09:26:03 fendor joins (~fendor@178.165.168.249.wireless.dyn.drei.com)
2021-06-28 09:26:45 <Lycurgus> how baked is this thing that's gonna replace haskell?
2021-06-28 09:26:53 <merijn> You can't truly use LinearHaskell or DependentHaskell without it spreading throughout your entire code (and dependencies)
2021-06-28 09:27:09 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-28 09:27:27 <merijn> And if you're gonna have to adjust/update/etc. everything drastically anyway, why are we tying ourselves to limitations from the past design of Haskell
2021-06-28 09:27:53 <boxscape_> it does solve the coordination problem though, getting people to use a new language is hard, getting people to use new features of the language they already use it much easier
2021-06-28 09:28:04 <merijn> boxscape_: Sure
2021-06-28 09:28:12 <merijn> boxscape_: And then you converge on C++
2021-06-28 09:28:18 <boxscape_> could be
2021-06-28 09:28:35 <merijn> boxscape_: I understand *why* it happens as a result of pragmatism
2021-06-28 09:28:52 <merijn> boxscape_: That doesn't mean I have to like it
2021-06-28 09:29:00 <boxscape_> very true

All times are in UTC.