Better specification of expressions + some changes (mostly backward compatible)

- specify what "logical result" and "result" is
- "define" now returns the value of expression
- logical result can be assigned to a variable