sig
  type graph
  type vertex
  type edge_label
  val graph : ?loops:bool -> v:int -> e:int -> unit -> Rand.S.graph
  val labeled :
    (Rand.S.vertex -> Rand.S.vertex -> Rand.S.edge_label) ->
    ?loops:bool -> v:int -> e:int -> unit -> Rand.S.graph
  val random_few_edges : loops:bool -> v:int -> e:int -> Rand.S.graph
  val random_many_edges : loops:bool -> v:int -> e:int -> Rand.S.graph
  val gnp : ?loops:bool -> v:int -> prob:float -> unit -> Rand.S.graph
  val gnp_labeled :
    (Rand.S.vertex -> Rand.S.vertex -> Rand.S.edge_label) ->
    ?loops:bool -> v:int -> prob:float -> unit -> Rand.S.graph
end