The Digraph api defines the external interface to the digraph package.
The Digraph api is implemented by the digraph package.
The Digraph api source code is src/lib/src/digraph.api. The above information is manually maintained and may contain errors.
api { Other = Exception; Graph; Node; Tag; Datum = FLOAT Float | ID Id | INT Int | NONE | OTHER Other | STRING String | TBASE Exception; Tagless_Edge = (Node , Node); Edge = (Node , Tag , Node); package ts : api { package key : api { Key; compare : (Key , Key) -> Order;};; Item = key::Key; Set; empty : Set; singleton : Item -> Set; from_list : List(Item ) -> Set; add : (Set , Item) -> Set; add' : (Item , Set) -> Set; add_list : (Set , List(Item )) -> Set; drop : (Set , Item) -> Set; member : (Set , Item) -> Bool; preceding_member : (Set , Item) -> Null_Or(Item ); following_member : (Set , Item) -> Null_Or(Item ); is_empty : Set -> Bool; equal : (Set , Set) -> Bool; compare : (Set , Set) -> Order; is_subset : (Set , Set) -> Bool; vals_count : Set -> Int; vals_list : Set -> List(Item ); union : (Set , Set) -> Set; intersection : (Set , Set) -> Set; difference : (Set , Set) -> Set; map : (Item -> Item) -> Set -> Set; apply : (Item -> Void) -> Set -> Void; fold_forward : ((Item , X) -> X) -> X -> Set -> X; fold_backward : ((Item , X) -> X) -> X -> Set -> X; partition : (Item -> Bool) -> Set -> (Set , Set); filter : (Item -> Bool) -> Set -> Set; exists : (Item -> Bool) -> Set -> Bool; find : (Item -> Bool) -> Set -> Null_Or(Item ); all_invariants_hold : Set -> Bool;};; package es : api { package key : api { Key; compare : (Key , Key) -> Order;};; Item = key::Key; Set; empty : Set; singleton : Item -> Set; from_list : List(Item ) -> Set; add : (Set , Item) -> Set; add' : (Item , Set) -> Set; add_list : (Set , List(Item )) -> Set; drop : (Set , Item) -> Set; member : (Set , Item) -> Bool; preceding_member : (Set , Item) -> Null_Or(Item ); following_member : (Set , Item) -> Null_Or(Item ); is_empty : Set -> Bool; equal : (Set , Set) -> Bool; compare : (Set , Set) -> Order; is_subset : (Set , Set) -> Bool; vals_count : Set -> Int; vals_list : Set -> List(Item ); union : (Set , Set) -> Set; intersection : (Set , Set) -> Set; difference : (Set , Set) -> Set; map : (Item -> Item) -> Set -> Set; apply : (Item -> Void) -> Set -> Void; fold_forward : ((Item , X) -> X) -> X -> Set -> X; fold_backward : ((Item , X) -> X) -> X -> Set -> X; partition : (Item -> Bool) -> Set -> (Set , Set); filter : (Item -> Bool) -> Set -> Set; exists : (Item -> Bool) -> Set -> Bool; find : (Item -> Bool) -> Set -> Null_Or(Item ); all_invariants_hold : Set -> Bool;};; make_node : Void -> Node; make_int_node : Int -> Node; make_id_node : Id -> Node; make_string_node : String -> Node; make_float_node : Float -> Node; make_graph_node : Graph -> Node; make_other_node : Other -> Node; node_datum : Node -> Datum; node_int : Node -> Null_Or(Int ); node_id : Node -> Null_Or(Id ); node_string : Node -> Null_Or(String ); node_float : Node -> Null_Or(Float ); node_graph : Node -> Null_Or(Graph ); node_other : Node -> Null_Or(Other ); make_tag : Void -> Tag; make_int_tag : Int -> Tag; make_id_tag : Id -> Tag; make_string_tag : String -> Tag; make_float_tag : Float -> Tag; make_graph_tag : Graph -> Tag; make_other_tag : Other -> Tag; tag_datum : Tag -> Datum; tag_int : Tag -> Null_Or(Int ); tag_id : Tag -> Null_Or(Id ); tag_string : Tag -> Null_Or(String ); tag_float : Tag -> Null_Or(Float ); tag_graph : Tag -> Null_Or(Graph ); tag_other : Tag -> Null_Or(Other ); empty_graph : Graph; put_tagless_edge : (Graph , Tagless_Edge) -> Graph; put_edge : (Graph , Edge) -> Graph; drop_tagless_edge : (Graph , Tagless_Edge) -> Graph; drop_edge : (Graph , Edge) -> Graph; get_tagless_edges : Graph -> ts::Set; get_tagless_edges1 : (Graph , Node) -> Null_Or(ts::Set ); get_tagless_edges2 : (Graph , Node) -> Null_Or(ts::Set ); has_tagless_edge : (Graph , Tagless_Edge) -> Bool; has_edge : (Graph , Edge) -> Bool; get_edges : Graph -> es::Set; get_edges1 : (Graph , Node) -> Null_Or(es::Set ); get_edges2 : (Graph , Tag) -> Null_Or(es::Set ); get_edges3 : (Graph , Node) -> Null_Or(es::Set ); get_edges12 : (Graph , Node , Tag) -> Null_Or(es::Set ); get_edges13 : (Graph , Node , Node) -> Null_Or(es::Set ); get_edges23 : (Graph , Tag , Node) -> Null_Or(es::Set ); nodes_apply : Graph -> (Node -> Void) -> Void; tags_apply : Graph -> (Tag -> Void) -> Void;};