Note that all our students only have one name (it's a small town, what do you want?), and each student cannot be added more than once to a grade or the roster.
If a test attempts to add the same student more than once, your implementation should indicate that this is incorrect.
What does roster mean here? a particular grade’s roster or the entire school’s roster.
If the edge case is encountered, what is the expected emitted error? Would it be through the type system as a result or an exception?
School roster. Most tracks require you implement a roster function that returns the entire school.
This is different on each track. Exercism uses a Test Driven Development model. You should run the tests and see what they tell you is expected!! (Or read the test files.) That should clearly indicate the expectations. Did you try that?