Basically we want something like: https://github.com/evancz/elm-html/blob/master/Html/Optimize/RefEq.elm
we want a function
thunked :: (a -> VTree) -> a -> VTree
What it does is: say
a -> VTree produces a quite complex
VTree (which is expensive to build) we could just referentially compare a to it's previous version at previous render. IF they're equal, we just return the previous
VTree. so we dont need to rebuild it.
newtype VTree = VTree (JSRef VTree) --