Using type-classes for optional function arguments.