let is_simple_forward (graph : graph)
                      (edge : outedge) : bool = 
  match edge with
    | OutConcatLeft(other, target)
    | OutConcatRight(other, target) -> 
        let other_node  = find_node graph other in
        let target_node = find_node graph target in
          free other_node && almostfree target_node
    | OutIsect target -> 
        let target_node = find_node graph target in
          almostfree target_node