Making a Type Checker/LSP for Nix

Building a TypeScript-style type checker and LSP for Nix with algebraic subtyping and negation types