fix fold(), add map(), add print()
change fold() behavior to use an optional base