implementing  let-syntax/letrec-syntax