Packages
llm_db
2026.2.2
2026.7.3
2026.7.2
2026.7.1
2026.7.0
2026.6.4
2026.6.3
2026.6.2
2026.6.1
2026.6.0
2026.5.2
2026.5.1
2026.5.0
2026.4.8
2026.4.7
2026.4.6
2026.4.5
2026.4.4
2026.4.3
2026.4.2
2026.4.1
2026.4.0
2026.3.3
2026.3.2
2026.3.1
2026.3.0
2026.2.9
2026.2.8
2026.2.7
2026.2.6
2026.2.5
2026.2.4
2026.2.3
2026.2.2
2026.2.1
2026.2.0
2026.1.5
2026.1.4
2026.1.3
2026.1.2
2026.1.1
2026.1.0
2025.12.4
2025.12.3
2025.12.2
2025.12.1
2025.11.18-preview
2025.11.14-preview
2025.11.7-preview
LLM model metadata catalog with fast, capability-aware lookups.
Current section
Files
Jump to
Current section
Files
lib/llm_db/deep_merge_shim.ex
defmodule LLMDB.DeepMergeShim do
@moduledoc """
Shim to call DeepMerge.deep_merge/3 with a 3-arity resolver without Dialyzer false positives.
DeepMerge's typespec advertises a 2-arity resolver `(any(), any() -> any())` but the actual
runtime implementation calls the resolver with 3 arguments `(key, left, right)`.
This shim hides the call from Dialyzer while providing the correct typespec for our usage.
"""
@type resolver3 :: (any(), any(), any() -> any())
@spec deep_merge(any(), any(), resolver3) :: any()
def deep_merge(left, right, resolver3) do
:erlang.apply(DeepMerge, :deep_merge, [left, right, resolver3])
end
end