sig
  type pcond = Mn.Factor.condition
  type pfeature = int * float * Mn.Factor.MP.pcond list
  type pfeaturelist = Mn.Factor.MP.pfeature list
  type ptree =
    MnParseTypes.ptree =
      PLeaf of float
    | PVertex of int * int * Mn.Factor.MP.ptree * Mn.Factor.MP.ptree
  type pfactor =
    MnParseTypes.pfactor =
      PFeatureSet of Mn.Factor.MP.pfeaturelist
    | PFeatureTable of Mn.Factor.MP.pfeaturelist
    | PFeatureTree of Mn.Factor.MP.ptree
    | PFeature of Mn.Factor.MP.pfeature
  type pmn =
    MnParseTypes.pmn = {
    factors : Mn.Factor.MP.pfactor list;
    weights : (int * float) list;
  }
end