let mkvariant =
              function
              | Ast.TyId (loc, (Ast.IdUid (_, s))) ->
                  ((conv_con s), [], (mkloc loc))
              | Ast.TyOf (loc, (Ast.TyId (_, (Ast.IdUid (_, s)))), t) ->
                  ((conv_con s), (List.map ctyp (list_of_ctyp t [])),
                   (mkloc loc))
              | _ -> assert false