* @param style
   * @param maxdepth
   * @param stream
   */
  public static void explainWhy(String label, Keyword style, int maxdepth, OutputStream stream) {
    try {
      { Justification justification = Logic.getWhyJustification(label);

        { Object old$ExplanationStyle$000 = Logic.$EXPLANATION_STYLE$.get();

          try {
            Native.setSpecial(Logic.$EXPLANATION_STYLE$, ((style != null) ? style : Logic.KWD_BRIEF));
            Justification.printExplanation(justification, stream, ((KeyValueList)(Logic.$MOST_RECENT_EXPLANATION_MAPPING$.get())), maxdepth, ((Keyword)(Logic.$EXPLANATION_AUDIENCE$.get())));

          } finally {
            Logic.$EXPLANATION_STYLE$.set(old$ExplanationStyle$000);
          }
        }
      }
    } catch (ExplainException ee) {
      System.out.print(Stella.exceptionMessage(ee));
    }
  }