anchor.diff:  
   let cons a b = a::b
   
  +// Group parser
   let rec parseGroup:Group Parser =
       let rec parseInner =
           function
  
positive.code:             | Some (Choice1Of2 group, rst) -> map (cons group) parseInner rst
              | Some (Choice2Of2 _, rst) -> parseInner rst
              | None -> None
  
      function
      | '{'::inner -> map Group parseInner inner
      | _ -> None
  
negative.code:     let result1 = timeIt (fun () -> solve1 input)
      printfn "Result 1: %A" result1
  
      printfn "--- Tests ---\n"
      test solve2 [
          ("{}", 0);
          ("<>", 0);
          ("{<random characters>}", 17);
          ("<<<<>", 3);
          ("<!!>", 0);
      ]
  
      let result2 = timeIt (fun () -> solve2 input)
      printfn "Result 2: %A" result2
  
      Console.ReadLine() |> ignore
      0 // return an integer exit code
  