MangoIV.
What I'm doing
- I study computer science at the university of Leipzig
- I work for MLabs as Haskell and Nix developer
- Currently I'm interested in
- types (yes, boring)
- Effectsystems
- compiling to categories
agdalean4
- keyboards and PCBs such as the DracuLad and the Le Chiffre Bluetooth drop-in replacement PCB
Keyboard Projects
- DracuLad
- Le Chiffre Bluetooth drop-in replacement PCB
- Le Chiffre BLE firmware
- My fork of the qmk firmware
- Pinsel, a Sweep-like keyboard based around the nrF Seeduino xiao
- My a dux dux config
- My corneish-zen config
- A macropad you can gift someone for christmas
- My fork of the Adafruit nrF bootloader
- DracuLady, a bluetooth split board with integrated MCU (I think at some point I accidentally lost all the files, gg. got working protos tho)
- My humminbird config
- Cheap boi, my first self-designed keyboard with an ortho layout
My sourcehut
Due to recent events wrt GitHub, I have decided to leave it for my personal projects that are not keyboard related (most of the keyboard related traffic still happens here). For a summary of why this is the case, please refer to this post by the software freedom conservancy.
I have moved to sourcehut and I can really recommend you to have a look. Other alternatives to GitHub include codeberg or gitlab.
Haskell
Repositories
A heterogeneous rose tree (see for how to create a backtracking search on the typelevel without having to backtrack via instance resolution)
- Dependent If in Haskell (to be used with rebindable syntax)
Snippets
- Compose
n
functors (see for the tradeoff between creating evidence via aGADT
and using anewtype
) - stupid poc OOP experiment usecase 1 usecase 2 (adaptation of the famous comonad blogpost by Gabriela Gonzalez with modern language features (
-XOverloadedRecordDot
)) - most overengineered implementation of the
findS
algorithm, ever (see for how to useNP
fromsop-core
as a heterogenous list with a non-trivial functor and for how to sensibly use the god functionhcliftA2
) - a showcase of how far you get in terms of producttypes with only a hetereogeneous list, some newtype combinators, type- and patternsynonyms
Nix
Repositories
My NixOS dotfiles
nu-shell.nix
- A nix flake that outputs packages, docs, tests and devShell for the nushell- A batteries-included flake for a ghc devShell
Snippets
- function to flatten attributesets with a seperator (this is especially useful for flake outputs which are not allowed to be nested)