 
   """
   @spec get_values(t, key) :: [value]
-  def get_values(keywords, key) when is_atom(key) do
+  def get_values(keywords, key) when is_list(keywords) and is_atom(key) do
     for { k, v } <- keywords, key == k, do: v
   end
 


  """
  @spec put(t, key, value) :: t
  def put(keywords, key, value) when is_atom(key) do
    [{key, value}|delete(keywords, key)]
  end



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

