about summary refs log tree commit diff
path: root/yants.nix
AgeCommit message (Collapse)AuthorFilesLines
2019-08-28 feat: Introduce composable type errors and type parameter checkingVincent Ambo1-101/+268
This refactoring moves the type definitions into a recursively evaluated attribute set, which makes it possibe to refer to types in the definitions of other types. This functionality is used to type-check some of the type parameters passed in to other types. This is not yet done for all higher-order types because the evaluation semantics of Nix make it less useful for some cases. Further the definition of a type itself is now a stricter representation that works for all types except typed functions, which allows for composable error messages.
2019-08-28 feat: Add rough initial version of sum typesVincent Ambo1-1/+15
Sum types are represented as attribute sets with a single key in them.
2019-08-28 feat: Implement support for typing functionsVincent Ambo1-1/+14
The defun helper takes a type signature and a function and makes a typed version. Because we can.
2019-08-28 chore: Add Google's copyright headerVincent Ambo1-0/+3
2019-08-28 feat: Improved error message for missing struct fieldsVincent Ambo1-1/+2
2019-08-28 feat: Add enum supportVincent Ambo1-15/+22
2019-08-28 refactor: Gain back a few more linesVincent Ambo1-14/+8
2019-08-28 refactor: Drop back to below 100 lines :)Vincent Ambo1-6/+2
2019-08-28 feat: Add function typeVincent Ambo1-2/+3
It's not currently possible to check arguments for curried functions, but there might be something on the horizon for attribute set functions.
2019-08-28 feat: Add derivation typeVincent Ambo1-0/+3
2019-08-28 feat: Support better error messages for list/attrs element checksVincent Ambo1-5/+13
2019-08-28 feat: Initial check-in of type system sketchVincent Ambo1-0/+88