Threadsafe template cache
Constants
NO_TEMPLATES = [].freeze
KEY_BLOCK = lambda {|cache, key| cache[key] = SmallCache.new(&NAME_BLOCK)}
NAME_BLOCK = lambda {|cache, name| cache[name] = SmallCache.new(&PREFIX_BLOCK)}
PREFIX_BLOCK = lambda {|cache, prefix| cache[prefix] = SmallCache.new(&PARTIAL_BLOCK)}
PARTIAL_BLOCK = lambda {|cache, partial| cache[partial] = SmallCache.new}