possible dependencies: - unix pattern __foo/* - object: __foo//bar, __foo/bar - singleton with object_id: __foo/singleton - singleton without object_id: __foo/ solving dependencies: solve_dep(object, run_list): - list = [me] - if status == IN_DEPENDENCY: fail: circular dependency - status = IN_DEPENDENCY - create_list_of_deps(object) - try pattern expansion - for each dependency: if object does not exist: fail else: list.append(solve_dep(object, run_list)): - status == IN_LIST - return [me, dependencies [, dependencies of dependencies]]