docs: BasicExpressionCompiler asBasicCompiler(final Label reattachPoint) {
      return new BasicExpressionCompiler(
          new CompilerVisitor(
              parameters,
              varManager,
              // Use a lazy supplier to allocate the expression detacher on demand.  Allocating the
              // detacher eagerly creates detach points so we want to delay until definitely
              // necessary.
              Suppliers.memoize(() -> detacherFactory.createExpressionDetacher(reattachPoint)),
              reporter,
              registry));
    }