consts  evala :: ('a => nat) => 'a aexp => nat
        evalb :: ('a => nat) => 'a bexp => bool
