Describir: Type-directed operational semantics for gradual typing