- Notifications
You must be signed in to change notification settings - Fork10
A compiler plugin that will improve on the scala compiler on the assumption that the user is using the Scalazzi-safe subset of Scala.
License
scalaz/scalaz-plugin
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A compiler plugin that improves on the scala compiler on the assumption that the user is using the Scalazzi-safe subset of Scala.
- Sufficiency checker.Example.
- Non-ambigious typeclass resolution.Example.
- Orphan instance checker.Someexamples.
- Polymorphic function optimization.
Seetest/files for more examples. We would like to get a lot more things done eventually, see open issues.
- 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 inScalazzi+, 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}
About
A compiler plugin that will improve on the scala compiler on the assumption that the user is using the Scalazzi-safe subset of Scala.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Contributors8
Uh oh!
There was an error while loading.Please reload this page.