Module Statement.For

type t('M, 'T) = {
  1. init: option(init('M, 'T)),
  2. test: option(Expression.t('M, 'T)),
  3. update: option(Expression.t('M, 'T)),
  4. body: Statement.t('M, 'T),
  5. comments: option(Syntax.t('M, unit)),
};
and init('M, 'T) =
  1. | InitDeclaration(('M, VariableDeclaration.t('M, 'T)))
  2. | InitExpression(Expression.t('M, 'T))
;
let pp: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => Format.formatter => t('M, 'T) => unit;
let show: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => t('M, 'T) => string;
let pp_init: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => Format.formatter => init('M, 'T) => unit;
let show_init: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => init('M, 'T) => string;