• variables are declared in a given scope
  • variables are BOUND to values, no assigned
  • variables are typed, can only hold appropriate values
  • variables which hold simple things: $a
  • variables which hold list things: @s
let $s as string   := "boring"
let $xml as xml  := <message>this must be valid XML</message>
let @s   as list := ("rumsti", <message>yet another</message>, $s)