RaCoCo result: Red::Utils

# Red::Utils 53.3%

    use Red::AST;
    use Red::AST::Unary;
    =head2 Red::Utils

    #| Accepts a string and converts snake case (`foo_bar`) into kebab case (`foo-bar`).
    sub snake-to-kebab-case(Str() $_ --> Str) is export { S:g/'_'/-/ }
    #| Accepts a string and converts kebab case (`foo-bar`) into snake case (`foo_bar`).
    sub kebab-to-snake-case(Str() $_ --> Str) is export { S:g/'-'/_/ }
    #| Accepts a string and converts camel case (`fooBar`) into snake case (`foo_bar`).
    sub camel-to-snake-case(Str() $_ --> Str) is export { kebab-to-snake-case lc S:g/(\w)<?before <[A..Z]>>/$0_/ }
    #| Accepts a string and converts camel case (`fooBar`) into kebab case (`foo-bar`).
    sub camel-to-kebab-case(Str() $_ --> Str) is export { lc S:g/(\w)<?before <[A..Z]>>/$0-/ }
    #| Accepts a string and converts kebab case (`foo-bar`) into camel case (`fooBar`).
    sub kebab-to-camel-case(Str() $_ --> Str) is export { S:g/"-"(\w)/{$0.uc}/ with .wordcase }
    #| Accepts a string and converts snake case (`foo_bar`) into camel case (`fooBar`).
    sub snake-to-camel-case(Str() $_ --> Str) is export { S:g/"_"(\w)/{$0.uc}/ with .wordcase }

    proto compare($,$) is export {*}
    multi compare(Red::AST $a, Red::AST $b) {
        $a eqv $b || $a === $b
    }

    multi compare(Red::AST::So $a, Red::AST $b) {
        compare $a.value, $b
    }

    multi compare(Red::AST $a, Red::AST::So $b) {
        compare $a, $b.value
    }