;; show.sx — tests for the Show class plumbing. ;; ;; Covers: ;; - showsPrec / showParen / shows / showString stubs (Phase 8) ;; - Eventually expanded to ≥12 tests covering the full audit (Phase 8 ☐). (hk-test "shows: prepends show output" (hk-deep-force (hk-run "main = shows 5 \"abc\"")) "5abc") (hk-test "shows: works on True" (hk-deep-force (hk-run "main = shows True \"x\"")) "Truex") (hk-test "showString: prepends literal" (hk-deep-force (hk-run "main = showString \"hello\" \" world\"")) "hello world") (hk-test "showParen True: wraps inner output in parens" (hk-deep-force (hk-run "main = showParen True (showString \"inside\") \"\"")) "(inside)") (hk-test "showParen False: passes through unchanged" (hk-deep-force (hk-run "main = showParen False (showString \"inside\") \"\"")) "inside") (hk-test "showsPrec: prepends show output regardless of prec" (hk-deep-force (hk-run "main = showsPrec 11 42 \"end\"")) "42end") (hk-test "showParen + manual composition: build (Just 3)" (hk-deep-force (hk-run "buildJust3 s = showString \"Just \" (shows 3 s)\nmain = showParen True buildJust3 \"\"")) "(Just 3)") (hk-test "reads: stub returns empty list (null-check)" (hk-deep-force (hk-run "main = show (null (reads \"42\"))")) "True") (hk-test "readsPrec: stub returns empty list" (hk-deep-force (hk-run "main = show (null (readsPrec 0 \"True\"))")) "True") (hk-test "reads: type-checks in expression context (length)" (hk-deep-force (hk-run "main = show (length (reads \"abc\"))")) "0") {:fails hk-test-fails :pass hk-test-pass :fail hk-test-fail}