{-@ unsafeIndexBQ :: x:Word16 -> a:Array -> o:Int -> i:Int
                  -> {v:Bool | ((Prop v) <=>
                                (if ((x >= 56320) && (x <= 57343))
                                 then ((numchars(a, o, (i-o)+1)
                                     = (1 + numchars(a, o, (i-o)-1)))
                                    && (numchars(a, o, (i-o-1)) >= 0)
                                    && (((i-o)-1) >= 0))
                                 else ((numchars(a, o, (i-o)+1)
                                     = (1 + numchars(a, o, i-o)))
                                    && (numchars(a, o, (i-o)) >= 0))))}
  @-}
unsafeIndexBQ :: Word16 -> Array -> Int -> Int -> Bool
unsafeIndexBQ = undefined
unsafeIndexBQ :: Word16 -> Array -> Int -> Int -> Bool
unsafeIndexBQ = undefined
unsafeIndexBQ = undefined