message: [expr] restructuring prologue
diff: @@ -1966,10 +1966,20 @@ impl<F: fmt::Display + Clone> fmt::Display for Expr<F> {
  }
  }
  -/// You can import this module like `use kimchi::circuits::expr::prologue::*` to obtain a number of handy aliases and helpers
  -pub mod prologue {
  +/// A number of useful constraints
  +pub mod constraints {
  use super::*;
  + /// Creates a constraint to enforce that b is either 0 or 1.
  + pub fn boolean<F: Field>(b: &E<F>) -> E<F> {
  + b.clone().square() - b.clone()
  + }
  +}
  +
  +//
  +// Helpers
  +//
  +
  /// An alias for the intended usage of the expression type in constructing constraints.
  pub type E<F> = Expr<ConstantExpr<F>>;
  @@ -1988,27 +1998,20 @@ pub mod prologue {
  E::<F>::cell(Column::Index(g), CurrOrNext::Curr)
  }
  - /// Same as [index] but for the next row.
  - pub fn index_next<F>(g: GateType) -> E<F> {
  - E::<F>::cell(Column::Index(g), CurrOrNext::Next)
  - }
  -
  pub fn coeff<F>(i: usize) -> E<F> {
  E::<F>::cell(Column::Coefficient(i), CurrOrNext::Curr)
  }
  -}
  -/// A number of useful constraints
  -pub mod constraints {
  - use super::{prologue::*, *};
  -
  - /// Creates a constraint to enforce that b is either 0 or 1.
  - pub fn boolean<F: Field>(b: &E<F>) -> E<F> {
  - b.clone().square() - b.clone()
  - }
  +/// You can import this module like `use kimchi::circuits::expr::prologue::*` to obtain a number of handy aliases and helpers
  +pub mod prologue {
  + pub use super::{coeff, index, witness, witness_next, E};
  }
  -/// The OCaml-related code
  +//
  +// OCaml-related code
  +//
  +
  +/// bindings for OCaml
  #[cfg(feature = "ocaml_types")]
  pub mod caml {
  use super::*;
  