anchor.diff:  
       request(AccountSID, AuthToken, post, Path, Params2).
   
  +%% @doc Sends an SMS.  Opts is a list of parameters to send
  +%% to twilio.  The list of accepted parameters can be found
  +%% at [http://www.twilio.com/docs/api/rest/making_calls].
  +%% One of "Url" or "ApplicationSid" must be provided.
  +-spec send_sms(string(), string(), string(), string(), [twilio_param()]) -> twilio_response().
  +send_sms(AccountSID, AuthToken, From, To, Body) ->
  +    % Add "From" and "To" parameters to send to twilio
  +    Params2 = [{"From", From}, {"To", To}, {"Body", Body}],
  +
  +    Path = "/Accounts/" ++ AccountSID ++ "/SMS/Messages",
  +
  +    request(AccountSID, AuthToken, post, Path, Params2).
  +
   %% @doc Makes a Twilio API request.
   -spec request(string(), string(), atom(), string(), [{string(), string()}]) -> twilio_response().
   request(AccountSID, AuthToken, get, Path, []) ->
  
positive.code: request(AccountSID, AuthToken, post, Path, Params) ->
      RequestURL = "https://" ++ AccountSID ++ ":" ++ AuthToken
                   ++ "@"?BASE_URL"/"?API_VERSION_2010 ++ Path,
      ParamsString = expand_params(Params),
      Request = {RequestURL, [], "application/x-www-form-urlencoded", ParamsString},
      % @TODO properly parse for twilio errors
  
negative.code: %%%-------------------------------------------------------------------
  -module(twilio).
  
  -export([make_call/5,
          send_sms/5]).
  -export([request/5]).
  
  -define(BASE_URL, "api.twilio.com").
  