Make CheckResult an algebraic datatype + Lambdaification
Final lambdaification pass