Initial commit of working Clojure and very very alpha-ish ClojureScript web app.
Changed highlight color for deletions from darkred to red.
Updated the HTML page interface as well as adding console logging hooks to the clojurescript.
Last commit prior to implementing new dynamic-programming algorithm which should be much faster.
Last commit before beginning work on version 2, using new, fast algorithms (Ukkonen etc.) This is a working version, but approx. O(n^2) in time complexity, so non-ideal. What follows will be a mostly complete re-write.
Created directed graph implementation for use in Ukkonen's algorithm (very generally useful as well). Pared down core.clj to only functions I don't plan on re-writing, as this new version is going to be basically a from-scratch re-write.
Modified directed graph code to get closer to a better final interface to the graph.
Fixed bugs in directed graph that were not noticed at first because I failed to drop old bindings from the REPL that I inadvertantly depended on.
More fixes to directed graph.
First working print method for suffix trees.
Created terminator symbol architecture using metadata; this means that arbitrary symbols and keywords can be used as input to the algorithm, so long as they aren't specifically constructed with confusing metadata.
First working simplest-case tree creation (no repeats). Prints trees nicely and uses overloading to allow for cleaner final tree printing without the inclusion of the active point. In directed graph, remove-edge now can take an edge-vector, which makes the interface consistent.
Cleaned up and corrected suffix tree printing, among other fixes to do with basic suffix-tree primitives like active-point-deref and interval-deref.
More cleanup for printing functions. Added a quick-print method for easier entry on the command line to test.
Implemented test-and-split and its necessary helper functions.
A bit of cleanup to the comments.
Eliminated confusing yellow in stylesheet.

Algorithm now properly splits an edge upon a single repeated character.

Probably the last commit before refactoring to include active-point, etc. as meta-data in the tree, rather than having them be passed as separate arguments.
Changed dg/edges to use case rather than condp.
Simplified reify-interval using destructuring.

Decided not to use metadata to pass parameters after all -- this essentially becomes a poor man's environment model, and is inelegant as such. No need to use metadata to indicate the tree is changed: just check for equality to previous tree!

Changes to terminators:
- metadata is now namespace-qualified
- check for terminator? included in terminator-number

Added terminator-like "end-symbols" which replace :# for intervals. Still need to modify current-end so that end-symbols can be used to freeze ends.
Small tweaks to suffix tree.