+val dump_value : llvalue -> unit
+
+(** [string_of_llvalue v] returns a string describing the value [v]. *)
+val string_of_llvalue : llvalue -> string
+
+(** [replace_all_uses_with old new] replaces all uses of the value [old]
+ with the value [new]. See the method [llvm::Value::replaceAllUsesWith]. *)
+val replace_all_uses_with : llvalue -> llvalue -> unit
+
+
+(* {6 Uses} *)
+
+(** [use_begin v] returns the first position in the use list for the value [v].
+ [use_begin] and [use_succ] can e used to iterate over the use list in order.
+ See the method [llvm::Value::use_begin]. *)
+val use_begin : llvalue -> lluse option
+
+(** [use_succ u] returns the use list position succeeding [u].
+ See the method [llvm::use_value_iterator::operator++]. *)
+val use_succ : lluse -> lluse option
+
+(** [user u] returns the user of the use [u].
+ See the method [llvm::Use::getUser]. *)
+val user : lluse -> llvalue
+
+(** [used_value u] returns the usee of the use [u].
+ See the method [llvm::Use::getUsedValue]. *)
+val used_value : lluse -> llvalue
+
+(** [iter_uses f v] applies function [f] to each of the users of the value [v]
+ in order. Tail recursive. *)
+val iter_uses : (lluse -> unit) -> llvalue -> unit
+
+(** [fold_left_uses f init v] is [f (... (f init u1) ...) uN] where
+ [u1,...,uN] are the users of the value [v]. Tail recursive. *)
+val fold_left_uses : ('a -> lluse -> 'a) -> 'a -> llvalue -> 'a
+
+(** [fold_right_uses f v init] is [f u1 (... (f uN init) ...)] where
+ [u1,...,uN] are the users of the value [v]. Not tail recursive. *)
+val fold_right_uses : (lluse -> 'a -> 'a) -> llvalue -> 'a -> 'a
+
+
+(* {6 Users} *)
+
+(** [operand v i] returns the operand at index [i] for the value [v]. See the
+ method [llvm::User::getOperand]. *)
+val operand : llvalue -> int -> llvalue
+
+(** [operand_use v i] returns the use of the operand at index [i] for the value [v]. See the
+ method [llvm::User::getOperandUse]. *)
+val operand_use : llvalue -> int -> lluse
+
+
+(** [set_operand v i o] sets the operand of the value [v] at the index [i] to
+ the value [o].
+ See the method [llvm::User::setOperand]. *)
+val set_operand : llvalue -> int -> llvalue -> unit
+
+(** [num_operands v] returns the number of operands for the value [v].
+ See the method [llvm::User::getNumOperands]. *)
+val num_operands : llvalue -> int