Write more discussion about dependent types