from LispUtils and kmb