renaming some datatypes to be more self-explanatory
More renaming of types. Numerical expressions are NumE and all other expression types are Elt
Change the work function to accept rate declarations as a records, rather than as function arguments