Tim Humphries@thumphriees·Oct 16, 2017overloading is overrated, laws aren't https://twitter.com/mxavier/status/920050260919042048…This Tweet is unavailable.314
crow emoji@glaebhoerl·Oct 17, 2017By the way is there any reason you couldn't attach laws to just like, a record of functions? Why are classes special?44
Cyrus Omar @ VL/HCC in Rome@neurocy·Oct 17, 2017You're on to something very fundamental about type classes ;-)11
crow emoji@glaebhoerl·Oct 17, 2017What is it? (Not sure if I should be thinking in the direction of "they're actually not special" or "they're more special than I think!")21
Brendan Zabarauskas@brendanzab·Oct 17, 2017Type classes are just a fancy, built-in way of passing records of functions around implicitly. Alas, they live in a separate language space.12
crow emoji@glaebhoerl·Oct 17, 2017Yeah; I'm kind of hoping @neurocy has something more profound or subtle in mind :)13
Cyrus Omar @ VL/HCC in Rome@neurocy·Oct 17, 2017I mean nothing too profound -- type classes tie "laws" to type-directed implicit arguments in a way that mystifies the two distinct concepts24
Cyrus Omar @ VL/HCC in Rome@neurocy·Oct 17, 2017in ML signatures specify an interface -- over both types and values -- and you can associate laws with the signature. much neater imo!2111
Cyrus Omar @ VL/HCC in Rome@neurocy·Oct 17, 2017implicit module passing can then be handled separately, e.g. see "Modular Implicits" paper. maybe implicit are even just an editor feature!12
Brendan Zabarauskas@brendanzabReplying to @neurocy @glaebhoerl and @thumphrieesYup! Canonicity is sometimes nice to have, but it's good to see more explorations into alternatives, learning from Scala's mistakes.11:39 PM · Oct 17, 2017·Twitter Web Client1 Retweet1 Like