filter ARGV where necessary to allow some seemingly cyclic dependencies
formula locks are not reentrant, so uniq! this list for now
detect unresolvable cyclic dependencies before we blow the stack