prettify README

This commit is contained in:
Emile Clark-Boman 2026-01-28 17:27:48 +10:00
parent eeb100df00
commit 0a589f38fe

View file

@ -1,11 +1,25 @@
# NixTypes (nt)
# ❄ NixTypes (nt) ❄
<p align="center">Because Nix doesn't hold your hand here, it shoots your fingers off and spits out the world's longest stack trace...</p>
>[!WARNING]
> ✨ **Under Construction**
> NixTypes is quite a large project to do alone, but it's been staring at me for the last 12 months.
> If you're interested feel free to contact me and/or submit pull requests :yellow_heart::yellow_heart:
> **Be not afraid!** It's only a matter of time until NixTypes is ready for use!
## Conventions
1. Avoid the `with` keyword like your life depends on it!!
Every LSP I've tried has handled them terribly. Not to mention it absolutely
pollutes the scoped namespace ;-; Just stick to writing out `let ... in`. And **iff**
you **absolutely** need it to condense code in a meaningful way, then isolate its
use to a very **very** small scope. Not your entire file!
2. All names/identifiers should be written in **camelCase**, except *"Types"* (aka specifically structured attribute sets).
Which should be written in **PascalCase**. **Typeclasses** should be written in **PascalCaseWithApostrophe'**.
## 💙 Huh?
Nix has no type system duh!? Sure that's fine for configuring your distro,
but what about developing in Nix itself? The code people write tends to be unnecessarily complex
or full or bugs. Nix needs standards, and NixTypes gives you those.
## :rainbow: More Than Types
NixTypes isn't *exactly* just a type system. **You didn't think I'd give you types
then say goodbye did you?** Then we'd be right back where we started... Instead
there's a whole standard library built from the ashes.
Some of the sweet sweet batteries included:
1. **Pattern Matching** (finally!!)
2. **Attribute Set Parsing**
3. **Pretty Printing** (no more `builtins.toString` errors)
4. **A Module System** (say goodbye to managing all your `imports`)
5. **Types, Types, & More Types** (Maybe/Some/None, Monads, Tree, Rose, etc)