functor FNDIGRAPH( type Item ) = struct type Vertex = Item type Graph = Item list * (Item -> Item list) end;