text: (**************************************************************************)
  (*                                                                        *)
  (*                                 OCaml                                  *)
  (*                                                                        *)
  (*             Xavier Leroy, projet Cristal, INRIA Rocquencourt           *)
  (*                                                                        *)
  (*   Copyright 1998 Institut National de Recherche en Informatique et     *)
  (*     en Automatique.                                                    *)
  (*                                                                        *)
  (*   All rights reserved.  This file is distributed under the terms of    *)
  (*   the GNU Lesser General Public License version 2.1, with the          *)
  (*   special exception on linking described in the file LICENSE.          *)
  (*                                                                        *)
  (**************************************************************************)
  
  (* Auxiliaries for type-based optimizations, e.g. array kinds *)
  
  val is_function_type :
        Env.t -> Types.type_expr -> (Types.type_expr * Types.type_expr) option
  val is_base_type : Env.t -> Types.type_expr -> Path.t -> bool
  
  val classify_lazy_argument : Typedtree.expression ->
                               [ `Constant_or_function
                               | `Float_that_cannot_be_shortcut
                               | `Identifier of [`Forward_value | `Other]
                               | `Other]
  