I have looked on several forums(stack exchange etc.) but somehow I am not able to understand the concept of UpValues(^:=). I do understand DownValues and how they work. Could someone please explain in the clearest way possible how it works and add an simple example to it.