reverse-transition-table invokes the compiler at runtime by constructing a quotation using 'concat' try using arrays instead of linked lists [ foo ] lmap [ bar ] lmap == [ foo bar ] lmap Try running your version and Dan's in the profiler, and compare call counts for words in the 'math' and 'sequences' vocabularies. Use Control-O in the UI to use the UI profiler, it's friendlier than the 'profile' word.