anchor.diff:  
   
       let inline toLList v = v |>> LString  |> toList |> LList
  -    
  +
       open FParsec
  -    module internal Parser =
  +    module internal Parser =    
           
  -        let parse parser str =
  -            match run parser str with
  -            | Success(result  , _, _) -> Choice1Of2 result
  -            | Failure(errorMsg, _, _) -> Choice2Of2 errorMsg
  -    
  -
           // some abbreviations
  -        let internal ws    = spaces // eats any whitespace
  -        let internal str s = pstring s
  +        let private ws  = spaces // eats any whitespace
  +        let private str = pstring  
   
           let stringLiteral =
               let escape = anyOf "\"\\/bfnrt" |>> function
  
positive.code: 
          let lvalue, lvalueRef = createParserForwardedToRef()
  
          let listBtStrings sOpen sClose pElement f = between (str sOpen) (str sClose) (ws >>. sepBy (pElement .>> ws) (str "," .>> ws) |>> f)
          let emptyplist = str "[" >>. ws >>. str ":" >>. ws >>. str "]" >>% (LPropList [])
          let keyValue = tuple2 pSymbol (ws >>. str ":" >>. ws >>. lvalue)
          let llist  = listBtStrings "[" "]" lvalue   LList
          let lplist = listBtStrings "[" "]" keyValue LPropList
          let psingle x = (pfloat |>> single) x
          let number = attempt linteger <|> lfloat
  
          do lvalueRef := choice [attempt llist
  
negative.code:                 | LString  s -> "\"" + s + "\""
                  | LFloat   f -> string f
                  | LInteger i -> string i
                  | LPoint   (x, y)    -> sprintf "point(%O, %O)" x y
                  | LRect (a, b, c, d) -> sprintf "rect(%O, %O, %O, %O)" a b c d
                  | LColor   (r, g, b) -> sprintf "color(%i, %i, %i)"  r g b
                  | LVector  (x, y, z) -> sprintf "vector(%f, %f, %f)" x y z
                  | LList     l -> "[" + String.concat ", " (l |>> (box >> string))  + "]"
  