Use K&R style block types for improved type checking

Closes #630 

@joshaber @jonsterling