added error reporting and a test
fixed local name uniqueness check
function calls now check that argument types are compatible
a subclass may be assigned to a superclass
virtual methods work
added test for assigning a base class into a subclass
assertions print a helpful message before crashing
if one test fails, it won't stop the rest
name binding now has better error checking
added test
object equality works with inheritance
only lvalues may be assigned to
privates are private
function can return a subclass of its return type
added documentation