Sinject is a Scala compiler plugin to let you prohibit circular dependencies between files