Conversation
7911fb5 to
a281f79
Compare
|
Note that this bug can manifest in a slightly odd test failure, where the I suspect it can also fail with a |
Since `const x y` is synthesisable but `x` is checkable, the reduction rule is `const x y ~> x : Bool` (rather than `const x y ~> x`). Note that `const` is restricted to type `Bool -> Int -> Bool`, and that this reduction matches that of obvious analogue where `const` is replaced by the non-primitive `(λx y. x) : Bool -> Int -> Bool`. Signed-off-by: Ben Price <ben@hackworthltd.com>
|
(whoops, forgot to update a test. force-pushed) |
a281f79 to
c7146a5
Compare
I assume that by "can manifest" and "can also fail," you mean before this fix, and that once this fix is in, these failures will no longer manifest? |
Yes, that is what I meant. |
Since
const x yis synthesisable butxis checkable, the reduction rule isconst x y ~> x : Bool(rather thanconst x y ~> x). Note thatconstis restricted to typeBool -> Int -> Bool, and that this reduction matches that of obvious analogue whereconstis replaced by the non-primitive(λx y. x) : Bool -> Int -> Bool.