After you implement your code in nfa.ml, you can run the public tests as: ocaml public_RE_to_str.ml ocaml public_str_to_RE.ml ocaml public_NFA_step.ml ocaml public_NFA_accept.ml ocaml public_RE_to_NFA.ml ocaml public_str_to_NFA.ml The outputs of each code should match the following files, respectively: outputs/public_RE_to_str.out outputs/public_str_to_RE.out outputs/public_NFA_step.out outputs/public_NFA_accept.out outputs/public_RE_to_NFA.out outputs/public_str_to_NFA.out Some code is provided in testUtils.ml to help print out data structures. You do not/should not use code in testUtils.ml in your code, it is there solely for the purpose of testing.