let mkwithtyp pwith_type loc id_tpl ct =
              let (id, tpl) = type_parameters_and_type_name id_tpl [] in
              let (params, variance) = List.split tpl in
              let (kind, priv, ct) = opt_private_ctyp ct
              in
                (id,
                 (pwith_type
                    {
                      ptype_params = params;
                      ptype_cstrs = [];
                      ptype_kind = kind;
                      ptype_private = priv;
                      ptype_manifest = Some ct;
                      ptype_loc = mkloc loc;
                      ptype_variance = variance;
                    }))