struct
type ('a, 'b) t = ('a,'b) relation
let create ?n () =
create [] ident (fun x xs -> x :: xs)
let add = add
let stream = stream
let of_stream xs =
let r = create () in
Stream.iter
~f:(fun (x,y) -> add r x y)
xs ;
r
end