Comp Sci 312: Functional and Logical Programming languages