scalaz-plugin


License

License

Categories

Categories

Scala Languages
GroupId

GroupId

org.scalaz
ArtifactId

ArtifactId

scalaz-plugin_2.12.4
Last Version

Last Version

0.0.7
Release Date

Release Date

Type

Type

jar
Description

Description

scalaz-plugin
scalaz-plugin
Project URL

Project URL

https://github.com/scalaz/scalaz-plugin
Project Organization

Project Organization

org.scalaz
Source Code Management

Source Code Management

https://github.com/scalaz/scalaz-plugin

Download scalaz-plugin_2.12.4

How to add to project

<!-- https://jarcasting.com/artifacts/org.scalaz/scalaz-plugin_2.12.4/ -->
<dependency>
    <groupId>org.scalaz</groupId>
    <artifactId>scalaz-plugin_2.12.4</artifactId>
    <version>0.0.7</version>
</dependency>
// https://jarcasting.com/artifacts/org.scalaz/scalaz-plugin_2.12.4/
implementation 'org.scalaz:scalaz-plugin_2.12.4:0.0.7'
// https://jarcasting.com/artifacts/org.scalaz/scalaz-plugin_2.12.4/
implementation ("org.scalaz:scalaz-plugin_2.12.4:0.0.7")
'org.scalaz:scalaz-plugin_2.12.4:jar:0.0.7'
<dependency org="org.scalaz" name="scalaz-plugin_2.12.4" rev="0.0.7">
  <artifact name="scalaz-plugin_2.12.4" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.scalaz', module='scalaz-plugin_2.12.4', version='0.0.7')
)
libraryDependencies += "org.scalaz" % "scalaz-plugin_2.12.4" % "0.0.7"
[org.scalaz/scalaz-plugin_2.12.4 "0.0.7"]

Dependencies

compile (2)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.12.4
org.scalaz : scalaz-plugin-library_2.12 jar 0.0.7

provided (2)

Group / Artifact Type Version
org.scala-lang : scala-compiler jar 2.12.4
org.scala-lang : scala-reflect jar 2.12.4

Project Modules

There are no modules declared in this project.

Scalazzi compiler plugin

Join the chat at https://gitter.im/scalaz/scalaz-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?

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 or wait 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

org.scalaz

Scalaz

Versions

Version
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3