Haskell

lxsameer,
@lxsameer@social.lxsameer.com avatar

I'm really impressed by how the #haskell ecosystem improved since the last time I've used it. Kudos to all the people who made it happen.

Jose_A_Alonso,
@Jose_A_Alonso@mathstodon.xyz avatar

The Haskell Unfolder Episode 26: Variable-arity functions. ~ Edsko de Vries (@EdskoDeVries), Andres Löh (@kosmikus). https://www.youtube.com/live/5wbgRlzJYUU

haskell,
@haskell@fosstodon.org avatar
terrorjack,
@terrorjack@functional.cafe avatar

@haskell https://gitlab.haskell.org/ghc/ghc/-/issues/24603 for the discussion thread and instructions for reproducing the result

haskell_foundation,
@haskell_foundation@mastodon.social avatar

🎧Check out the latest interview with David Christiansen, the former ED of #HaskellFoundation on the Type Theory Forall podcast by Pedro Abreu. It’s a must-listen! Have 116 minutes to spare? Dive in here: https://discourse.haskell.org/t/david-christiansen-on-type-theory-forall/9598 #Haskell #TypeTheory

lxsameer,
@lxsameer@social.lxsameer.com avatar

I'm going to return to #haskell after a very long time. Back then, the #cabal hell was excruciating. But now, thanks to #nix, setting up a project is like two seconds from the time you decide to create it to the point you start coding.

kosmikus,
@kosmikus@functional.cafe avatar

@lxsameer Not really dependent on Nix, I'd say. You can use Nix if you want to, sure, but also cabal(-install) itself is much better than it used to be.

mangoiv,
@mangoiv@functional.cafe avatar

My favourite #haskell row polymorphism package is aeson

aeveltstra,
@aeveltstra@mastodon.social avatar

@mangoiv Why aeson?

maralorn,
@maralorn@chaos.social avatar

I have real trouble developing an intuition for NoDeepSubsumption.

I always only notice by sheer luck that changing

a . b $ c

to

a $ b $ c

fixes my type error.

#haskell

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@maralorn I also still have problems with this in , too.

Best tip I have is to pay more attention to the 'forall's. Compose / . / <<< "fixes" the 'forall', which can cause type checking to fail elsewhere or, if "a" is higher-rank, there (it forces "b" to be monomorphic; higher-rank "a" might require a polymorphic "b'). Application / '$' (in GHC) doesn't "fix" the forall.

I think the difference might be "deeper", but for me it's able where the "choice" for the forall is made.

mikwee,

Shoutout to the @haskell team for making such a cool tutorial available on their home page.

haskell,
@haskell@fosstodon.org avatar

@mikwee cheers!

neloj,

I've been trying to make this work for a few days and finally I achieved it, the most basic form of a wayland client using unix sockets, and well in other languages it was not difficult at all, I did it in hare, c, typescript (deno), and in the end I wanted to try with a language that I had never used, Haskell, and I learned many things but I still don't know what a monod is, anyway, here I leave a link to the code for those who are interested: https://gitlab.com/-/snippets/3711372
#haskell #programming #wayland

maralorn,
@maralorn@chaos.social avatar

@neloj This is fracking awesome. Really cool!

Monads are the bane of 's image, they are really not that important, so don’t worry about it.

Jose_A_Alonso,
@Jose_A_Alonso@mathstodon.xyz avatar

The Haskell Unfolder Episode 25: from Java to Haskell. ~ Edsko de Vries (@EdskoDeVries), Andres Löh (@kosmikus). https://www.youtube.com/live/YwshlQXKO80 #Haskell #FunctionalProgramming

kosmikus,
@kosmikus@functional.cafe avatar

Later today, 2024-05-15, at 1830 UTC, join Edsko and me for the 25th episode of the #Haskell #Unfolder "from #Java to Haskell" live on #youtube.

https://well-typed.com/blog/2024/05/haskell-unfolder-episode-25-from-java-to-haskell/

kosmikus,
@kosmikus@functional.cafe avatar

@mangoiv @maralorn Yes, I agree with this view. I don't think Maybe is the right analogy. The MVar being empty is not a case you have to explicitly deal with, it already has a behaviour attached to it (blocking). Regarding the missing entry in the square, isn't that just an IORef?

maralorn,
@maralorn@chaos.social avatar

@kosmikus

@mangoiv

Yeah, It's kinda IORef but I thought that doesn't count because it has less concurrency guarantees.

But I think I get now why MVars are much more useful. I have even used TMVars myself as locks when the action I wanted to do with it contained effects.

crmsnbleyd,
@crmsnbleyd@emacs.ch avatar

how the hell do you add dependencies in Haskell stack, I add yesod to the build-depends in the cabal file like shown in the stack example but on running stack build it fails saying it couldn't find yesod, and then the line is removed from the cabal file. Haskell ecosystem is hell.

crmsnbleyd,
@crmsnbleyd@emacs.ch avatar

@hungryjoe @6d03 thanks for the help, I'd been looking at old documentation, silly me

hungryjoe,
@hungryjoe@functional.cafe avatar

@crmsnbleyd @6d03 NP

I personally really like how Haskell Stack works (package sets are amazing), but the interactions between it and the Cabal file are definitely confusing

haskell,
@haskell@fosstodon.org avatar

"We don’t have too many String types" – The ultimate guide to Strings by Julian Ospald

https://discourse.haskell.org/t/the-ultimate-guide-to-haskell-strings/9538

DiazCarrete, (edited )
@DiazCarrete@hachyderm.io avatar

I know that Megaparsec doesn't backtrack automatically and that you have to use "try" for that, but this behavior of "many" was unexpected. Why oh why doesn't it parse the final space?
https://stackoverflow.com/a/78355045/1364288
Maybe I didn't read the documentation thoroughly, but I don't think it's actually spelled out in the Haddocks?

exa,
@exa@mastodon.online avatar

@DiazCarrete
+1 for the other suggestion here: do not eat space before the lexemes (as beginner tutorials tend to show) -- always eat it after the lexemes (and only after the lexemes!), and do it reliably. Hard-learned lesson.

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@DiazCarrete IIRC, we don't "try" by default because it can cause excessive backtracking, and having that even be a possibility holds references to things, increasing memory usage, and decreasing performance.

So, yeah, anytime you want to "noncommittally consume", you have to use try explicitly.

haskell,
@haskell@fosstodon.org avatar

The GHC developers are very pleased to announce the release of GHC 9.10.1! 🎉

On the menu:
→ GHC2024 language edition
→ Linear let and where
bindings
→ Annotation of exceptions with backtraces
→ Required type arguments for functions
→ Javascript FFI support in the WebAssembly backend
… and many more!

https://discourse.haskell.org/t/ghc-9-10-1-is-now-available/9523

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