An EDSL for describing recipes in Haskell.
For my 3rd year dissertation I undertook a research style project to write an EDSL for describing recipes in Haskell. The language consists of a set of combinators capable of describing a variety of recipes. The combinators were then given semantics allowing recipes to be interpreted across various semantic domains such as time, cost and flavour. A kitchen environment could be represented as a set of stations. A recipe could then be scheduled in this environment producing instructions for which action should be performed on a given station and when. The source code and full report are available via the links above.