<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>
GitLab
</title>
<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">
<h3>
Marge Bot pushed to branch master
at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3e963de3775c36e6d3f192bada142f9c7aef81d7">3e963de3</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-21T13:13:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">improve docs for casArray and casSmallArray
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/98bffb079d0c9f19431f15fbbd2023bee88da58c">98bffb07</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-21T13:13:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] say "machine words" instead of "Int units" in the primops docs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3aefc14a07714d5db19665c6205d4880ab1b1b9a">3aefc14a</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-21T13:13:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] correct formatting of casArray# in docs for casSmallArray#
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0e96d1205905707369b82ce024afdfed3fd7bdf8">0e96d120</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-21T13:13:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] correct the docs for casArray a little more. clarify that the returned element may be two different things
</pre>
</li>
</ul>
<h4>1 changed file:</h4>
<ul>
<li class="file-stats">
<a href="#2a8bedbc781353ca3c4d1e56daba6faa8829aaf3">
compiler/prelude/primops.txt.pp
</a>
</li>
</ul>
<h4>Changes:</h4>
<li id="2a8bedbc781353ca3c4d1e56daba6faa8829aaf3">
<a href="https://gitlab.haskell.org/ghc/ghc/compare/6ac5da7844023a896d4e4477ee6429fa0f35c6e4...0e96d1205905707369b82ce024afdfed3fd7bdf8#2a8bedbc781353ca3c4d1e56daba6faa8829aaf3"><strong>compiler/prelude/primops.txt.pp</strong></a>
<hr>
<table class="code white" style="font-family: monospace; font-size: 90%;" bgcolor="#fff" width="100%" cellpadding="0" cellspacing="0">
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1133" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="1133" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1133,7 +1133,18 @@ primop ThawArrayOp "thawArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1133" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1133
</td>
<td class="diff-line-num new_line" data-linenumber="1133" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1133
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1133" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1134" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1134
</td>
<td class="diff-line-num new_line" data-linenumber="1134" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1134
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1134" class="line" lang="puppet"><span class="s1" style="color: #d14;">primop CasArrayOp "casArray#" GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1135" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1135
</td>
<td class="diff-line-num new_line" data-linenumber="1135" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1135
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1135" class="line" lang="puppet"><span class="s1" style="color: #d14;"> MutableArray# s a -> Int# -> a -> a -> State# s -> (# State# s, Int#, a #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1136" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1136
</td>
<td class="diff-line-num new_line old" data-linenumber="1136" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1136" class="line" lang="puppet"><span class="s1" style="color: #d14;"> {Unsafe, machine-level atomic compare and swap on an element within an Array.}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1136" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1136
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1136" class="line" lang="puppet"><span class="s1" style="color: #d14;"> {Given an array, an offset, the expected old value, and</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1137
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1137" class="line" lang="puppet"><span class="s1" style="color: #d14;"> the new value, perform an atomic compare and swap (i.e. write the new</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1138" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1138
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1138" class="line" lang="puppet"><span class="s1" style="color: #d14;"> value if the current value and the old value are the same pointer).</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1139" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1139
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1139" class="line" lang="puppet"><span class="s1" style="color: #d14;"> Returns 0 if the swap succeeds and 1 if it fails. Additionally, returns</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1140" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1140
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1140" class="line" lang="puppet"><span class="s1" style="color: #d14;"> the element at the offset after the operation completes. This means that</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1141" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1141
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1141" class="line" lang="puppet"><span class="s1" style="color: #d14;"> on a success the new value is returned, and on a failure the actual old</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1142" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1142
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1142" class="line" lang="puppet"><span class="s1" style="color: #d14;"> value (not the expected one) is returned. Implies a full memory barrier.</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1143" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1143
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1143" class="line" lang="puppet"><span class="s1" style="color: #d14;"> The use of a pointer equality on a lifted value makes this function harder</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1144" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1144
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1144" class="line" lang="puppet"><span class="s1" style="color: #d14;"> to use correctly than {\tt casIntArray\#}. All of the difficulties</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1145" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1145
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1145" class="line" lang="puppet"><span class="s1" style="color: #d14;"> of using {\tt reallyUnsafePtrEquality\#} correctly apply to</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1146" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1146
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1146" class="line" lang="puppet"><span class="s1" style="color: #d14;"> {\tt casArray\#} as well.</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1147" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1147
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1147" class="line" lang="puppet"><span class="s1" style="color: #d14;"> }</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1137" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1137
</td>
<td class="diff-line-num new_line" data-linenumber="1148" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1148
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1148" class="line" lang="puppet"><span class="s1" style="color: #d14;"> with</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1138" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1138
</td>
<td class="diff-line-num new_line" data-linenumber="1149" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1149
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1149" class="line" lang="puppet"><span class="s1" style="color: #d14;"> out_of_line = True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1139" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1139
</td>
<td class="diff-line-num new_line" data-linenumber="1150" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1150
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1150" class="line" lang="puppet"><span class="s1" style="color: #d14;"> has_side_effects = True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1298" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="1309" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1298,7 +1309,8 @@ primop ThawSmallArrayOp "thawSmallArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1298" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1298
</td>
<td class="diff-line-num new_line" data-linenumber="1309" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1309
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1309" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1299" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1299
</td>
<td class="diff-line-num new_line" data-linenumber="1310" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1310
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1310" class="line" lang="puppet"><span class="s1" style="color: #d14;">primop CasSmallArrayOp "casSmallArray#" GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1300" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1300
</td>
<td class="diff-line-num new_line" data-linenumber="1311" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1311
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1311" class="line" lang="puppet"><span class="s1" style="color: #d14;"> SmallMutableArray# s a -> Int# -> a -> a -> State# s -> (# State# s, Int#, a #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1301" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1301
</td>
<td class="diff-line-num new_line old" data-linenumber="1312" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1301" class="line" lang="puppet"><span class="s1" style="color: #d14;"> {Unsafe, machine-level atomic compare and swap on an element within an array.}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1302" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1312" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1312
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1312" class="line" lang="puppet"><span class="s1" style="color: #d14;"> {Unsafe, machine-level atomic compare and swap on an element within an array.</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1302" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1313" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1313
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1313" class="line" lang="puppet"><span class="s1" style="color: #d14;"> See the documentation of {\tt casArray\#}.}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1302" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1302
</td>
<td class="diff-line-num new_line" data-linenumber="1314" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1314
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1314" class="line" lang="puppet"><span class="s1" style="color: #d14;"> with</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1303" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1303
</td>
<td class="diff-line-num new_line" data-linenumber="1315" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1315
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1315" class="line" lang="puppet"><span class="s1" style="color: #d14;"> out_of_line = True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1304" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1304
</td>
<td class="diff-line-num new_line" data-linenumber="1316" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1316
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1316" class="line" lang="puppet"><span class="s1" style="color: #d14;"> has_side_effects = True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1562" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="1574" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1562,13 +1574,13 @@ primop ReadByteArrayOp_WideChar "readWideCharArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1562" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1562
</td>
<td class="diff-line-num new_line" data-linenumber="1574" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1574
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1574" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1563" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1563
</td>
<td class="diff-line-num new_line" data-linenumber="1575" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1575
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1575" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">ReadByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"readIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1564" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1564
</td>
<td class="diff-line-num new_line" data-linenumber="1576" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1576
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1576" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1565" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1565
</td>
<td class="diff-line-num new_line old" data-linenumber="1577" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1565" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Read</span> <span class="n" style="color: #333;">integer</span><span class="p">;</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;">words</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1566" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1577" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1577
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1577" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Read</span> <span class="n" style="color: #333;">integer</span><span class="p">;</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff right"> </span><span class="n" style="color: #333;">words</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1566" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1566
</td>
<td class="diff-line-num new_line" data-linenumber="1578" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1578
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1578" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1567" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1567
</td>
<td class="diff-line-num new_line" data-linenumber="1579" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1579
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1579" class="line" lang="puppet"> <span class="n" style="color: #333;">can_fail</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1568" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1568
</td>
<td class="diff-line-num new_line" data-linenumber="1580" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1580
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1580" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1569" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1569
</td>
<td class="diff-line-num new_line" data-linenumber="1581" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1581
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1581" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">ReadByteArrayOp_Word</span> <span class="s2" style="color: #d14;">"readWordArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1570" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1570
</td>
<td class="diff-line-num new_line" data-linenumber="1582" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1582
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1582" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> State# s -> (# State# s, Word# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1571" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1571
</td>
<td class="diff-line-num new_line old" data-linenumber="1583" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1571" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Read</span> <span class="n" style="color: #333;">word</span><span class="p">;</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;">words</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1572" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1583" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1583
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1583" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Read</span> <span class="n" style="color: #333;">word</span><span class="p">;</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff right"> </span><span class="n" style="color: #333;">words</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1572" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1572
</td>
<td class="diff-line-num new_line" data-linenumber="1584" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1584
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1584" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1573" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1573
</td>
<td class="diff-line-num new_line" data-linenumber="1585" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1585
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1585" class="line" lang="puppet"> <span class="n" style="color: #333;">can_fail</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1574" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1574
</td>
<td class="diff-line-num new_line" data-linenumber="1586" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1586
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1586" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1942" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="1954" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1942,21 +1954,21 @@ primop SetByteArrayOp "setByteArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1942" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1942
</td>
<td class="diff-line-num new_line" data-linenumber="1954" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1954
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1954" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1943" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1943
</td>
<td class="diff-line-num new_line" data-linenumber="1955" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1955
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1955" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">AtomicReadByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"atomicReadIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1944" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1944
</td>
<td class="diff-line-num new_line" data-linenumber="1956" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1956
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1956" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1945" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1945
</td>
<td class="diff-line-num new_line old" data-linenumber="1957" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1945" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="n" style="color: #333;">read</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">The</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1946" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1957" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1957
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1957" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="n" style="color: #333;">read</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">The</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1946" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1946
</td>
<td class="diff-line-num new_line" data-linenumber="1958" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1958
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1958" class="line" lang="puppet"> <span class="n" style="color: #333;">index</span> <span class="n" style="color: #333;">is</span> <span class="n" style="color: #333;">assumed</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">be</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;">bounds</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span> <span class="n" style="color: #333;">barrier</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1947" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1947
</td>
<td class="diff-line-num new_line" data-linenumber="1959" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1959
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1959" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1948" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1948
</td>
<td class="diff-line-num new_line" data-linenumber="1960" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1960
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1960" class="line" lang="puppet"> <span class="n" style="color: #333;">can_fail</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1949" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1949
</td>
<td class="diff-line-num new_line" data-linenumber="1961" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1961
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1961" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1950" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1950
</td>
<td class="diff-line-num new_line" data-linenumber="1962" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1962
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1962" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">AtomicWriteByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"atomicWriteIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1951" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1951
</td>
<td class="diff-line-num new_line" data-linenumber="1963" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1963
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1963" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> Int# -> State# s -> State# s</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1952" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1952
</td>
<td class="diff-line-num new_line old" data-linenumber="1964" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1952" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="n" style="color: #333;">write</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">The</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1953" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1964" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1964
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1964" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="n" style="color: #333;">write</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">The</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1953" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1953
</td>
<td class="diff-line-num new_line" data-linenumber="1965" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1965
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1965" class="line" lang="puppet"> <span class="n" style="color: #333;">index</span> <span class="n" style="color: #333;">is</span> <span class="n" style="color: #333;">assumed</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">be</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;">bounds</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span> <span class="n" style="color: #333;">barrier</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1954" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1954
</td>
<td class="diff-line-num new_line" data-linenumber="1966" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1966
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1966" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1955" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1955
</td>
<td class="diff-line-num new_line" data-linenumber="1967" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1967
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1967" class="line" lang="puppet"> <span class="n" style="color: #333;">can_fail</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1956" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1956
</td>
<td class="diff-line-num new_line" data-linenumber="1968" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1968
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1968" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1957" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1957
</td>
<td class="diff-line-num new_line" data-linenumber="1969" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1969
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1969" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">CasByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"casIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1958" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1958
</td>
<td class="diff-line-num new_line" data-linenumber="1970" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1970
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1970" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> Int# -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1959" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1959
</td>
<td class="diff-line-num new_line old" data-linenumber="1971" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1959" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">expected</span> <span class="n" style="color: #333;">old</span> <span class="n" style="color: #333;">value</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1960" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1971" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1971
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1971" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">expected</span> <span class="n" style="color: #333;">old</span> <span class="n" style="color: #333;">value</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1960" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1960
</td>
<td class="diff-line-num new_line" data-linenumber="1972" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1972
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1972" class="line" lang="puppet"> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">new</span> <span class="n" style="color: #333;">value</span><span class="p">,</span> <span class="n" style="color: #333;">perform</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">atomic</span> <span class="n" style="color: #333;">compare</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">swap</span> <span class="n" style="color: #333;">i</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="n" style="color: #333;">e</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="n" style="color: #333;">write</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">new</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1961" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1961
</td>
<td class="diff-line-num new_line" data-linenumber="1973" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1973
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1973" class="line" lang="puppet"> <span class="n" style="color: #333;">value</span> <span class="k" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">current</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">matches</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">provided</span> <span class="n" style="color: #333;">old</span> <span class="n" style="color: #333;">value</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Returns</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1962" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1962
</td>
<td class="diff-line-num new_line" data-linenumber="1974" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1974
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1974" class="line" lang="puppet"> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">of</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">element</span> <span class="n" style="color: #333;">before</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">operation</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1966" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="1978" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1966,7 +1978,7 @@ primop CasByteArrayOp_Int "casIntArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1966" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1966
</td>
<td class="diff-line-num new_line" data-linenumber="1978" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1978
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1978" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1967" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1967
</td>
<td class="diff-line-num new_line" data-linenumber="1979" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1979
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1979" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">FetchAddByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"fetchAddIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1968" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1968
</td>
<td class="diff-line-num new_line" data-linenumber="1980" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1980
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1980" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1969" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1969
</td>
<td class="diff-line-num new_line old" data-linenumber="1981" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1969" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">add</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1970" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1981" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1981
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1981" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">add</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1970" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1970
</td>
<td class="diff-line-num new_line" data-linenumber="1982" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1982
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1982" class="line" lang="puppet"> <span class="n" style="color: #333;">atomically</span> <span class="n" style="color: #333;">add</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Returns</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">of</span> <span class="n" style="color: #333;">the</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1971" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1971
</td>
<td class="diff-line-num new_line" data-linenumber="1983" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1983
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1983" class="line" lang="puppet"> <span class="n" style="color: #333;">element</span> <span class="n" style="color: #333;">before</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">operation</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span> <span class="n" style="color: #333;">barrier</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1972" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1972
</td>
<td class="diff-line-num new_line" data-linenumber="1984" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1984
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1984" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1974" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="1986" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1974,7 +1986,7 @@ primop FetchAddByteArrayOp_Int "fetchAddIntArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1974" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1974
</td>
<td class="diff-line-num new_line" data-linenumber="1986" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1986
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1986" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1975" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1975
</td>
<td class="diff-line-num new_line" data-linenumber="1987" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1987
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1987" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">FetchSubByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"fetchSubIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1976" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1976
</td>
<td class="diff-line-num new_line" data-linenumber="1988" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1988
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1988" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1977" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1977
</td>
<td class="diff-line-num new_line old" data-linenumber="1989" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1977" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">subtract</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1978" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1989" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1989
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1989" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">subtract</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1978" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1978
</td>
<td class="diff-line-num new_line" data-linenumber="1990" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1990
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1990" class="line" lang="puppet"> <span class="n" style="color: #333;">atomically</span> <span class="n" style="color: #333;">substract</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Returns</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">of</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1979" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1979
</td>
<td class="diff-line-num new_line" data-linenumber="1991" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1991
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1991" class="line" lang="puppet"> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">element</span> <span class="n" style="color: #333;">before</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">operation</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span> <span class="n" style="color: #333;">barrier</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1980" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1980
</td>
<td class="diff-line-num new_line" data-linenumber="1992" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1992
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1992" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1982" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="1994" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1982,7 +1994,7 @@ primop FetchSubByteArrayOp_Int "fetchSubIntArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1982" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1982
</td>
<td class="diff-line-num new_line" data-linenumber="1994" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1994
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1994" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1983" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1983
</td>
<td class="diff-line-num new_line" data-linenumber="1995" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1995
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1995" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">FetchAndByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"fetchAndIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1984" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1984
</td>
<td class="diff-line-num new_line" data-linenumber="1996" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1996
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1996" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1985" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1985
</td>
<td class="diff-line-num new_line old" data-linenumber="1997" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1985" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="nc" style="color: #458; font-weight: 600;">AND</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1986" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="1997" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
1997
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC1997" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="nc" style="color: #458; font-weight: 600;">AND</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1986" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1986
</td>
<td class="diff-line-num new_line" data-linenumber="1998" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1998
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1998" class="line" lang="puppet"> <span class="n" style="color: #333;">atomically</span> <span class="nc" style="color: #458; font-weight: 600;">AND</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Returns</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">of</span> <span class="n" style="color: #333;">the</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1987" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1987
</td>
<td class="diff-line-num new_line" data-linenumber="1999" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1999
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC1999" class="line" lang="puppet"> <span class="n" style="color: #333;">element</span> <span class="n" style="color: #333;">before</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">operation</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span> <span class="n" style="color: #333;">barrier</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1988" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1988
</td>
<td class="diff-line-num new_line" data-linenumber="2000" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2000
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2000" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1990" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="2002" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1990,7 +2002,7 @@ primop FetchAndByteArrayOp_Int "fetchAndIntArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1990" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1990
</td>
<td class="diff-line-num new_line" data-linenumber="2002" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2002
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2002" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1991" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1991
</td>
<td class="diff-line-num new_line" data-linenumber="2003" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2003
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2003" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">FetchNandByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"fetchNandIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1992" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1992
</td>
<td class="diff-line-num new_line" data-linenumber="2004" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2004
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2004" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1993" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1993
</td>
<td class="diff-line-num new_line old" data-linenumber="2005" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1993" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="nc" style="color: #458; font-weight: 600;">NAND</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="1994" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="2005" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
2005
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC2005" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="nc" style="color: #458; font-weight: 600;">NAND</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1994" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1994
</td>
<td class="diff-line-num new_line" data-linenumber="2006" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2006
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2006" class="line" lang="puppet"> <span class="n" style="color: #333;">atomically</span> <span class="nc" style="color: #458; font-weight: 600;">NAND</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Returns</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">of</span> <span class="n" style="color: #333;">the</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1995" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1995
</td>
<td class="diff-line-num new_line" data-linenumber="2007" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2007
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2007" class="line" lang="puppet"> <span class="n" style="color: #333;">element</span> <span class="n" style="color: #333;">before</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">operation</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span> <span class="n" style="color: #333;">barrier</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1996" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1996
</td>
<td class="diff-line-num new_line" data-linenumber="2008" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2008
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2008" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="1998" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="2010" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -1998,7 +2010,7 @@ primop FetchNandByteArrayOp_Int "fetchNandIntArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1998" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1998
</td>
<td class="diff-line-num new_line" data-linenumber="2010" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2010
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2010" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="1999" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
1999
</td>
<td class="diff-line-num new_line" data-linenumber="2011" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2011
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2011" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">FetchOrByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"fetchOrIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2000" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2000
</td>
<td class="diff-line-num new_line" data-linenumber="2012" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2012
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2012" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="2001" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
2001
</td>
<td class="diff-line-num new_line old" data-linenumber="2013" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC2001" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="nc" style="color: #458; font-weight: 600;">OR</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="2002" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="2013" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
2013
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC2013" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="nc" style="color: #458; font-weight: 600;">OR</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2002" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2002
</td>
<td class="diff-line-num new_line" data-linenumber="2014" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2014
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2014" class="line" lang="puppet"> <span class="n" style="color: #333;">atomically</span> <span class="nc" style="color: #458; font-weight: 600;">OR</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Returns</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">of</span> <span class="n" style="color: #333;">the</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2003" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2003
</td>
<td class="diff-line-num new_line" data-linenumber="2015" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2015
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2015" class="line" lang="puppet"> <span class="n" style="color: #333;">element</span> <span class="n" style="color: #333;">before</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">operation</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span> <span class="n" style="color: #333;">barrier</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2004" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2004
</td>
<td class="diff-line-num new_line" data-linenumber="2016" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2016
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2016" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="2006" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="2018" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -2006,7 +2018,7 @@ primop FetchOrByteArrayOp_Int "fetchOrIntArray#" GenPrimOp</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2006" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2006
</td>
<td class="diff-line-num new_line" data-linenumber="2018" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2018
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2018" class="line" lang="puppet"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2007" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2007
</td>
<td class="diff-line-num new_line" data-linenumber="2019" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2019
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2019" class="line" lang="puppet"><span class="n" style="color: #333;">primop</span> <span class="nc" style="color: #458; font-weight: 600;">FetchXorByteArrayOp_Int</span> <span class="s2" style="color: #d14;">"fetchXorIntArray#"</span> <span class="nc" style="color: #458; font-weight: 600;">GenPrimOp</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2008" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2008
</td>
<td class="diff-line-num new_line" data-linenumber="2020" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2020
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2020" class="line" lang="puppet"> <span class="nc" style="color: #458; font-weight: 600;">MutableByteArray</span><span class="c" style="color: #998; font-style: italic;"># s -> Int# -> Int# -> State# s -> (# State# s, Int# #)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="2009" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
2009
</td>
<td class="diff-line-num new_line old" data-linenumber="2021" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
</td>
<td class="line_content noteable_line old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC2009" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="nc" style="color: #458; font-weight: 600;"><span class="idiff left">Int</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">unit</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="nc" style="color: #458; font-weight: 600;">XOR</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="2010" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
</td>
<td class="diff-line-num new new_line" data-linenumber="2021" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
2021
</td>
<td class="line_content new noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC2021" class="line" lang="puppet"> <span class="p">{</span><span class="nc" style="color: #458; font-weight: 600;">Given</span> <span class="n" style="color: #333;">an</span> <span class="n" style="color: #333;">array</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">offset</span> <span class="ow" style="font-weight: 600;">in</span> <span class="n" style="color: #333;"><span class="idiff left">machine</span></span><span class="idiff"> </span><span class="n" style="color: #333;"><span class="idiff right">word</span>s</span><span class="p">,</span> <span class="ow" style="font-weight: 600;">and</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="nc" style="color: #458; font-weight: 600;">XOR</span><span class="p">,</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2010" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2010
</td>
<td class="diff-line-num new_line" data-linenumber="2022" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2022
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2022" class="line" lang="puppet"> <span class="n" style="color: #333;">atomically</span> <span class="nc" style="color: #458; font-weight: 600;">XOR</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">to</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">element</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Returns</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">value</span> <span class="n" style="color: #333;">of</span> <span class="n" style="color: #333;">the</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2011" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2011
</td>
<td class="diff-line-num new_line" data-linenumber="2023" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2023
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2023" class="line" lang="puppet"> <span class="n" style="color: #333;">element</span> <span class="n" style="color: #333;">before</span> <span class="n" style="color: #333;">the</span> <span class="n" style="color: #333;">operation</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span> <span class="nc" style="color: #458; font-weight: 600;">Implies</span> <span class="n" style="color: #333;">a</span> <span class="n" style="color: #333;">full</span> <span class="n" style="color: #333;">memory</span> <span class="n" style="color: #333;">barrier</span><span class="err" style="color: #a61717; background-color: #e3d2d2;">.</span><span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="2012" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2012
</td>
<td class="diff-line-num new_line" data-linenumber="2024" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
2024
</td>
<td class="line_content noteable_line" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC2024" class="line" lang="puppet"> <span class="n" style="color: #333;">with</span> <span class="n" style="color: #333;">has_side_effects</span> <span class="o" style="font-weight: 600;">=</span> <span class="nc" style="color: #458; font-weight: 600;">True</span></span>
</pre>
</td>
</tr>
</table>
<br>
</li>
</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #777;">
—
<br>
<a href="https://gitlab.haskell.org/ghc/ghc/compare/6ac5da7844023a896d4e4477ee6429fa0f35c6e4...0e96d1205905707369b82ce024afdfed3fd7bdf8">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.haskell.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.
</p>
</div>
</body>
</html>