The optional package

Using type-classes for optional function arguments. Although this implements that which is available in other programming languages, and is a lot safer than in those environments, it is still of dubious morality. Use with care, question and caution.