ocaml: phase 5.1 unique_set.ml baseline (Set.Make + IntOrd, count = 9)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 23s

First baseline that exercises the functor pipeline end to end:

  module IntOrd = struct
    type t = int
    let compare a b = a - b
  end

  module IntSet = Set.Make (IntOrd)

  let unique_count xs =
    let s = List.fold_left (fun s x -> IntSet.add x s) IntSet.empty xs in
    IntSet.cardinal s

Counts unique elements in [3;1;4;1;5;9;2;6;5;3;5;8;9;7;9]:
  {1,2,3,4,5,6,7,8,9} -> 9

The input has 15 elements with 9 unique values. The 'type t = int'
declaration in IntOrd is required by real OCaml; OCaml-on-SX is
dynamic and would accept it without, but we include it for source
fidelity. 27 baseline programs total.
This commit is contained in:
2026-05-09 05:44:35 +00:00
parent ec12b721e8
commit 24416f8cef
3 changed files with 21 additions and 0 deletions

View File

@@ -407,6 +407,12 @@ _Newest first._
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
'a tree`) with insert + in-order traversal. Tests parametric ADT,
recursive match, List.append, List.fold_left.
- 2026-05-09 Phase 5.1 — unique_set.ml baseline (Set.Make + IntOrd
functor app, count uniques in [3;1;4;1;5;9;2;6;5;3;5;8;9;7;9] →
9). First baseline that exercises the functor pipeline end to
end: defines an Ord module with `type t = int` + `compare`, applies
Set.Make to it, then folds the input list adding each element to
the set and queries `IntSet.cardinal`. 27 baseline programs total.
- 2026-05-09 Phase 4 — Set.Make / Map.Make functor application
smoke tests (+3 tests, 572 total). Functors were already wired
through ocaml-make-functor in eval.sx but had no explicit tests