Add support for mapc
Relax compiler literal caching

Equal is too general. Diferrent literals are considered the same and
if you modify destructively one of them, then other were modified too.
Merge https://github.com/abeaumont/jscl

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.