;; search public API — assembles the canonical Haskell source from all layers.
;; Tests and callers concatenate `search/src` with their own top-level bindings
;; (e.g. "result = lookupTerm \"cat\" idx\n") and evaluate via the haskell-on-sx
;; interpreter. Public Haskell entry points: indexDoc, lookupTerm, deleteDoc,
;; docFreq, allTerms, tokens, positioned, evalQuery, parseQuery, searchQuery,
;; rankTfIdf, rankBm25, topNTfIdf, topNBm25, fedIndex, aclFilter, searchTfIdfAcl,
;; topNTfIdfAcl, searchBm25Acl, prefixTerms, prefixDocs, prefixRankTfIdf,
;; paginate, pageTfIdf, pageBm25, resultCount, editDist, fuzzyTerms, fuzzyDocs,
;; fuzzyRankTfIdf, highlight, snippet, stem, stemText, stemTokens, indexStemmed,
;; nearDocs, expandTerm, synDocs, synRankTfIdf, queryTerms, searchRankTfIdf,
;; searchRankBm25, suggestN, suggest.

(define
  search/src
  (str
    search/tokenize-src
    "\n"
    search/index-src
    "\n"
    search/query-src
    "\n"
    search/parse-src
    "\n"
    search/rank-src
    "\n"
    search/fed-src
    "\n"
    search/prefix-src
    "\n"
    search/page-src
    "\n"
    search/fuzzy-src
    "\n"
    search/highlight-src
    "\n"
    search/stem-src
    "\n"
    search/near-src
    "\n"
    search/syn-src
    "\n"
    search/rankq-src
    "\n"
    search/suggest-src))
