Added somewhat detailed README

This commit is contained in:
sebastian 2023-04-02 13:42:47 +02:00
parent aaaff776e0
commit 03a486410f
3 changed files with 210 additions and 7 deletions

View file

@ -19,7 +19,6 @@ desugarBind (Bind name args e) = Bind name args (desugarExp e)
desugarExp :: Exp -> Exp
desugarExp = \case
EAppInf e2 e1 -> (EApp `on` desugarExp) e1 e2
EApp e1 e2 -> (EApp `on` desugarExp) e1 e2
EAdd e1 e2 -> (EAdd `on` desugarExp) e1 e2
EAbs i e -> EAbs i (desugarExp e)

View file

@ -159,10 +159,6 @@ checkBind (Bind name args e) = do
let m1 = M.fromList $ zip fvs1 letters
let t0 = replace m0 t'
let t1 = replace m1 lambda_t
ctrace "lambda" lambda_t
ctrace "t'" t'
ctrace "t0" t0
ctrace "t1" t1
unless
(t1 <<= t0)
( throwError $
@ -388,7 +384,6 @@ algoW = \case
(subst, injs, ret_t) <- checkCase t injs
let comp = subst `compose` sub
return (comp, apply comp (T.ECase (e', t) injs, ret_t))
EAppInf{} -> error "desugar phase failed"
checkCase :: Type -> [Branch] -> Infer (Subst, [T.Branch' Type], Type)
checkCase _ [] = catchableErr "Atleast one case required"