hm is compatible
This commit is contained in:
parent
6e54378327
commit
d5ce73beae
4 changed files with 106 additions and 69 deletions
18
src/TypeChecker/TypeChecker.hs
Normal file
18
src/TypeChecker/TypeChecker.hs
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
module TypeChecker.TypeChecker (typecheck, TypeChecker (..)) where
|
||||
|
||||
import Control.Monad ((<=<))
|
||||
import Grammar.Abs
|
||||
import Grammar.ErrM (Err)
|
||||
import TypeChecker.RemoveTEVar (RemoveTEVar (rmTEVar))
|
||||
import TypeChecker.TypeCheckerBidir qualified as Bi
|
||||
import TypeChecker.TypeCheckerHm qualified as Hm
|
||||
import TypeChecker.TypeCheckerIr qualified as T
|
||||
|
||||
data TypeChecker = Bi | Hm
|
||||
|
||||
typecheck :: TypeChecker -> Program -> Err T.Program
|
||||
typecheck tc = rmTEVar <=< f
|
||||
where
|
||||
f = case tc of
|
||||
Bi -> Bi.typecheck
|
||||
Hm -> Hm.typecheck
|
||||
Loading…
Add table
Add a link
Reference in a new issue