really-small-backpack-example
A really small example of the Backpack module system for Haskell (by danidiaz)
sdl-gpu-hs
By macaroni.dev
really-small-backpack-example | sdl-gpu-hs | |
---|---|---|
8 | 4 | |
50 | - | |
- | - | |
2.8 | - | |
9 months ago | - | |
Haskell | ||
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
sdl-gpu-hs
Posts with mentions or reviews of sdl-gpu-hs.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-03-24.
-
3D graphics on Haskell in 2023
The bindings are currently source-only here. I am going to release to Hackage soon (tm), but I just haven't had the time to button it up. However, they do work great. Every game I've done for Ludum Dare except 47 (which was gloss) has used these bindings.
-
Monthly Hask Anything (January 2023)
The guts are in the Memorable module. There are some operators in there that allow you to pluck individual fields from struct pointers in IO instead of marshaling entire structs needlessly.
-
Haskell is the greatest programming language of all time
The games are built on a custom "engine" made with SDL2 and some other C libraries I wrote bindings for: sdl-gpu, cute_c2, and cute_sound. I use apecs and cleff for the general architecture. And for animations, I use a combination of animate and ease.
-
Linear Types AmA!
You can't exactly allocate data in this custom memory management system, but you can get close with some type-level/generics stuff I think. I've been playing with it quite a bit for no-marshal hsc FFI bindings [1] [2], and it's worked nicely for that in raw IO. With some extra elbow grease, I can probably make it work for pure linear code too.
What are some alternatives?
When comparing really-small-backpack-example and sdl-gpu-hs you can also consider the following projects:
rust-semverver - Automatic checking for semantic versioning in library crates
agda2hs - Compiling Agda code to readable Haskell
macaroni.nix
Kind2 - A next-gen functional language [Moved to: https://github.com/Kindelia/Kind]
libspng - Haskell bindings for libspng
dhall-to-cabal - Compile Dhall expressions to Cabal files
cute-c2-hs
cargo-crate-api - Superseded by cargo-semver-check
ghc-proposals - Proposed compiler and language changes for GHC and GHC/Haskell
really-small-backpack-example vs rust-semverver
sdl-gpu-hs vs agda2hs
really-small-backpack-example vs macaroni.nix
sdl-gpu-hs vs Kind2
really-small-backpack-example vs agda2hs
sdl-gpu-hs vs libspng
really-small-backpack-example vs Kind2
sdl-gpu-hs vs macaroni.nix
really-small-backpack-example vs dhall-to-cabal
sdl-gpu-hs vs cute-c2-hs
really-small-backpack-example vs cargo-crate-api
sdl-gpu-hs vs ghc-proposals