anchor.diff:  let jnull = stringReturn "null" JNull
   let jbool =     (stringReturn "true"  (JBool true))
               <|> (stringReturn "false" (JBool false))
  -let jnumber = pfloat |>> JNumber
  +let jnumber = pint32 |>> JNumber
   let jvalue, jvalueRef = createParserForwardedToRef<Json, unit>()
   let jlist = listBetweenStrings "[" "]" jvalue JList
   let keyValue = stringLiteral .>>. (ws >>. str ":" >>. ws >>. jvalue)
  
positive.code: 
  (* Parse JSON *)
  type Json = JString of string
            | JNumber of float
            | JBool   of bool
            | JNull
            | JList   of Json list
  
negative.code:                  <|> (stringReturn "Song"      (AttrSong ""))
                   <|> (stringReturn "TimeInSec" (AttrTimeInSec 0))
                   <|> (stringReturn "Album"     (AttrAlbum ""))
  let sby = str "by" >>. ws >>. (sepBy1 (ws >>. sattributeop) (str ","))
  let sorder = str "order" >>. ws >>. (sepBy1 (ws >>. sattribute) (str ",") |>> SesOrder)
  let sshuffle = stringReturn "shuffle" SesShuffle
  let ssort = sorder <|> sshuffle
  let stop = str "top" >>. ws >>. pint32
  let sselect = str "select" >>. ws >>. (sby .>> ws) .>>. (ssort .>> ws) .>>. stop
  
  (* Main *)
  let runinit file =
  