[
  [
    "start",
    [
      "entity.name.function.fact.prolog",
      "partition"
    ],
    [
      "punctuation.begin.fact.parameters.prolog",
      "("
    ],
    [
      "punctuation.begin.list.prolog",
      "["
    ],
    [
      "punctuation.end.list.prolog",
      "]"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.fact.prolog",
      " "
    ],
    [
      "variable.language.anonymous.prolog",
      "_"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.fact.prolog",
      " "
    ],
    [
      "punctuation.begin.list.prolog",
      "["
    ],
    [
      "punctuation.end.list.prolog",
      "]"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.fact.prolog",
      " "
    ],
    [
      "punctuation.begin.list.prolog",
      "["
    ],
    [
      "punctuation.end.list.prolog",
      "]"
    ],
    [
      "punctuation.end.fact.parameters.prolog",
      ")"
    ],
    [
      "punctuation.end.fact.prolog",
      "."
    ]
  ],
  [
    [
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "entity.name.function.rule.prolog",
      "partition"
    ],
    [
      "punctuation.rule.parameters.begin.prolog",
      "("
    ],
    [
      "punctuation.begin.list.prolog",
      "["
    ],
    [
      "variable.other.prolog",
      "X"
    ],
    [
      "punctuation.concat.list.prolog",
      "|"
    ],
    [
      "variable.other.prolog",
      "Xs"
    ],
    [
      "punctuation.end.list.prolog",
      "]"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.rule.parameters.prolog",
      " "
    ],
    [
      "variable.parameter.prolog",
      "Pivot"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.rule.parameters.prolog",
      " "
    ],
    [
      "variable.parameter.prolog",
      "Smalls"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.rule.parameters.prolog",
      " "
    ],
    [
      "variable.parameter.prolog",
      "Bigs"
    ],
    [
      "punctuation.rule.parameters.end.prolog",
      ")"
    ],
    [
      "meta.rule.signature.prolog",
      " "
    ],
    [
      "keyword.operator.definition.prolog",
      ":-"
    ]
  ],
  [
    [
      "meta.expression.prolog",
      "keyword.operator.definition.prolog",
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "meta.rule.definition.prolog",
      "    "
    ],
    [
      "meta.expression.prolog",
      "(   "
    ],
    [
      "variable.other.prolog",
      "X"
    ],
    [
      "meta.expression.prolog",
      " @"
    ],
    [
      "keyword.operator.prolog",
      "<"
    ],
    [
      "meta.expression.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "Pivot"
    ],
    [
      "meta.expression.prolog",
      " "
    ],
    [
      "keyword.operator.prolog",
      "->"
    ]
  ],
  [
    [
      "meta.expression.prolog",
      "keyword.operator.definition.prolog",
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "meta.expression.prolog",
      "        "
    ],
    [
      "variable.other.prolog",
      "Smalls"
    ],
    [
      "meta.expression.prolog",
      " "
    ],
    [
      "keyword.operator.prolog",
      "="
    ],
    [
      "meta.expression.prolog",
      " "
    ],
    [
      "punctuation.begin.list.prolog",
      "["
    ],
    [
      "variable.other.prolog",
      "X"
    ],
    [
      "punctuation.concat.list.prolog",
      "|"
    ],
    [
      "variable.other.prolog",
      "Rest"
    ],
    [
      "punctuation.end.list.prolog",
      "]"
    ],
    [
      "punctuation.control.and.prolog",
      ","
    ]
  ],
  [
    [
      "meta.expression.prolog",
      "keyword.operator.definition.prolog",
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "meta.expression.prolog",
      "        "
    ],
    [
      "constant.other.atom.prolog",
      "partition"
    ],
    [
      "punctuation.begin.statement.parameters.prolog",
      "("
    ],
    [
      "variable.other.prolog",
      "Xs"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "Pivot"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "Rest"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "Bigs"
    ],
    [
      "punctuation.end.statement.parameters.prolog",
      ")"
    ]
  ],
  [
    [
      "meta.expression.prolog",
      "keyword.operator.definition.prolog",
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "meta.expression.prolog",
      "    "
    ],
    [
      "punctuation.control.or.prolog",
      ";"
    ],
    [
      "meta.expression.prolog",
      "   "
    ],
    [
      "variable.other.prolog",
      "Bigs"
    ],
    [
      "meta.expression.prolog",
      " "
    ],
    [
      "keyword.operator.prolog",
      "="
    ],
    [
      "meta.expression.prolog",
      " "
    ],
    [
      "punctuation.begin.list.prolog",
      "["
    ],
    [
      "variable.other.prolog",
      "X"
    ],
    [
      "punctuation.concat.list.prolog",
      "|"
    ],
    [
      "variable.other.prolog",
      "Rest"
    ],
    [
      "punctuation.end.list.prolog",
      "]"
    ],
    [
      "punctuation.control.and.prolog",
      ","
    ]
  ],
  [
    [
      "meta.expression.prolog",
      "keyword.operator.definition.prolog",
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "meta.expression.prolog",
      "        "
    ],
    [
      "constant.other.atom.prolog",
      "partition"
    ],
    [
      "punctuation.begin.statement.parameters.prolog",
      "("
    ],
    [
      "variable.other.prolog",
      "Xs"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "Pivot"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "Smalls"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "Rest"
    ],
    [
      "punctuation.end.statement.parameters.prolog",
      ")"
    ]
  ],
  [
    "start",
    [
      "meta.expression.prolog",
      "    )"
    ],
    [
      "punctuation.rule.end.prolog",
      "."
    ]
  ],
  [
    "start",
    [
      "text",
      " "
    ]
  ],
  [
    "start",
    [
      "entity.name.function.fact.prolog",
      "quicksort"
    ],
    [
      "punctuation.begin.fact.parameters.prolog",
      "("
    ],
    [
      "punctuation.begin.list.prolog",
      "["
    ],
    [
      "punctuation.end.list.prolog",
      "]"
    ],
    [
      "punctuation.end.fact.parameters.prolog",
      ")"
    ],
    [
      "text",
      "     --> []."
    ]
  ],
  [
    "start",
    [
      "entity.name.function.fact.prolog",
      "quicksort"
    ],
    [
      "punctuation.begin.fact.parameters.prolog",
      "("
    ],
    [
      "punctuation.begin.list.prolog",
      "["
    ],
    [
      "variable.other.prolog",
      "X"
    ],
    [
      "punctuation.concat.list.prolog",
      "|"
    ],
    [
      "variable.other.prolog",
      "Xs"
    ],
    [
      "punctuation.end.list.prolog",
      "]"
    ],
    [
      "punctuation.end.fact.parameters.prolog",
      ")"
    ],
    [
      "text",
      " -->"
    ]
  ],
  [
    "start",
    [
      "text",
      "    { "
    ],
    [
      "entity.name.function.fact.prolog",
      "partition"
    ],
    [
      "punctuation.begin.fact.parameters.prolog",
      "("
    ],
    [
      "variable.parameter.prolog",
      "Xs"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.fact.prolog",
      " "
    ],
    [
      "variable.parameter.prolog",
      "X"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.fact.prolog",
      " "
    ],
    [
      "variable.parameter.prolog",
      "Smaller"
    ],
    [
      "punctuation.separator.parameters.prolog",
      ","
    ],
    [
      "meta.fact.prolog",
      " "
    ],
    [
      "variable.parameter.prolog",
      "Bigger"
    ],
    [
      "punctuation.end.fact.parameters.prolog",
      ")"
    ],
    [
      "text",
      " },"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "entity.name.function.fact.prolog",
      "quicksort"
    ],
    [
      "punctuation.begin.fact.parameters.prolog",
      "("
    ],
    [
      "variable.parameter.prolog",
      "Smaller"
    ],
    [
      "punctuation.end.fact.parameters.prolog",
      ")"
    ],
    [
      "text",
      ", [X], "
    ],
    [
      "entity.name.function.fact.prolog",
      "quicksort"
    ],
    [
      "punctuation.begin.fact.parameters.prolog",
      "("
    ],
    [
      "variable.parameter.prolog",
      "Bigger"
    ],
    [
      "punctuation.end.fact.parameters.prolog",
      ")"
    ],
    [
      "punctuation.end.fact.prolog",
      "."
    ]
  ],
  [
    "start"
  ],
  [
    [
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "entity.name.function.rule.prolog",
      "perfect"
    ],
    [
      "punctuation.rule.parameters.begin.prolog",
      "("
    ],
    [
      "variable.parameter.prolog",
      "N"
    ],
    [
      "punctuation.rule.parameters.end.prolog",
      ")"
    ],
    [
      "meta.rule.signature.prolog",
      " "
    ],
    [
      "keyword.operator.definition.prolog",
      ":-"
    ]
  ],
  [
    [
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "meta.rule.definition.prolog",
      "    "
    ],
    [
      "constant.other.atom.prolog",
      "between"
    ],
    [
      "punctuation.begin.statement.parameters.prolog",
      "("
    ],
    [
      "constant.numeric.prolog",
      "1"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "constant.other.atom.prolog",
      "inf"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "N"
    ],
    [
      "punctuation.end.statement.parameters.prolog",
      ")"
    ],
    [
      "punctuation.control.and.prolog",
      ","
    ],
    [
      "meta.rule.definition.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "U"
    ],
    [
      "meta.rule.definition.prolog",
      " "
    ],
    [
      "keyword.operator.prolog",
      "is"
    ],
    [
      "meta.rule.definition.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "N"
    ],
    [
      "meta.rule.definition.prolog",
      " // "
    ],
    [
      "constant.numeric.prolog",
      "2"
    ],
    [
      "punctuation.control.and.prolog",
      ","
    ]
  ],
  [
    [
      "keyword.operator.definition.prolog",
      "meta.rule.prolog"
    ],
    [
      "meta.rule.definition.prolog",
      "    "
    ],
    [
      "constant.other.atom.prolog",
      "findall"
    ],
    [
      "punctuation.begin.statement.parameters.prolog",
      "("
    ],
    [
      "variable.other.prolog",
      "D"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " ("
    ],
    [
      "constant.other.atom.prolog",
      "between"
    ],
    [
      "punctuation.begin.statement.parameters.prolog",
      "("
    ],
    [
      "constant.numeric.prolog",
      "1"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "variable.other.prolog",
      "U"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "variable.other.prolog",
      "D"
    ],
    [
      "punctuation.end.statement.parameters.prolog",
      ")"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "N"
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "constant.other.atom.prolog",
      "mod"
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "D"
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "keyword.operator.prolog",
      "=:="
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "constant.numeric.prolog",
      "0"
    ],
    [
      "punctuation.end.statement.parameters.prolog",
      ")"
    ],
    [
      "punctuation.control.and.prolog",
      ","
    ],
    [
      "meta.rule.definition.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "Ds"
    ],
    [
      "meta.rule.definition.prolog",
      ")"
    ],
    [
      "punctuation.control.and.prolog",
      ","
    ]
  ],
  [
    "start",
    [
      "meta.rule.definition.prolog",
      "    "
    ],
    [
      "constant.other.atom.prolog",
      "sumlist"
    ],
    [
      "punctuation.begin.statement.parameters.prolog",
      "("
    ],
    [
      "variable.other.prolog",
      "Ds"
    ],
    [
      "punctuation.separator.statement.prolog",
      ","
    ],
    [
      "meta.statement.parameters.prolog",
      " "
    ],
    [
      "variable.other.prolog",
      "N"
    ],
    [
      "punctuation.end.statement.parameters.prolog",
      ")"
    ],
    [
      "punctuation.rule.end.prolog",
      "."
    ]
  ]
]