Releases: Industrial-Algebra/Karpal
Releases · Industrial-Algebra/Karpal
Karpal v0.5.0
0.5.0 Release
New crates
karpal-diagram— monoidal categories, string-diagram DSL, coherence witnesses, verification integration (Phase 13, complete)karpal-schubert-types— Schubert intersection type system (Phase 14 A–C)
Phase 12 — karpal-verify extensions
- Kani verification backend with harness generation
- GPU compute obligation builders for Metal/MSL kernel contracts
karpal-verify-derivecompanion proc-macro crate (#[export_obligations])karpal-proofbridge (ProofBridge,ProofEvidence) for proof-derived certificates- Continuous verification CI workflow
Phase 13 — karpal-diagram (complete)
- Monoidal category traits:
Tensor,Braiding,Symmetry,Trace - String-diagram DSL with
Identity,Box,Sequence,Parallel,Swap,Cup,Capnodes - Runtime diagram normalization with
NormalizationTraceand 6 rewrite rules - Compact-closed cup/cap yanking normalization
- Text and SVG renderers
- Type-level coherence witnesses:
PentagonIdentity,TriangleIdentity,HexagonIdentity - Diagrammatic rewriting bridge:
ByNormalization,ByYanking,equivalent_proved(),prove_yanking() - Verification integration:
CoherenceCertificate,coherence_certificates()
Phase 14 — karpal-schubert-types (A–C, 0.5.0 scope)
SchubertType— Schubert classes in Grassmannians viaamari-enumerativeIntersection/IntersectionKind— LR coefficient intersection with structured zero classificationSchubertTypedtrait +SchubertProven<M, T>proof-carrying valuescompose_checks()— chained type-check composition via LR rule- External verification:
schubert_bundle()+verify_schubert()with 3 obligation types
Licensing
All 0.5.0+ crates use AGPL-3.0-or-later. The 0.4.x support line remains available under MIT OR Apache-2.0.
v0.4.0
v0.3.0
What's New
Phase 9 — Adjunctions & Advanced Category Theory
Adjunction<F, U>trait withunit/counit, plusIdentityAdjandCurryAdj<E>instances- State monad and Store comonad derived from the currying adjunction
ContravariantAdjunctionwithContAdj(self-adjoint continuation functor)ProfunctorAdjunctionandProfunctorFunctor(GAT-as-HKT3)End<P>,Coend<P, A>,DinaturalTransformation<P, Q>ComposeF<F, G>functor composition with HKT + Functor impls
Phase 10 — Effect System & Monad Transformers
FunctorSt,ApplicativeSt,ChainSt— parallel functor hierarchy with'staticbounds forBox<dyn Fn>compatibilityMonadTranstrait for lifting inner monad into transformer stack- Four monad transformers:
ExceptTF,WriterTF,ReaderTF,StateTF - New
karpal-effectcrate (no_stdcompatible)
Roadmap
- Phase 16 (karpal-topos: topos-theoretic constructions) added
- Phase 15 extended with sub-phases E–H
Stats
- 9 crates in workspace
- 774 tests, all passing
- Full
no_stdsupport across 7 crates
v0.2.0
What's New
New crates
- karpal-free — Free constructions: Coyoneda, Yoneda, Free Monad, Cofree Comonad, Freer, Day Convolution, FreeAp, FreeAlt, Kan extensions, Codensity, Density
- karpal-recursion — Recursion schemes: Fix, Nu, cata, ana, hylo, para, apo, histo, futu, zygo, chrono
- karpal-algebra — Abstract algebra: Group, AbelianGroup, Semiring, Ring, Field, Lattice, BoundedLattice, Module, VectorSpace
Major additions to existing crates
- karpal-core — Newtype wrappers (Sum, Product, Min, Max, First, Last), tuple Semigroup/Monoid impls, Comonad hierarchy (ComonadEnv, ComonadStore, ComonadTraced), Contravariant hierarchy (Divide, Divisible, Decide, Conclude), Invariant, FunctorFilter, Selective
- karpal-profunctor — Traversing trait, ForgetF, TaggedF
- karpal-optics — Iso, Getter, Review, Setter, Traversal, Fold (was Lens + Prism only)
Infrastructure
- 8 crates in the workspace (up from 5)
- 614 property-based tests, all passing
- All new crates are
no_stdcompatible - Documentation site with 23 reference pages
- READMEs for every crate
- publish.yml updated for all 8 crates
Full changelog
v0.1.0
Karpal v0.1.0
First public release of the Karpal HKT library for Rust — a GAT-based higher-kinded type system for the Industrial Algebra ecosystem.
Crates
| Crate | Description |
|---|---|
karpal-core |
HKT encoding, full functor hierarchy, algebraic structures, comonads, macros (no_std) |
karpal-profunctor |
Profunctor, Strong, Choice with FnP (no_std) |
karpal-optics |
Profunctor optics: Lens, ComposedLens, Prism |
karpal-arrow |
Category/Arrow hierarchy: 8 traits + FnA, KleisliF, CokleisliF (no_std) |
karpal-std |
Prelude re-exports for all crates |
Highlights
- GAT-based HKT encoding —
trait HKT { type Of<T>; }/trait HKT2 { type P<A, B>; }, zero dependencies, stable since Rust 1.65 - Full functor hierarchy — Functor, Apply, Applicative, Chain, Monad, Alt, Plus, Alternative, Bifunctor, Contravariant, Foldable, Traversable, FunctorFilter, Selective, NaturalTransformation
- Comonad family — Comonad, Extend, ComonadEnv, ComonadStore, ComonadTraced, Invariant
- Profunctor optics — Lens and Prism via profunctor encoding with composition support
- Arrow hierarchy — Semigroupoid, Category, Arrow, ArrowChoice, ArrowApply, ArrowLoop, ArrowZero, ArrowPlus
do_!/ado_!macros — monadic and applicative do-notation- 287 tests including property-based law verification via proptest
no_stdcompatible core crates (karpal-core, karpal-profunctor, karpal-arrow)
Documentation
📖 karpal.industrialalgebra.com
Getting Started
[dependencies]
karpal-std = "0.1.0"use karpal_std::prelude::*;
let doubled = OptionF::fmap(Some(21), |x| x * 2);
assert_eq!(doubled, Some(42));