let rec fusionner inferieur l1 l2 =
  match l1,l2 with
    (l, []) | ([], l) -> l
  | (h1::t1), (h2::t2) ->
       if inferieur h1 h2
      then h1::(fusionner inferieur t1 l2)
      else h2::(fusionner inferieur l1 t2);;

Remarquez que l'on a couvert tous les cas dans le match: la première clause couvre le cas où l'une au moins des listes est vide, la seconde le cas où les deux listes ont au moins un élément. On pourra aussi écrire:

let rec fusionner inferieur l1 l2 =
  match l1,l2 with
    (l, []) | ([], l) -> l
  | (h1::t1), (h2::t2) when inferieur h1 h2 ->
      h1::(fusionner inferieur t1 l2)
  | (h1::t1), (h2::t2) -> h2::(fusionner inferieur l1 t2);;