Fix pointer equality case in thunkEq

This commit is contained in:
Ken Micklas 2019-03-09 21:57:38 -05:00
parent 5129beaef8
commit ec62bce3a0

View file

@ -227,7 +227,7 @@ thunkEq :: MonadThunk (NValue m) (NThunk m) m
=> NThunk m -> NThunk m -> m Bool
thunkEq lt rt = force lt $ \lv -> force rt $ \rv ->
let unsafePtrEq = case (lt, rt) of
(NThunk _ (Thunk lid _ _), NThunk _ (Thunk rid _ _)) -> return $ lid == rid
(NThunk _ (Thunk lid _ _), NThunk _ (Thunk rid _ _)) | lid == rid -> return True
_ -> valueEq lv rv
in case (lv, rv) of
(NVClosure _ _, NVClosure _ _) -> unsafePtrEq