 
   defmacro defsequence(name, code, terminator \\ "m") do
     quote bind_quoted: [name: name, code: code, terminator: terminator] do
+      @spec unquote(name)() :: String.t()
       def unquote(name)() do
         "\e[#{unquote(code)}#{unquote(terminator)}"
       end

      [[[[[[] | "\e[1m"], 87], 111], 114], 100]

  """
  def format_fragment(chardata, emit? \\ enabled?()) when is_boolean(emit?) do
    do_format(chardata, [], [], emit?, false)
  end

      [[[[[[], "Hello, "] | "\e[31m"] | "\e[1m"], "world!"] | "\e[0m"]

  """
  @spec format(IO.chardata(), boolean) :: IO.chardata()
  def format(chardata, emit? \\ enabled?()) when is_boolean(emit?) do
    do_format(chardata, [], [], emit?, :maybe)
  end
