second constraints

It looks like my struggles yesterday were due to trying to use the
return value of "substitute", which, in its previous incarnation,
returned the keyword it swapped in to the relevant atom, rather than
the sequence of atoms I've been calling a line. In this commit,
"overwrite" and "substitute" get bangs as a reminder of their status
as mutators and return the line they act on.

Incidentally, did you know that interactive staging is nice when
you're working on your next thing but realize that you forgot to do
something that logically belongs in the previous commit?
another incorrect solution concept

If anyone reading along with the Git log is wondering why it's taking
me so long to solve this simple problem, rest assued that it's only
because I'm stupid. I am a little suspicious that "promise" isn't
doing what I think it is.

Output follows.

zmd@ExpectedReturn:~/Code/Xross-Composure$ clojure core.clj
WARNING: promise already refers to: #'clojure.core/promise in
namespace: user, being replaced by: #'user/promise
(:W :A :N :T)
(nil nil nil nil)
(nil nil nil nil)
(nil nil nil nil)

([(:W :A :L :D) 139] [(:W :A :L :L) 139] [(:W :A :L :T) 139] [(:W :A
:R :D) 139] [(:W :A :S :H) 139] [(:W :A :S :P) 139] [(:W :A :T :T)
139] [(:W :A :D :S) 139] [(:W :A :F :T) 139] [(:W :A :G :S) 139] [(:W
:A :L :L) 139] [(:W :A :R :D) 139])

(:W :A :N :T)
(:A nil nil nil)
(:L nil nil nil)
(:D nil nil nil)

([(:T :A :F :T) 1] [(:T :A :M :I) 1] [(:T :A :R :A) 1] [(:T :A :S :S)
1] [(:T :A :T :E) 1] [(:T :E :L :L) 1] [(:T :E :R :I) 1] [(:T :E :R
:R) 1] [(:T :E :S :S) 1] [(:T :H :A :D) 1] [(:T :H :A :I) 1] [(:T :H
:A :R) 1])

(:W :A :N :T)
(:A nil nil :A)
(:L nil nil :F)
(:D nil nil :T)

([(:L :E :I :F) 1] [(:L :E :A :F) 1] [(:L :I :E :F) 1] [(:L :O :A :F)
1])

(:W :A :N :T)
(:A nil nil :A)
(:L :E :I :F)
(:D nil nil :T)

([(:A :R :E :A) 1] [(:A :B :E :L) 0] [(:A :D :E :N) 0] [(:A :L :E :C)
0] [(:A :L :E :X) 0] [(:A :R :E :S) 0] [(:A :B :E :D) 0] [(:A :B :E
:T) 0] [(:A :C :E :D) 0] [(:A :C :E :S) 0] [(:A :G :E :D) 0] [(:A :G
:E :S) 0])

(:W :A :N :T)
(:A :R nil :A)
(:L :E :I :F)
(:D :A nil :T)

([(:A :R :E :A) 1] [(:A :R :I :A) 0])

(:W :A :N :T)
(:A :R :E :A)
(:L :E :I :F)
(:D :A nil :T)

([(:D :A :F :T) 0] [(:D :A :R :T) 0])

(:W :A :N :T)
(:A :R :E :A)
(:L :E :I :F)
(:D :A :F :T)