Files
rlp/tst/Core/HindleyMilnerSpec.hs
2023-12-18 15:37:32 -07:00

20 lines
600 B
Haskell

{-# LANGUAGE QuasiQuotes #-}
module Core.HindleyMilnerSpec
( spec
)
where
----------------------------------------------------------------------------------
import Core.Syntax
import Core.TH (coreExpr)
import Core.HindleyMilner (infer)
import Test.Hspec
----------------------------------------------------------------------------------
-- TODO: more tests. preferrably property-based. lol.
spec :: Spec
spec = do
it "should infer `id 3` :: Int" $
let g = [ ("id", TyVar "a" :-> TyVar "a") ]
in infer g [coreExpr|id 3|] `shouldBe` Right TyInt