weekdaze-0.0.0.3: A school-timetable problem-solver.

Safe HaskellNone
LanguageHaskell2010

WeekDaze.Data.Student

Contents

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
Describes the attributes of a student.
Synopsis

Types

Type-synonyms

type Id = String Source #

  • A unique identifier, which may be merely their name, or more likely a registration-number of some unspecified format.
  • Though arbitrary, a string adequately covers all possibilities.

type KnowledgeRequirements level = Requirements (Knowledge level) Source #

A specification of subject-requirements, partitioned into those considered core & the optional remainder.

Data-types

data Profile level stream teachingRatio Source #

The attributes of a student.

Instances
(Eq stream, Eq level, Eq teachingRatio) => Eq (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

(==) :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Bool #

(/=) :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Bool #

(Ord stream, Ord level, Ord teachingRatio) => Ord (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

compare :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Ordering #

(<) :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Bool #

(<=) :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Bool #

(>) :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Bool #

(>=) :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Bool #

max :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Profile level stream teachingRatio #

min :: Profile level stream teachingRatio -> Profile level stream teachingRatio -> Profile level stream teachingRatio #

(Show level, Show stream, Show teachingRatio) => Show (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

showsPrec :: Int -> Profile level stream teachingRatio -> ShowS #

show :: Profile level stream teachingRatio -> String #

showList :: [Profile level stream teachingRatio] -> ShowS #

(NFData level, NFData stream, NFData teachingRatio) => NFData (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

rnf :: Profile level stream teachingRatio -> () #

(Default stream, Eq stream, XmlPickler level, XmlPickler stream, XmlPickler teachingRatio, Ord level, Real teachingRatio, Show level) => XmlPickler (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

xpickle :: PU (Profile level stream teachingRatio) #

(Ord level, Real teachingRatio, Show level) => SelfValidator (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

getErrors :: Profile level stream teachingRatio -> [String] #

isValid :: Profile level stream teachingRatio -> Bool #

Resource (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

getAvailability :: Profile level stream teachingRatio -> Availability Source #

isAvailableOn :: Day -> Profile level stream teachingRatio -> Bool Source #

RealFrac teachingRatio => HumanResource (Profile level stream teachingRatio) Source # 
Instance details

Defined in WeekDaze.Data.Student

Methods

getNTimeslotsPerWeekOfTeaching :: NTimeslots -> Profile level stream teachingRatio -> NTimeslots Source #

getNTimeslotsPerWeekOfNonTeaching :: NTimeslots -> Profile level stream teachingRatio -> NTimeslots Source #

getGroupMembership :: Profile level stream teachingRatio -> Membership Source #

getMaybeFreePeriodPreference :: Profile level stream teachingRatio -> Maybe FreePeriodPreference Source #

Constants

knowledgeRequirementsTag :: String Source #

Used to qualify XML.

teachingRatioTag :: String Source #

Used to qualify SQL & XML.

defaultTeachingRatio :: Num teachingRatio => teachingRatio Source #

The default value for getTeachingRatio.

Functions

amalgamateKnowledgeRequirements :: Ord level => KnowledgeRequirements level -> Knowledge level Source #

A combination of the core & optional knowledge-requirements.

deriveAmalgamatedKnowledgeRequirement :: Ord level => Profile level stream teachingRatio -> Knowledge level Source #

Get the core & optional subject-requirements.

unsubscribe :: Membership -> Profile level stream teachingRatio -> Profile level stream teachingRatio Source #

Unsubscribe from the specified set of groups.

Constructor

mkProfile Source #

Arguments

:: (Ord level, Real teachingRatio, Show level) 
=> stream

The stream for this student.

-> KnowledgeRequirements level

The subjects to study.

-> Availability

The days on which this student can attend school.

-> teachingRatio

The portion of the working-week allocated to tuition.

-> Membership

The groups of which this student is a member.

-> Maybe FreePeriodPreference

Any preference for the position within each day, of free time-slots.

-> Profile level stream teachingRatio 

Smart constructor.

Predicates

hasAnyCoreKnowledgeRequirements :: Profile level stream teachingRatio -> Bool Source #

True if the student has any core subject-requirements.

hasAnyOptionalKnowledgeRequirements :: Profile level stream teachingRatio -> Bool Source #

True if the student has any optional subject-requirements.

requiresAnySubjectBy Source #

Arguments

:: Ord level 
=> (Subject level -> Bool)

Predicate.

-> Profile level stream teachingRatio 
-> Bool 

True if the student is interested in a subject, according to the specified predicate.