Kind of going just straight to dependent types. Less for the proving, more for the meta-programming and first class type stuff. Who knows if it is going to work out though!
Also, seems like systems level stuff will be more doeable thanks to the quantitative type theory work! (linear types and erasure). Do want more coeffects and also effects - sadly integrating those with DTs is still open research. :(
Been thinking recently: Could variable captures be considered as coeffects?
(\x => \y => x) : a -> b -> a
(\x => \y =(x)=> x) : a -> b -> a
(\y => x) : error!
(\y =(x)=> x) : b -(a)-> b
Kind of reminds me of capture lists in C++