Seems like you should memoize all this in a #semantic_map_lambdas method or something so that this is only built once. E.g.

```ruby
def semantic_map(semantic)
  semantic_map_lambdas[semantic]
end

def semantic_map_lambdas
  @semantic_map_lambdas ||= { ... }
end
```

Further should that memoize on a class level so this is only built once for all time vs. in instances of the serializer?