Dependently-typed tensor computation.
- Parametric polymorphism
- Compile time type checking
- Dependently typed tensors
- Multiple targets(Tensorflow, PyTorch, more to come!)
- Pipes operator
Pipes operator is a syntax sugar for chained function calls inspired by F#, Elixir and R. For example,
x |> lin1 |> leaky_relu(p=0.2) |> sigmoid
compiles to
x = lin1(x)
x = leaky_relu(x, p=0.2)
x = sigmoid(x)
The language is not usable in production or development.
- implement module pattern matching
- type level computation (resolved tensor dimension)
- BUG: dimension mismatch for mnist example need to create fresh type variables for different static forward functions
- BUG: non-determinism
- BUG: impl Hash, Eq for Type
- set up examples and tests
- set up commandline
- more examples
- better errors in parser
- code gen: PyTorch
- add more examples
- lift dim and tsr to top level
- add dim level computation dim1 * dim1
- use Linear as L; aliasing
- add binary ops (+, -, *, /, %)
- add if else expression
- add let binding
- add more tests