use [] in let bindings
encode empty list as "[]" rather than json-null
use scm_string_length to compute content-length