if exists('*strchars')
    function! clever_f#compat#strchars(str) abort
        return strchars(a:str)
    endfunction
else
    function! clever_f#compat#strchars(str) abort
        return strlen(substitute(a:str, '.', 'x', 'g'))
    endfunction
endif

if exists('*xor')
    function! clever_f#compat#xor(a, b) abort
        return xor(a:a, a:b)
    endfunction
else
    function! clever_f#compat#xor(a, b) abort
        return a:a && !a:b || !a:a && a:b
    endfunction
endif