def resolve_symbol(resolver, sym, ctx)
      if found = find_symbol(sym.to_sym, ctx)
        resolve_lexically(resolver, found, ctx)
        found
      elsif dynamic = resolver.resolve_symbol(sym)
        dynamic
      else
        fail("Unknown symbol in manifest: #{sym}")
      end
    end
def resolve_symbol(resolver, sym, ctx)
      if found = find_symbol(sym.to_sym, ctx)
        resolve_lexically(resolver, found, ctx)
        found
      elsif dynamic = resolver.resolve_symbol(sym)
        dynamic
      else
        fail("Unknown symbol in manifest: #{sym}")
      end
    end
resolve a symbol to its value, and then resolve that value