A problem with this is that people want to be able to put comments as the first statement, in particular, as a copyright statement.  I think it should be something more like this:

```scala
opt(whiteSpace) ~> opt(opt(comment) ~> opt(whiteSpace) ~ rep1(importExpression)) <~ opt(whiteSpace) ~ opt(comment) <~  opt(whiteSpace) ~ ... => {
  case imports ~ comment ~ args ~ content => ...
```

(btw, the `<~` and `~>` should make the case statement simpler, removing all the unnecessary `_` matchers, `<~` means ignore the RH side and use the LH result, while `~>` means the opposite)

Need to write some tests to prove that the above works, but essentially, it tries to parse an optional first comment and import statement, and then parses the comment that will contain the scaladoc for the method.  Notice that it wraps the first comment up with at least one import statement, this ensures that if there's no import statement, then the scaladoc comment is consumed by the first comment parser.