I want to reimplement software engineering metrics using moose chef instead of moose cook.

for example to compute cohesion I would do (among other things):
     self queryAllOutgoingDependencies atClassScope withinMyPackage

i.e. :
1- from a package (self)
2- get all its "outgoingdependencies" (outgoing does not mean going outside the package, this includes dependencies within th package)
3- put that at class level (because we are interested in dependencies between classes within or outside the package)
4- and filter those that are inside self

I want the result to be all dependencies from classes within package self going to classes within package self.

but (from the moose chef documentation):

"The scope operators exclude self loops by default (this was also the default in Moose Cook). That is, the query result will not contain the receiver scope itself: you will not get something like PackageX -> PackageX in the result (the reason for this is that in general algorithms do not like graphs with self loops)."

So:
- should we change that default?
- should I change my query?

I believe if there is a method to exclude self loops (withoutSelfLoop), it should not be done automatically in some case let those who want it do it themselves.

What say you?

nicolas