(define-syntax ext-let
  (syntax-rules ()
    ((_ ()() body ...)
     (ext-let-helper ()()() body ...))
    ((_ (var1 var2 ...)(val1 val2 ...) body ...)
     (ext-let-helper ((var1 val1))(var2 ...)(val2 ...) body ...))))

(define-syntax ext-let-helper
  (syntax-rules ()
    ((_ ((var1 val1) ...)(var2 var3 ...)(val2 val3 ...) body ...)
     (ext-let-helper ((var2 val2)(var1 val1) ... )(var3 ...)(val3 ...) body ...))
    ((ext-let-helper ((var val) ...)()() body ...)
     (let ((var val) ...)
       body ...))))