
type locus = (int * int) option ;;

let region_locus = fun x y -> match x,y with
   (None, loc) -> loc
 | (loc, None) -> loc
 | (Some (start1, end1)), (Some (start2, end2)) ->
     Some (min start1 start2, max end1 end2)
;;

let create d = Some d;;
let none = None ;;

let get l = l ;;
