<!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=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>
<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">
<h3>
John Ericson pushed to branch wip/int64-everywhere
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/523014efd4ca02f4410e847fb01b72bcb766f3b8">523014ef</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-08-29T17:22:19-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Copy enumFrom* implementations from Int/Word for Int64/Word64
Without this, we don't get proper list fusion.
I think this sort of copying is OK for now, but we absolutely need
something better if we are going to make `IntN` use `IntN#` for all `N`.
The degree to which proper metaprogramming has been punted upon by
factoring everything through the native-sized types is disconcerting.
</pre>
</li>
</ul>
<h4>2 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#10be392b7f7b391a804a9d9e07af9686755ee4c7">
libraries/base/GHC/Int.hs
</a>
</li>
<li class="file-stats">
<a href="#b2790eba050766b3c5aefa4efc5ed45ca998764b">
libraries/base/GHC/Word.hs
</a>
</li>
</ul>
<h4>Changes:</h4>
<li id="10be392b7f7b391a804a9d9e07af9686755ee4c7">
<a href="https://gitlab.haskell.org/ghc/ghc/-/commit/523014efd4ca02f4410e847fb01b72bcb766f3b8#10be392b7f7b391a804a9d9e07af9686755ee4c7"><strong>libraries/base/GHC/Int.hs</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="753" 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="753" 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">@@ -753,14 +753,147 @@ instance Enum Int64 where</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="753" 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">
753
</td>
<td class="diff-line-num new_line" data-linenumber="753" 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">
753
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC753" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">/=</span> <span class="n" style="color: #333;">minBound</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">-</span> <span class="mi" style="color: #099;">1</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="754" 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">
754
</td>
<td class="diff-line-num new_line" data-linenumber="754" 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">
754
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC754" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">predError</span> <span class="s" style="color: #d14;">"Int64"</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="755" 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">
755
</td>
<td class="diff-line-num new_line" data-linenumber="755" 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">
755
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC755" class="line" lang="haskell"> <span class="n" style="color: #333;">toEnum</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">i</span><span class="o" style="font-weight: 600;">#</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">intToInt64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">i</span><span class="o" style="font-weight: 600;">#</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="756" 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="756" 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">
756
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC756" class="line" lang="haskell"><span class="o" style="font-weight: 600;">#</span><span class="kr" style="font-weight: 600;">if</span> <span class="kt" style="color: #458; font-weight: 600;">WORD_SIZE_IN_BITS</span> <span class="o" style="font-weight: 600;">>=</span> <span class="mi" style="color: #099;">64</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="756" 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="757" 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">
757
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC757" class="line" lang="haskell"> <span class="n" style="color: #333;">fromEnum</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">int64ToInt</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</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="756" 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="758" 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">
758
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC758" class="line" lang="haskell"><span class="o" style="font-weight: 600;">#</span><span class="kr" style="font-weight: 600;">else</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="756" 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">
756
</td>
<td class="diff-line-num new_line" data-linenumber="759" 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">
759
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC759" class="line" lang="haskell"> <span class="n" style="color: #333;">fromEnum</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">@</span><span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</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="757" 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">
757
</td>
<td class="diff-line-num new_line" data-linenumber="760" 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">
760
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC760" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">>=</span> <span class="n" style="color: #333;">fromIntegral</span> <span class="p">(</span><span class="n" style="color: #333;">minBound</span><span class="o" style="font-weight: 600;">::</span><span class="kt" style="color: #458; font-weight: 600;">Int</span><span class="p">)</span> <span class="o" style="font-weight: 600;">&&</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;"><=</span> <span class="n" style="color: #333;">fromIntegral</span> <span class="p">(</span><span class="n" style="color: #333;">maxBound</span><span class="o" style="font-weight: 600;">::</span><span class="kt" style="color: #458; font-weight: 600;">Int</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="758" 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">
758
</td>
<td class="diff-line-num new_line" data-linenumber="761" 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">
761
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC761" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">int64ToInt</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</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="759" 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">
759
</td>
<td class="diff-line-num new_line" data-linenumber="762" 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">
762
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC762" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">fromEnumError</span> <span class="s" style="color: #d14;">"Int64"</span> <span class="n" style="color: #333;">x</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="760" 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">
760
</td>
<td class="diff-line-num new_line old" data-linenumber="763" 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 old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC760" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFrom</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integralEnumFrom</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="761" 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">
761
</td>
<td class="diff-line-num new_line old" data-linenumber="763" 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 old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC761" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromThen</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integralEnumFromThen</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="762" 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">
762
</td>
<td class="diff-line-num new_line old" data-linenumber="763" 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 old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC762" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromTo</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integralEnumFromTo</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="763" 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">
763
</td>
<td class="diff-line-num new_line old" data-linenumber="763" 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 old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC763" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromThenTo</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integralEnumFromThenTo</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="764" 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="763" 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">
763
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC763" class="line" lang="haskell"><span class="o" style="font-weight: 600;">#</span><span class="n" style="color: #333;">endif</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="764" 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="764" 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">
764
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC764" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Stable Unfolding for list producers]</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="764" 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="765" 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">
765
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC765" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE enumFrom #-}</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="764" 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="766" 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">
766
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC766" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFrom</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">eftInt64</span> <span class="n" style="color: #333;">x</span> <span class="n" style="color: #333;">maxInt64</span><span class="o" style="font-weight: 600;">#</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="764" 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="767" 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">
767
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC767" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">where</span> <span class="o" style="font-weight: 600;">!</span><span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">maxInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">maxBound</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="764" 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="768" 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">
768
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC768" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Blarg: technically I guess enumFrom isn't strict!</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="764" 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="769" 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">
769
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC769" class="line" lang="haskell"></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="764" 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="770" 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">
770
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC770" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Stable Unfolding for list producers]</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="764" 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="771" 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">
771
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC771" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE enumFromTo #-}</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="764" 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="772" 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">
772
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC772" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromTo</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="p">)</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">y</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">eftInt64</span> <span class="n" style="color: #333;">x</span> <span class="n" style="color: #333;">y</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="764" 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="773" 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">
773
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC773" class="line" lang="haskell"></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="764" 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="774" 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">
774
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC774" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Stable Unfolding for list producers]</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="764" 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="775" 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">
775
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC775" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE enumFromThen #-}</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="764" 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="776" 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">
776
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC776" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromThen</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdInt64</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</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="764" 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="777" 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">
777
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC777" class="line" lang="haskell"></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="764" 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="778" 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">
778
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC778" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Stable Unfolding for list producers]</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="764" 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="779" 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">
779
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC779" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE enumFromThenTo #-}</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="764" 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="780" 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">
780
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC780" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromThenTo</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">y</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtInt64</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="781" 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">
781
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC781" class="line" lang="haskell"></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="764" 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="782" 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">
782
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC782" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Modeled after fusion helpers in GHC.Enum for Int</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="764" 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="783" 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">
783
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC783" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- See Note [How the Enum rules work]</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="764" 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="784" 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">
784
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC784" class="line" lang="haskell"></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="764" 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="785" 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">
785
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC785" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# RULES</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="764" 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="786" 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">
786
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC786" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">"eftInt64" [~1] forall x y. eftInt64 x y = build (\ c n -> eftInt64FB c n x y)</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="764" 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="787" 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">
787
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC787" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">"eftInt64List" [1] eftInt64FB (:) [] = eftInt64</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="764" 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="788" 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">
788
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC788" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;"> #-}</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="764" 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="789" 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">
789
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC789" class="line" lang="haskell"></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="764" 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="790" 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">
790
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC790" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# NOINLINE [1] eftInt64 #-}</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="764" 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="791" 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">
791
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC791" class="line" lang="haskell"><span class="n" style="color: #333;">eftInt64</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Int64</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="764" 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="792" 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">
792
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC792" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- [x1..x2]</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="764" 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="793" 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">
793
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC793" class="line" lang="haskell"><span class="n" style="color: #333;">eftInt64</span> <span class="n" style="color: #333;">x0</span> <span class="n" style="color: #333;">y</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x0</span> <span class="p">`</span><span class="n" style="color: #333;">gtInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">[]</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="764" 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="794" 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">
794
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC794" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">go</span> <span class="n" style="color: #333;">x0</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="764" 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="795" 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">
795
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC795" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">where</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="764" 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="796" 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">
796
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC796" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">one</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">intToInt64</span><span class="o" style="font-weight: 600;">#</span> <span class="mi" style="color: #099;">1</span><span class="o" style="font-weight: 600;">#</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="764" 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="797" 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">
797
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC797" class="line" lang="haskell"> <span class="n" style="color: #333;">go</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">:</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">eqInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y</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="764" 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="798" 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">
798
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC798" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">then</span> <span class="kt" style="color: #458; font-weight: 600;">[]</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="764" 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="799" 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">
799
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC799" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">else</span> <span class="n" style="color: #333;">go</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">one</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="764" 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="800" 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">
800
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC800" class="line" lang="haskell"></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="764" 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="801" 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">
801
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC801" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# NOINLINE [0] eftInt64FB #-}</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="764" 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="802" 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">
802
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC802" class="line" lang="haskell"><span class="n" style="color: #333;">eftInt64FB</span> <span class="o" style="font-weight: 600;">::</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">Int64</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span><span class="p">)</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</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="764" 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="803" 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">
803
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC803" class="line" lang="haskell"><span class="n" style="color: #333;">eftInt64FB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x0</span> <span class="n" style="color: #333;">y</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x0</span> <span class="p">`</span><span class="n" style="color: #333;">gtInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">n</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="764" 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="804" 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">
804
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC804" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">go</span> <span class="n" style="color: #333;">x0</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="764" 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="805" 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">
805
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC805" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">where</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="764" 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="806" 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">
806
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC806" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">one</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">intToInt64</span><span class="o" style="font-weight: 600;">#</span> <span class="mi" style="color: #099;">1</span><span class="o" style="font-weight: 600;">#</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="764" 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="807" 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">
807
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC807" class="line" lang="haskell"> <span class="n" style="color: #333;">go</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">eqInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y</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="764" 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="808" 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">
808
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC808" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">then</span> <span class="n" style="color: #333;">n</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="764" 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="809" 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">
809
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC809" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">else</span> <span class="n" style="color: #333;">go</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">one</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="764" 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="810" 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">
810
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC810" class="line" lang="haskell"></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="764" 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="811" 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">
811
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC811" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# RULES</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="764" 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="812" 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">
812
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC812" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">"efdtInt64" [~1] forall x1 x2 y.</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="764" 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="813" 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">
813
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC813" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;"> efdtInt64 x1 x2 y = build (\ c n -> efdtInt64FB c n x1 x2 y)</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="764" 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="814" 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">
814
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC814" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">"efdtInt64UpList" [1] efdtInt64FB (:) [] = efdtInt64</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="764" 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="815" 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">
815
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC815" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;"> #-}</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="764" 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="816" 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">
816
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC816" class="line" lang="haskell"></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="764" 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="817" 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">
817
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC817" class="line" lang="haskell"><span class="n" style="color: #333;">efdInt64</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Int64</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="764" 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="818" 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">
818
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC818" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- [x1,x2..maxInt64]</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="764" 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="819" 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">
819
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC819" class="line" lang="haskell"><span class="n" style="color: #333;">efdInt64</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</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="764" 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="820" 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">
820
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC820" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">geInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">case</span> <span class="n" style="color: #333;">maxBound</span> <span class="kr" style="font-weight: 600;">of</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">y</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">efdtInt64Up</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="821" 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">
821
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC821" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">case</span> <span class="n" style="color: #333;">minBound</span> <span class="kr" style="font-weight: 600;">of</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">y</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">efdtInt64Dn</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="822" 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">
822
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC822" class="line" lang="haskell"></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="764" 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="823" 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">
823
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC823" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# NOINLINE [1] efdtInt64 #-}</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="764" 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="824" 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">
824
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC824" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Int64</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="764" 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="825" 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">
825
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC825" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- [x1,x2..y]</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="764" 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="826" 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">
826
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC826" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="827" 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">
827
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC827" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">geInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtInt64Up</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="828" 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">
828
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC828" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtInt64Dn</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="829" 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">
829
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC829" class="line" lang="haskell"></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="764" 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="830" 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">
830
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC830" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# INLINE [0] efdtInt64FB #-}</span> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Inline FB functions] in GHC.List</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="764" 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="831" 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">
831
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC831" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64FB</span> <span class="o" style="font-weight: 600;">::</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">Int64</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span><span class="p">)</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</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="764" 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="832" 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">
832
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC832" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64FB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="833" 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">
833
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC833" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">geInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtInt64UpFB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="834" 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">
834
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC834" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtInt64DnFB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="764" 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="835" 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">
835
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC835" class="line" lang="haskell"></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="764" 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="836" 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">
836
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC836" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Requires x2 >= x1</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="764" 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="837" 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">
837
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC837" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64Up</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Int64</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="764" 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="838" 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">
838
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC838" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64Up</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span> <span class="c1" style="color: #998; font-style: italic;">-- Be careful about overflow!</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="764" 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="839" 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">
839
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC839" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">ltInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">ltInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="kr" style="font-weight: 600;">then</span> <span class="kt" style="color: #458; font-weight: 600;">[]</span> <span class="kr" style="font-weight: 600;">else</span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</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="764" 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="840" 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">
840
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC840" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="c1" style="color: #998; font-style: italic;">-- Common case: x1 <= x2 <= y</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="764" 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="841" 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">
841
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC841" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">let</span> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">delta</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">subInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span> <span class="c1" style="color: #998; font-style: italic;">-- >= 0</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="764" 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="842" 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">
842
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC842" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">y'</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">subInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</span> <span class="c1" style="color: #998; font-style: italic;">-- x1 <= y' <= y; hence y' is representable</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="764" 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="843" 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">
843
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC843" class="line" lang="haskell"></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="764" 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="844" 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">
844
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC844" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Invariant: x <= y</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="764" 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="845" 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">
845
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC845" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Note that: z <= y' => z + delta won't overflow</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="764" 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="846" 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">
846
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC846" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- so we are guaranteed not to overflow if/when we recurse</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="764" 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="847" 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">
847
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC847" class="line" lang="haskell"> <span class="n" style="color: #333;">go_up</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">gtInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y'</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</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="764" 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="848" 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">
848
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC848" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">:</span> <span class="n" style="color: #333;">go_up</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</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="764" 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="849" 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">
849
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC849" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">in</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="o" style="font-weight: 600;">:</span> <span class="n" style="color: #333;">go_up</span> <span class="n" style="color: #333;">x2</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="764" 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="850" 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">
850
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC850" class="line" lang="haskell"></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="764" 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="851" 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">
851
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC851" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Requires x2 >= x1</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="764" 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="852" 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">
852
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC852" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# INLINE [0] efdtInt64UpFB #-}</span> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Inline FB functions] in GHC.List</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="764" 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="853" 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">
853
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC853" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64UpFB</span> <span class="o" style="font-weight: 600;">::</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">Int64</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span><span class="p">)</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</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="764" 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="854" 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">
854
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC854" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64UpFB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span> <span class="c1" style="color: #998; font-style: italic;">-- Be careful about overflow!</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="764" 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="855" 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">
855
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC855" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">ltInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">ltInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="kr" style="font-weight: 600;">then</span> <span class="n" style="color: #333;">n</span> <span class="kr" style="font-weight: 600;">else</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">n</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="764" 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="856" 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">
856
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC856" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="c1" style="color: #998; font-style: italic;">-- Common case: x1 <= x2 <= y</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="764" 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="857" 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">
857
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC857" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">let</span> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">delta</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">subInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span> <span class="c1" style="color: #998; font-style: italic;">-- >= 0</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="764" 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="858" 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">
858
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC858" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">y'</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">subInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</span> <span class="c1" style="color: #998; font-style: italic;">-- x1 <= y' <= y; hence y' is representable</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="764" 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="859" 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">
859
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC859" class="line" lang="haskell"></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="764" 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="860" 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">
860
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC860" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Invariant: x <= y</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="764" 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="861" 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">
861
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC861" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Note that: z <= y' => z + delta won't overflow</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="764" 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="862" 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">
862
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC862" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- so we are guaranteed not to overflow if/when we recurse</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="764" 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="863" 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">
863
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC863" class="line" lang="haskell"> <span class="n" style="color: #333;">go_up</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">gtInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y'</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">n</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="764" 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="864" 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">
864
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC864" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">go_up</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</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="764" 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="865" 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">
865
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC865" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">in</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">go_up</span> <span class="n" style="color: #333;">x2</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="764" 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="866" 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">
866
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC866" class="line" lang="haskell"></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="764" 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="867" 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">
867
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC867" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Requires x2 <= x1</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="764" 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="868" 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">
868
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC868" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64Dn</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Int64</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="764" 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="869" 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">
869
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC869" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64Dn</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span> <span class="c1" style="color: #998; font-style: italic;">-- Be careful about underflow!</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="764" 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="870" 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">
870
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC870" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">gtInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">gtInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="kr" style="font-weight: 600;">then</span> <span class="kt" style="color: #458; font-weight: 600;">[]</span> <span class="kr" style="font-weight: 600;">else</span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</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="764" 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="871" 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">
871
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC871" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="c1" style="color: #998; font-style: italic;">-- Common case: x1 >= x2 >= y</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="764" 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="872" 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">
872
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC872" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">let</span> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">delta</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">subInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span> <span class="c1" style="color: #998; font-style: italic;">-- <= 0</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="764" 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="873" 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">
873
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC873" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">y'</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">subInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</span> <span class="c1" style="color: #998; font-style: italic;">-- y <= y' <= x1; hence y' is representable</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="764" 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="874" 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">
874
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC874" class="line" lang="haskell"></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="764" 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="875" 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">
875
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC875" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Invariant: x >= y</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="764" 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="876" 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">
876
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC876" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Note that: z >= y' => z + delta won't underflow</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="764" 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="877" 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">
877
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC877" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- so we are guaranteed not to underflow if/when we recurse</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="764" 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="878" 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">
878
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC878" class="line" lang="haskell"> <span class="n" style="color: #333;">go_dn</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">ltInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y'</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</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="764" 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="879" 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">
879
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC879" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">:</span> <span class="n" style="color: #333;">go_dn</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</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="764" 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="880" 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">
880
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC880" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">in</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="o" style="font-weight: 600;">:</span> <span class="n" style="color: #333;">go_dn</span> <span class="n" style="color: #333;">x2</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="764" 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="881" 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">
881
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC881" class="line" lang="haskell"></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="764" 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="882" 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">
882
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC882" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Requires x2 <= x1</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="764" 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="883" 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">
883
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC883" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# INLINE [0] efdtInt64DnFB #-}</span> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Inline FB functions] in GHC.List</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="764" 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="884" 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">
884
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC884" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64DnFB</span> <span class="o" style="font-weight: 600;">::</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">Int64</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span><span class="p">)</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</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="764" 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="885" 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">
885
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC885" class="line" lang="haskell"><span class="n" style="color: #333;">efdtInt64DnFB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span> <span class="c1" style="color: #998; font-style: italic;">-- Be careful about underflow!</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="764" 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="886" 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">
886
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC886" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">gtInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">gtInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="kr" style="font-weight: 600;">then</span> <span class="n" style="color: #333;">n</span> <span class="kr" style="font-weight: 600;">else</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">n</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="764" 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="887" 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">
887
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC887" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="c1" style="color: #998; font-style: italic;">-- Common case: x1 >= x2 >= y</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="764" 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="888" 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">
888
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC888" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">let</span> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">delta</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">subInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span> <span class="c1" style="color: #998; font-style: italic;">-- <= 0</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="764" 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="889" 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">
889
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC889" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">y'</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">subInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</span> <span class="c1" style="color: #998; font-style: italic;">-- y <= y' <= x1; hence y' is representable</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="764" 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="890" 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">
890
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC890" class="line" lang="haskell"></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="764" 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="891" 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">
891
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC891" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Invariant: x >= y</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="764" 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="892" 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">
892
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC892" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Note that: z >= y' => z + delta won't underflow</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="764" 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="893" 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">
893
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC893" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- so we are guaranteed not to underflow if/when we recurse</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="764" 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="894" 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">
894
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC894" class="line" lang="haskell"> <span class="n" style="color: #333;">go_dn</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">ltInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y'</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">n</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="764" 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="895" 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">
895
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC895" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">go_dn</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusInt64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</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="764" 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="896" 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">
896
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC896" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">in</span> <span class="kt" style="color: #458; font-weight: 600;">I64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">go_dn</span> <span class="n" style="color: #333;">x2</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="764" 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">
764
</td>
<td class="diff-line-num new_line" data-linenumber="897" 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">
897
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC897" class="line" lang="haskell"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="765" 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">
765
</td>
<td class="diff-line-num new_line" data-linenumber="898" 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">
898
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC898" class="line" lang="haskell"><span class="cd">-- | @since 2.01</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="766" 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">
766
</td>
<td class="diff-line-num new_line" data-linenumber="899" 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">
899
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC899" class="line" lang="haskell"><span class="kr" style="font-weight: 600;">instance</span> <span class="kt" style="color: #458; font-weight: 600;">Integral</span> <span class="kt" style="color: #458; font-weight: 600;">Int64</span> <span class="kr" style="font-weight: 600;">where</span></span>
</pre>
</td>
</tr>
</table>
<br>
</li>
<li id="b2790eba050766b3c5aefa4efc5ed45ca998764b">
<a href="https://gitlab.haskell.org/ghc/ghc/-/commit/523014efd4ca02f4410e847fb01b72bcb766f3b8#b2790eba050766b3c5aefa4efc5ed45ca998764b"><strong>libraries/base/GHC/Word.hs</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="739" 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="739" 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">@@ -739,10 +739,20 @@ instance Enum Word64 where</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="739" 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">
739
</td>
<td class="diff-line-num new_line" data-linenumber="739" 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">
739
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC739" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;"><=</span> <span class="n" style="color: #333;">fromIntegral</span> <span class="p">(</span><span class="n" style="color: #333;">maxBound</span><span class="o" style="font-weight: 600;">::</span><span class="kt" style="color: #458; font-weight: 600;">Int</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="740" 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">
740
</td>
<td class="diff-line-num new_line" data-linenumber="740" 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">
740
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC740" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">I</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">word2Int</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">word64ToWord</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</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="741" 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">
741
</td>
<td class="diff-line-num new_line" data-linenumber="741" 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">
741
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC741" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">fromEnumError</span> <span class="s" style="color: #d14;">"Word64"</span> <span class="n" style="color: #333;">x</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="742" 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">
742
</td>
<td class="diff-line-num new_line old" data-linenumber="742" 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 old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC742" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFrom</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integralEnumFrom</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="743" 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">
743
</td>
<td class="diff-line-num new_line old" data-linenumber="742" 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 old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC743" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromThen</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integralEnumFromThen</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="744" 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">
744
</td>
<td class="diff-line-num new_line old" data-linenumber="742" 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 old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC744" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromTo</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integralEnumFromTo</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="745" 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">
745
</td>
<td class="diff-line-num new_line old" data-linenumber="742" 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 old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC745" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromThenTo</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integralEnumFromThenTo</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="746" 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="742" 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">
742
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC742" class="line" lang="haskell"></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="746" 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="743" 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">
743
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC743" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE enumFrom #-}</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="746" 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="744" 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">
744
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC744" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFrom</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">eftWord64</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">maxWord64</span><span class="o" style="font-weight: 600;">#</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="746" 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="745" 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">
745
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC745" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">where</span> <span class="o" style="font-weight: 600;">!</span><span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">maxWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">maxBound</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="746" 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="746" 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">
746
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC746" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Blarg: technically I guess enumFrom isn't strict!</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="746" 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="747" 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">
747
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC747" class="line" lang="haskell"></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="746" 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="748" 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">
748
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC748" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE enumFromTo #-}</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="746" 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="749" 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">
749
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC749" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromTo</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="p">)</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">y</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">eftWord64</span> <span class="n" style="color: #333;">x</span> <span class="n" style="color: #333;">y</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="746" 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="750" 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">
750
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC750" class="line" lang="haskell"></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="746" 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="751" 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">
751
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC751" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE enumFromThen #-}</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="746" 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="752" 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">
752
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC752" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromThen</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdWord64</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</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="746" 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="753" 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">
753
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC753" class="line" lang="haskell"></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="746" 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="754" 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">
754
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC754" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE enumFromThenTo #-}</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="746" 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="755" 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">
755
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC755" class="line" lang="haskell"> <span class="n" style="color: #333;">enumFromThenTo</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">y</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtWord64</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="746" 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">
746
</td>
<td class="diff-line-num new_line" data-linenumber="756" 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">
756
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC756" class="line" lang="haskell"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="747" 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">
747
</td>
<td class="diff-line-num new_line" data-linenumber="757" 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">
757
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC757" class="line" lang="haskell"><span class="cd">-- | @since 2.01</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="748" 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">
748
</td>
<td class="diff-line-num new_line" data-linenumber="758" 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">
758
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC758" class="line" lang="haskell"><span class="kr" style="font-weight: 600;">instance</span> <span class="kt" style="color: #458; font-weight: 600;">Integral</span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span> <span class="kr" style="font-weight: 600;">where</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="766" 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="776" 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">@@ -766,6 +776,122 @@ instance Integral Word64 where</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="766" 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">
766
</td>
<td class="diff-line-num new_line" data-linenumber="776" 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">
776
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC776" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">divZeroError</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="767" 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">
767
</td>
<td class="diff-line-num new_line" data-linenumber="777" 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">
777
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC777" class="line" lang="haskell"> <span class="n" style="color: #333;">toInteger</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">integerFromWord64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span><span class="o" style="font-weight: 600;">#</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="768" 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">
768
</td>
<td class="diff-line-num new_line" data-linenumber="778" 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">
778
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC778" class="line" lang="haskell"></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="769" 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="779" 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">
779
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC779" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Modeled after fusion helpers in GHC.Enum for Word</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="769" 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="780" 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">
780
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC780" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- See Note [How the Enum rules work]</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="769" 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="781" 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">
781
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC781" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">--</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="769" 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="782" 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">
782
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC782" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# RULES</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="769" 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="783" 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">
783
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC783" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">"eftWord64" [~1] forall x y. eftWord64 x y = build (\ c n -> eftWord64FB c n x y)</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="769" 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="784" 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">
784
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC784" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">"eftWord64List" [1] eftWord64FB (:) [] = eftWord64</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="769" 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="785" 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">
785
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC785" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;"> #-}</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="769" 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="786" 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">
786
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC786" class="line" lang="haskell"></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="769" 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="787" 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">
787
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC787" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# NOINLINE [1] eftWord64 #-}</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="769" 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="788" 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">
788
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC788" class="line" lang="haskell"><span class="n" style="color: #333;">eftWord64</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Word64</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="769" 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="789" 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">
789
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC789" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- [x1..x2]</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="769" 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="790" 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">
790
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC790" class="line" lang="haskell"><span class="n" style="color: #333;">eftWord64</span> <span class="n" style="color: #333;">x0</span> <span class="n" style="color: #333;">y</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x0</span> <span class="p">`</span><span class="n" style="color: #333;">gtWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">[]</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="769" 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="791" 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">
791
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC791" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">go</span> <span class="n" style="color: #333;">x0</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="769" 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="792" 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">
792
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC792" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">where</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="769" 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="793" 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">
793
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC793" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">one</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">wordToWord64</span><span class="o" style="font-weight: 600;">#</span> <span class="mi" style="color: #099;">1</span><span class="o" style="font-weight: 600;">##</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="769" 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="794" 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">
794
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC794" class="line" lang="haskell"> <span class="n" style="color: #333;">go</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">:</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">eqWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y</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="769" 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="795" 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">
795
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC795" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">then</span> <span class="kt" style="color: #458; font-weight: 600;">[]</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="769" 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="796" 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">
796
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC796" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">else</span> <span class="n" style="color: #333;">go</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">one</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="769" 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="797" 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">
797
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC797" class="line" lang="haskell"></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="769" 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="798" 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">
798
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC798" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# INLINE [0] eftWord64FB #-}</span> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Inline FB functions] in GHC.List</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="769" 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="799" 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">
799
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC799" class="line" lang="haskell"><span class="n" style="color: #333;">eftWord64FB</span> <span class="o" style="font-weight: 600;">::</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">Word64</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span><span class="p">)</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</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="769" 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="800" 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">
800
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC800" class="line" lang="haskell"><span class="n" style="color: #333;">eftWord64FB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x0</span> <span class="n" style="color: #333;">y</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x0</span> <span class="p">`</span><span class="n" style="color: #333;">gtWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">n</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="769" 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="801" 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">
801
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC801" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">go</span> <span class="n" style="color: #333;">x0</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="769" 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="802" 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">
802
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC802" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">where</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="769" 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="803" 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">
803
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC803" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">one</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">wordToWord64</span><span class="o" style="font-weight: 600;">#</span> <span class="mi" style="color: #099;">1</span><span class="o" style="font-weight: 600;">##</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="769" 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="804" 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">
804
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC804" class="line" lang="haskell"> <span class="n" style="color: #333;">go</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">eqWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y</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="769" 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="805" 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">
805
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC805" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">then</span> <span class="n" style="color: #333;">n</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="769" 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="806" 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">
806
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC806" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">else</span> <span class="n" style="color: #333;">go</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">one</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="769" 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="807" 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">
807
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC807" class="line" lang="haskell"></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="769" 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="808" 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">
808
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC808" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# RULES</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="769" 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="809" 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">
809
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC809" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">"efdtWord64" [~1] forall x1 x2 y.</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="769" 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="810" 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">
810
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC810" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;"> efdtWord64 x1 x2 y = build (\ c n -> efdtWord64FB c n x1 x2 y)</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="769" 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="811" 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">
811
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC811" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">"efdtWord64UpList" [1] efdtWord64FB (:) [] = efdtWord64</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="769" 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="812" 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">
812
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC812" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;"> #-}</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="769" 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="813" 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">
813
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC813" class="line" lang="haskell"></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="769" 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="814" 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">
814
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC814" class="line" lang="haskell"><span class="n" style="color: #333;">efdWord64</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Word64</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="769" 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="815" 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">
815
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC815" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- [x1,x2..maxWord64]</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="769" 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="816" 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">
816
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC816" class="line" lang="haskell"><span class="n" style="color: #333;">efdWord64</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</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="769" 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="817" 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">
817
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC817" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">geWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">case</span> <span class="n" style="color: #333;">maxBound</span> <span class="kr" style="font-weight: 600;">of</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">y</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">efdtWord64Up</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="769" 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="818" 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">
818
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC818" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">case</span> <span class="n" style="color: #333;">minBound</span> <span class="kr" style="font-weight: 600;">of</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">y</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">efdtWord64Dn</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="769" 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="819" 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">
819
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC819" class="line" lang="haskell"></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="769" 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="820" 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">
820
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC820" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# NOINLINE [1] efdtWord64 #-}</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="769" 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="821" 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">
821
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC821" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Word64</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="769" 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="822" 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">
822
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC822" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- [x1,x2..y]</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="769" 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="823" 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">
823
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC823" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="769" 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="824" 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">
824
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC824" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">geWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtWord64Up</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="769" 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="825" 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">
825
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC825" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtWord64Dn</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="769" 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="826" 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">
826
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC826" class="line" lang="haskell"></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="769" 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="827" 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">
827
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC827" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# INLINE [0] efdtWord64FB #-}</span> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Inline FB functions] in GHC.List</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="769" 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="828" 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">
828
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC828" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64FB</span> <span class="o" style="font-weight: 600;">::</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">Word64</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span><span class="p">)</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</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="769" 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="829" 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">
829
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC829" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64FB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="769" 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="830" 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">
830
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC830" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">geWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtWord64UpFB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="769" 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="831" 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">
831
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC831" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">efdtWord64DnFB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</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="769" 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="832" 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">
832
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC832" class="line" lang="haskell"></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="769" 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="833" 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">
833
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC833" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Requires x2 >= x1</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="769" 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="834" 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">
834
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC834" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64Up</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Word64</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="769" 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="835" 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">
835
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC835" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64Up</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span> <span class="c1" style="color: #998; font-style: italic;">-- Be careful about overflow!</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="769" 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="836" 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">
836
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC836" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">ltWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">ltWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="kr" style="font-weight: 600;">then</span> <span class="kt" style="color: #458; font-weight: 600;">[]</span> <span class="kr" style="font-weight: 600;">else</span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</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="769" 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="837" 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">
837
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC837" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="c1" style="color: #998; font-style: italic;">-- Common case: x1 <= x2 <= y</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="769" 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="838" 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">
838
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC838" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">let</span> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">delta</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">subWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span> <span class="c1" style="color: #998; font-style: italic;">-- >= 0</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="769" 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="839" 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">
839
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC839" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">y'</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">subWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</span> <span class="c1" style="color: #998; font-style: italic;">-- x1 <= y' <= y; hence y' is representable</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="769" 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="840" 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">
840
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC840" class="line" lang="haskell"></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="769" 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="841" 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">
841
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC841" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Invariant: x <= y</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="769" 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="842" 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">
842
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC842" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Note that: z <= y' => z + delta won't overflow</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="769" 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="843" 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">
843
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC843" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- so we are guaranteed not to overflow if/when we recurse</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="769" 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="844" 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">
844
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC844" class="line" lang="haskell"> <span class="n" style="color: #333;">go_up</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">gtWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y'</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</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="769" 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="845" 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">
845
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC845" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">:</span> <span class="n" style="color: #333;">go_up</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</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="769" 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="846" 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">
846
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC846" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">in</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="o" style="font-weight: 600;">:</span> <span class="n" style="color: #333;">go_up</span> <span class="n" style="color: #333;">x2</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="769" 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="847" 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">
847
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC847" class="line" lang="haskell"></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="769" 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="848" 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">
848
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC848" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Requires x2 >= x1</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="769" 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="849" 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">
849
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC849" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# INLINE [0] efdtWord64UpFB #-}</span> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Inline FB functions] in GHC.List</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="769" 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="850" 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">
850
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC850" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64UpFB</span> <span class="o" style="font-weight: 600;">::</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">Word64</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span><span class="p">)</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</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="769" 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="851" 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">
851
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC851" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64UpFB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span> <span class="c1" style="color: #998; font-style: italic;">-- Be careful about overflow!</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="769" 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="852" 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">
852
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC852" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">ltWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">ltWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="kr" style="font-weight: 600;">then</span> <span class="n" style="color: #333;">n</span> <span class="kr" style="font-weight: 600;">else</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">n</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="769" 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="853" 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">
853
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC853" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="c1" style="color: #998; font-style: italic;">-- Common case: x1 <= x2 <= y</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="769" 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="854" 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">
854
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC854" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">let</span> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">delta</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">subWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span> <span class="c1" style="color: #998; font-style: italic;">-- >= 0</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="769" 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="855" 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">
855
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC855" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">y'</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">subWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</span> <span class="c1" style="color: #998; font-style: italic;">-- x1 <= y' <= y; hence y' is representable</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="769" 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="856" 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">
856
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC856" class="line" lang="haskell"></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="769" 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="857" 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">
857
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC857" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Invariant: x <= y</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="769" 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="858" 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">
858
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC858" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Note that: z <= y' => z + delta won't overflow</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="769" 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="859" 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">
859
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC859" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- so we are guaranteed not to overflow if/when we recurse</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="769" 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="860" 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">
860
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC860" class="line" lang="haskell"> <span class="n" style="color: #333;">go_up</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">gtWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y'</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">n</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="769" 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="861" 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">
861
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC861" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">go_up</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</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="769" 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="862" 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">
862
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC862" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">in</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">go_up</span> <span class="n" style="color: #333;">x2</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="769" 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="863" 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">
863
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC863" class="line" lang="haskell"></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="769" 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="864" 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">
864
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC864" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Requires x2 <= x1</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="769" 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="865" 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">
865
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC865" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64Dn</span> <span class="o" style="font-weight: 600;">::</span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">Word64</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="769" 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="866" 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">
866
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC866" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64Dn</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span> <span class="c1" style="color: #998; font-style: italic;">-- Be careful about underflow!</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="769" 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="867" 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">
867
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC867" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">gtWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">gtWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="kr" style="font-weight: 600;">then</span> <span class="kt" style="color: #458; font-weight: 600;">[]</span> <span class="kr" style="font-weight: 600;">else</span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</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="769" 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="868" 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">
868
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC868" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="c1" style="color: #998; font-style: italic;">-- Common case: x1 >= x2 >= y</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="769" 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="869" 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">
869
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC869" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">let</span> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">delta</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">subWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span> <span class="c1" style="color: #998; font-style: italic;">-- <= 0</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="769" 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="870" 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">
870
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC870" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">y'</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">subWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</span> <span class="c1" style="color: #998; font-style: italic;">-- y <= y' <= x1; hence y' is representable</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="769" 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="871" 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">
871
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC871" class="line" lang="haskell"></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="769" 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="872" 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">
872
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC872" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Invariant: x >= y</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="769" 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="873" 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">
873
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC873" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Note that: z >= y' => z + delta won't underflow</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="769" 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="874" 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">
874
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC874" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- so we are guaranteed not to underflow if/when we recurse</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="769" 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="875" 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">
875
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC875" class="line" lang="haskell"> <span class="n" style="color: #333;">go_dn</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">ltWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y'</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="p">[</span><span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</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="769" 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="876" 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">
876
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC876" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">:</span> <span class="n" style="color: #333;">go_dn</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</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="769" 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="877" 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">
877
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC877" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">in</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="o" style="font-weight: 600;">:</span> <span class="n" style="color: #333;">go_dn</span> <span class="n" style="color: #333;">x2</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="769" 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="878" 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">
878
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC878" class="line" lang="haskell"></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="769" 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="879" 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">
879
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC879" class="line" lang="haskell"><span class="c1" style="color: #998; font-style: italic;">-- Requires x2 <= x1</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="769" 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="880" 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">
880
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC880" class="line" lang="haskell"><span class="cp" style="color: #999; font-weight: 600;">{-# INLINE [0] efdtWord64DnFB #-}</span> <span class="c1" style="color: #998; font-style: italic;">-- See Note [Inline FB functions] in GHC.List</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="769" 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="881" 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">
881
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC881" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64DnFB</span> <span class="o" style="font-weight: 600;">::</span> <span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">Word64</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span><span class="p">)</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span><span class="o" style="font-weight: 600;">#</span> <span class="o" style="font-weight: 600;">-></span> <span class="n" style="color: #333;">r</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="769" 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="882" 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">
882
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC882" class="line" lang="haskell"><span class="n" style="color: #333;">efdtWord64DnFB</span> <span class="n" style="color: #333;">c</span> <span class="n" style="color: #333;">n</span> <span class="n" style="color: #333;">x1</span> <span class="n" style="color: #333;">x2</span> <span class="n" style="color: #333;">y</span> <span class="c1" style="color: #998; font-style: italic;">-- Be careful about underflow!</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="769" 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="883" 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">
883
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC883" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">gtWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x2</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kr" style="font-weight: 600;">if</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">gtWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span><span class="p">)</span> <span class="kr" style="font-weight: 600;">then</span> <span class="n" style="color: #333;">n</span> <span class="kr" style="font-weight: 600;">else</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">n</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="769" 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="884" 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">
884
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC884" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="c1" style="color: #998; font-style: italic;">-- Common case: x1 >= x2 >= y</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="769" 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="885" 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">
885
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC885" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">let</span> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">delta</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">x2</span> <span class="p">`</span><span class="n" style="color: #333;">subWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">x1</span> <span class="c1" style="color: #998; font-style: italic;">-- <= 0</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="769" 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="886" 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">
886
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC886" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">!</span><span class="n" style="color: #333;">y'</span> <span class="o" style="font-weight: 600;">=</span> <span class="n" style="color: #333;">y</span> <span class="p">`</span><span class="n" style="color: #333;">subWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</span> <span class="c1" style="color: #998; font-style: italic;">-- y <= y' <= x1; hence y' is representable</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="769" 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="887" 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">
887
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC887" class="line" lang="haskell"></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="769" 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="888" 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">
888
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC888" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Invariant: x >= y</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="769" 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="889" 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">
889
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC889" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- Note that: z >= y' => z + delta won't underflow</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="769" 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="890" 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">
890
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC890" class="line" lang="haskell"> <span class="c1" style="color: #998; font-style: italic;">-- so we are guaranteed not to underflow if/when we recurse</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="769" 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="891" 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">
891
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC891" class="line" lang="haskell"> <span class="n" style="color: #333;">go_dn</span> <span class="n" style="color: #333;">x</span> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">isTrue</span><span class="o" style="font-weight: 600;">#</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">ltWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">y'</span><span class="p">)</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">n</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="769" 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="892" 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">
892
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC892" class="line" lang="haskell"> <span class="o" style="font-weight: 600;">|</span> <span class="n" style="color: #333;">otherwise</span> <span class="o" style="font-weight: 600;">=</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">go_dn</span> <span class="p">(</span><span class="n" style="color: #333;">x</span> <span class="p">`</span><span class="n" style="color: #333;">plusWord64</span><span class="o" style="font-weight: 600;">#</span><span class="p">`</span> <span class="n" style="color: #333;">delta</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="769" 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="893" 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">
893
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC893" class="line" lang="haskell"> <span class="kr" style="font-weight: 600;">in</span> <span class="kt" style="color: #458; font-weight: 600;">W64</span><span class="o" style="font-weight: 600;">#</span> <span class="n" style="color: #333;">x1</span> <span class="p">`</span><span class="n" style="color: #333;">c</span><span class="p">`</span> <span class="n" style="color: #333;">go_dn</span> <span class="n" style="color: #333;">x2</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="769" 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="894" 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">
894
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC894" class="line" lang="haskell"></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="769" 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">
769
</td>
<td class="diff-line-num new_line" data-linenumber="895" 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">
895
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC895" class="line" lang="haskell"><span class="cd">-- | @since 2.01</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="770" 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">
770
</td>
<td class="diff-line-num new_line" data-linenumber="896" 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">
896
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC896" class="line" lang="haskell"><span class="kr" style="font-weight: 600;">instance</span> <span class="kt" style="color: #458; font-weight: 600;">Bits</span> <span class="kt" style="color: #458; font-weight: 600;">Word64</span> <span class="kr" style="font-weight: 600;">where</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="771" 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">
771
</td>
<td class="diff-line-num new_line" data-linenumber="897" 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">
897
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC897" class="line" lang="haskell"> <span class="cp" style="color: #999; font-weight: 600;">{-# INLINE shift #-}</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/-/commit/523014efd4ca02f4410e847fb01b72bcb766f3b8">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.
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Commit","url":"https://gitlab.haskell.org/ghc/ghc/-/commit/523014efd4ca02f4410e847fb01b72bcb766f3b8"}}</script>
</p>
</div>
</body>
</html>