     value = case f do
       %Field{multiple: true} -> []
       %Field{default: nil} -> nil
+      %Field{default: "true"} when type == :boolean -> true
+      %Field{default: "false"} when type == :boolean -> false
       %Field{default: d} ->
         if type in [:integer, :non_neg_integer, :pos_integer] do
           {num, <<>>} = Integer.parse(d, 10)

  def generate_struct(%Type{} = t, _parent_mod) do
    IO.puts "Ignore simple type #{t.name}"
    []
  end

  def extract_field(%Field{name: n, type: t} = f) do

    |> Enum.reject(fn entry -> entry == [] end)
    |> Enum.map(fn {name, type} ->
      t = Macro.escape(type)
      s = struct_name(type.name, __CALLER__.module)
      struct = Macro.escape(s)
      quote do
        AmqpOne.TypeManager.add_type(unquote(name), unquote(t))
        AmqpOne.TypeManager.add_type(unquote(t))
        AmqpOne.TypeManager.add_type(unquote(struct), unquote(t))
      end
    end)
  end
