@mangoiv@functional.cafe
@mangoiv@functional.cafe avatar

mangoiv

@mangoiv@functional.cafe

Your average Haskell + Nix person; I am interested in modern functional programming languages like lean4 and koka, recently also elixir.

Currently finishing Bachelor's and writing Haskell for wire messenger.

Sometimes I build mechanical keyboards.

I am interested in discussions if the goal is to learn something, if you're just trying to persuade me, please leave me alone.

I will post in English and will occasionally boost German (network-)politics related things.

he/him is fine

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

mangoiv, to haskell
@mangoiv@functional.cafe avatar

I feel like although for nerds like me putting more types in a language is a cool thing, what would be much more important as a topic of research, in practise, is reducing the syntactic overhead of type systems. I recently heard so many complaints about this, I feel like we’re not there yet; I do agree.

mangoiv, to haskell
@mangoiv@functional.cafe avatar

Squeal is so fun!
But also so slow to compile!

https://flora.pm/packages/@hackage/squeal-postgresql

mangoiv, to NixOS
@mangoiv@functional.cafe avatar

meeting notes from today's board meeting, the only topic they talked about was the sponsorship policy:

https://discourse.nixos.org/t/open-board-call-2024-03-20/41898

mangoiv, to NixOS
@mangoiv@functional.cafe avatar
mangoiv, to random German
@mangoiv@functional.cafe avatar

I don’t remember @bobkonf to be that expensive - have you changed something? 🥲

mangoiv, to random German
@mangoiv@functional.cafe avatar

Hey @kosmikus perhaps something you will like: https://mangoiv.com/ghci-module/ depending on what you said on the podcast. Still a bit barebones still but the idea is what you’re describing :3

mangoiv, to random
@mangoiv@functional.cafe avatar

@maralorn did you do something about the icons in nom? It looks much better now for some reason! Thank you for fixing that <3

mangoiv, to random
@mangoiv@functional.cafe avatar

Hi everyone!

I have written a little snippet in which I explore some "free" generic programming in Haskell, where you define your types as polynomials and then can use a lot of their structure to program on them, this enables more powerful things than deriving Foldable because the structure of the types actually enable the folding, not some compiler magic. I can already show that this works better by fmapping and folding types for free that we cannot (stock/ newtype) derive Foldable or Functor instances for in GHC. (thinking about newtype instances where the type variables don't occur in the correct spot)

I wrote a little snippet of what this can do (for example) at the very end. I would be happy about some feedback and especially whether this is novel enough to be worth a blogpost or something like that :)

https://git.sr.ht/~mangoiv/haskell-sandbox/tree/main/item/Recursion.hs
or, if you just want to skip to the chase,
https://git.sr.ht/~mangoiv/haskell-sandbox/tree/main/item/Recursion.hs#L443-510

mangoiv, to random
@mangoiv@functional.cafe avatar

Idk if it’s window manager/compositor specific but xmonad is 20x more stable and less buggy than hyprland. We really need waymonad.

Things I like about Wayland:

  • Gestures, less tearing
  • everything is configured within the compositor

Things I don’t like about hyprland/Wayland:

  • monitor support is abysmal (can’t bring my mouse from laptop to external monitor??)
  • x Wayland looks like garbage on high dpi displays
  • need to enable “experimental” features to use Wayland with certain programs, electron apps are one example
  • shit doesn’t work out of the box with display managers. Neither of them. Tried sway and hyprland
mangoiv, (edited ) to haskell
@mangoiv@functional.cafe avatar

Is it just me or is this whole thing about „don’t do X if you don’t really know what you’re doing“ really counter productive? Many people live in fear of X now and don’t start thinking if X is an actual problem or learn what the problems are that could rise from X.

I see this very often in the ecosystem where the solution to doing X properly is often learnt in a few minutes investigation.

mangoiv, (edited ) to random
@mangoiv@functional.cafe avatar

Another possible way of representing existentials more modularly, (this composes quite well) which is slightly different to what Edsko showed:

Thanks for this Haskell Unfolder @kosmikus and Edsko, it was great again :)

mangoiv, to random
@mangoiv@functional.cafe avatar

@kosmikus have you thought about writing functions in Terms of Proxy# and then providing a „common use“ wrapper that uses a Proxy instead?

That is just one more reminder that it would be so nice to have an {-# AMBIGUOUS #-} pragma that does AllowAmbiguousTypes for just one definition. (To avoid accidental pollution with definitions that can’t be inferred or hide type variables)

Thank you for the episode, it was once again quite nice :)

mangoiv, to haskell
@mangoiv@functional.cafe avatar

Who’s coming to MuniHac 2023?
Next week in - who would’ve guessed it - Munich!

https://munihac.de/2023.html

mangoiv, to random
@mangoiv@functional.cafe avatar

Wide awake after 4 hours and 30 minutes of sleep to head off to

(I really, really hope I’ll be able to sleep in the train) :blobcatcomfslep:

mangoiv, to sircmpwn
@mangoiv@functional.cafe avatar

Every time I see things like this, I feel very sad that people choose to be like this on the internet. I do use Hyprland but I will definitely keep steering clear of their surrounding community. This is really depressing.

https://drewdevault.com/2023/09/17/Hyprland-toxicity.html

Also thank you @sircmpwn , this is a really good post and it's good that this gets some attention!

mangoiv, to random
@mangoiv@functional.cafe avatar

Hey guys, I made a thing:

https://git.mangoiv.com/mangoiv/haskell-note

It is a (somewhat wip) pastebin microblogging style written in Haskell using fused-effects, servant, one-time-password, lucid2, htmx, styled with bulma v1.

There’s a nixos module you can use to get it running on your machine.

My instance is hosted at https://bin.mangoiv.com/

mangoiv, (edited ) to random
@mangoiv@functional.cafe avatar

random stuff:
I have long ago started writing Haskell types like: newtype A = MkA {unA :: B}, to avoid punning. So far, so good. However, someone told me that writing this: f (MkA b) = ... is somewhat odd because you don't MkA, you only do that the other way around. So I have started doing this very cursed thing everywhere I have a MkA-like constructor: f (unA -> b) = ...

mangoiv, to random
@mangoiv@functional.cafe avatar

Don’t host your own mail server.

Don’t do it.

If Google decides it will be the only one not accepting mails from you 50% of the time, then you won’t be sending mail to 90% of your customers. 🥲

mangoiv, to random
@mangoiv@functional.cafe avatar

Is functional.cafe going to federate with threads?

mangoiv, to random
@mangoiv@functional.cafe avatar

@yvan what do you think about this: https://www.well-typed.com/blog/2023/03/purgatory/ ? Does it align with your work? Can you perhaps even merge it?

mangoiv, to NixOS
@mangoiv@functional.cafe avatar

sudo is unmaintained on

all thanks to the great work of the determinate systems community.

mangoiv, to random
@mangoiv@functional.cafe avatar

@kosmikus about you mentioning rel8, have you actually been able to use this in a reasonably sized project? I have found the compile times for it prohibitively high, even for trivial modules and on a relatively small project. Now I’m using squeal which is still very slow to compile but it’s several times faster than rel8.

mangoiv, to haskell
@mangoiv@functional.cafe avatar

Out:
(A -> D) -> B -> C -> D

In:
(A -> (D, B, C) ) -> D

#haskell

mangoiv, to random German
@mangoiv@functional.cafe avatar

Here’s mine :ablobcatheart:

mangoiv, (edited ) to random
@mangoiv@functional.cafe avatar

Who’s coming to ZuriHac?! I’m so excited!

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