Statement.For
type ('M, 'T) t = {
init : ('M, 'T) init option;
test : ('M, 'T) Expression.t option;
update : ('M, 'T) Expression.t option;
body : ('M, 'T) Statement.t;
comments : ('M, unit) Syntax.t option;
}
and ('M, 'T) init =
| InitDeclaration of 'M * ('M, 'T) VariableDeclaration.t
| InitExpression of ('M, 'T) Expression.t