The problem with sharing a mutable options object can be seen in this contrived example:

```coffeescript
# a.coffee
b = require './b'
c = require './c'
```

```coffeescript
# b.coffee
doctest = require 'doctest'

doctest.options.module = yes
```

```coffeescript
# c.coffee
doctest = require 'doctest'

doctest './d.coffee'  # doctest.options.module is true!
```

A constructor function would allow options to be changed in an isolated manner. In fact, perhaps we should *only* export a constructor function:

```coffeescript
Doctest = require 'doctest'

doctest = new Doctest
doctest 'foo.coffee'
# We could allow the instance's options to be changed on demand:
doctest.options.module = yes
doctest 'bar.coffee', 'baz.coffee'
```