Comments

This profile is from a federated server and may be incomplete. Browse more on the original instance.

BoydStephenSmithJr, to haskell in Why `streaming` Is My Favourite Haskell Streaming Library | Blog
@BoydStephenSmithJr@hachyderm.io avatar
BoydStephenSmithJr, to haskell in Haskell Interlude 38: Edwin Brady
@BoydStephenSmithJr@hachyderm.io avatar

@jaror I never liked it; I think if you can't be bothered to assign a name, point-free combinators are what you should be using.

I also think it gets much uglier or complicated (or both) once you have arguments (unlike getLine, but like most subroutines).

That said, I wouldn't take it away from anyone. I think the desugaring is unsurprising and, at least in a strict language, semantics preserving.

I haven't really spent the necessary time to think clearly through the non-strict case.

BoydStephenSmithJr, to haskell in Ask anything thread! (November 2023)
@BoydStephenSmithJr@hachyderm.io avatar

@MeDuViNoX @Ategon Sir/Ma'am, this is NOT a Wendy's.

BoydStephenSmithJr, to haskell in Haskell Interlude: Episode 37 – John MacFarlane
@BoydStephenSmithJr@hachyderm.io avatar

@jaror SSL_ERROR_BAD_CERT_DOMAIN for me. 😩

BoydStephenSmithJr, to haskell in Haskell Interlude 36 - John Hughes
@BoydStephenSmithJr@hachyderm.io avatar

@jaror @dpwiz Your third option has been tried and failed multiple times, most recently in Elm. Programmers that need that kind of extension route around the denial and produce a (sometimes limited, often more awkward) library solution and then ship adaptors for all the primitives in the language, replacing the native (but non-extensible) name overloading.

This ends up making for a more complex ecosystem, and frustration when learners are taught native, but everyone uses library.

BoydStephenSmithJr, to haskell in Haskell Interlude 36 - John Hughes
@BoydStephenSmithJr@hachyderm.io avatar

@jaror I absolutely disagree that error messages would be better if we didn't have type classes. Languages with the other popular ad-hoc polymorphism (interface inheritance) have similarly opaque (initially) error messages of approximately the same length OR promote the failure to a run time error, a much worse situation.

BoydStephenSmithJr, to haskell in Haskell Interlude 36 - John Hughes
@BoydStephenSmithJr@hachyderm.io avatar

@jaror Implicit rounding or other conversion also undermines type safety, though if the conversion is total, not in the strict sense of "well typed programs don't go wrong" but in the sense of safety is when our expectations align with the results, something easily violated by allowing floating point indexes.

BoydStephenSmithJr, to haskell in Haskell Interlude 36 - John Hughes
@BoydStephenSmithJr@hachyderm.io avatar

@jaror @dpwiz Yes.

BoydStephenSmithJr, to haskell in Haskell Interlude 36 - John Hughes
@BoydStephenSmithJr@hachyderm.io avatar

@jaror @dpwiz Your first proposal is to sacrifice type safety. I reject that option; avoid success at all costs.

Your second actually increases complexity through semantic bifurcation . I reject that as a way to make a simpler language, even for didactic purposes.

No, discarding type classes without adopting something else worse (interface inheritance) is not easy, and may actually be impossible.

BoydStephenSmithJr, to haskell in Haskell Interlude 36 - John Hughes
@BoydStephenSmithJr@hachyderm.io avatar

@jaror @dpwiz I think without the type of polymorphism that Haskell uses type classes for, the language can never be more than a toy.

But, that doesn't mean it can't be didactically useful. A "Haskell--" with a JS-style Number for all numeric literals and replacing all numeric type classes with top-level operators on that type could be useful, for a bit.

Once you want to do indexing (e.g. Array) you need to distinguish between numbers like sqrt 5 and suitable indexes, tho. Enter polymorphism

BoydStephenSmithJr, to haskell in Haskell Interlude 36 - John Hughes
@BoydStephenSmithJr@hachyderm.io avatar

@jaror Haskell 2010 is pretty simple. What do you imagine is the simpler starting point, if any? If Haskell 2010 is a good starting point, aren't language pragmas / extensions effectively the same as your "language levels"?

BoydStephenSmithJr, to haskell in Defeating Return Type Polymorphism
@BoydStephenSmithJr@hachyderm.io avatar

@jaror @bss03 Maybe I was wrong, but I think you can do Scott encoding of the GADT underneath the standard codensity representation of existentials via CPS. Still need higher-rank types, not "just" parametricity.

I should write up some code to check myself against GHC.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • tacticalgear
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • Youngstown
  • everett
  • anitta
  • slotface
  • GTA5RPClips
  • rosin
  • thenastyranch
  • kavyap
  • mdbf
  • Leos
  • modclub
  • osvaldo12
  • Durango
  • khanakhh
  • provamag3
  • cisconetworking
  • ngwrru68w68
  • cubers
  • tester
  • ethstaker
  • megavids
  • normalnudes
  • lostlight
  • All magazines