What are the benefits of a type system? Describe a problem that strong static typing helps prevent. Describe a problem that strong static typing does not help prevent.
What is recursion? What is well-founded recursion? What is a base case?
Define referential transparency. Why is this a desirable property of a function? What optimizations opportunities does it make possible?