> F#'s "lightweight" syntax is basically what I want
It's actually not that far off. For definitions that don't need to be self-referential you can use 'and':
let things =
let a = 1
and b = 2
and c = 3 in
do_something a b c