 
   """
   @spec last(t) :: grapheme | nil
-  def last(string) do
+  def last(string) when is_binary(string) do
     do_last(next_grapheme(string), nil)
   end
 

    end
  end

  def slice(string, start, length) when start < 0 and length >= 0 do
    start = length(string) + start

    case start >= 0 do

    end
  end

  def splitter(string, pattern, options) when is_binary(string) and is_list(options) do
    pattern = maybe_compile_pattern(pattern)
    trim = Keyword.get(options, :trim, false)
    Stream.unfold(string, &do_splitter(&1, pattern, trim))
