class_docstr: Downstream Teachers should implement:
  
  * get_data_for_fold(self, fold) which yields dicts that contain at least:
      * "reason" (to work with FreeFormReason)
      * "premise" (to work with PremiseHypothesisQuestionAnswer)
      * "hypotehsis" (to work with PremiseHypothesisQuestionAnswer)
class_docstr_tok: ["Downstream","Teachers","should","implement",":","*","get_data_for_fold","(","self",",","fold",")","which","yields","dicts","that","contain","at","least",":","*","``","reason","''","(","to","work","with","FreeFormReason",")","*","``","premise","''","(","to","work","with","PremiseHypothesisQuestionAnswer",")","*","``","hypotehsis","''","(","to","work","with","PremiseHypothesisQuestionAnswer",")"]
code: def add_cmdline_args(
      cls, parser: ParlaiParser, partial_opt: Optional[Opt] = None
  ) -> ParlaiParser:
      parser = super().add_cmdline_args(parser, partial_opt)
      parser.set_defaults(
          task_prompt="Given the premise, is the hypothesis an entailment, a contradiction, or neutral?"
      )
      return parser
  
imports: from parlai.core.opt import Opt
  from parlai.core.params import ParlaiParser
  from typing import Optional
  from parlai.tasks.reasoning.base import AbstractReasoningTeacher, AbstractReason, AbstractQuestionAnswer
  from parlai.tasks.reasoning.question_answer import SimpleQuestionAnswer, PremiseHypothesisQuestionAnswer
  from parlai.tasks.reasoning.reason_types.step_by_step import StepByStepReason, MWPStepsReason
  from parlai.tasks.reasoning.reason_types.free_form import FreeFormReason
label_desc: Use image node_id 1 for calling the NliTeacher obj's underlying member method code with example usage: obj.add_cmdline_args(cls, parser, partial_opt) and returns: parser