http://www.macs.hw.ac.uk/~rjr/dolweb/docs/laurillardmoddoc.htm