really-small-backpack-example
A really small example of the Backpack module system for Haskell (by danidiaz)
cargo-crate-api
Superseded by cargo-semver-check (by crate-ci)
really-small-backpack-example | cargo-crate-api | |
---|---|---|
8 | 3 | |
50 | 7 | |
- | - | |
2.8 | 8.5 | |
9 months ago | over 1 year ago | |
Haskell | Rust | |
MIT License | - |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
really-small-backpack-example
Posts with mentions or reviews of really-small-backpack-example.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-11-02.
- Haskell is the greatest programming language of all time
-
Implied bounds and perfect derive
Isn’t this what Haskell’s backpack does? https://github.com/danidiaz/really-small-backpack-example
-
Polymorphic unpacking through backpack?
Also worth mention how module identity works in Backapck: two modules instantiated separately but with the same ingredients are "equal" and have compatible types.
-
Using dependent types to write proofs in Haskell
Anyway, an alternative to RULES that I've explored is to put the proofs behind a module signature and compile to versions of the program, one with "real" proofs and another with unsafeCoerced ones. This avoids the danger of the RULEs silently ceasing to apply because of name changes (don't know how common is that danger in practice though).
-
Video Tutorial: "Using proofs to make functions faster over length-indexed vectors" (Richard Eisenberg)
Here's an example of how to use Backpack (instead of rewrite rules) to alternate between "normal" proofs and the ones which use usafeCoerce.
-
Proposal for parametric modules like Coq's?
Perhaps Backpack could enable something similar to that?
-
Anyone actively using dhall-to-cabal or hpack-dhall?
While being nowhere near programmability, Cabal's common stanzas can be very useful to reduce duplication. An example.
- Abstracting monad stacks with Backpack
cargo-crate-api
Posts with mentions or reviews of cargo-crate-api.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-04-12.
-
Implied bounds and perfect derive
As for detecting this, the cargo team has been maintaining documentation on crate semver compatibility (which is similar but not exactly the same as the stdlib) and we've been finding we want to switch to automating this instead. We are looking at adopting my proof of concept. I've been meaning to get it setup for a bigger request-for-contributors but haven't gotten to it yet.
-
Cargo: Namespaced and weak dependency features have been stabilized
cargo-crate-api
-
[Gitoxide December Update]: a new object database and upcoming multi-pack index support
cargo-crate-api checks out a ref to an arbitrary directory. It chooses the latest tag if one wasn't specified
What are some alternatives?
When comparing really-small-backpack-example and cargo-crate-api you can also consider the following projects:
rust-semverver - Automatic checking for semantic versioning in library crates
macaroni.nix
rust-crates-index - Rust library for retrieving and interacting with the crates.io index
agda2hs - Compiling Agda code to readable Haskell
cargo-release - Cargo subcommand `release`: everything about releasing a rust crate.
sdl-gpu-hs
Kind2 - A next-gen functional language [Moved to: https://github.com/Kindelia/Kind]
dhall-to-cabal - Compile Dhall expressions to Cabal files
nodedemo - Backpack demo/issue
ghc-proposals - Proposed compiler and language changes for GHC and GHC/Haskell
cute-c2-hs
really-small-backpack-example vs rust-semverver
cargo-crate-api vs rust-semverver
really-small-backpack-example vs macaroni.nix
cargo-crate-api vs rust-crates-index
really-small-backpack-example vs agda2hs
cargo-crate-api vs cargo-release
really-small-backpack-example vs sdl-gpu-hs
really-small-backpack-example vs Kind2
really-small-backpack-example vs dhall-to-cabal
really-small-backpack-example vs nodedemo
really-small-backpack-example vs ghc-proposals
really-small-backpack-example vs cute-c2-hs