| Cic.InductiveDefinition (_, _, _, attributes) ->
attributes
+let is_generated obj = List.exists ((=) `Generated) (attributes_of_obj obj)
+
let arity_of_composed_coercion obj =
let attrs = attributes_of_obj obj in
try
| _-> assert false
with Not_found -> 0
;;
+
+let projections_of_record obj uri =
+ let attrs = attributes_of_obj obj in
+ try
+ let tag=List.find (function `Class (`Record _) -> true|_->false) attrs in
+ match tag with
+ | `Class (`Record l) ->
+ List.map (fun (name,_,_) ->
+ let buri = UriManager.buri_of_uri uri in
+ let puri = UriManager.uri_of_string (buri ^ "/" ^ name ^ ".con") in
+ puri) l
+ | _-> assert false
+ with Not_found -> []
+;;
let rec mk_rels howmany from =
match howmany with