• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

steve-downey / transpose / 28752701823
97%

Build:
DEFAULT BRANCH: main
Ran 05 Jul 2026 07:47PM UTC
Jobs 1
Files 13
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Jul 2026 07:45PM UTC coverage: 96.7% (-0.3%) from 96.97%
28752701823

push

github

steve-downey
Applicative: reify invoke as the core; apply becomes derived/alternate

Dual core, GHC-style: an Impl provides pure + (invoke | apply) and the base
derives the missing operation. invoke -- a plain function applied to N
arguments each in a context -- is the conceptual primary: McBride &
Paterson's canonical form pure f <*> u1 <*> ... <*> un IS invoke(f, u1...un),
and GHC's MINIMAL pure, ((<*>) | liftA2) with (<*>) = liftA2 id is the same
contract. apply-from-invoke is invoke(applicative_eval, cf, cx), available
exactly when the context can hold a callable; invoke-from-apply remains the
terminating-partial compatibility derivation.

- apply.hpp: applicative_eval; base no longer requires Impl::apply; derived
  apply dispatches-or-derives with Impl-direct calls (no derivation cycle);
  ap constrained so probing it on an invoke-only context is a clean false;
  neither-core misuse diagnosed by static_assert.
- optional, sender, Identity: migrated to native n-ary invoke; their apply
  is now the base-derived one (flagship (<*>) = liftA2 id proof).
- zip_list, simd_lanes, array: native invoke exposed via Map usings
  (dual-core coherence subjects).
- BinaryTree: deliberately kept apply-primitive as the compatibility-path
  exemplar (documented).
- monad.hpp: n-ary invoke synthesized from bind + pure.
- NEW simd.hpp: registered applicative for std::simd::basic_vec (C++26,
  gated) -- pure = broadcast, invoke = lane-wise generator; apply/ap do not
  exist and cannot be derived (no vec<callable>), verified by
  STATIC_REQUIRE_FALSE. An Applicative that is not Traversable.
- Law tests rewritten invoke-first (identity, generalized homomorphism,
  interchange, functor-composition) with named-concept probes; dual-core
  coherence checks; NEW simd_lanes.test.cpp and gated simd.test.cpp.

Verified: gcc-debug/gcc-release presets (C++23, 55 tests) and gcc-16 C++26
(57 tests incl. simd) all pass; pre-commit clean.

15 of 15 new or added lines in 3 files covered. (100.0%)

2 existing lines in 1 file now uncovered.

293 of 303 relevant lines covered (96.7%)

12.35 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
96.0
1.71% include/beman/transpose/zip_list.hpp
Jobs
ID Job ID Ran Files Coverage
1 28752701823.1 05 Jul 2026 07:47PM UTC 13
96.7
GitHub Action Run
Source Files on build 28752701823
  • Tree
  • List 13
  • Changed 6
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28752701823
  • 1f735371 on github
  • Prev Build on main (#28730967469)
  • Next Build on main (#28752758140)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc