Skip to content
Snippets Groups Projects
Commit 80595f5c authored by crater2150's avatar crater2150
Browse files

Update SBT, Scala and dependencies

parent fc706444
No related branches found
No related tags found
No related merge requests found
name := "short-exercises"
organization := "de.uniwue.fp"
version := "0.1-SNAPSHOT"
scalaVersion := "2.12.8"
scalaVersion := "2.13.1"
scalacOptions ++= Seq(
"-deprecation",
......@@ -9,29 +9,22 @@ scalacOptions ++= Seq(
"-feature",
"-unchecked",
"-Xlint",
"-Yno-adapted-args",
"-Ywarn-dead-code",
"-Ywarn-numeric-widen",
"-Ywarn-value-discard",
"-Ypartial-unification",
"-Xfuture",
"-Ywarn-unused-import",
"-Ywarn-unused:implicits",
"-Ywarn-unused:locals",
"-Ywarn-unused:params",
"-Ywarn-unused:patvars",
"-Ywarn-unused:privates",
"-Wdead-code",
"-Wnumeric-widen",
"-Wvalue-discard",
"-Wunused:patvars,privates,locals,params,-imports",
"-Ypatmat-exhaust-depth", "40",
"-language:higherKinds",
"-language:implicitConversions",
)
resolvers += Resolver.sonatypeRepo("releases")
addCompilerPlugin("org.spire-math" %% "kind-projector" % "0.9.3")
addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.11.0" cross CrossVersion.full)
// Disallow some language construcs
// your bonus exercises will have to compile with these options
addCompilerPlugin("org.wartremover" %% "wartremover" % "2.4.1")
addCompilerPlugin("org.wartremover" %% "wartremover" % "2.4.2")
scalacOptions ++= Seq(
"-P:wartremover:traverser:org.wartremover.warts.AsInstanceOf",
"-P:wartremover:traverser:org.wartremover.warts.IsInstanceOf",
......@@ -43,5 +36,5 @@ scalacOptions ++= Seq(
"-P:wartremover:traverser:org.wartremover.warts.While",
)
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.5"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test"
libraryDependencies += "org.scalactic" %% "scalactic" % "3.1.1"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.1.1" % "test"
sbt.version=1.3.5
package applicative
import scala.language.higherKinds
trait Applicative[F[_]] {
def pure[A](a: A): F[A]
......
package applicative
import scala.language.higherKinds
trait Monad[F[_]] extends Applicative[F] {
def flatMap[A, B](fa: F[A])(f: A => F[B]): F[B] = flatten(map(fa)(f))
......
package monads
import scala.language.higherKinds
trait Monad[F[_]] {
def pure[A](a: A): F[A]
......
package parsers.lib
import scala.language.implicitConversions
trait ParserOps[A] {
val self: Parser[A]
......
package typeclasses
import scala.language.higherKinds
object FunctorOption {
trait Functor[F[_]] {
def map[A, B](fa: F[A])(f: A => B): F[B]
......
import applicative.Monad
import scala.language.higherKinds
package object util {
implicit class MonadOps[F[_] : Monad, A](fa: F[A]) {
def flatMap[B](f: A => F[B]): F[B] = implicitly[Monad[F]].flatMap(fa)(f)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment