[[
   "comment",
  ["comment","(*"]
],[
   "comment",
  ["comment"," * Example of early return implementation taken from"]
],[
   "comment",
  ["comment"," * http://ocaml.janestreet.com/?q=node/91"]
],[
   "start",
  ["comment"," *)"]
],[
   "start"
],[
   "start",
  ["keyword","let"],
  ["text"," "],
  ["identifier","with_return"],
  ["text"," "],
  ["paren.lparen","("],
  ["keyword","type"],
  ["text"," "],
  ["identifier","t"],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","("],
  ["identifier","f"],
  ["text"," : "],
  ["identifier","_"],
  ["text"," "],
  ["keyword.operator","->"],
  ["text"," "],
  ["identifier","t"],
  ["paren.rparen",")"],
  ["text"," "],
  ["keyword.operator","="]
],[
   "start",
  ["text","  "],
  ["keyword","let"],
  ["text"," "],
  ["keyword","module"],
  ["text"," "],
  ["identifier","M"],
  ["text"," "],
  ["keyword.operator","="]
],[
   "start",
  ["text","     "],
  ["keyword","struct"],
  ["text"," "],
  ["keyword","exception"],
  ["text"," "],
  ["identifier","Return"],
  ["text"," "],
  ["keyword","of"],
  ["text"," "],
  ["identifier","t"],
  ["text"," "],
  ["keyword","end"]
],[
   "start",
  ["text","  "],
  ["keyword","in"]
],[
   "start",
  ["text","  "],
  ["keyword","let"],
  ["text"," "],
  ["identifier","return"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["paren.lparen","{"],
  ["text"," "],
  ["identifier","return"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["paren.lparen","("],
  ["keyword","fun"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator","->"],
  ["text"," "],
  ["support.function","raise"],
  ["text"," "],
  ["paren.lparen","("],
  ["identifier","M"],
  ["text","."],
  ["identifier","Return"],
  ["text"," "],
  ["identifier","x"],
  ["paren.rparen","))"],
  ["text","; "],
  ["paren.rparen","}"],
  ["text"," "],
  ["keyword","in"]
],[
   "start",
  ["text","  "],
  ["keyword","try"],
  ["text"," "],
  ["identifier","f"],
  ["text"," "],
  ["identifier","return"],
  ["text"," "],
  ["keyword","with"],
  ["text"," "],
  ["identifier","M"],
  ["text","."],
  ["identifier","Return"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator","->"],
  ["text"," "],
  ["identifier","x"]
],[
   "start"
],[
   "start"
],[
   "start",
  ["comment","(* Function that uses the 'early return' functionality provided by `with_return` *)"]
],[
   "start",
  ["keyword","let"],
  ["text"," "],
  ["identifier","sum_until_first_negative"],
  ["text"," "],
  ["support.function","list"],
  ["text"," "],
  ["keyword.operator","="]
],[
   "start",
  ["text","  "],
  ["identifier","with_return"],
  ["text"," "],
  ["paren.lparen","("],
  ["keyword","fun"],
  ["text"," "],
  ["identifier","r"],
  ["text"," "],
  ["keyword.operator","->"]
],[
   "start",
  ["text","    "],
  ["support.function","List"],
  ["text","."],
  ["support.function","fold"],
  ["text"," "],
  ["support.function","list"],
  ["text"," "],
  ["keyword.operator","~"],
  ["support.function","init"],
  ["text",":"],
  ["constant.numeric","0"],
  ["text"," "],
  ["keyword.operator","~"],
  ["identifier","f"],
  ["text",":"],
  ["paren.lparen","("],
  ["keyword","fun"],
  ["text"," "],
  ["identifier","acc"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator","->"]
],[
   "start",
  ["text","      "],
  ["keyword","if"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator",">="],
  ["text"," "],
  ["constant.numeric","0"],
  ["text"," "],
  ["keyword","then"],
  ["text"," "],
  ["identifier","acc"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword","else"],
  ["text"," "],
  ["identifier","r"],
  ["text","."],
  ["identifier","return"],
  ["text"," "],
  ["identifier","acc"],
  ["paren.rparen","))"]
]]