Dependencies:
R7RS-small has the right kind of define-record-type
vector->list of the kind you want is in R7RS-small

Suggested name changes, mostly to align with SRFI 1:
transduce -> list-transduce
append-map -> tappend-map (a typo?)
tcat -> tconcatenate
tdedupe -> tdelete-neighbor-dupes
tremove-duplicates -> tdelete-duplicates
tpartition-all -> tsegment
tpartition-by -> tpartition
tindex -> tenumerate

Semantics:
tdedupe and tremove-duplicates need to accept an equality predicate.  If the underlying hash table package can't handle arbitrary equality predicates, it should at least handle eq?, eqv?, and equal?.

tremove-duplicates needs to specify which element is retained, presumably the earliest.

I don't understand the purpose of the tref argument to thalt-when.  Without
this argument it seems to be the same as drop-while, except with the
predicate negated.  Add some more explanation clarifying its purpose.

Implementation issues:
Don't encourage the use of reverse!.  It can be very slow when the garbage collector has a write barrier, because it mutates every pair, in which case it is faster to use a functional reverse.

Markup:
ttake and tdrop (in the transduce procedure) need to be in code font.
Same with treplace in the treplace procedure.
In thalt-when, pred? is code font instead of italics.


John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
Knowledge studies others / Wisdom is self-known;
Muscle masters brothers / Self-mastery is bone;
Content need never borrow / Ambition wanders blind;
Vitality cleaves to the marrow / Leaving death behind.    --Tao 33 (Bynner)