/usr/share/bash-completion/completions/ocamlfind is in ocaml-findlib 1.7.3-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | # Debian GNU/Linux ocamlfind(1) completion
# Copyright 2005
#  Stefano Zacchiroli <zack@debian.org>
# License: GNU GPL v2 or later
# inter function communication is achieved via the $_ocamlfind_reply environment
# variable, it will be unset each time the completion is used
have ocamlfind &&
_ocamlfind_add()
{
  _ocamlfind_reply="$_ocamlfind_reply $1"
}
[ "$have" ] &&
_ocamlfind_flags()
{
  local cmd res
  cmd="$1"
  res="$( ocamlfind $cmd --help 2>/dev/null | \
    grep '^  -' | sed 's/ *//;s/ .*//' )"
  _ocamlfind_add "$res"
}
[ "$have" ] &&
_ocamlfind_packages()
{
  local pkglist oldpkglist res
  oldpkglist="$1"
  pkglist=$( ocamlfind list | cut -f 1 -d' ' )
  if echo "$oldpkglist" | grep -q ','; then
    oldpkglist=$(echo $oldpkglist | sed 's/\(.*,\).*/\1/')
    res=""
    for pkg in $pkglist; do
      res="$res $oldpkglist$pkg"
    done
  else
    res="$pkglist"
  fi
  _ocamlfind_add "$res"
}
[ "$have" ] &&
_ocamlfind()
{
  local cmd cur prev
  COMPREPLY=()
  cmd=${COMP_WORDS[1]}
  cur=${COMP_WORDS[COMP_CWORD]}
  prev=${COMP_WORDS[COMP_CWORD-1]}
  _ocamlfind_reply=""
  if [ $COMP_CWORD -eq 1 ]; then
    _ocamlfind_add "query ocamlc ocamlcp ocamlmktop ocamlopt ocamldep \
      ocamlbrowser ocamldoc install remove printconf list opt --help"
    # TODO missing "pkg/cmd arg ..." completion
  elif [ $COMP_CWORD -gt 1 ]; then
    [ "$prev" = "-package" ] || _ocamlfind_flags "$cmd"
    case "$cmd" in
      ocamlc|ocamlcp|ocamlmktop|ocamlopt|ocamldep|ocamldoc|opt)
	if [ "$prev" = "-package" ]; then
	  _ocamlfind_packages "$cur"
	fi
	;;
    esac
    case "$cmd" in
      ocamlc|ocamlcp)
	_ocamlfind_add "$( ls *.mli *.ml *.cmo *.cma *.c *.o *.a 2> /dev/null )"
	;;
      ocamlopt|opt)
	_ocamlfind_add "$( ls *.mli *.ml *.cmx *.cmxa *.c *.o *.a 2> /dev/null )"
	;;
      ocamlmktop)
	_ocamlfind_add "$( ls *.cmo *.cma *.o *.a 2> /dev/null )"
	;;
    esac
    if [ "$cmd" = "query" ]; then _ocamlfind_packages ""; fi
    if [ "$cmd" = "printconf" -a $COMP_CWORD -eq 2 ]; then
      _ocamlfind_add "$( ocamlfind printconf --help | grep '|' | \
	sed 's/.*(//;s/)//;s/|/ /g' )"
    fi
  fi
  COMPREPLY=( $(compgen -W "$_ocamlfind_reply" -- $cur) )
  unset _ocamlfind_reply
  return 0
}
[ "$have" ] &&
complete -F _ocamlfind ocamlfind
# vim:set ft=sh:
 |