Type Systems Don't Have To Suck