We present a gradually typed language, GrEff, with effects and handlers that
supports migration from unchecked to checked effect typing. This serves as a
simple model of the integration of an effect typing discipline with an existing
effectful typed language that does not track fine-grained effect information.
Our language supports a simple module system to model the programming model of
gradual migration from unchecked to checked effect typing in the style of Typed
Racket.
The surface language GrEff is given semantics by elaboration to a core
language Core GrEff. We equip Core GrEff with an inequational theory for
reasoning about the semantic error ordering and desired program equivalences
for programming with effects and handlers. We derive an operational semantics
for the language from the equations provable in the theory. We then show that
the theory is sound by constructing an operational logical relations model to
prove the graduality theorem. This extends prior work on embedding-projection
pair models of gradual typing to handle effect typing and subtyping.Comment: Extended version with appendi