sml: add initial support for value objects
sml: implement exceptions in terms of value objects