We probably shouldn't use AssertionError to indicate programmer errors.  Assertions should convey internal logic flaws.  I can fix this up.