Variables and Constants
Free variables can be defined simply by giving them a name
#![allow(unused)] fn main() { let b = Free "b" let r = Free "r" let l = Free "l" }
Constants are written with the constructor Bound
. A node/baker constant is
written by its name:
#![allow(unused)] fn main() { let b1 = Bound (N "b1") }
There are smart constructors for level and round constants so that they can be written easily:
#![allow(unused)] fn main() { let l3 = level 3 let r0 = round 0 }
Once a free variable is bound to a constant by matching, it is bound to this same constant for the rest of the scenario.
Catch-all variables are written by the constructor Any
or simply
(two underscore symbols):
#![allow(unused)] fn main() { __ }