Unexpected `can_fail` and/or `has_side_effects` attributes for some primops?
Summary
Some primops I would expect to have a can_fail
attribute don't. Similar primops that do suggest that the attribute should be present:
- CasArrayOp "casArray#"
- CasSmallArrayOp "casSmallArray#"
Perhaps there are more, the above list may not be comprehensive.
Some primops may have excess has_side_effects
(can reading have side-effects)?
- ReadArrayOp "readArray#"
- ReadArrayArrayOp_ByteArray "readByteArrayArray#"
- ReadArrayArrayOp_MutableByteArray "readMutableByteArrayArray#"
- ReadArrayArrayOp_ArrayArray "readArrayArrayArray#"
- ReadArrayArrayOp_MutableArrayArray "readMutableArrayArrayArray#"
- ReadOffAddrOp_Char "readCharOffAddr#"
- ReadOffAddrOp_WideChar "readWideCharOffAddr#"
- ReadOffAddrOp_Int "readIntOffAddr#"
- ...
- AtomicReadByteArrayOp_Int "atomicReadIntArray#"
- AtomicReadAddrOp_Word "atomicReadWordAddr#"
- ReadMutVarOp "readMutVar#"
- GHC version used: HEAD