Fatiar / agrupar uma sequência de caracteres iguais em F #

Preciso extrair a sequência de caracteres iguais em um texto.

Por exemplo: A sequência"aaaBbbcccccccDaBBBzcc11211" deve ser convertido em uma lista de strings como["aaa";"B";"bb";"ccccccc";"D";"a";"BBB";"z";"cc";"11";"2";"11"].

Essa é a minha solução até agora:

let groupSequences (text:string) = 

    let toString chars =
        System.String(chars |> Array.ofList)

    let rec groupSequencesRecursive acc chars = seq {
        match (acc, chars) with
        | [], c :: rest -> 
            yield! groupSequencesRecursive [c] rest
        | _, c :: rest when acc.[0] <> c -> 
            yield (toString acc)
            yield! groupSequencesRecursive [c] rest
        | _, c :: rest when acc.[0] = c -> 
            yield! groupSequencesRecursive (c :: acc) rest
        | _, [] -> 
            yield (toString acc)
        | _ -> 
            yield ""
    }

    text
    |> List.ofSeq
    |> groupSequencesRecursive []

groupSequences "aaaBbbcccccccDaBBBzcc11211"
|> Seq.iter (fun x -> printfn "%s" x)
|> ignore

Eu sou um novato em F #.

Esta solução pode ser melhor?

questionAnswers(6)

yourAnswerToTheQuestion