functor (F : Function->
  sig
    val generate_function_type : Cil_types.typ -> Cil_types.typ
    val generate_prototype : Cil_types.typ -> string * Cil_types.typ
    val well_typed_call :
      Cil_types.lval option ->
      Cil_types.varinfo -> Cil_types.exp list -> bool
    val retype_args :
      Cil_types.typ -> Cil_types.exp list -> Cil_types.exp list
    val key_from_call :
      Cil_types.lval option ->
      Cil_types.varinfo -> Cil_types.exp list -> Cil_types.typ
  end