let edge_attributes e =
    let attr = [] in
    let attr = (`Label (String.escaped (PE.edge_txt e)))::attr in
    let attr =
      if is_back_edge e then (`Constraint false)::(`Style `Bold)::attr
      else attr
    in
    let attr = match (edge_type e) with
      | Ethen | EbackThen -> (`Color 0x00FF00)::attr
      | Eelse | EbackElse -> (`Color 0xFF0000)::attr
      | Ecase [] -> (`Color 0x0000FF)::(`Style `Dashed)::attr
      | Ecase _ -> (`Color 0x0000FF)::attr
      | Enext -> (`Style `Dotted)::attr
      | Eback -> attr (* see is_back_edge above *)
      | Enone -> attr
    in
      attr