%{^
#include <curl/curl.h>
%}
absviewtype CURLptr (l:addr)
abst@ype CURLoption = $extype "CURLoption"
macdef CURLOPT_URL = $extval(CURLoption, "CURLOPT_URL")
extern fun curl_easy_init
()
: [l:addr] CURLptr l = "#curl_easy_init"
extern fun curl_easy_setopt {l:addr} {p:type}
(handle: !CURLptr l, option: CURLoption, parameter: p)
: int = "#curl_easy_setopt"
extern fun curl_easy_perform {l:addr}
( handle: !CURLptr l)
: int = "#curl_easy_perform"
extern fun curl_easy_cleanup {l:addr}
(handle: CURLptr l)
: void = "#curl_easy_cleanup"
implement main() = let
val curl = curl_easy_init();
val res = curl_easy_setopt(curl, CURLOPT_URL, "www.bluishcoder.co.nz");
val res = curl_easy_perform(curl);
val () = curl_easy_cleanup(curl);
in
()
end;