I just stumbled upon this edge case that was non-intuitive to me. Now I’m wondering if this behavior makes sense or not.
It has to do with
String.at when the
nil and position is
String.at nil, 0 => nil # Was expecting an error here, as in the next example: String.at nil, 1 => ** (FunctionClauseError) no function clause matching in String.Unicode.next_grapheme_size/1
I was surprised that
nil was returned because all (most?) String functions will raise (some sort of) a
FunctionClauseError when the input string is not a binary. Is that a wrong assumption?