Thinking about types