Given the line:
let win = XamlReader.Parse(xaml) :?> Window
What is :?> doing?
I tried looking up ternary but not noticing the :?, it seems to be for type testing?. Also I know > is piping but Window does not have any constructor parameters.
It is the dynamic cast operator which has nothing to do with piping. I quote MSDN section on downcasting: