weekdaze- A school-timetable problem-solver.

Safe HaskellNone




Dr. Alistair Ward
  • This is a group of student-bodies, merged for the duration of a single booking in the timetable, or the bookings required for a single course.
  • In contrast to a student-body, the members of a student-class don't have identical Profiles, but their requirements are sufficiently similar to permit them to study a course together.
  • Temporarily merging student-bodies, better utilises the available teachers & locations, by increasing the pool of students available to be taught simultaneously.



type StudentClass = Set StudentBody Source #

Whilst a student-body represents a group with identical requirements, when one or more student-bodies have similar requirements for a single subject, they can be temporarily merged to form a class.

type MnemonicSeparator = String Source #

Used to separate mnemonics, when merging a student-class into a student-body.


tag :: String Source #

Used to qualify XML & CSS.


merge :: MnemonicSeparator -> StudentClass -> StudentBody Source #

  • Remove the boundaries separating the groups of students within a class, to form a single student-body.
  • The mnemonics for the constituent student-bodies are concatenated to form a composite mnemonic for the new student-body.
  • CAVEAT: any student-Ids common to more than one student-body within the student-class, will be merged.
  • CAVEAT: a null set, will result in a null mnemonic, which will be rejected by mkStudentBody.

getSize :: Foldable foldable => foldable StudentBody -> NStudents Source #

  • Counts the number of students in a class.
  • CAVEAT: assumes that the student-bodies, from which the class is composed, are distinct.


toHtml :: StudentClass -> Html Source #

Convert to XHTML.