| TakeMVarOp
| PutMVarOp
| SameMVarOp
- | TakeMaybeMVarOp
+ | TryTakeMVarOp
| IsEmptyMVarOp
-- exceptions
tagOf_PrimOp TakeMVarOp = ILIT(218)
tagOf_PrimOp PutMVarOp = ILIT(219)
tagOf_PrimOp SameMVarOp = ILIT(220)
-tagOf_PrimOp TakeMaybeMVarOp = ILIT(221)
+tagOf_PrimOp TryTakeMVarOp = ILIT(221)
tagOf_PrimOp IsEmptyMVarOp = ILIT(222)
tagOf_PrimOp MkForeignObjOp = ILIT(223)
tagOf_PrimOp WriteForeignObjOp = ILIT(224)
TakeMVarOp,
PutMVarOp,
SameMVarOp,
- TakeMaybeMVarOp,
+ TryTakeMVarOp,
IsEmptyMVarOp,
MkForeignObjOp,
WriteForeignObjOp,
in
mkGenPrimOp SLIT("sameMVar#") [s_tv, elt_tv] [mvar_ty, mvar_ty] boolTy
-primOpInfo TakeMaybeMVarOp
+primOpInfo TryTakeMVarOp
= let
elt = alphaTy; elt_tv = alphaTyVar; s = betaTy; s_tv = betaTyVar
state = mkStatePrimTy s
in
- mkGenPrimOp SLIT("takeMaybeMVar#") [s_tv, elt_tv]
+ mkGenPrimOp SLIT("tryTakeMVar#") [s_tv, elt_tv]
[mkMVarPrimTy s elt, state]
(unboxedTriple [state, intPrimTy, elt])
primOpOutOfLine op
= case op of
TakeMVarOp -> True
- TakeMaybeMVarOp -> True
+ TryTakeMVarOp -> True
PutMVarOp -> True
DelayOp -> True
WaitReadOp -> True
primOpHasSideEffects UnsafeThawArrayOp = True
primOpHasSideEffects TakeMVarOp = True
-primOpHasSideEffects TakeMaybeMVarOp = True
+primOpHasSideEffects TryTakeMVarOp = True
primOpHasSideEffects PutMVarOp = True
primOpHasSideEffects DelayOp = True
primOpHasSideEffects WaitReadOp = True
TakeMVarOp -> mangle [mkM, mkP ] mkM
PutMVarOp -> mangle [mkM, mkM, mkP ] mkR
SameMVarOp -> mangle [mkP, mkP ] mkM
- TakeMaybeMVarOp -> mangle [mkM, mkP ] mkM
+ TryTakeMVarOp -> mangle [mkM, mkP ] mkM
IsEmptyMVarOp -> mangle [mkP, mkP ] mkM
ForkOp -> mangle [mkO, mkP ] mkR