weekdaze: A school-timetable problem-solver.

[ application, library, program, teaching ] [ Propose Tags ]

An application which searches for a solution to the configured school-timetable problem.

[Skip to Readme]
Versions [faq],,
Change log changelog.markdown
Dependencies array, base (==4.*), bytestring, Cabal (>=1.10), containers (>=, cryptohash (>=0.8.0), data-default, deepseq (>=1.1), directory, extra, factory (>=0.3.1), filepath, hxt (>=, mtl, parallel (>=3.0), random, time, toolshed (>=0.17), unix, weekdaze, xhtml [details]
License LicenseRef-GPL
Copyright (C) 2013-2015 Dr. Alistair Ward
Author Dr. Alistair Ward
Maintainer mailto:weekdaze@functionalley.com
Category Application, Teaching
Home page https://functionalley.com/WeekDaze/weekdaze.html
Bug tracker mailto:weekdaze@functionalley.com
Source repo head: git clone https://github.com/functionalley/WeekDaze
Uploaded by AlistairWard at 2020-08-10T10:38:21Z
Distributions NixOS:
Executables weekdaze
Downloads 477 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]



Link with the package "HDBC-mysql" & consequently the native MySQL-interface (which will require a development package for mysqlclient), which the application can use to connect to a MySQL data-server.


Link with the package "HDBC-odbc", which the application can use to connect to a generic data-server.


Whether the llvm compiler-backend has been installed and is required for code-generation.


Whether to print SQL-queries as the database is read. N.B.: only relevant when either of the flags HDBC-odbc or HDBC-mysql is True. N.B.: the output will be more readable when queryDBConcurrently is off.


Whether to print the rows read from the database. N.B.: only relevant when either of the flags HDBC-odbc or HDBC-mysql is True. N.B.: the output will be more readable when queryDBConcurrently is off.


Whether database-queries should be issued concurrently.


Link statically, perhaps for deployment in an environment where one doesn't have root access.


Build for parallel runtime.


Link with package "unix" when available.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for weekdaze-

[back to package description]


Build Status Hackage License: GPL v3 Haskell

This is "WeekDaze", an application which searches for solutions to the school-timetable problem.

It can read problem-specifications either from a relational database or from an XML-file.


  • It can be built and installed using Cabal.
  • Configuration can be read by either from a local XML-file using the Haskell package hxt, or by establishing database-connectivity using one or more of the database-backend Haskell packages "HDBC-odbc" & "HDBC-mysql", & this affects how the product should be built.
  • In order to connect to an arbitrary type of RDBMS, HDBC-odbc should be installed, but when connecting specifically to MySQL, one can alternatively install HDBC-mysql (which is slower).
  • Before building these database-backend Haskell packages on GNU/Linux the following prerequisites must be observed:
    • HDBC-odbc: requires the development version of the package "unixODBC".
    • HDBC-mysql: requires either "libmariadb-devel" or the development version of the package "libmysqlclient". CAVEAT: HDBC-mysql- is rather picky about the versions of other Haskell packages.
  • Before using ODBC to establish database-connectivity:
    • An appropriate driver for the type of RDBMS, e.g. MyODBC-unixODBC for MySQL, must be installed.
    • A system-wide configuration-file "odbcinst.ini" must be created to define the above database-driver, & a configuration-file ".odbc.ini" must be created to define the available DSNs. These files are described for a various types of DBMS in odbcinst & for MySQL in MySQL Connector/ODBC (examples for the latter case are included in this package).
  • An initial MySQL-database can be constructed using the packaged SQL-files.


The documentation is in "man/".


The directory "xml/" contains example-configurations and the directory "xhtml/" contains the corresponding solutions. The packaged SQL-files contain the same example-configurations.


For information on copying and distributing this package, see the file "LICENSE" in this directory.


Bug-reports should be emailed to weekdaze@functionalley.com.


The test-suite can be run using:

cabal configure --enable-tests;
cabal build;
cabal test --show-details=always;


This application is written and maintained by Dr. Alistair Ward.