Parsing with derivatives in F#