15312 Foundations Of Programming Languages ^new^
-- Infer.hs inferType :: Expr -> TypeScheme inferType (Lam x e) = Forall x (inferType e) inferType (App e1 e2) = case inferType e1 of Mono (Fun t1 t2) -> Mono t2 Forall x t -> inferType (subst x t2 t) where subst x t (TV y) | x == y = t subst x t (TCon c ts) = TCon c (map (subst x t) ts)
15-312: Foundations of Programming Languages (FPL) at Carnegie Mellon University is more than just a coding course; it is a deep dive into the mathematical soul of software. While many computer science courses focus on to use a language, 15-312 asks a more fundamental question: 15312 foundations of programming languages