dynamic type checking, gradual types, optional types, Grace, Moth, object-oriented programming