import entity from "ri.newgen"
import expression from "ri.newgen"
import effect from "effects.newgen"
import statement from "ri.newgen"
map_entity_int = entity->int
step_clause = reduction:map_entity_int + private:entity* + shared:entity* + transformation:int + nowait:unit
step_directive = type : int x persistent block : statement x clauses : step_clause*
step_directives = persistent statement->step_directive
map_effect_bool = persistent effect -> bool
The propagation origines of the SEND (and RECV) region is tracked by the step_point and map_step_point domains. For a SEND (or RECV) region, the step_point associated in the map_step_point table gives the original SEND (or RECV) region before propagation (fields module, stmt and data).
step_point = module : entity x persistent stmt : statement x persistent data : effect
map_step_point = persistent effect -> step_point
step_comm = path: map_step_point x interlaced: map_effect_bool x partial: map_effect_bool