Embedded F# script

I am experimenting with embedding F# script into a .Net framework application and I would like to clarify a few things (these questions may be more to do with dynamic assemblies in general):

If I redefine a variable is the original value eventually garbage collected (assuming the variable is not captured) ? e.g.
let x = obj() // what happens to this obj?
let x = obj() // new definition of x

Similarly for functions:

let f i = i + 1 // what happens to f if I redefine it?
let f i = i + 2 // new definition of f