Frequently Asked Questions about Assignments
Q: Can I change the names, types, or specifications of required functions?
A: No.
Q: Can I add or remove the rec
keyword from a function definition without
changing the function’s type?
A: Yes.
Q: May I use helper functions?
A: Yes. You do not have to nest them inside the primary function
you are implementing; you are free to write them before it.
Q: Can I use library X as part of my solution?
A: If you’d like us to consider adding a library to the build scripts
used by the grader, please ask! We have been known to do so in the
past. But until we do so, sorry, your solutions may not require the
grader to link any additional libraries beyond what the release code
already links.
Q: May I change provided interface (.mli
) files?
A: There are well-marked blocks of code in the .mli
files that may not be changed,
because those blocks declare the names and types against which we
will test your solution. Outside of those well-marked blocks,
you are permitted to add new declarations to the .mli
files, because
additional names and types the course staff is unaware of will not
impair our testing.
Q: Can the whole class get an extension on this assignment
because it’s really hard?
A: No. Just do your best to finish whatever level of scope
you can.