mirror of
https://github.com/anoma/juvix.git
synced 2024-12-15 01:52:11 +03:00
eebe961321
* Closes #1964 Adds the possibility to define operator fixities. They live in a separate namespace. Standard library defines a few in `Stdlib.Data.Fixity`: ``` syntax fixity rapp {arity: binary, assoc: right}; syntax fixity lapp {arity: binary, assoc: left, same: rapp}; syntax fixity seq {arity: binary, assoc: left, above: [lapp]}; syntax fixity functor {arity: binary, assoc: right}; syntax fixity logical {arity: binary, assoc: right, above: [seq]}; syntax fixity comparison {arity: binary, assoc: none, above: [logical]}; syntax fixity pair {arity: binary, assoc: right}; syntax fixity cons {arity: binary, assoc: right, above: [pair]}; syntax fixity step {arity: binary, assoc: right}; syntax fixity range {arity: binary, assoc: right, above: [step]}; syntax fixity additive {arity: binary, assoc: left, above: [comparison, range, cons]}; syntax fixity multiplicative {arity: binary, assoc: left, above: [additive]}; syntax fixity composition {arity: binary, assoc: right, above: [multiplicative]}; ``` The fixities are identifiers in a separate namespace (different from symbol and module namespaces). They can be exported/imported and then used in operator declarations: ``` import Stdlib.Data.Fixity open; syntax operator && logical; syntax operator || logical; syntax operator + additive; syntax operator * multiplicative; ``` |
||
---|---|---|
.. | ||
Compile | ||
Dev | ||
Doctor | ||
Eval | ||
Extra | ||
Format | ||
Html | ||
Repl | ||
Typecheck | ||
Base.hs | ||
Clean.hs | ||
Compile.hs | ||
Dev.hs | ||
Doctor.hs | ||
Eval.hs | ||
Format.hs | ||
Html.hs | ||
Init.hs | ||
Repl.hs | ||
Typecheck.hs |