Rob Rix
|
c022085919
|
Merge branch 'master' into restrict-comparisons-by-category
Conflicts:
prototype/Doubt.xcodeproj/project.pbxproj
prototype/Doubt/Fix.swift
|
2015-10-15 09:28:21 -04:00 |
|
Rob Rix
|
59947a6581
|
Rename TermType.out to TermType.unwrap.
|
2015-10-15 09:18:55 -04:00 |
|
Rob Rix
|
cb5dde7bb1
|
Remove Fix.
|
2015-10-15 09:17:55 -04:00 |
|
Rob Rix
|
3d8027b6a1
|
Fix is no longer a TermType.
|
2015-10-15 09:17:40 -04:00 |
|
Rob Rix
|
3763d7354f
|
Remove the constrained extension providing JSON from diffs when their terms are Fix<A>.
This was not easy to reproduce with Cofree because you can’t introduce
a type variable to constrain the annotation to.
|
2015-10-15 09:16:49 -04:00 |
|
Rob Rix
|
dd48510b65
|
Original terms can be recovered without annotations.
|
2015-10-15 09:12:34 -04:00 |
|
Rob Rix
|
3356a11805
|
Remove the redundant Free/Fix construction.
This was handled by Free/TermType construction.
|
2015-10-15 09:09:58 -04:00 |
|
Rob Rix
|
89720c8e65
|
Test SES over Cofree terms.
|
2015-10-15 09:08:30 -04:00 |
|
Rob Rix
|
adca66f66c
|
Define parameterized equality over TermType.
|
2015-10-15 09:05:40 -04:00 |
|
Rob Rix
|
a40ae08ac5
|
Correct a comment.
|
2015-10-15 09:01:07 -04:00 |
|
Rob Rix
|
18d19173c0
|
Remove the Fix → Cofree constructor.
|
2015-10-15 08:58:48 -04:00 |
|
Rob Rix
|
70b7e56b9c
|
Remove Doc .
|
2015-10-15 08:55:53 -04:00 |
|
Rob Rix
|
ca922b2283
|
Free is no longer CustomDocConvertible.
|
2015-10-15 08:55:26 -04:00 |
|
Rob Rix
|
2bfe2e2eab
|
Fix is no longer CustomDocConvertible.
|
2015-10-15 08:55:01 -04:00 |
|
Rob Rix
|
064e5f1faa
|
Patch is no longer CustomDocConvertible.
|
2015-10-15 08:54:33 -04:00 |
|
Rob Rix
|
eba7c9bfbd
|
Remove DocTests.swift .
|
2015-10-15 08:54:04 -04:00 |
|
Rob Rix
|
31eb3f2b4a
|
Syntax is no longer CustomDocConvertible.
|
2015-10-15 08:53:46 -04:00 |
|
Rob Rix
|
f55ceade22
|
Replace the fixtures with newer, even more exciting ones.
|
2015-10-14 21:10:09 -04:00 |
|
Rob Rix
|
b93a605b37
|
Document cata .
|
2015-10-14 21:07:30 -04:00 |
|
Rob Rix
|
e582f28972
|
Charge a constant cost for the tests.
|
2015-10-14 18:51:52 -04:00 |
|
Rob Rix
|
7c099bac6f
|
Parameterize SES by the cost function.
|
2015-10-14 18:51:18 -04:00 |
|
Rob Rix
|
230394bde2
|
Charge diffs a cost proportional to their size.
This can no longer be done in SES, as it requires knowledge that the
elements of the arrays are of TermType.
|
2015-10-14 18:51:07 -04:00 |
|
Rob Rix
|
32c55fd5ff
|
Add a section for PatchConvertible.
|
2015-10-14 18:48:15 -04:00 |
|
Rob Rix
|
b4a9564747
|
TermType has a size property.
|
2015-10-14 18:47:20 -04:00 |
|
Rob Rix
|
b0cb77ae74
|
Define catamorphisms over TermTypes.
|
2015-10-14 18:42:20 -04:00 |
|
Rob Rix
|
606614ffdf
|
🔥 Info.
|
2015-10-14 18:09:24 -04:00 |
|
Rob Rix
|
90b7ac4b21
|
Equals-or-intersects.
|
2015-10-14 18:08:56 -04:00 |
|
Rob Rix
|
5fccc3586c
|
Test that uncategorized terms are unrestricted.
|
2015-10-14 17:51:40 -04:00 |
|
Rob Rix
|
c75b2c134e
|
Correct the test of disjoint categorization to assign unique categories to each term.
|
2015-10-14 17:51:31 -04:00 |
|
Rob Rix
|
742fc0ea0f
|
Correct the categorization test.
This implies that uncategorized nodes can be compared with anything.
|
2015-10-14 17:51:01 -04:00 |
|
Rob Rix
|
2aef2114c3
|
Test that comparisons are unrestricted by default.
|
2015-10-14 17:47:07 -04:00 |
|
Rob Rix
|
1134f7a9e9
|
Add a fixture for an unrestricted diff.
|
2015-10-14 17:46:50 -04:00 |
|
Rob Rix
|
90864e397b
|
Avoid an annotation.
|
2015-10-14 17:46:41 -04:00 |
|
Rob Rix
|
0cb72943b1
|
Rename the test case.
|
2015-10-14 17:44:19 -04:00 |
|
Rob Rix
|
d9e7798dde
|
Test that comparisons of disjoint-categorized terms are restricted.
|
2015-10-14 17:41:51 -04:00 |
|
Rob Rix
|
1f23ec9e47
|
Extract the diff into a private global.
|
2015-10-14 17:39:53 -04:00 |
|
Rob Rix
|
48a9a741c7
|
Merge branch 'master' into restrict-comparisons-by-category
|
2015-10-14 17:36:47 -04:00 |
|
joshvera
|
46010e3096
|
Merge branch 'master' into diff-cofree-values
|
2015-10-14 16:49:28 -04:00 |
|
Josh Vera
|
df31170dc8
|
Merge pull request #107 from github/generalize-patch
Generalize Patch
|
2015-10-14 16:47:57 -04:00 |
|
Josh Vera
|
d49986c671
|
Merge pull request #102 from github/charge-a-constant-cost-to-patches
Charge a constant cost to patches
|
2015-10-14 16:47:47 -04:00 |
|
Rob Rix
|
025d43379e
|
Merge branch 'master' into diff-cofree-values
|
2015-10-14 16:46:07 -04:00 |
|
Rob Rix
|
4690ae6533
|
Merge branch 'master' into generalize-patch
|
2015-10-14 16:45:33 -04:00 |
|
Josh Vera
|
99c4e8556e
|
Merge pull request #109 from github/literal-syntax-construction
Literal syntax construction
|
2015-10-14 16:44:25 -04:00 |
|
Rob Rix
|
7a03f09fe9
|
Test that comparisons are restricted by nil returns from recur .
|
2015-10-14 16:43:08 -04:00 |
|
Matt Diephouse
|
6eff8d6f82
|
Merge pull request #101 from github/parameterize-algorithm-evaluation-by-comparison-restriction
Parameterize Algorithm evaluation by comparison restriction
|
2015-10-14 16:42:03 -04:00 |
|
Rob Rix
|
e0692770b3
|
Cofree is CustomDebugStringConvertible.
|
2015-10-14 16:40:13 -04:00 |
|
Rob Rix
|
bf48944c83
|
Diff equality.
|
2015-10-14 16:32:01 -04:00 |
|
Rob Rix
|
92ec5b6130
|
Define parameterized equality over TermType.
|
2015-10-14 16:31:32 -04:00 |
|
Rob Rix
|
ed10ec1257
|
Write the fixtures using the typealias.
|
2015-10-14 16:10:23 -04:00 |
|
Rob Rix
|
35617fee70
|
Add typealiases for Diff and Term.
|
2015-10-14 16:09:58 -04:00 |
|
Rob Rix
|
ff559845d8
|
Add a couple of fixtures.
|
2015-10-14 16:07:07 -04:00 |
|
Rob Rix
|
9a6e8dea03
|
Merge branch 'literal-syntax-construction' into restrict-comparisons-by-category
|
2015-10-14 16:03:54 -04:00 |
|
Rob Rix
|
86df4c6a87
|
Syntax is DictionaryLiteralConvertible.
|
2015-10-14 16:03:14 -04:00 |
|
Rob Rix
|
76ca906097
|
Syntax is ArrayLiteralConvertible.
|
2015-10-14 16:02:33 -04:00 |
|
Rob Rix
|
0c78e344ad
|
Stub in a test suite for Algorithm.
|
2015-10-14 15:57:58 -04:00 |
|
Rob Rix
|
124d45a549
|
Cofree has categories when B: Categorizable.
|
2015-10-14 15:49:23 -04:00 |
|
Rob Rix
|
b60abdf5b0
|
Factoring.
|
2015-10-14 15:46:19 -04:00 |
|
Rob Rix
|
3117d26464
|
Fix up the categorization.
|
2015-10-14 15:44:58 -04:00 |
|
Rob Rix
|
6d0bfdb9d0
|
Add an evaluate method parameterized by categorization.
|
2015-10-14 15:43:24 -04:00 |
|
Rob Rix
|
80bda88082
|
Merge branch 'diff-cofree-values' into restrict-comparisons-by-category
Conflicts:
prototype/Doubt/SES.swift
prototype/DoubtTests/SESTests.swift
|
2015-10-14 15:35:18 -04:00 |
|
Rob Rix
|
105b57566b
|
Replace the JSON fixtures with much cooler JSON fixtures.
|
2015-10-14 14:40:47 -04:00 |
|
Rob Rix
|
ed004ca4c1
|
Annotate terms with their sizes.
|
2015-10-14 14:40:21 -04:00 |
|
Rob Rix
|
645e038982
|
Compute the size of syntax trees.
|
2015-10-14 14:32:26 -04:00 |
|
Rob Rix
|
6b781622b6
|
Add the annotations to the JSON.
|
2015-10-14 14:22:19 -04:00 |
|
Rob Rix
|
abd037796a
|
Annotate JSON with integers.
|
2015-10-14 14:21:12 -04:00 |
|
Rob Rix
|
1fc7771918
|
Int is CustomJSONConvertible.
|
2015-10-14 14:20:58 -04:00 |
|
Rob Rix
|
f34af098d3
|
String is CustomJSONConvertible.
|
2015-10-14 14:20:13 -04:00 |
|
Rob Rix
|
29001b713c
|
Diff JSON in Cofree.
|
2015-10-14 14:17:56 -04:00 |
|
Rob Rix
|
07690849a6
|
Convenience for constructing Cofree with autoclosures.
|
2015-10-14 14:17:29 -04:00 |
|
Rob Rix
|
9afc487776
|
Cofree is a TermType.
|
2015-10-14 14:05:43 -04:00 |
|
Rob Rix
|
714f99638e
|
Abstract Algorithm over a Term type.
|
2015-10-14 14:04:47 -04:00 |
|
Rob Rix
|
7e9a41dfbd
|
Make the Roll case indirect.
|
2015-10-14 14:04:35 -04:00 |
|
Rob Rix
|
b8dca6fe2a
|
Call evaluate with equality.
|
2015-10-14 14:03:46 -04:00 |
|
Rob Rix
|
79708346e0
|
Correct the Diff typealias.
|
2015-10-14 14:00:46 -04:00 |
|
Rob Rix
|
3e75895c4d
|
Fix is a TermType.
|
2015-10-14 13:57:21 -04:00 |
|
Rob Rix
|
92cb1927d1
|
Move Term/Diff to the top level.
|
2015-10-14 13:57:12 -04:00 |
|
Rob Rix
|
4fb38d612e
|
Add a constructor for Free over arbitrary TermType.
|
2015-10-14 13:52:43 -04:00 |
|
Rob Rix
|
6f886356aa
|
Add a TermType protocol.
|
2015-10-14 13:52:25 -04:00 |
|
Rob Rix
|
6188a5a2d7
|
Move FreeConvertible to Free.swift.
|
2015-10-14 13:34:29 -04:00 |
|
Rob Rix
|
01b32b010f
|
Rename Algorithm’s A type parameter to Leaf.
|
2015-10-14 13:33:51 -04:00 |
|
Rob Rix
|
31d905ac64
|
Merge branch 'generalize-patch' into diff-cofree-values
|
2015-10-14 13:31:00 -04:00 |
|
Rob Rix
|
436708bb3b
|
🔥 chaff.
|
2015-10-14 13:16:27 -04:00 |
|
Rob Rix
|
09fad58fd7
|
Correct a comment.
|
2015-10-14 12:46:16 -04:00 |
|
Rob Rix
|
b8f8953f1c
|
Return the identity diff when equal.
|
2015-10-14 12:29:40 -04:00 |
|
Rob Rix
|
517c87c303
|
Revert "Revert "SES does not take an equality test.""
This reverts commit bb73f6eac2b59599607369767e9e221e7e5e0f15.
|
2015-10-14 12:28:45 -04:00 |
|
Rob Rix
|
d0d96d569d
|
Revert "Pass the correct equality function to SES."
This reverts commit e78c6cde10ad70e93ab003ceacc07db290b061e4.
|
2015-10-14 12:28:41 -04:00 |
|
Rob Rix
|
432c9f7239
|
Pass the correct equality function to SES.
|
2015-10-14 12:26:25 -04:00 |
|
Rob Rix
|
a7f4d91d56
|
Revert "SES does not take an equality test."
This reverts commit 1db8bdf82c85a490188882b810cd9c516e4f210e.
Conflicts:
prototype/Doubt/SES.swift
prototype/DoubtTests/SESTests.swift
|
2015-10-14 12:25:38 -04:00 |
|
Rob Rix
|
8d4a91d3a9
|
Merge branch 'parameterize-algorithm-evaluation-by-comparison-restriction' into generalize-patch
Conflicts:
prototype/Doubt/SES.swift
prototype/DoubtTests/SESTests.swift
|
2015-10-14 12:24:04 -04:00 |
|
Rob Rix
|
6e5335c915
|
SES tests operate over strings.
|
2015-10-14 12:19:38 -04:00 |
|
Rob Rix
|
0acdd16db3
|
Generalize SES to arbitrary arrays.
|
2015-10-14 12:18:49 -04:00 |
|
Rob Rix
|
34258b98b8
|
Generalize Patch from Fix<A> to A .
|
2015-10-14 12:17:39 -04:00 |
|
Rob Rix
|
e33f733d83
|
SES does not take an equality test.
|
2015-10-14 12:14:15 -04:00 |
|
Rob Rix
|
da11e0983a
|
Don’t test equality in SES.
|
2015-10-14 12:11:03 -04:00 |
|
Rob Rix
|
964204a3e6
|
Rename the PatchConvertible associated type to Element.
|
2015-10-14 12:02:57 -04:00 |
|
Rob Rix
|
ef5720ad17
|
Add a typealias representing the type of patches.
|
2015-10-14 11:56:30 -04:00 |
|
Rob Rix
|
49fb97594a
|
Move Operation’s Functor implementation to a separate extension.
|
2015-10-14 11:43:17 -04:00 |
|
Rob Rix
|
c9134b5867
|
Move Operation into its own file.
|
2015-10-14 11:40:43 -04:00 |
|
Rob Rix
|
ff2c904888
|
Abstract Operation over Term and Diff types.
|
2015-10-14 11:39:56 -04:00 |
|
Rob Rix
|
79969bb69d
|
Move FreeConvertible into Free.swift.
|
2015-10-14 11:24:23 -04:00 |
|
Rob Rix
|
1cc879dc5d
|
Merge branch 'master' into restrict-comparisons-by-category
|
2015-10-14 11:19:26 -04:00 |
|
Rob Rix
|
b9ac0d3c38
|
JSON property for cofree over CustomJSONConvertible types.
|
2015-10-14 11:01:41 -04:00 |
|
Rob Rix
|
8f86f9ab76
|
Parameterized JSON conversion for Cofree.
|
2015-10-14 10:59:41 -04:00 |
|
Rob Rix
|
e70cbe4235
|
Algebraic hashing over cofrees of Hashable types.
|
2015-10-14 10:57:25 -04:00 |
|
Rob Rix
|
db57734586
|
Parameterized hashing over Cofree.
|
2015-10-14 10:56:25 -04:00 |
|
Rob Rix
|
3dcfbc0d38
|
Equality over Cofrees of equatable types.
|
2015-10-14 10:53:29 -04:00 |
|
Rob Rix
|
889dab1df2
|
Parameterized equality over Cofree.
|
2015-10-14 10:52:27 -04:00 |
|
Rob Rix
|
84ea5248e3
|
Unroll does not need to be indirect.
|
2015-10-14 10:49:05 -04:00 |
|
Rob Rix
|
8f3ae52d29
|
Cofree’s recurrence is lazy.
|
2015-10-14 10:48:42 -04:00 |
|
Rob Rix
|
c8234d27a4
|
Document coiterate.
|
2015-10-14 10:44:53 -04:00 |
|
Rob Rix
|
c13023b85b
|
Add a constructor annotating terms into Cofrees.
|
2015-10-14 10:39:21 -04:00 |
|
Rob Rix
|
961e9ae7d7
|
Implement coiteration.
|
2015-10-14 10:39:01 -04:00 |
|
Rob Rix
|
fa2bfcd367
|
duplicate() is just extend(id) .
|
2015-10-14 10:24:16 -04:00 |
|
Rob Rix
|
5015238546
|
Document Cofree.document() .
|
2015-10-14 10:23:43 -04:00 |
|
Rob Rix
|
b50ebdf21a
|
Document Cofree.extend() .
|
2015-10-14 10:22:04 -04:00 |
|
Rob Rix
|
011719b752
|
map ’s transformation function is @noescape .
|
2015-10-14 10:20:21 -04:00 |
|
Rob Rix
|
2c56ee66ea
|
extend ’s transformation function is @noescape .
|
2015-10-14 10:20:05 -04:00 |
|
Rob Rix
|
7bff8f6f50
|
Document Cofree.extract .
|
2015-10-14 10:19:38 -04:00 |
|
Rob Rix
|
ab3d297d95
|
Document Cofree.
|
2015-10-14 10:19:02 -04:00 |
|
Rob Rix
|
6774213fcd
|
Cofree is a Functor.
|
2015-10-14 10:09:38 -04:00 |
|
Rob Rix
|
a606d9d798
|
Implement duplicate on Cofree.
|
2015-10-14 10:03:42 -04:00 |
|
Rob Rix
|
1a44f29778
|
Cofree.extend is public.
|
2015-10-14 10:01:26 -04:00 |
|
Rob Rix
|
cc805f6610
|
Cofree.extract is public.
|
2015-10-14 10:01:19 -04:00 |
|
Rob Rix
|
26f0ea419d
|
Implement extend on Cofree.
|
2015-10-14 10:00:16 -04:00 |
|
Rob Rix
|
ab554c52a0
|
Unwrap Cofrees.
|
2015-10-14 09:59:04 -04:00 |
|
Rob Rix
|
3985ef0fea
|
Unroll should be indirect.
|
2015-10-14 09:56:46 -04:00 |
|
Rob Rix
|
59dd626361
|
Add a Syntax to Cofree.
|
2015-10-14 09:43:51 -04:00 |
|
Rob Rix
|
0d662ade08
|
Implement extract on Cofree .
|
2015-10-14 09:43:23 -04:00 |
|
Rob Rix
|
a83f77116d
|
Add an Unroll case to Cofree.
|
2015-10-14 09:42:21 -04:00 |
|
Rob Rix
|
59b60947f9
|
Stub in Cofree.
|
2015-10-14 09:34:18 -04:00 |
|
Rob Rix
|
3238bc14bd
|
Rename Category.swift to Categorizable.swift.
|
2015-10-14 09:02:38 -04:00 |
|
Rob Rix
|
c7ef3cc586
|
Remove Category.
|
2015-10-14 09:02:21 -04:00 |
|
Rob Rix
|
1f40f40869
|
Info just uses Strings as its categories.
|
2015-10-14 09:02:00 -04:00 |
|
Rob Rix
|
4d07ed6fe7
|
String is CustomJSONConvertible.
|
2015-10-14 09:01:41 -04:00 |
|
Rob Rix
|
a68ad254d5
|
Inheritances are in alphabetical order.
|
2015-10-14 08:59:56 -04:00 |
|
Rob Rix
|
58c0a7ff2c
|
Categories can be of any Hashable type.
|
2015-10-14 08:59:19 -04:00 |
|
Rob Rix
|
59b7d60349
|
Move Term and Diff to the top level.
|
2015-10-13 21:45:48 -04:00 |
|
Rob Rix
|
7b517af351
|
Convenience for A: Categorizable, A: Equatable, B == Diff<A>.
|
2015-10-13 21:41:41 -04:00 |
|
Rob Rix
|
f4dda1c315
|
If A is Categorizable, require empty categories or non-intersecting sets of categories.
|
2015-10-13 21:41:20 -04:00 |
|
Rob Rix
|
2c3716d91c
|
Don’t provide a default implementation of categories .
|
2015-10-13 21:40:12 -04:00 |
|
Rob Rix
|
8190064f48
|
Terms have categories.
|
2015-10-13 21:36:14 -04:00 |
|
Rob Rix
|
30d1a5dee2
|
Info is Categorizable.
|
2015-10-13 21:33:42 -04:00 |
|
Rob Rix
|
346a4e17c7
|
Categorizable types have categories .
|
2015-10-13 21:33:24 -04:00 |
|
Rob Rix
|
088624118b
|
Stub in a Categorizable protocol.
|
2015-10-13 21:33:01 -04:00 |
|
Rob Rix
|
4454f4b04f
|
Document Category, sorta.
|
2015-10-13 21:29:04 -04:00 |
|
Rob Rix
|
02c33cc006
|
Merge branch 'master' into charge-a-constant-cost-to-patches
|
2015-10-13 21:14:42 -04:00 |
|
Rob Rix
|
f2826c3bd2
|
Merge branch 'master' into parameterize-algorithm-evaluation-by-comparison-restriction
|
2015-10-13 21:14:30 -04:00 |
|
Rob Rix
|
fca262a6b2
|
Remove the submodule.
|
2015-10-13 21:10:20 -04:00 |
|
Rob Rix
|
1dcd2aea59
|
Remove the plist.
|
2015-10-13 21:08:37 -04:00 |
|
Rob Rix
|
77022447ea
|
Remove the fixtures.
|
2015-10-13 21:08:29 -04:00 |
|