Creol: The Type System

Ingrid Chieh Yu

In this presentation, I will not introduce the whole Creol type system, but focus on the typing rules for method invocations, especially, asynchronous invocations.

In order to type check method calls, the types of actual and formal parameters must be compared. For synchronous invocations, type checking is straightforward as the types of the actual in- and out-parameters can be derived directly from the calls. In contrast, type checking asynchronous invocations is more involved since the correspondence between in- and out-parameters is controlled by label values. The increased freedom in the language gained from using labels, complicates the type analysis. In order to address asynchronous invocations, we use the effect system to guarantee type correct signatures for asynchronous method calls.