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)
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.
Getting Asynchronous in Scala : Part 1 (Future, Callbacks, Combinators etc.). Message formats, marshallers and code quality. Bloom filter for Scala. How I contributed to Akka over the weekend. Akka Http Request Throttling.
Understanding Implicits in Scala. Let it crash! – the Akka team blog. Scala Exercises V.2. Akka Community update July 2016. Reactors, Channels, and Event Streams for Composable Distributed Programming.
6 products every Scala developer should use. What makes type classes better than traits?. Sbt heiroglyphs and multi-projects explained. Scala eXchange London 2016 - Call for Papers.
Strategic Scala Style: Designing Datatypes. Why you can’t always flatMap to Option. Dotty at EPFL. Scala case classes. List of Call For Papers for IT conferences.
Scala for human beings. Futures - 3 (Combinators and Async). Hands on Scalaz. Scala is the new golden child. Reactive Web Request Batching with Scala and Play Framework.
Overview of free monad in cats. Scalar 2016 talks. ScaLAB, Wrocław, June 25th 2016. Devoxx Poland, Krakow, 22-25 June 2016. Akka Streams in Practice.
Combining Reactive Streams, Heroku Kafka, and Play Framework. Getting started with emacs for scala programming. The Scala Center Advisory Board. Micro-optimizing your Scala code. Scalable Fraud Detection for Zalando's Fashion Platform.
Reflections on starting Android project with Scala. Finite state machines with Akka. Akka Remoting (Artery Milestone). Three Scala courses launched on Coursera!. Fetch: A new Scala library for simple and efficient data access.
Improving your project with SBT. Hacking on scalac — 0 to PR in an hour. The Scala Effect. Getting started with scala-native | Smartjava.org. Research & Engineering.
Scalar 2016 Scala Memes. Time Travel in Scala: CPS in Scala. Multiversal Equality for Scala. Simple NLP Search in Your Application. Scala goes Native.
Bridging C++ to Scala with BridJ. Announcing Scala.js 0.6.9. Strategic Scala Style: Practical Type Safety. Painless, type-safe config file parsing with Macwire and Ficus. Migrating from Spray to Akka HTTP – Zalando Tech Blog.
Programming in Scala, Third Edition. How to contribute to IntelliJ Scala plugin. The underrated applicative functor. ScalaMock: macros strike back. Scala macros part III – Intellij Idea Support.
Akka 2.4.4 Released. Implementing type-safe request builder: practical use of HList constraints. Explaining Miles's Magic. Monads are confusing. Let us help. Scalar 2016 presentations & summaries.
Dependency injection in Play Framework using Scala. EasyDI – Who wants some cake?. Scala IDE 4.4-vfinal. Hakk the planet: Implementing Akka HTTP (Un)Marshallers. My Emacs For Scala Development – Part 2.
Swagger for Akka HTTP. A Comonad of Graph Decompositions. Performance akka-http vs scalatra. Play framework and Slick. Functional Programming Infographics – Main Features of Scala.
Scala Options Explained. A first look at Akka streams. Building a lexer and parser with Scala's Parser Combinators. Typeclasses in Scala.
Over Constraining the Aux Type. Typesafe Domain Objects in Scala. WhiteBoard Coder: sbt: customize Shell Prompt with git branch (round 2). Unit Testing - Cassandra with Phantom. ActorLogging vs. scala-logging - what is the difference?.
Information hiding, enforced. "You don't need a macro". WhiteBoard Coder: sbt: Customize the Shell prompt in sbt. The Scala Center. Scalapeño 2016: Scala With a Kick!.
Play 2.5.0 is released!. Diving into Akka Streams. Programming with Algebra - Atlassian Developers. Building microservices with Scala and akka-http. A useful F#-style |> operator for Scala.
Akka Streams Integration With Intel GearPump Data Streaming Engine. Spray and Slick support for New Relic. Inspecting Akka's Supervision Strategy. A Type Level Proof of Uniqueness. |> Operator in Scala.
Futures in Scala 2.12 series. Patterns in Scala: 101. Quill + Cassandra. Futures in Akka. Typesafe Changes Name to Lightbend.