scalaz / Scalaz Plugin
Licence: lgpl-3.0
A compiler plugin that will improve on the scala compiler on the assumption that the user is using the Scalazzi-safe subset of Scala.
Stars: ✭ 76
Projects that are alternatives of or similar to Scalaz Plugin
Never
Never: statically typed, embeddable functional programming language.
Stars: ✭ 248 (+226.32%)
Mutual labels: compilers, functional-programming
Ramtuary
Ramda + Ramda Fantasy + Sanctuary REPL 🌿
Stars: ✭ 72 (-5.26%)
Mutual labels: functional-programming
Json Decoder
Type safe JSON decoder for TypeScript
Stars: ✭ 67 (-11.84%)
Mutual labels: functional-programming
Fo
An experimental language which adds functional programming features to Go.
Stars: ✭ 1,158 (+1423.68%)
Mutual labels: functional-programming
Parser Combinators From Scratch
Code that accompanies the series
Stars: ✭ 56 (-26.32%)
Mutual labels: functional-programming
Lila
♞ lichess.org: the forever free, adless and open source chess server ♞
Stars: ✭ 10,315 (+13472.37%)
Mutual labels: functional-programming
Cyclops
An advanced, but easy to use, platform for writing functional applications in Java 8.
Stars: ✭ 1,180 (+1452.63%)
Mutual labels: functional-programming
Milewski Ctfp Pdf
Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source
Stars: ✭ 9,037 (+11790.79%)
Mutual labels: functional-programming
Codeworld
Educational computer programming environment using Haskell
Stars: ✭ 1,142 (+1402.63%)
Mutual labels: functional-programming
Scallina
A Coq-based synthesis of Scala programs which are correct-by-construction
Stars: ✭ 65 (-14.47%)
Mutual labels: functional-programming
Parsing With Haskell Parser Combinators
🔍 A step-by-step guide to parsing using Haskell parser combinators.
Stars: ✭ 72 (-5.26%)
Mutual labels: functional-programming
Mgo
Purely functional genetic algorithms for multi-objective optimisation
Stars: ✭ 63 (-17.11%)
Mutual labels: functional-programming
Not Awesome Es6 Classes
A curated list of resources on why ES6 (aka ES2015) classes are NOT awesome
Stars: ✭ 1,185 (+1459.21%)
Mutual labels: functional-programming
Dive into haskell
Dive into Haskell: Examples of all features of this Pure Functional programing language
Stars: ✭ 64 (-15.79%)
Mutual labels: functional-programming
Pfun
Functional, composable, asynchronous, type-safe Python.
Stars: ✭ 75 (-1.32%)
Mutual labels: functional-programming
Request via
RequestVia: A Functional HTTP Client That Wraps Net::HTTP
Stars: ✭ 74 (-2.63%)
Mutual labels: functional-programming
Scalazzi compiler plugin
A compiler plugin that improves on the scala compiler on the assumption that the user is using the Scalazzi-safe subset of Scala.
What does this plugin do?
- [x] Sufficiency checker. Example.
- [x] Non-ambigious typeclass resolution. Example.
- [x] Orphan instance checker. Some examples.
- [x] Polymorphic function optimization.
See test/files for more examples. We would like to get a lot more things done eventually, see open issues.
What is Scalazzi
- No
null
. - No catching exceptions in pure code.
- No type casing (
isInstanceOf
). - No type casting (
asInstanceOf
). - No side-effects.
- No
equals
,toString
,hashCode
. - No
notify
orwait
in pure code. - No
.getClass
.
We are more interested in Scalazzi+, which adds:
- Only total functions.
-
Eq
(used in laws and pattern matching) must satisfy:- Identity of indiscernibles (indiscernible values are equal).
- Indiscernibility of identicals (equal values are indiscernible from each other).
The last requirement might seem a bit cryptic, but it has a wide range of implications, for example:
if (a === b) {
// now we know that a.type === b.type
}
Other great compiler plugins you should check out
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].