Statement.Fortype ('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