Rob Rix
|
fe3c43d3d9
|
Only take the first line from each child.
|
2016-03-29 15:36:49 -04:00 |
|
Rob Rix
|
73a2eac0bb
|
intersects returns something in the shape of the ranges.
|
2016-03-29 15:30:53 -04:00 |
|
Rob Rix
|
35d60f8517
|
Rename heads/tails to headRanges/tailRanges.
|
2016-03-29 13:53:46 -04:00 |
|
Rob Rix
|
55742ac947
|
🔥 the inner go function.
|
2016-03-29 10:02:06 -04:00 |
|
Rob Rix
|
9417f9a5cf
|
Spacing.
|
2016-03-29 09:58:31 -04:00 |
|
Rob Rix
|
6f4f9391de
|
🔥 bimapJoin .
|
2016-03-29 09:57:41 -04:00 |
|
Rob Rix
|
e356b1f29b
|
groupChildrenByLine’s go function takes its ranges in Join These Range .
|
2016-03-29 09:42:19 -04:00 |
|
Rob Rix
|
48be9e9d81
|
There is only one cata .
|
2016-03-29 09:22:54 -04:00 |
|
Rob Rix
|
8db6772d07
|
Destructure lists embedded in Join These.
|
2016-03-28 19:17:38 -04:00 |
|
Rob Rix
|
d33a779768
|
spanMergeable takes its ranges in Join These .
|
2016-03-28 18:48:55 -04:00 |
|
Rob Rix
|
b5d1658e60
|
intersects takes its ranges in Join These.
|
2016-03-28 18:46:34 -04:00 |
|
Rob Rix
|
c5257ab009
|
Add a partial Applicative function for Join These.
|
2016-03-28 18:46:22 -04:00 |
|
Rob Rix
|
ffca96416f
|
Extract and annotate the inner functions.
|
2016-03-28 18:27:01 -04:00 |
|
Rob Rix
|
e334308205
|
Eliminate repetition when binding this/that.
|
2016-03-28 18:09:59 -04:00 |
|
Rob Rix
|
178dc833b2
|
Rename left/right to this/that for clarity.
|
2016-03-28 18:08:54 -04:00 |
|
Rob Rix
|
17abfbb813
|
Generalize split for clarity that it cannot depend on diff details.
|
2016-03-28 18:08:46 -04:00 |
|
Rob Rix
|
133c69ec92
|
Span over the mergeable children.
|
2016-03-28 17:57:38 -04:00 |
|
Rob Rix
|
b4c75c7f55
|
Add a function to partition & divide children intersecting with a pair of lines.
|
2016-03-28 17:55:01 -04:00 |
|
Rob Rix
|
6f170a134d
|
Add a function to split These into This and That.
|
2016-03-28 17:54:44 -04:00 |
|
Rob Rix
|
4fa1e1c2d3
|
Pull the or test out of intersects .
|
2016-03-28 17:53:39 -04:00 |
|
Rob Rix
|
82c2d29d5e
|
Don’t join the child lines.
|
2016-03-28 16:40:21 -04:00 |
|
Rob Rix
|
71fd74527d
|
Write intersects in non-tacit style.
|
2016-03-28 16:19:08 -04:00 |
|
Rob Rix
|
ed97e2fa36
|
Extract the intersection predicate into the where clause.
|
2016-03-28 16:10:38 -04:00 |
|
Rob Rix
|
07e3d89e2f
|
Match if there are no intersecting lines.
|
2016-03-28 16:08:33 -04:00 |
|
Rob Rix
|
665afe2a29
|
Find intersecting child lines on either side.
|
2016-03-28 16:03:56 -04:00 |
|
Rob Rix
|
3c27e69000
|
🔥 the bogus context gathering guards.
|
2016-03-28 16:03:43 -04:00 |
|
Rob Rix
|
deff4e0c28
|
🔥 the asymmetric children-gathering.
|
2016-03-28 16:03:29 -04:00 |
|
Rob Rix
|
e81be3d4ba
|
We meant to test whether these were _not_ empty.
|
2016-03-28 12:50:38 -04:00 |
|
Rob Rix
|
56c002fdf4
|
Inline the definition of intersecting .
|
2016-03-28 12:48:25 -04:00 |
|
Rob Rix
|
aa69c00245
|
concatMap.
|
2016-03-28 04:39:32 -04:00 |
|
Rob Rix
|
36ea4abdc8
|
🔥 some $s.
|
2016-03-28 04:39:26 -04:00 |
|
Rob Rix
|
f949aae3df
|
Avoid some $s.
|
2016-03-28 04:39:15 -04:00 |
|
Rob Rix
|
4649aa290a
|
Use null to test for emptiness.
|
2016-03-28 04:39:08 -04:00 |
|
Rob Rix
|
26199e2b22
|
Allow coincident endings in asymmetric alignments too.
|
2016-03-25 12:07:06 -04:00 |
|
Rob Rix
|
122ff8c182
|
Child ranges can end coincident with the line ranges and still intersect.
|
2016-03-25 11:52:30 -04:00 |
|
Rob Rix
|
acc7cd3ce8
|
Align trailing context asymmetrically.
|
2016-03-25 00:26:33 -04:00 |
|
Rob Rix
|
b04c844d17
|
Don’t short-circuit when there are still children to align.
|
2016-03-25 00:22:43 -04:00 |
|
Rob Rix
|
fd61294642
|
Advance asymmetrically.
|
2016-03-25 00:19:41 -04:00 |
|
Rob Rix
|
14a109b02e
|
Require child lines to be matched.
|
2016-03-25 00:19:31 -04:00 |
|
Rob Rix
|
c5cb7da9b0
|
🔥 the intersects function.
|
2016-03-24 20:24:15 -04:00 |
|
Rob Rix
|
6e2de43c20
|
Bind lines/rest with pattern guards.
|
2016-03-24 15:30:04 -04:00 |
|
Rob Rix
|
5d34fb495d
|
Take all intersecting child lines in a single pass.
|
2016-03-24 15:28:13 -04:00 |
|
Rob Rix
|
a03c9a90e8
|
Compute the child lines intersecting with the current lines.
|
2016-03-24 14:46:22 -04:00 |
|
Rob Rix
|
9e3db2853c
|
Join the child lines.
|
2016-03-24 14:39:23 -04:00 |
|
Rob Rix
|
da3e338d84
|
Revert "Add runJoinWith to extract-and-apply Join."
This reverts commit c4027f8162ae6df17c2c91836dd518c6ab229e30.
|
2016-03-24 14:26:28 -04:00 |
|
Rob Rix
|
05bdd19053
|
Revert "Define modifyJoin in terms of runJoinWith."
This reverts commit 17fadce8973b46f1bf66d85c2acb8c0eecf5a334.
|
2016-03-24 14:26:25 -04:00 |
|
Rob Rix
|
3057ce5190
|
Just use runJoin when computing intersections.
|
2016-03-24 14:26:15 -04:00 |
|
Rob Rix
|
9047282ff8
|
Define modifyJoin in terms of runJoinWith.
|
2016-03-24 14:24:11 -04:00 |
|
Rob Rix
|
606b5b48c8
|
Add runJoinWith to extract-and-apply Join.
|
2016-03-24 14:24:02 -04:00 |
|
Rob Rix
|
f2bd582dfb
|
Use bimap to simplify the intersection test.
|
2016-03-24 14:22:21 -04:00 |
|
Rob Rix
|
cdaae6866f
|
Use bimapJoin to simplify the both-intersecting case.
|
2016-03-24 14:22:13 -04:00 |
|
Rob Rix
|
0429e14f36
|
Add bimapJoin to simplify modifying Join by a bimap.
|
2016-03-24 14:20:28 -04:00 |
|
Rob Rix
|
b2fce1abbd
|
Express the if statement as a case expression.
|
2016-03-24 14:19:43 -04:00 |
|
Rob Rix
|
b7b823eb0c
|
modifyJoin is parametric in the type of the bifunctor.
|
2016-03-24 14:18:53 -04:00 |
|
Rob Rix
|
cde7753e5b
|
Less duplicative Indexed mapping.
|
2016-03-24 14:09:44 -04:00 |
|
Rob Rix
|
2f5127b6ca
|
Less duplicative Leaf mapping.
|
2016-03-24 14:08:28 -04:00 |
|
Rob Rix
|
0ee12a96b4
|
Use modifyJoin to map Indexed lines.
|
2016-03-24 14:05:05 -04:00 |
|
Rob Rix
|
6d4e3761c6
|
Use modifyJoin to map leaf lines.
|
2016-03-24 14:04:43 -04:00 |
|
Rob Rix
|
4c132d0c2d
|
Use modifyJoin to compute range/child intersections.
|
2016-03-24 14:02:40 -04:00 |
|
Rob Rix
|
71e53fd4ff
|
Use modifyJoin to bimap inside a Join.
|
2016-03-24 14:01:30 -04:00 |
|
Rob Rix
|
d118070186
|
Add a convenience to modify the contents of a Join.
|
2016-03-24 13:59:49 -04:00 |
|
Rob Rix
|
6b18548eb0
|
Export groupChildrenByLine for the tests.
|
2016-03-24 13:53:49 -04:00 |
|
Rob Rix
|
36f32e0b75
|
Revert "Get the first ranges for a child."
This reverts commit 24c88022fbc6ad04912006fa9f8245bed742a342.
|
2016-03-24 12:52:47 -04:00 |
|
Rob Rix
|
1e09119163
|
Include child lines that exist on both sides.
|
2016-03-24 12:52:17 -04:00 |
|
Rob Rix
|
385d7570c8
|
Revert "Don’t iterate each line of each child."
This reverts commit 7149f1a4187ee0e855ed3538ec7fe26a0bac2eb5.
|
2016-03-24 11:52:14 -04:00 |
|
Rob Rix
|
b05b1694a7
|
Get the first ranges for a child.
|
2016-03-24 11:45:52 -04:00 |
|
Rob Rix
|
ccceb8d771
|
Re-add getRange.
|
2016-03-24 11:45:45 -04:00 |
|
Rob Rix
|
6a0302acbf
|
Replace rangeLists with a use of fromThese.
|
2016-03-24 11:34:11 -04:00 |
|
Rob Rix
|
4d99c94bc2
|
Move the definition onto a new line.
|
2016-03-24 11:33:11 -04:00 |
|
Rob Rix
|
0a1b3508ee
|
Don’t iterate each line of each child.
|
2016-03-24 11:32:41 -04:00 |
|
Rob Rix
|
6087ce0560
|
Place the comma at the start.
|
2016-03-24 11:32:20 -04:00 |
|
Rob Rix
|
eaff627676
|
Move rangeLists up.
|
2016-03-24 11:32:09 -04:00 |
|
Rob Rix
|
99d73906bc
|
Stub in grouping children by line with a recursive function.
|
2016-03-24 11:05:57 -04:00 |
|
Rob Rix
|
aabb2bbbd1
|
Dedupe groupChildrenByLine.
|
2016-03-22 09:27:45 -04:00 |
|
Rob Rix
|
ca10210caa
|
🔥 the groupChildren binding.
|
2016-03-22 09:25:52 -04:00 |
|
Rob Rix
|
cff9130426
|
bimap so we get the correct categories.
|
2016-03-22 09:17:59 -04:00 |
|
Rob Rix
|
8b00b66b3f
|
Align leaves.
|
2016-03-22 08:35:38 -04:00 |
|
Rob Rix
|
25e3a13309
|
Align diffs into lists of Join These.
|
2016-03-22 08:20:56 -04:00 |
|
Rob Rix
|
f03cdea1f7
|
Align Indexed branch nodes.
|
2016-03-21 18:27:46 -04:00 |
|
Rob Rix
|
0e83f33c6b
|
Pair ranges and children.
|
2016-03-21 16:08:56 -04:00 |
|
Rob Rix
|
3e73aefb01
|
Don’t bother wrapping in Join.
We need a bifunctor here.
|
2016-03-21 16:04:21 -04:00 |
|
Rob Rix
|
d1d9fa6970
|
Add a function to group children by line.
|
2016-03-21 16:03:10 -04:00 |
|
Rob Rix
|
8a019572dc
|
Embed in Join These outside of the alignSyntax call.
|
2016-03-21 14:47:26 -04:00 |
|
Rob Rix
|
2f37ba14bc
|
Aligned leaf diffs have per-line ranges.
|
2016-03-21 13:38:36 -04:00 |
|
Rob Rix
|
d3e8b2ba80
|
Stub in a function to align diffs.
|
2016-03-21 13:26:38 -04:00 |
|
Rob Rix
|
89537b4f81
|
Aligned diffs are split diffs.
|
2016-03-21 13:10:28 -04:00 |
|
Rob Rix
|
a3e253804d
|
🔥 theseBoth.
|
2016-03-21 13:06:00 -04:00 |
|
Rob Rix
|
6422cb38a4
|
Define AlignedDiff as Joining These two terms.
|
2016-03-21 12:53:41 -04:00 |
|
Rob Rix
|
c16d725773
|
Remove a redundant import.
|
2016-03-21 09:30:54 -04:00 |
|
Rob Rix
|
dc0b5f0355
|
Revert "Stub in a Fix type for the sake of experimentation."
This reverts commit 91e8730e7e331abf10406c3d866796bb7f8b6d4f.
|
2016-03-18 15:16:22 -04:00 |
|
Rob Rix
|
9f1b7fc80f
|
Truncate branches for the moment.
|
2016-03-18 15:15:05 -04:00 |
|
Rob Rix
|
ee81295592
|
Don’t bind leaf values.
|
2016-03-18 15:01:11 -04:00 |
|
Rob Rix
|
35215da076
|
Construct Aligned in alignSyntax.
|
2016-03-18 15:00:28 -04:00 |
|
Rob Rix
|
63f6389950
|
Define alignSyntax by case analysis.
|
2016-03-18 14:58:49 -04:00 |
|
Rob Rix
|
a11bc809df
|
Remove the constructor parameter from alignTermBy and rename it.
|
2016-03-18 14:58:01 -04:00 |
|
Rob Rix
|
30e1da5a12
|
Use alignSyntax to construct Aligned functors.
|
2016-03-18 14:56:48 -04:00 |
|
Rob Rix
|
21356e0144
|
Add alignSyntax to split a leaf by its lines.
Doesn’t yet operate on branches. Invalidates some other assumptions.
|
2016-03-18 14:56:32 -04:00 |
|
Rob Rix
|
d318b6565c
|
Get first and second from Data.Bifunctor instead of Control.Arrow.
|
2016-03-18 14:53:52 -04:00 |
|
Rob Rix
|
cceeffe360
|
The annotations are in Join.
|
2016-03-18 14:30:22 -04:00 |
|
Rob Rix
|
bad7878953
|
Pass the sources to alignTermBy.
|
2016-03-18 14:18:19 -04:00 |
|
Rob Rix
|
2900eb1f71
|
alignPatch takes the sources.
|
2016-03-18 14:15:49 -04:00 |
|
Rob Rix
|
8c791fb638
|
Annotate aligned diffs with These Info Info for marginal reductions in dubiousness.
|
2016-03-18 14:03:13 -04:00 |
|
Rob Rix
|
0e36a8af38
|
Rename the parameter to note its plurality.
|
2016-03-18 14:00:19 -04:00 |
|
Rob Rix
|
2a5f465a66
|
Slightly less dubiously, Aligned diffs carry Both Info.
|
2016-03-18 13:58:04 -04:00 |
|
Rob Rix
|
b9fc6d86e2
|
Aligned diffs carry Info.
This is extremely dubious, but it’s a start.
|
2016-03-18 13:55:41 -04:00 |
|
Rob Rix
|
77fd84f831
|
Run alignPatch in Cofree instead of Fix.
|
2016-03-18 13:46:56 -04:00 |
|
Rob Rix
|
82e29e2df7
|
Define anamorphisms over Cofree.
|
2016-03-18 12:50:16 -04:00 |
|
Rob Rix
|
bf87e931b7
|
Move the annotated hylo from Interpreter into Term.
|
2016-03-18 12:43:29 -04:00 |
|
Rob Rix
|
495204ce90
|
Extract a function to align terms.
|
2016-03-18 12:08:26 -04:00 |
|
Rob Rix
|
e61d8a27ff
|
Stub in a type synonym for aligned diffs.
|
2016-03-18 12:02:07 -04:00 |
|
Rob Rix
|
00c3a2ef9f
|
Spike out a function aligning Terms in Patches.
|
2016-03-18 12:01:59 -04:00 |
|
Rob Rix
|
23ba7c0ae6
|
hylo over Fix.
|
2016-03-18 12:00:00 -04:00 |
|
Rob Rix
|
ea6fd75131
|
cata over Fix.
|
2016-03-18 11:59:54 -04:00 |
|
Rob Rix
|
793025e65f
|
ana over Fix.
|
2016-03-18 11:59:48 -04:00 |
|
Rob Rix
|
235e2207e8
|
Stub in a Fix type for the sake of experimentation.
|
2016-03-18 11:59:37 -04:00 |
|
Rob Rix
|
daba89d6b0
|
Be precise as to which cata we mean.
|
2016-03-18 11:59:19 -04:00 |
|
Rob Rix
|
f3c6f8b3f6
|
Compute lines within Adjoined.
|
2016-03-15 10:58:54 -04:00 |
|
Rob Rix
|
a46915b58c
|
Inline rangeUntilNext.
|
2016-03-15 10:36:18 -04:00 |
|
Rob Rix
|
86b3d700a4
|
Rename placeChildAndRangeInContainer to match makeContextLines.
|
2016-03-15 09:23:14 -04:00 |
|
Rob Rix
|
9c69c1b6a6
|
🔥 unionLineRangesFrom.
|
2016-03-15 09:22:39 -04:00 |
|
Rob Rix
|
5677e6abf9
|
Reindent some stuff.
|
2016-03-15 08:56:18 -04:00 |
|
Rob Rix
|
745765417e
|
Use makeContextLines to construct the leading context.
|
2016-03-15 08:55:04 -04:00 |
|
Rob Rix
|
c3fa0eb986
|
Extract and rename pairWithNothing.
|
2016-03-15 08:54:35 -04:00 |
|
Rob Rix
|
cfa9ae8987
|
🔥 redundant imports.
|
2016-03-14 22:49:47 -04:00 |
|
Rob Rix
|
aaa2fe9f36
|
Revert "What if we aligned in These?"
This reverts commit a43335ef084db66616188c0b166b4ea563d2c0e2.
|
2016-03-14 20:43:45 -04:00 |
|
Rob Rix
|
1e48770ce1
|
What if we aligned in These?
It wouldn’t work, that’s what!
|
2016-03-14 20:43:35 -04:00 |
|
Rob Rix
|
34a76bfe93
|
🔥 alignRows again.
|
2016-03-14 19:45:08 -04:00 |
|
Rob Rix
|
aa36f83da3
|
Diff over TotalCrosswalk functors.
|
2016-03-14 19:45:02 -04:00 |
|
Rob Rix
|
93414f43ad
|
Diff entirely within Both.
|
2016-03-14 19:17:44 -04:00 |
|
Rob Rix
|
83ea2f1254
|
Restore the documentation for alignRows.
|
2016-03-14 19:16:48 -04:00 |
|
Rob Rix
|
79ff5f9395
|
Re-add alignRows.
|
2016-03-14 19:15:40 -04:00 |
|
Rob Rix
|
ec4b30eee7
|
Rename the range to next indices function.
|
2016-03-14 15:56:09 -04:00 |
|
Rob Rix
|
5eded53479
|
Patch returns its values in These.
|
2016-03-14 15:40:35 -04:00 |
|
Rob Rix
|
f079f41933
|
fmap inline.
|
2016-03-14 14:57:39 -04:00 |
|
Rob Rix
|
7e631f06d6
|
Fix a misaligned guard.
|
2016-03-14 14:56:56 -04:00 |
|
Rob Rix
|
3742f22eb6
|
mappend directly instead of building up a list.
|
2016-03-14 14:56:32 -04:00 |
|
Rob Rix
|
80c24de3ba
|
🔥 AlignFunction.
|
2016-03-14 14:54:09 -04:00 |
|
Rob Rix
|
f2a6895c6d
|
Constrain childLines to Crosswalk functors.
|
2016-03-14 14:53:25 -04:00 |
|
Rob Rix
|
b4415d7b93
|
Constrain adjoinChildren to Crosswalk functors.
|
2016-03-14 14:52:34 -04:00 |
|
Rob Rix
|
54a12b9c22
|
splitAbstractedTerm is constrained to Crosswalk functors.
|
2016-03-14 14:50:54 -04:00 |
|
Rob Rix
|
65f759069c
|
Use a let because nested wheres are a bit gross.
|
2016-03-14 14:32:48 -04:00 |
|
Rob Rix
|
1f62641fd3
|
Move makeBranchTerm into adjoinChildren.
|
2016-03-14 14:31:24 -04:00 |
|
Rob Rix
|
c877cdf0d2
|
s/MaybeBoth/BothMaybe.
|
2016-03-14 14:13:46 -04:00 |
|
Rob Rix
|
48df75b7ed
|
Align diffs in MaybeBoth.
|
2016-03-14 14:13:06 -04:00 |
|
Rob Rix
|
3b5f2a47b3
|
🔥 adjoinRows.
|
2016-03-14 10:35:35 -04:00 |
|
Rob Rix
|
79ac625dc8
|
Align by mappending Adjoined values.
|
2016-03-14 10:35:31 -04:00 |
|
Rob Rix
|
e968825b62
|
Generalize makeBranchTerm to Foldable Functors.
|
2016-03-14 10:00:48 -04:00 |
|
Rob Rix
|
59edb8ff41
|
splitPatchByLines returns Adjoined .
|
2016-03-11 17:59:58 -05:00 |
|
Rob Rix
|
536053ef73
|
Use the Monoid instance to concatenate lists.
This will allow us to swap lists out for some other Monoid.
|
2016-03-11 15:29:12 -05:00 |
|
Rob Rix
|
48af1161e7
|
adjoinRows takes an AlignFunction.
|
2016-03-11 14:27:56 -05:00 |
|
Rob Rix
|
a23eb6f5f8
|
Merge branch 'data-dot-adjoined' into adjoin-associatively
# Conflicts:
# src/Alignment.hs
|
2016-03-11 13:26:12 -05:00 |
|
Rob Rix
|
840658720c
|
Export a limited list of symbols.
|
2016-03-11 12:29:17 -05:00 |
|
Rob Rix
|
eb6133da70
|
Document childLines.
|
2016-03-11 12:00:06 -05:00 |
|
Rob Rix
|
78a095ceb7
|
Document adjoinChildren.
|
2016-03-11 11:54:39 -05:00 |
|
Rob Rix
|
b50e348e06
|
Move childRanges into childLines.
|
2016-03-11 11:46:36 -05:00 |
|
Rob Rix
|
363c6e4c72
|
Document AlignFunction.
|
2016-03-11 11:29:36 -05:00 |
|
Rob Rix
|
98de90ddba
|
Use the AlignFunction type synonym more widely.
|
2016-03-11 11:27:49 -05:00 |
|
Rob Rix
|
9a65904fc5
|
Generalize AlignFunction from lists to arbitrary Align Applicative functors.
|
2016-03-11 11:27:01 -05:00 |
|
Rob Rix
|
b3c65733ba
|
Remove redundant parentheses.
|
2016-03-11 11:25:36 -05:00 |
|
Rob Rix
|
5320af4637
|
Extract the align function parameter type into a type synonym.
|
2016-03-11 11:25:15 -05:00 |
|
Rob Rix
|
39dd494c80
|
Don’t close empty lines when aligning.
|
2016-03-10 20:14:02 -05:00 |
|
Rob Rix
|
55318b5f2b
|
Name a bunch of parts of childLines.
|
2016-03-10 20:06:16 -05:00 |
|
Rob Rix
|
d84b112d91
|
Make the align parameter explicitly act on Lines.
|
2016-03-10 15:39:07 -05:00 |
|
Rob Rix
|
0361a5ea8c
|
alignRows to pad out diffs.
|
2016-03-10 15:20:08 -05:00 |
|
Rob Rix
|
264cd8cbff
|
Document alignRows.
|
2016-03-10 15:07:49 -05:00 |
|
Rob Rix
|
7572ddb79c
|
Add a function to align rows.
This takes over from zipDefaults.
|
2016-03-10 15:06:03 -05:00 |
|
Rob Rix
|
75133aad3f
|
🔥 openRangePair.
|
2016-03-10 09:29:54 -05:00 |
|
Rob Rix
|
0e07398b59
|
🔥 the predicate parameters in coalescing and adjoining.
|
2016-03-10 09:19:47 -05:00 |
|
Rob Rix
|
5c82d1820b
|
Use pureBy to construct lines.
|
2016-03-10 09:19:07 -05:00 |
|
Rob Rix
|
60ad5cf634
|
Document linesInRangeOfSource.
|
2016-03-10 09:08:49 -05:00 |
|
Rob Rix
|
f2c8d75879
|
Construct open or closed lines up front.
|
2016-03-10 09:05:16 -05:00 |
|
Rob Rix
|
4b29ee9916
|
Use the linesInRangeOfSource wrapper for leaf lines.
|
2016-03-10 09:02:21 -05:00 |
|
Rob Rix
|
6105e7ce6b
|
Use the linesInRangeOfSource wrapper for context lines.
|
2016-03-10 08:53:40 -05:00 |
|
Rob Rix
|
d844acd9ae
|
Add a wrapper around actualLineRanges.
|
2016-03-10 08:53:24 -05:00 |
|
Rob Rix
|
f2bb06c9c3
|
Reuse lineIncrement.
|
2016-03-10 00:56:31 -05:00 |
|
Rob Rix
|
9614994e53
|
Use the isEmpty predicate to test for line emptiness.
|
2016-03-10 00:37:21 -05:00 |
|
Rob Rix
|
bff4908e16
|
🔥 Data.Option.
|
2016-03-09 09:52:53 -05:00 |
|
Rob Rix
|
94aa9be081
|
🔥 rowRangesBy.
|
2016-03-09 09:40:06 -05:00 |
|
Rob Rix
|
a50a62d54f
|
Note the alignment function in splitAbstractedTerm’s docs.
|
2016-03-09 09:36:12 -05:00 |
|
Rob Rix
|
3a28598e86
|
🔥 a redundant import.
|
2016-03-09 09:33:14 -05:00 |
|
Rob Rix
|
01afcbf5b4
|
🔥 splitAnnotatedByLines.
|
2016-03-09 09:33:08 -05:00 |
|
Rob Rix
|
be1f548c61
|
splitDiffByLines uses splitAbstractedTerm.
|
2016-03-09 09:30:18 -05:00 |
|
Rob Rix
|
402dafa6e3
|
Constrain the aligning function to Monoids.
|
2016-03-09 09:30:00 -05:00 |
|
Rob Rix
|
2930a96aed
|
Pointfree.
|
2016-03-09 09:23:28 -05:00 |
|
Rob Rix
|
129055ea42
|
Sort keyed nodes with the assistance of an unaligning function.
|
2016-03-09 05:28:34 -05:00 |
|
Rob Rix
|
55260afb2b
|
Expand the Row type in rowRanges.
|
2016-03-09 05:24:21 -05:00 |
|
Rob Rix
|
5d150fd816
|
Abstract splitAbstractedTerm over an alignment function.
|
2016-03-09 05:02:54 -05:00 |
|
Rob Rix
|
789a7d1be8
|
Abstract splitAbstractedTerm over an Applicative Traversable Functor.
|
2016-03-09 04:57:30 -05:00 |
|
Rob Rix
|
2a2e274084
|
Define splitAbstractedTerm over adjoinChildren.
|
2016-03-09 04:45:30 -05:00 |
|
Rob Rix
|
1274522dbd
|
The Monoid instance already distributes.
|
2016-03-09 04:20:43 -05:00 |
|
Rob Rix
|
da0aff3d5f
|
Extract the common construction stuff into a function.
|
2016-03-09 04:19:09 -05:00 |
|
Rob Rix
|
2acf80d633
|
Only pass a single constructor in.
|
2016-03-09 04:17:39 -05:00 |
|
Rob Rix
|
2efbb0f87d
|
Use adjoinRowsBy.
|
2016-03-09 04:14:31 -05:00 |
|
Rob Rix
|
73aa926bdc
|
Generalize adjoinRowsBy to any Applicative with an aligning function.
|
2016-03-09 04:13:09 -05:00 |
|
Rob Rix
|
8c36e46452
|
Expand the Row type synonym in adjoinRowsBy.
|
2016-03-09 04:09:46 -05:00 |
|
Rob Rix
|
4e1b48a356
|
Don’t pass in the adjoining function.
|
2016-03-09 04:09:35 -05:00 |
|
Rob Rix
|
dd5b94a4a2
|
Splitting annotated diffs uses the extracted adjoining function.
|
2016-03-09 04:04:51 -05:00 |
|
Rob Rix
|
9c180e3c48
|
Extract the adjoining function.
|
2016-03-09 04:02:00 -05:00 |
|
Rob Rix
|
9cebf83c5c
|
Use the extracted childLines function for terms.
|
2016-03-09 03:09:13 -05:00 |
|
Rob Rix
|
b62d2633cc
|
Use the extracted childLines function for diffs.
|
2016-03-09 02:51:42 -05:00 |
|
Rob Rix
|
7051991dd4
|
Copy the comment about increasing ranges down.
|
2016-03-09 02:50:31 -05:00 |
|
Rob Rix
|
cc73c29978
|
Extract the computation of child lines.
|
2016-03-09 02:50:02 -05:00 |
|
Rob Rix
|
064d7768fa
|
Extract the computation of childRanges.
|
2016-03-09 02:49:05 -05:00 |
|
Rob Rix
|
683fc20989
|
Replace zipWithDefaults with zipDefaults.
|
2016-03-09 02:08:22 -05:00 |
|
Rob Rix
|
086a3d53cb
|
🔥 Row.
|
2016-03-09 01:39:18 -05:00 |
|
Rob Rix
|
51b9472aa4
|
Move the Row type synonym into Alignment.hs.
|
2016-03-09 01:38:59 -05:00 |
|
Rob Rix
|
6e735f8119
|
Move adjoinRowsBy into Alignment.hs.
|
2016-03-09 01:36:40 -05:00 |
|
Rob Rix
|
820d38847c
|
🔥 makeRow.
|
2016-03-09 01:35:47 -05:00 |
|
Rob Rix
|
cb66328f79
|
Replace Row with a type synonym for Both.
|
2016-03-09 01:35:01 -05:00 |
|
Rob Rix
|
ebbf19953e
|
Stop treating EmptyLine as distinct from an empty line.
|
2016-03-09 00:58:09 -05:00 |
|
Rob Rix
|
9f26748f3b
|
Abstract splitAnnotatedByLines over a makeTerm parameter function.
|
2016-03-08 23:37:11 -05:00 |
|
Rob Rix
|
b3db1e2bd0
|
Don’t reconstruct child ranges unnecessarily.
|
2016-03-08 23:21:02 -05:00 |
|
Rob Rix
|
1d54d34d77
|
Move the $ onto the previous line.
|
2016-03-08 23:01:37 -05:00 |
|
Rob Rix
|
e63d2b3c59
|
Correct the openness predicate for ranges.
|
2016-03-08 22:13:31 -05:00 |
|
Rob Rix
|
0bc811e3c1
|
Replace MaybeOpen with simple predicates.
|
2016-03-08 22:07:38 -05:00 |
|
Rob Rix
|
19316c600c
|
Move the $ onto the previous line.
|
2016-03-07 19:40:05 -05:00 |
|
Rob Rix
|
40ad5700cc
|
Rename adjoinLinesByR to adjoinLinesBy.
|
2016-03-07 19:36:37 -05:00 |
|
Rob Rix
|
f7b4ecc1c1
|
Rename adjoinRowsByR to adjoinRowsBy.
|
2016-03-07 19:36:16 -05:00 |
|
Rob Rix
|
ef2556aa46
|
Remove a redundant import.
|
2016-03-07 19:10:39 -05:00 |
|
Rob Rix
|
8f08dab33b
|
Correct row numbering.
|
2016-03-07 17:13:51 -05:00 |
|
Rob Rix
|
bd1a3886a8
|
Adjoin rows to the right.
|
2016-03-07 16:26:49 -05:00 |
|
Rob Rix
|
30acf85299
|
Fold rightwards when adjoining.
|
2016-03-07 16:09:45 -05:00 |
|
Rob Rix
|
dd2b6b5532
|
Fold rightwards through diffs.
|
2016-03-07 16:05:40 -05:00 |
|
Rob Rix
|
2901586210
|
Correct some spacing.
|
2016-03-07 15:54:46 -05:00 |
|
Rob Rix
|
9c926017c5
|
Fold rightwards through terms.
|
2016-03-07 15:52:12 -05:00 |
|
Rob Rix
|
4b3bdb184e
|
Adjoin in line.
|
2016-03-07 15:43:48 -05:00 |
|
Rob Rix
|
3015c409cc
|
🔥 the nested calls to adjoin .
`adjoinChildLines` & `adjoinChildRows` do this for us.
|
2016-03-07 15:41:37 -05:00 |
|
Rob Rix
|
0053558161
|
Expand wrapRowContents in place.
|
2016-03-07 13:57:23 -05:00 |
|
Rob Rix
|
30b3450981
|
Take hlint’s advice.
|
2016-03-07 13:14:34 -05:00 |
|
Rob Rix
|
3c3f171c16
|
Capture the child ranges in a variable.
|
2016-03-07 13:12:23 -05:00 |
|
Rob Rix
|
c895c001d1
|
Reformat adjoining across several lines..
|
2016-03-07 13:07:19 -05:00 |
|
Rob Rix
|
ae70cc61c2
|
Document the Range s in splitDiffbyLines ’ return value.
|
2016-03-07 12:05:21 -05:00 |
|
Rob Rix
|
7a1a283402
|
🔥 tearDown .
|
2016-03-04 21:13:14 -05:00 |
|
Rob Rix
|
abcd9803f3
|
Pass the Info & Syntax in directly.
|
2016-03-04 21:12:49 -05:00 |
|
Rob Rix
|
6610745868
|
an.
|
2016-03-04 21:09:00 -05:00 |
|
Rob Rix
|
5c06ecc6d0
|
Define splitAbstractedTerm by catamorphism (more or less).
|
2016-03-04 21:07:26 -05:00 |
|
Rob Rix
|
e979a40087
|
Remove some unnecessary parentheses.
|
2016-03-04 20:46:20 -05:00 |
|
Rob Rix
|
5fdcfbbce9
|
Tear down diffs with a lambda.
|
2016-03-04 20:29:04 -05:00 |
|
Rob Rix
|
619fde974d
|
Tacit definition of splitDiffByLines.
|
2016-03-04 20:26:40 -05:00 |
|
Rob Rix
|
f546977b33
|
splitAnnotatedByLines takes Both Infos directly.
|
2016-03-04 20:25:33 -05:00 |
|
Rob Rix
|
cd895d6f87
|
Re-enable sorting via rowRanges.
|
2016-03-04 20:18:57 -05:00 |
|
Rob Rix
|
3829f0b064
|
Rewrite diffRanges as rowRanges.
|
2016-03-04 20:18:49 -05:00 |
|
Rob Rix
|
7cb85f6571
|
Define splitDiffByLines by catamorphism.
|
2016-03-04 19:53:47 -05:00 |
|
Rob Rix
|
bb00235f4c
|
Swap the order of the operands to splitDiffByLines.
|
2016-03-04 19:29:57 -05:00 |
|
Rob Rix
|
3a555df147
|
Swap the order of the operands to splitPatchByLines.
|
2016-03-04 19:07:54 -05:00 |
|
Rob Rix
|
4a4eb23cb5
|
Fold eagerly.
|
2016-03-04 18:53:35 -05:00 |
|
Rob Rix
|
c80c764db8
|
🔥 makeRanges.
|
2016-03-04 17:35:03 -05:00 |
|
Rob Rix
|
9b00836f17
|
Use normal Applicative style instead of makeRanges.
|
2016-03-04 17:34:53 -05:00 |
|
Rob Rix
|
999f036436
|
makeRanges can be defined with normal Applicative stuff.
|
2016-03-04 17:33:14 -05:00 |
|
Rob Rix
|
63b6c9a0c2
|
Simplify the wrapRowContents call.
|
2016-03-04 17:20:54 -05:00 |
|
Rob Rix
|
2e6eaefc0b
|
Construct term/range pairs in makeBranchTerm.
|
2016-03-04 17:17:17 -05:00 |
|
Rob Rix
|
89db51fdf9
|
Union ranges from the previous indices.
|
2016-03-04 17:13:53 -05:00 |
|
Rob Rix
|
36190c5f57
|
🔥 the previous indices.
|
2016-03-04 13:11:27 -05:00 |
|
Rob Rix
|
c575203ef4
|
Union the ranges from a specific starting range.
|
2016-03-04 13:07:34 -05:00 |
|
Rob Rix
|
61e43f8c02
|
splitPatchByLines doesn’t take previous indices.
|
2016-03-04 12:28:48 -05:00 |
|
Rob Rix
|
0cf7ba393d
|
Alignment returns ranged Rows.
|
2016-03-04 12:26:40 -05:00 |
|
Rob Rix
|
7a68324ddc
|
Document makeRanges.
|
2016-03-04 10:01:47 -05:00 |
|
Rob Rix
|
b03a9ac73b
|
Document unionLineRanges.
|
2016-03-04 10:00:35 -05:00 |
|
Rob Rix
|
4e732bc3d5
|
Remove some pointless parentheses.
|
2016-03-04 09:57:55 -05:00 |
|
Rob Rix
|
83e1324d5d
|
Extract makeRanges to top-level scope.
|
2016-03-04 09:48:40 -05:00 |
|
Rob Rix
|
9b594b5967
|
Rename rangeForChildLines to unionLineRanges.
|
2016-03-04 09:42:49 -05:00 |
|
Rob Rix
|
1bd2cda3ca
|
Extract the rangeForChildLines function.
|
2016-03-04 09:41:57 -05:00 |
|
Rob Rix
|
5f93a253ff
|
fmap law.
|
2016-03-04 09:26:58 -05:00 |
|
Rob Rix
|
e933e13078
|
Rename wrap to makeBranchTerm.
|
2016-03-04 09:17:51 -05:00 |
|
Rob Rix
|
1af5f93512
|
Get the ranges using getSplitAnnotation.
|
2016-03-04 09:16:55 -05:00 |
|
Rob Rix
|
628e1426fc
|
Combine the syntax and term constructor functions.
|
2016-03-04 09:05:18 -05:00 |
|
Rob Rix
|
ea1f53b653
|
Document wrap .
|
2016-03-04 08:54:59 -05:00 |
|
Rob Rix
|
4b6873dfdd
|
Remove the inner wrap definition from splitAbstractedTerm .
|
2016-03-04 08:53:53 -05:00 |
|
Rob Rix
|
1fc20959eb
|
Generalize the type of wrap over inTerm and outTerm parameters.
|
2016-03-04 08:53:26 -05:00 |
|
Rob Rix
|
5d8b596dda
|
Remove some redundant parentheses.
|
2016-03-04 08:46:51 -05:00 |
|
Rob Rix
|
5aef110720
|
Pass the categories to wrap instead of closing over them.
|
2016-03-04 08:46:17 -05:00 |
|
Rob Rix
|
ea21e16dae
|
Pass the term constructor to wrap instead of closing over it.
|
2016-03-04 08:45:47 -05:00 |
|
Rob Rix
|
031d50719c
|
Use the abstracted wrap function for annotated rows.
|
2016-03-04 08:39:54 -05:00 |
|
Rob Rix
|
8b156501e0
|
Add a wrap function abstracted over a term constructor at the top level.
|
2016-03-04 08:39:40 -05:00 |
|
Rob Rix
|
0491aac345
|
Union the ranges from the previous indices.
|
2016-03-03 16:06:45 -05:00 |
|
Rob Rix
|
7a3da76448
|
splitAbstractedTerm returns lines containing diff/range pairs.
|
2016-03-03 13:41:56 -05:00 |
|
Rob Rix
|
aed575fa29
|
Pass the Range around as the second field.
|
2016-03-03 12:50:01 -05:00 |
|
Rob Rix
|
568cfa863f
|
Single code path for zipping patches up.
|
2016-03-03 12:31:47 -05:00 |
|
Rob Rix
|
7a03c23018
|
Abstract the constructor over the patch.
|
2016-03-03 12:30:23 -05:00 |
|
Rob Rix
|
ff31489bce
|
Don’t even bind these.
|
2016-03-03 12:28:51 -05:00 |
|
Rob Rix
|
26abb3da7f
|
Unwrap Maybes into the correct ranges for either side.
|
2016-03-03 12:28:18 -05:00 |
|
Rob Rix
|
c59913da98
|
Unpack with maybe instead of sequencing.
|
2016-03-03 12:19:28 -05:00 |
|
Rob Rix
|
f646a14d3b
|
Transpose replacements through unPatch.
|
2016-03-03 12:07:09 -05:00 |
|
Rob Rix
|
cc652215ac
|
Correct the splitAbstractedTerm docs.
|
2016-03-03 11:46:31 -05:00 |
|
Rob Rix
|
c6a8aa2593
|
Generalize term to distinct inTerm and outTerm types.
|
2016-03-03 11:42:25 -05:00 |
|
Rob Rix
|
edc3e16e97
|
🔥 splitTermByLines.
|
2016-03-03 11:41:05 -05:00 |
|
Rob Rix
|
7d407c6305
|
Document splitAbstractedTerm.
|
2016-03-03 11:40:52 -05:00 |
|
Rob Rix
|
15026e2049
|
Call into splitAbstractedTerm directly for insertions/deletions too.
|
2016-03-03 11:36:33 -05:00 |
|
Rob Rix
|
a649b59eac
|
Call into splitAbstractedTerm directly for replacements.
|
2016-03-03 11:33:49 -05:00 |
|
Rob Rix
|
88732315da
|
Implement splitTermByLines via splitAbstractedTerm.
|
2016-03-03 11:29:03 -05:00 |
|
Rob Rix
|
a05ac7ff64
|
Add splitAbstractedTerm which abstracts splitTermByLines away from Term leaf Info .
|
2016-03-03 11:27:29 -05:00 |
|
Rob Rix
|
4837a5e2fb
|
Merge branch 'moved-terms-in-keyed-nodes-shouldn’t-crash' into refactor-alignment
# Conflicts:
# src/Alignment.hs
|
2016-03-03 11:05:30 -05:00 |
|
Rob Rix
|
5d725d69c6
|
Document why we’re doing this funky test.
|
2016-03-03 10:56:31 -05:00 |
|
Rob Rix
|
22ddd29583
|
Skip rows for bad ranges.
|
2016-03-03 10:53:41 -05:00 |
|
Rob Rix
|
8445b988b4
|
Revert "Add a safeRange function."
This reverts commit 2e6a8abcfd604438f22b143f86a244bab19d694e.
|
2016-03-03 10:42:16 -05:00 |
|
Rob Rix
|
e22210357d
|
Revert "Make safe ranges."
This reverts commit 0dcfc48c8d9e441a9620adef6fc7832ef2796685.
|
2016-03-03 10:42:13 -05:00 |
|
Rob Rix
|
30c63a34a5
|
Revert "Add a type annotation for safeRange."
This reverts commit b456a9bfd53efec7cb61c204762773a2fdd5995e.
|
2016-03-03 10:42:06 -05:00 |
|
Rob Rix
|
9981e98a77
|
Revert "Move safeRange into the Range module."
This reverts commit 781f940cad93db3954ddb9f2ddd9de23c432a68f.
|
2016-03-03 10:42:03 -05:00 |
|
Rob Rix
|
e31091ecd4
|
Revert "Construct term ranges safely."
This reverts commit 75165616b5e550b40027118bdc67d9c25c39ae32.
|
2016-03-03 10:41:50 -05:00 |
|
Rob Rix
|
f0e5340e3c
|
🔥 some Copointed constraints.
|
2016-03-03 10:16:04 -05:00 |
|
Rob Rix
|
6479f02047
|
🔥 contextRows.
|
2016-03-03 10:15:23 -05:00 |
|
Rob Rix
|
c64e3f7ca1
|
Zip context ranges into leading context rows correctly.
|
2016-03-03 10:15:10 -05:00 |
|
Rob Rix
|
4d49c9f098
|
Zip context rows into trailing context correctly.
|
2016-03-03 10:13:16 -05:00 |
|
Rob Rix
|
00f0a877d8
|
Zip context rows into leaves correctly.
|
2016-03-03 10:10:58 -05:00 |
|
Rob Rix
|
ac8d2c9689
|
contextRows returns Both Ranges, not Rows.
|
2016-03-03 09:41:33 -05:00 |
|
Rob Rix
|
c19073ab84
|
🔥 openDiff.
|
2016-03-03 09:03:15 -05:00 |
|
Rob Rix
|
8e78339c39
|
🔥 openTerm.
|
2016-03-03 09:02:33 -05:00 |
|
Rob Rix
|
12b15f5d33
|
Remove Copointed constraints from the wrap functions.
|
2016-03-03 08:54:59 -05:00 |
|
Rob Rix
|
34c4c7f559
|
🔥 import of Data.Either.
|
2016-03-03 08:48:37 -05:00 |
|
Rob Rix
|
3461e5f3d4
|
🔥 openEither.
|
2016-03-03 08:48:29 -05:00 |
|
Rob Rix
|
4f9d866be4
|
🔥 getInfo.
|
2016-03-03 08:47:59 -05:00 |
|
Rob Rix
|
3a23d7792b
|
fmap with &&&.
|
2016-03-03 08:47:37 -05:00 |
|
Rob Rix
|
48aacb98bc
|
Simplify the definition of getRange.
|
2016-03-03 08:37:56 -05:00 |
|
Rob Rix
|
da941ccf06
|
Simplify the definition of getInfo.
|
2016-03-03 08:37:25 -05:00 |
|
Rob Rix
|
af031dfbc7
|
Simplify the definition of getRange.
|
2016-03-03 08:36:23 -05:00 |
|
Rob Rix
|
3d1d98e566
|
Add a getInfo function.
|
2016-03-03 08:35:36 -05:00 |
|
Rob Rix
|
d2c26ad37d
|
Rewrite getRange to not be in Either.
|
2016-03-03 08:30:55 -05:00 |
|
Rob Rix
|
4023f6b285
|
Revert "🔥 getRange."
This reverts commit fa1913c8cec28fa9f677ebf5df2e70f1c76694f2.
|
2016-03-03 08:30:06 -05:00 |
|
Rob Rix
|
bfa909ebc0
|
🔥 getRange.
|
2016-03-03 08:19:25 -05:00 |
|
Rob Rix
|
2896687652
|
Process annotated rows in (Range, _) pairs.
|
2016-03-03 08:19:08 -05:00 |
|
Rob Rix
|
7f085a7c6d
|
Use openRangePair instead of the ad hoc lambda.
|
2016-03-03 07:59:25 -05:00 |
|
Rob Rix
|
660cc1ad8b
|
Document openRangePair.
|
2016-03-03 07:59:03 -05:00 |
|
Rob Rix
|
f1b8e91723
|
Add an open… function for (Range, _) pairs.
|
2016-03-03 07:58:36 -05:00 |
|
Rob Rix
|
31e9b0e875
|
🔥 getRange.
|
2016-03-03 07:55:16 -05:00 |
|
Rob Rix
|
a2775737b6
|
Revert "Define a pairEither function."
This reverts commit a51ca2c7e3616bef93f20d8e57db0dd7c53d0eb8.
|
2016-03-03 07:54:20 -05:00 |
|
Rob Rix
|
03e1982ec3
|
Pass Terms around as Range/Maybe term pairs.
|
2016-03-03 07:53:23 -05:00 |
|
Rob Rix
|
9b16c90a8f
|
Define a pairEither function.
|
2016-03-03 07:35:15 -05:00 |
|
Rob Rix
|
b5ac83df44
|
Much simpler definition of getRange.
|
2016-03-03 00:56:32 -05:00 |
|
Rob Rix
|
f930c37484
|
Simpler definition of getRange over terms.
|
2016-03-03 00:55:24 -05:00 |
|
Rob Rix
|
8b2a87be62
|
Remove Has.
|
2016-03-02 23:24:13 -05:00 |
|
Rob Rix
|
dd0014d07b
|
Use Copointed instead of Has.
|
2016-03-02 23:23:34 -05:00 |
|
Rob Rix
|
9182ac04ca
|
Merge branch 'moved-terms-in-keyed-nodes-shouldn’t-crash' into copointed
|
2016-03-02 23:18:52 -05:00 |
|
Rob Rix
|
4a7b4b4e4f
|
Replace extract with copoint.
|
2016-03-02 23:11:24 -05:00 |
|
Rob Rix
|
2fcbe7a0d0
|
Construct term ranges safely.
|
2016-03-02 18:55:21 -05:00 |
|
Rob Rix
|
e630169833
|
Move safeRange into the Range module.
|
2016-03-02 18:54:12 -05:00 |
|
Rob Rix
|
49b6984d49
|
Add a type annotation for safeRange.
|
2016-03-02 18:50:27 -05:00 |
|
Rob Rix
|
6efe8893e1
|
Make safe ranges.
|
2016-03-02 18:47:33 -05:00 |
|
Rob Rix
|
631778de13
|
Add a safeRange function.
|
2016-03-02 18:47:28 -05:00 |
|
Rob Rix
|
7dd9428dfa
|
Use transpose to unpack the lines and ranges.
|
2016-03-02 18:34:26 -05:00 |
|
Rob Rix
|
4d11dbe90d
|
Tidy up with the curried constructor.
|
2016-03-02 18:19:29 -05:00 |
|
Rob Rix
|
595b249391
|
Transpose Both terms inline.
|
2016-03-02 18:18:13 -05:00 |
|
Rob Rix
|
1f783ea59a
|
Use runBothWith to simplify packing and unpacking.
|
2016-03-02 18:15:27 -05:00 |
|
Rob Rix
|
1dee480afd
|
Tacit definition of unpackLinesAndRanges.
|
2016-03-02 18:03:35 -05:00 |
|
Rob Rix
|
5cee42e6b2
|
Add a type annotation for unpackLinesAndRanges.
|
2016-03-02 16:19:00 -05:00 |
|
Rob Rix
|
37957e5123
|
Rearrange the pattern matching.
|
2016-03-02 16:17:04 -05:00 |
|
Rob Rix
|
96fe83e71b
|
Use the curried constructor.
|
2016-03-02 16:15:22 -05:00 |
|
Rob Rix
|
72a61a5855
|
Remove an extra line.
|
2016-03-02 16:12:49 -05:00 |
|
Rob Rix
|
45357dddac
|
Define the line/range bindings in a where clause.
|
2016-03-02 16:08:49 -05:00 |
|
Rob Rix
|
f3f5949ac8
|
Document splitPatchByLines.
|
2016-03-02 16:05:59 -05:00 |
|
Rob Rix
|
6fbeda67ec
|
Extract splitPatchByLines into a new function.
|
2016-03-02 16:05:34 -05:00 |
|