unison
project-m36
unison | project-m36 | |
---|---|---|
17 | 7 | |
5,564 | 878 | |
1.0% | - | |
9.9 | 7.2 | |
7 days ago | 2 days ago | |
Haskell | Haskell | |
GNU General Public License v3.0 or later | The Unlicense |
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.
unison
- Unison Programming Language
-
Unison Cloud
Short version: no type classes (yet)
Longer version:
Building upon what Quekid5 mentioned, Unison abilities are an implementation of what is referred to as algebraic effects in programming language literature. They represent capabilities like IO, state, exceptions, etc. They aren't really a replacement for type classes, though in some cases you can shoehorn abilities in where you might otherwise use a type class.
For someone coming from a Haskell background, I think that abilities are closer to a replacement for monad transformers. But in my opinion they are much more ergonomic.
Discusson of type classes comes up a lot. Here is a long-standing GitHub issue: https://github.com/unisonweb/unison/issues/502
For what it's worth, I've written Unison quite a lot over the past few years and while I've missed type classes at times, I think that reading unfamiliar code is easier without them. There's no implicit magic; you can see exactly what is being passed into a function. So far I've been happy with a bit more verbosity for the sake of readability.
-
Show HN: Winglang – a new Cloud-Oriented programming language
I've been following the Unison lang [1] for quite some. Wing seem to set similar goals? From the first glance Wing looks more polished, but there's "The Big Idea" behind Unison - is there something similar?
[1]: https://github.com/unisonweb/unison
- Unison Language
-
C++ evolution vs C++ successor languages. Circle's feature pragmas let you select your own "evolver language."
in haskell it looks like this, you specify the language extensions you want at the top of the source files: https://github.com/unisonweb/unison/blob/trunk/unison-core/src/Unison/ABT.hs
-
Looking for a new language to learn for Advent of Code that's unlike anything you've tried before? Check out Unison!
they adjusted my ticket to be a bug fix on their part.
-
Syntax Design
I think Unison is going in this direction. Imo this is a mistake, as a program language functions not just as specification for the machine, but also as communication between programmers. Allowing the introduction of arbitrary dialects to suit individual preferences seems like it would interfere with that communication.
- Unison
- Unison Milestone 3
- What if Git worked with Programming Languages?
project-m36
-
Chris Date and the Relational Model (2014)
If you are interested in D, Project:M36 [0] has an implementation of TutorialD that I found to be fun to play with.
[0] https://github.com/agentm/project-m36
- Why Are There No Relational DBMSs? [pdf]
-
Would you use haskell to build a database? Or is Rust/C++ a better fit?
If building a DBMS in Haskell is a bad idea, please let me know, since we've already built one. While on-demand/lazy evaluation is regarded as a double-edged sword, I wouldn't want to create a math engine without it.
-
Papers Every Developer Should Read
If you are into Out of the Tar Pit, check out M36, a relational DB written in Haskell that aims to live up to the paper:
https://github.com/agentm/project-m36/blob/master/docs/reach...
-
Has these been any practical application of (i.e. libraries inspired by) David Spivak's work on categorical database theory?
Project:M36 implements a relational algebra engine based on the similar Out of the Tarpit paper. Specifically, Project:M36 supports user-defined sum and product types, server-side Haskell functions, querying of past state, and more.
-
Is anyone using SafeHaskell?
Project:M36 uses Safe Haskell to enable arbitrary code execution of pure functions within the DBMS, so it does have its uses.
-
Persisting Haskell ADTs The Relational Way
There is a discussion on a query language here: library of relational shortcuts
What are some alternatives?
nvim-treesitter-context - Show code context
pandoc - Universal markup converter
dark - Darklang main repo, including language, backend, and infra
postgrest - REST API for any Postgres database
cone - Cone Programming Language
purescript - A strongly-typed language that compiles to JavaScript
nbdime - Tools for diffing and merging of Jupyter notebooks.
hadolint - Dockerfile linter, validate inline bash, written in Haskell
structured-haskell-mode - Structured editing minor mode for Haskell in Emacs
differential-datalog - DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.
UwUpp - The next generation esoteric language
materialize - The data warehouse for operational workloads.