purescript
Idris2
Our great sponsors
purescript | Idris2 | |
---|---|---|
28 | 22 | |
7,705 | 1,685 | |
0.9% | 3.4% | |
8.5 | 9.7 | |
6 days ago | 7 days ago | |
Haskell | Idris | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
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.
purescript
-
PureScript 0.15 Released
I was curious about when that happened- apparently, early last year: https://github.com/purescript/purescript/pull/4085
-
I just wrote my first article: Why should you try Elm?
It currently has done experiments in the backend (link). Sadly, none of this is ready for production yet. Good thing is that we have purescript for the backend, who is indeed very similar to Elm and Haskell! You should give it a look!
- can you recommend active Haskell open source projects?
- resources for purescript
-
Differences between TypeScript and Elm
Alternative to Elm can be PureScript, ClojureScript, ReasonML, ReScript, and other languages that compile to JavaScript. There are also newer and interesting languages that are still in an explorative state like Ren or Derw.
- From TypeScript to ReScript
- What are the advantages to learning Haskell over Typescript, or vice versa? For instance, can you do equational reasoning in Typescript, like you can in Haskell?
-
Could not match constrained type inside record field
Probably related to https://github.com/purescript/purescript/issues/4140
-
7 Useful Tools Written in Haskell
For further study, you can proceed to the official website.
-
It takes a PhD to develop that
You may find Elm, PureScript, or Reason to be of interest.
Idris2
-
Does anyone else wish they could "name" args in type signatures?
It's considered a bug that the type is printed by unelaborating it from Core rather than applying semantic highlighting to what the user originally wrote. Cf. https://github.com/idris-lang/Idris2/issues/1387
-
How to use elaborator reflection to help type inference?
Yes, it's definitely in Idris 2 - the code is here.
-
Idris 2: Quantitative Type Theory in Practice
I was a bit disappointed with linearity in QTT as I couldn't figured out how to create a safe API around a resizable array.
The example given in the paper is a LinArray (https://github.com/idris-lang/Idris2/blob/main/libs/contrib/...). Unfortunately, as the community discovered, a user can "leak" a non-linear binding outside of the `newArray` constructor (which is what attempts to enforce linearity for all bindings). With multiple unrestricted handles, a user can accidentally double-free for instance. (https://github.com/idris-lang/Idris2/issues/613)
The fundamental issue in this case is that linearity in QTT is a property of the parameter bindings and _not_ the type itself, meaning we can't easily express linearity as a _global_ property of the type.
On the other hand, only affecting the parameter bindings makes it really easy to use runtime-erased/comptime stuff without reimplementing a bunch of common types as runtime- and comptime-only versions.
ATS chooses the other path and makes linearity and runtime-erasure a part of the type (not without paying a hefty syntactic cost however).
-
From TypeScript to ReScript
Idris 2 looks promising... I suggest keep an eye on it https://github.com/idris-lang/Idris2
-
GitHub - AndrasKovacs/smalltt: Demo for high-performance type theory elaboration
The instructions here for bootstrapping from chez scheme are pretty straightforward and worked for me without issues.
-
What's the current status with packages/libraries on Idris?
the wiki has a list for manual management, which I think most people are doing at the moment.
-
The hardest thing I ever did explained as simply as possible.
Unfortunately there currently appears to be a bug in Idris' auto strategy. It means that, for now, we won't be able to rely on auto as much. It's not a huge deal provided it will get fixed in the future, but a tad annoying.
-
Nary functions
Ohad has ported part of the paper, cf. https://github.com/idris-lang/idris2/blob/master/libs/base/Data/Fun.idr
-
Best Way to Search prelude/base Packages?
Also, I think the generated HTML documentation is missing stuff from namespaces. Compare generated docs and source for base Data.DPair; all definitions in that file are in namespaces.
-
Q: Why does function clause order matter here?
Done: https://github.com/idris-lang/Idris2/pull/1428
What are some alternatives?
fp-ts - Functional programming in TypeScript
reason - Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
Elm - Compiler for Elm, a functional language for reliable webapps.
haskell-names - Haskell suite library for name resolution
reflex - Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.
polysemy - :gemini: higher-order, no-boilerplate monads
elm-reactor
stylish-haskell - Haskell code prettifier [Moved to: https://github.com/haskell/stylish-haskell]
rust - Empowering everyone to build reliable and efficient software.
liquidhaskell - Liquid Types For Haskell
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266
haskell-tools-ast - Developer tools for Haskell