module SumTypes { type Option = | Some(int) | None var value: Option action init = all { value' = None } action setValue(x: int): bool = all { value' = Some(x) } action incrValue = all { match value { | Some(x) => value' = Some(x + 1) | None => value' = None } } run exampleTest = init.then(setValue(40)).then(incrValue).then(incrValue) }