let u1 = mk_type_universe "1" in
E.add_lt_constraint ~acyclic:true u0 u1
-let fst_var = 1
+let fst_var = 1 (* first variable *)
-let snd_var = 2
+let snd_var = 2 (* second variable *)
+
+let fst_con = 1 (* first constructor *)
let appl ts = C.Appl ts
let s = S.sub s (i+2) (l-i-2) in
X.segments_of_string [] (l-i-2) s
-let name_of_reference ss = function
+let names_of_reference ss = function
| C.Constant (_, name, _, _, _), R.Decl ->
ss, name
| C.Constant (_, name, _, _, _), R.Def _ ->
(name :: ss), name
| _ ->
failwith "name_of_reference"
+
+let resolve_reference = function
+ | R.Ref (u, r) ->
+ let ss = segments_of_uri u in
+ let _, _, _, _, obj = E.get_checked_obj G.status u in
+ let ss, name = names_of_reference ss (obj, r) in
+ X.rev_map_concat X.id "." "type" ss, name