 
   """
   @spec has_key?(t, key) :: boolean
-  def has_key?(keywords, key) when is_atom(key) do
+  def has_key?(keywords, key) when is_list(keywords) and is_atom(key) do
     :lists.keymember(key, 1, keywords)
   end
 


  """
  @spec delete_first(t, key) :: t
  def delete_first(keywords, key) when is_atom(key) do
    :lists.keydelete(key, 1, keywords)
  end



  """
  @spec keys(t) :: [key]
  def keys(keywords) when is_list(keywords) do
    for { key, _ } <- keywords, do: key
  end

