~ubuntu-branches/ubuntu/wily/coq-doc/wily

« back to all changes in this revision

Viewing changes to pretyping/typeclasses.ml

  • Committer: Package Import Robot
  • Author(s): Stéphane Glondu
  • Date: 2012-01-03 23:42:48 UTC
  • mfrom: (1.2.4)
  • Revision ID: package-import@ubuntu.com-20120103234248-p9r8h1579n67v55a
Tags: 8.3pl3-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
(************************************************************************)
2
2
(*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *)
3
 
(* <O___,, *   INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2010     *)
 
3
(* <O___,, *   INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2011     *)
4
4
(*   \VV/  **************************************************************)
5
5
(*    //   *      This file is distributed under the terms of the       *)
6
6
(*         *       GNU Lesser General Public License Version 2.1        *)
7
7
(************************************************************************)
8
8
 
9
 
(*i $Id: typeclasses.ml 13332 2010-07-26 22:12:43Z msozeau $ i*)
 
9
(*i $Id: typeclasses.ml 14641 2011-11-06 11:59:10Z herbelin $ i*)
10
10
 
11
11
(*i*)
12
12
open Names
299
299
  let lenpars = List.length (List.filter (fun (na, b, t) -> b = None) (snd cl.cl_context)) in
300
300
  let pars = fst (list_chop lenpars args) in
301
301
    match cl.cl_impl with
302
 
      | IndRef ind -> applistc (mkConstruct (ind, 1)) args,
 
302
      | IndRef ind -> Some (applistc (mkConstruct (ind, 1)) args),
303
303
          applistc (mkInd ind) pars
304
 
      | ConstRef cst -> list_last args, applistc (mkConst cst) pars
 
304
      | ConstRef cst -> 
 
305
        let term = if args = [] then None else Some (list_last args) in
 
306
          term, applistc (mkConst cst) pars
305
307
      | _ -> assert false
306
308
 
307
309
let typeclasses () = Gmap.fold (fun _ l c -> l :: c) !classes []