[[
   "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","."]
]]