10 #include <hpda/engine/functor.h> 
   11 #include <unordered_map> 
   12 #include <unordered_set> 
   22   void remove_functor(
functor * f);
 
   30   std::vector<functor *> find_outputs() 
const;
 
   34   bool functor_has_input(
functor *f) 
const;
 
   36   bool is_output(
functor *f) 
const;
 
   39   std::vector<functor *> m_functors;
 
   41   std::unordered_map<functor *, std::unordered_set<functor *>> m_successors;
 
   42   std::unordered_map<functor *, std::unordered_set<functor *>> m_predecessors;
 
   43   std::unordered_set<functor *> m_reach_ends;