Exploring Type class in Scala: A knowledge pack
This series of blog post seeks to provide an exhaustive exploration of the Type-class pattern in Scala.
Dadepo Aderemi (@dadepo)
Scala in 2018 - The State of Developer Ecosystem by JetBrains. Combining ScalaCheck generators. Scalaz 8 IO vs Akka (typed) actors vs Monix (part 1). Use the decorator pattern for clean I/O boundaries. Scala - AnyVal meets Pattern Matching.
Speeding Up Compilation Time with `scalac-profiling`. Partitioning Akka Streams for Scalability and High-Availability. Bringing back power assert with Expecty. Hot source dependencies using sbt-sriracha. Running akka-cluster on Kubernetes.
Incorporating FaceNet into Play framework with Silhouette authentication. Futures in Scala Protips (part 5): Try more. Zero-Overhead Tree Processing with the Visitor Pattern. More Readable Code in Scala. Relearn your sbt.
Open Offer: Pair program with me. How well do you know your Akka trivia?. ScalaDays 2018 Berlin Takeaways. Scalar 2018 whiteboard voting results!. Implicit Implications (part 1): Implicit Parameters.
Product with Serializable. Scala Enumerations hell. Running Play on GraalVM. Tagless Final algebras and Streaming. 10 Reasons to Learn Scala and FP - DZone Java.
Akka Typed: Hello World in the new API. No More Transformers: High-Performance Effects in Scalaz 8. Writing Internal DSL in Scala. On Bifunctor IO and Java's Checked Exceptions. Partitioning Akka Streams to Maximize Throughput.
Better logging with Monix 3, part 1: MDC. Learning how to code with Scala: Hello, World!. Responding to Incoming Text Messages with Scala and Finatra. Understanding F[_] in Scala. Macros: the Plan for Scala 3.
A quick tour of build tools in Scala. Towards Scala 3. CoRecursive: Graphql And Sangria. Using Redux with Binding.scala. Testing Play Framework with H2 in-memory database.
Cats: Safe Resource Acquisition and Release. An ode to the kind-projector and to the partial-unification of Scala. Models of Computation - Part 2 - How? (inspired by SICP). ScalaUA, April 20-21, 2018, Kyiv, Ukraine. WIN a ticket to Scala Days Berlin!.
A Functional Interface for Key/Value Store. Defeat your 99th percentile with speculative task. Synchronous or asynchronous, and why wrestle with wrappers?. Running Spark on a Cluster: The Basics. Talks from Scalar Conference 2018.
Boilerplate free testing with Scalacheck and Magnolia. ScalaUA, April 20-21, 2018, Kyiv, Ukraine. Scala Sphere, April 15-17, Kraków, Poland. Blockyard Conference, April 13, Gdańsk, Poland. Scala Native 0.3.7.
Akka anti-patterns: overusing ActorSelection. Twilio guardrail: Principled Code-Generation for Type-Safe Languages. Google Summer of Code 2018 Scala Projects. Sequential Traverse for managing parallel resource usage in Scala. Dependency Inversion | Inversion of Control (IoC) For Absolute Beginners.
Cats Effect: IO. Stepping down as the maintainer of scalamacros/paradise. Accessibility of the Scala Compiler. IO Monad and Monad Transformers for Rookies. Exploring Type Annotations in Scala.
Generic Programming and Shapeless with Miles Sabin. Implementing an event-driven HTTP server with Scala Native. Survey on Swagger with Akka HTTP. AST-free JSON parsing. 5 steps of creating your very first Type Class in Scala.
Scala-view: Animate streams of images. Creating forms on your Play application - Part 2. Typesafe Union-type folding in Scala. ManagedT: Compositional resource management. NeoVim + Scala.
Top 15 Scala Libraries for Data Science in 2018. Static Sorting in Slick. Safe(r) mappings in Slick with Shapeless. Tour of Akka Cluster - Cluster Sharding. Akka cluster on kubernetes. Traps and pitfalls.
New key for signing Scala releases. 3 Tips For Maintaining Your Scala Projects. Literal types: a case study. Comonads for scientific and statistical computing in Scala. Choosing between nub and ordNub? In Scala you don't have to!.
Akka streams detailed scaladoc. On Performance of the New Collections. Who am I? Keycloak Impersonation API. Some advice for Alpakka contributors. In Defense of OOFP.
FString: String lengths at compile time. Comparing Scala relational database access libraries. How Do Implicits Work in Scala?. Some Thoughts about Variance in Scala. 200 issues of Scala Times: a bunch of statistics.
There are more types than classes. Caching With Variable TTL Using Scalacache. Sculpt: dependency graph extraction for Scala. SIP-23 Implementation of literal types by milessabin. Algebraic Domain Modelling using Functions With Debashish Ghosh.
Minutes of the 7th meeting of the Scala Center, Q4 2017. Those fancy words used by functional programmers purists really annoy me. Simplicitly: Foundations and Applications of Implicit FunctionTypes. Scalar 2018 CFP, April 6-7, Warsaw, Poland. ScalaSphere 2018 CFP, April 16-17, Kraków, Poland.
Sketch of possible typelevel extension of principled metaprogramming. Build Tools as Pure Functional Programs. Exponential Back-Off With Scala Futures. Partial & Partially Applied Functions in Scala. Mechanics of unboxed union types in Scala.
Looking for volunteers to finish the Scala tour. Binary Compatibility for library authors. Design Principles From Functional Programming. Scala – tagged types. Why We Do Scala in Zalando.
Best Scala talks I've seen in 2017. Understanding Reactive IO and Back-Pressure with (your own) Akka Http Server. Optimizing Tagless Final - Saying farewell to Free. Scalar 2018 CFP, April 6-7, Warsaw, Poland. ScalaSphere 2018 CFP, April 16-17, Kraków, Poland.
Exploring Type class in Scala: A knowledge pack. Scalar 2018 CFP, April 6-7, Warsaw, Poland. ScalaSphere 2018 CFP, April 16-17, Kraków, Poland. Akka HTTP 10.1.0-RC1. February: Akka Streams: A Motivating Example.
Futures in Scala Protips (part 3): Unapplying Future.apply (sometimes). Scala at Duolingo with Andre Kenji Horie. SPP November Meeting Minutes. SIP Meeting Minutes - 6th December 2017 | Scala Documentation. Akka Cluster Bootstrap.
Nelson integrates Kubernetes. Why Everyone Should Build Their Next Blockchain in Scala. Scalaz and Cats . Machine Learning with Scala - Linear Regression. An exclusive Interview with ScalaQuest Founder, Alejandro Lujan.
Adventures with custom Predef. What I Did Not Know About Scala And Its Standard Library. IntelliJ IDEA Scala Plugin 2017.3. Top Link Of November: The Kotlin Debate. Scala eXchange, December 14-15, London.
A Cameo that is worth an Oscar. Find a Geospatial File’s SRID Using Scala and GDAL. What's happening with macros?. Getting Started with Scala and Twilio. Let Them Be Lazy!.
Reasonable Scala typechecker. The Kotlin debate. Information extraction in Scala with Odin (NLP/NLU). So, what's wrong with SBT?. Practical Awesome Recursion - Ch 01: Fixpoints.
Security update: 2.12.4, 2.11.12, 2.10.7. Minitest: Zero Crap Scala Testing Library. Exploring Property-Based Testing with ScalaCheck (simple examples). MapReduce, Cats, collection-strawman and Object Algebras. Dependency injection of Akka Actors with Google Guice.
Speed up compile times with Zinc 1.0. Minutes: SIP Meeting October 2017. Akka Message Delivery - At-Most-Once, At-Least-Once, and Exactly-Once - Part 2. Simple Scala Stack. Scala real life matters: when to use Akka and also RabbitMQ.
Using Spark SQL and Spark Streaming together. Scala Times RSS Feed. Scala eXchange, December 14-15, London. BeeScala 2017, November 23-25, Ljubljana, Slovenia, 15% discount!. Scala Matsuri 2018 CFP, March 16-18, Tokyo, Japan.
Visual Scala Reference. The Limitations of Type Classes as Subtyped Implicits. What makes ScalaFiddle so fast. Tim Perrett at Scale. Refined types, what are they good for?.
Introduction to Machine Learning with Spark and MLlib (DataFrame API). Akka Typed: New Persistence API. FastParse 1.0: Past, Present & Future. The case against annotations. My Closing Remarks at Scala World.
Interview with Scala creator Martin Odersky. Roadmap towards non-experimental macros. Scala Cats library for dummies part 5. Lambda World, October 26 - 27, Cádiz, Spain -15% discount. Scala eXchange, December 14-15, London.
Akka Typed: New Cluster API. Scala's Future.successful: Do Not Block Your Future Success. The Actor Model in Akka and Akka Typed. What is a Functor anyway?. Josh Suereth receives community award.
Scala World 2017. ENSIME: No Maintainer. Basic Category Theory for (Scala) Programmers (Part I). Scala Patterns To Avoid: Implicit Arguments With Default Values. Introduction to Akka HTTP.
Minutes of the 6th meeting of the Scala Center, Q3 2017. Lambda World, October 26 - 27, Cádiz, Spain -15% discount. Scala eXchange, December 14-15, London. Reactive Summit, October 18-20, Austin, TX - 15% discount. Play 2.6.5 released.
Covariance, Contravariance and Culture in Scala. Builder Pattern in Scala with Phantom Types. Handling exceptions in Scala. Catch bugs with Scalafix v0.5. Status of the Collections.
Stalagmite and its speed. Integrating Akka Streams and Akka Actors: Part IV. There are at least three types of strings. Reactive Streams in Scala meet a Game Engine - Part 6. Use lambdas and combinators to improve your API.
Akka Message Delivery: At-Most, At-Least, and Exactly-Once. Scala, Learning FP By Terminology. Bootstrapping the Web with Scala Native (Part 1). 15% discount for Lambda World, October 26th, 27th 2017, Cádiz, Spain. Full Stack Fest 2017, September 4th - 8th, Barcelona, Spain.
5 New features in Akka (Streams) 2.5.4 you may have missed. Why I'm Excited About Scalaz 8. 15% discount for Lambda World, October 26th, 27th 2017, Cádiz, Spain. Full Stack Fest 2017, September 4th - 8th, Barcelona, Spain. Scala eXchange 2017, December 14th - 15th, London.
Zinc (sbt) friendly code. Spark SQL under the hood - part I. Using Scala.js with React and GraphQL. Learning Scala By Terminology Root Cause Analysis. Meow! Start using Cats in your project right now.
Integrating Eta Into Your Scala Projects. Scala Vector operations aren't "Effectively Constant" time. Avoiding Mocks in ScalaTest. Exploring Tagless Final pattern for extensive and readable Scala code. 15% discount for Lambda World, October 26th, 27th 2017, Cádiz, Spain.
Don't fear the Monad. A new adaptive accrual failure detector for Akka. Continuing or dropping Scala 2.10 maintenance in the ecosystem?. Hacker News API Part 2. Introduction to Tagless final.
ScalaQuest - a game to learn Scala. |> Operator in Scala. Scala Futures vs Monix Tasks. 15% discount for Lambda World, October 26th, 27th 2017, Cádiz, Spain. Full Stack Fest 2017, September 4-8 2007, Barcelona, Spain.
Reactive Streams in Scala: Akka Streams vs Monix - part 3. Scala in 2017 - The State of Developer Ecosystem. Analyzing GitHub, how developers change programming languages over time. Managing Library Dependencies in SBT Builds. Improving Akka dispatchers | Scalac.
Longevity Goes Finally Tagless. Reactive Streams in Scala meet a Game Engine - Part 4. A tale of bad framework choices. Making UI easily with Binding.scala. Simplified Testing with ScalaTest and Custom Matchers.
Integrating Akka Streams and Akka Actors: Part III. Monitoring Akka based applications with Cinnamon and DataDog. The State Of In-Application State: What No One Is Talking About. Reactive Streams in Scala meet a Game Engine - Part 3. The three laws of config dynamics.
Reactive Streams in Scala: Akka Streams vs Monix - part 2. A summary of Scala Days Copenhagen 2017. Cluster Aware Actors. Exploring Scala AST in your browser. Domain Models - Early Abstractions and Polymorphic Domain Behaviors.
Reactive Streams in Scala: Akka Streams vs Monix - part 1. Optics beyond Lenses with Monocle. The evolution of scalable microservices. Futures in Scala Protips (part 4): BlockContexts. What if I told you, Scala compiler can understand SQL queries?.
Data Structures Are Antithetical to Functional Programming. Integrating Akka Streams and Akka Actors: Part II. ScalaFiddle comes to Medium. Towards a faster Scala compiler. Akka monitoring with Kamon part 3.
Scala Enumerations Summary. Akka monitoring with Kamon part 2. Evaluation strategies in Scala. Five Early Challenges Of Building Streaming & Fast Data Applications. Functional Web Services with Final Encoding.
SoftwareMill blog: An interval-based rate limiter for Akka Stream. What's new with Scala Native?. Akka Typed: Timers. Warts of the Scala Programming Language. How well do you know your Scala trivia?.
Building a CQRS / ES Framework (part 1). Scastie is out of beta and available to everybody!. How to write a Scala compiler plugin?. Consider syntax with significant indentation. Akka Streams - What is NotUsed all about.
Akka Typed: Protocols. Akka anti-patterns: blocking. Lightbend's annual charity survey. Essential sbt Plugins. Akka Typed: Supervision.
Akka Typed: Coexistence. 5 tips for ScalaTest that will make Testing Great Again. Patterns for Streaming Measurement Data with Akka Streams. Akka Typed: Hello World in the new API. Scalar Conference 2017.
Crushing boilerplate with Scala macros. Custom GraphStage in Akka Streams. The Most Popular Languages for Data Science. An IO monad for cats. When the Scala compiler doesn't help.
Lightbend Monitoring Now Integrates With Datadog. Scala popularity contest: Scalar 2017 whiteboard voting results. ScalaSwarm weekly ticket giveaway or a discount for Scala Times readers!. 20% discount for LX Scala, May 12th 2017, Lisbon, Portugal. 25% discount for Scala Italy 2017, May 12th, Rome.
Monad Transformers for the working programmer. Comparing Scala relational database access libraries. Scalera tip: Handling sticky implicit contexts. Achieving 3.2x Faster Scala Compile Time. Why not both?.
ThCS. Introduction to programming with dependent types in Scala. The High Cost of AnyVal subclasses.... Your First Application With Play and Scala - DZone Java. Scala interview questions. Benchmarking Single-result Query Performance in Slick Using JMH.
Example Apache Spark ETL Pipeline Integrating a SaaS. Building on top of Reactive Streams. Integrating Akka Streams and Akka Actors: Part I. Equivalence versus Equality. Swagger with Play.
Adopting Scala: The Next Steps. Upgrading From Play Framework 2.3 to Play 2.5. Capturing Packets with Scala Native and libpcap. What are Scala Type Classes?. Type Families in Scala.
7 Most Convenient Ways To Create A Future Either Stack. Herding cats - day 16. Scaling Financial Reporting at Airbnb. Scala Up North 2017 CFP. 10% discount for Scala Essentials Workshop April 7th, 2017, Dallas (TX).
The wrong abstraction. Recap in our reading club. Spark/Scala MOOC + Capstone Project Now Live on Coursera!. Introduction to Recursion Schemes with Matryoshka. Analyzing functions returning Future[T]. Building Web applications with Scala.js and React - Part 1.
The myth of using Scala as a better Java. Allow Typeclasses to Declare Themselves Coherent. Patterns for Streaming Measurement Data with Akka Streams. Using TensorFlow models from the JVM using TensorFlow Serving. Clustering Akka in Kubernetes with Statefulset and Deployment.
Ad hoc polymorphism in Scala for the mere mortals. Customizing Circe's auto generic derivation. A Simple Akka Cluster Application. Extending RequestContext in akka-http for fun and profit. Typeclass encoding in Dotty.
New proposal for lazy semantics of implicit by-name parameters. Introducing Scastie - An interactive playground for Scala. Scala Tutorials Part #11 - String Interpolation. Scala Italy 2017 Call for Paper. ScalaSphere 2017 with 50% discount for Scala Times readers!.
Akka Streams: A Motivating Example. Basics - Scala Documentation. Building Regular DSLs in Scala. Using Shapeless to Validate Typesafe Configuration Data. Scala Italy 2017 Call for Paper.
Akka Streams: A Motivating Example. Scala Italy 2017 Call for Paper. ScalaSphere 2017 with 50% discount for Scala Times readers!. Typelevel Scala 2.12.1.
From Monad Transformers to the Eff Monad. First Scala Platform meeting. Asynchronous Programming and Scala. Bring some color to your Scala compiler. Things I Wish I Knew When I Started Building Reactive Systems.
Free Monads in Web Stack — Part I. What's new in Clippy?. Parsing Simple Grammars In Scala With parboiled2. Borders, Approximations and Geo-Hashes. Scalar Call for Papers (ends Jan 31st!).
Why scala.collection.Traversable Is Bad Design. Akka ❤️ Ammonite. Revisiting Tagless Final Interpreters with Dotty. Community Survey 2016 Summary. Rewriting Process Algebra, Part 1.
Tracing back Scala Future chains in asynchronous programming. TensorFlow in Scala with ScalaPy. Scala Cats library for dummies - part 4. Scala By The Bay 2016. Scalar Call for Papers (ends Jan 31st!).
Work Stealing: What Makes the Play Framework Fast. A New Strategy for Scala. Scala Enumerations - Return of the (Java) Jedi. Best Scala talks I've seen in 2016. Scalar Call for Papers (ends Jan 31st!).
Implicit Design Patterns in Scala. Exploring Currying and Partial Application using Scala. Akka Streams, a Story of Scalability. Scalar Call for Papers (ends Jan 31st!). Scala DevTools Summit 2017, 10% discount for our readers!.
The most important Streaming abstraction. Kentucky Mule — limits of Scala typechecking speed. 10 Amazing Scala Collection Functions. Scalar Call for Papers (ends Jan 31st!). Scala DevTools Summit 2017, 10% discount for our readers!.
Akka Actors to Akka Streams: When You Should Care. Akka Cluster Management. The Proof - Monad as a Monoid in Category of Endofunctors. Essential SBT for Scala. More Longevity Awesomeness with Macro Annotations!.
Request and Session access in Lift Futures. Streams in Artery. Aeron in Artery. Implicit Function Types. Scalar Call for Papers (ends Jan 31st!).
Yet another sbt-docker introduction. Tweet image analysis talks I. Mutual Tail Recursion For Fun and Profit. Old Design Patterns in Scala. Introducing the Scala Platform Process.
SPLASH Amsterdam and Higher-kinded Types. AkkaPaint - simplicity and power of Akka. API Design for Heaps (aka Priority Queues). Introducing a schema-safe Scala Cassandra driver. My journey towards understanding distribution.
Partition Keys in Longevity. Alpakka 0.1 - a call to arms. Event sourced microservices. Typelevel fix point. IntelliJ IDEA 2016.3 RC: Scala.Js, Scala.Meta and More.
ConductR - One tool to rule them all. Gauge interest in and fixes/features wanted for TLS for 2.10.x. Lightbend Tech Digest - October 2016. Scalar Call for Papers (ends Jan 31st!). BeeScala, 20% discount for our readers!.
Akka Streams adapter — Eventuate. Playing with Play. SQL. Scala Cats library for dummies part 3. SBT Native Packager 1.2.0. Scala 2.12.0 is now available!.
Scala Cats library for dummies. Writing AWS Lambdas In Scala. Using RefTree for Visualizing Data Structures. Spotlight: GraphStage emit and friends. Handling failure using Xor and Validated data types.
Handling Split Brain scenarios with Akka. Awesome Error Messages for Dotty. Free Monads Are Expendable. Migrating from sbt 0.12.x. Longevity 0.15.0 - Query Enhancements.
Repository Pattern/Generic DAO Implementation in Scala using Slick. Beyond Code Style. Demystifying Akka Extensions. Descriptive Variable Names: A Code Smell. Modern Functional Programming: Part 2.
Using shapeless' HLists for extra type safety (in Akka Streams). Akka 2.4.11 Released!. Subtype type classes don't work. Chat With Akka HTTP Websockets. Learning Shapeless: HLists.
Machine (re)learning: Neural Networks from scratch. Hodling bitcoins with OP_CHECKLOCKTIMEVERIFY. Scalaz Monad Transformers. Modern Functional Programming: Part 2. Bits of Shapeless part 2: Generic Derivation.
The missing diamond of Scala variance. Getting started with Akka Stream Kafka. New Scalameta Inline Macros- Examples. Akka starter kit. Choosing variance for a phantom type.
Akka Streams Kafka 0.11 Released. FS2: Functional Streams for Scala 0.9. Scala 2.12.0-RC1 is now available!. BeeScala - free ticker raffle! Lubljana, Slovenia, Nov 25-26. Scala.IO Lyon - we have ticket winners!.
Monix: Version 2.0.0 Final Release. Akka Community Survey 2016. Making Sense Of Symbols In Scala's Collections API. Akka Persistence: Testing Persistent Actors. Scala.IO Lyon 2016 - win free tickets!.
CQRS and ES with Akka. Configuration-level Optimistic Locking with Longevity. Pokemon Go with Akka HTTP!. Writing Akka Streams Connectors for existing APIs. What's new in ScalaTest 3.
How to make the Scala compiler to review your code. Akka HTTP - stable, growing and tons of opportunity. Higher-kinded types: the difference between giving up, and moving forward. Minutes of the 2nd meeting of the Scala Center, Q3, 2016. Akka Streams Integration, codename Alpakka.
How PayPal Scaled to Billions of Transactions Daily Using Just 8VMs. The Scala Ecosystem: Infographics. August SIP Meeting Results. Scaladoc has a new look. Comparisons with Other Solutions — Monix.
API Design for Heaps (aka Priority Queues). Windowing data in Akka Streams. Scala Library Index Reaches Beta!. Top Programming Languages Trends: The Rise of Big Data. From first principles: Why I bet on Scala.js.
Mastering GraphStages (part 1). Scala Scripting and the 15 Minute Blog Engine. Towards Scalaz 8. Reactive DDD with Akka - putting the pieces together. Akka 2.4.9-RC1 Released!.
Compile-time Queries with Quill. Refining the play scala actions. How to log in Apache Spark, a functional approach. Getting Started Neo4j with Scala : An Introduction. Understand Scala's core typechecking rules.
Which shoe fits you? Comparing Akka Streams, Actors, and Plain Futures. The worst thing in our Scala code: Futures. Implementing a Custom Akka Streams Graph Stage. SIP Meeting Results: 2 SIPs Numbered and 3 SIPs Updated. Scala eXchange London 2016 - Call for Papers.