This page contains raw writings from various sources, such as Gitter, Reddit, Github, or Discord. Most recent come first, and, time permitting, they might become proper posts eventually.
Note that unfortunately Discord links require an account for viewing, and that Gitter links are currently broken (I'm in the process of recovering them).
- Generics and type erasure
- Kleisli
- Technical vs business errors is a false dichotomy
- Very long convo on non-blocking IO & async
- Explaining Ref.access
- Explaining algebraic effects
- Why not typed errors
- Gardener syndrome
- Some details on interruption protocols
- Interruption, composing computation vs composing handles
- Philosophical musings on data driven designs in distributed systems
- More discussion on thread-per-core
- Philosophical discussion on thread-per-core, data-driven programming
- Stack safety in monadic recursion
- fs2-kafka producer patterns
- How to use TestControl
- Show fs2's power by writing parMeet in a handful of lines
- fs2's `covary`
- Applicatives
- The Unit type
- Long convo teaching polymorphic recursion and unification
- Syntax sugar for a functional language
- Elimination forms
- ADTs
- Unification
- Why I don't use `for comprehensions` anymore
- Currying, function syntax, eta expansion
- Final tagless again
- Arguments against `for`
- Applicative vs Monad in the shape of the arrows
- Different flavours of final tagless, and Haskell vs Scala
- Very short point on families of abstraction
- Sharded processing with the fs2
- Converting (only) Pure Streams to Iterator
- From kinds to final tagless capability classes
- State Monad breakdown
- Concurrent.background
- short point on Free, IO, final tagless
- CE2 multirace
- Why `map` doesn't run effects, or, is `flatMap` fundamental?
- Abstracting over arity with shapeless
- fs2 Stream cannot continue on errors
- Ref + Deferred example: periodic monitor
- async, continuations, monads
- mini example in recognising type patterns
- fs2 `compile` and algebraic design
- Evaluation vs execution in functional effects
- Type based reasoning, an http4s example
- Daemon threads
- Algebraic thinking, an example with Option
- Short point on the relationship between Concurrent and Async
- IO internals, runloop, Async
- How does shapeless type inequality constraint work
- Short explanation about green threads
- using an implicit in a default param, crazy version (won't recommend in real code)
- Explaining Freeness with Monoidal programs
- Free Monad and Operational Monad
- shapeles HMap limitations and advantages
- Further question on `IO` and purity
- Referential transparency, algebraic thinking, types
- Path to learn FP abstractions
- Final tagless: languages as their interpreters
- resource-safe fiber.await (join that returns an exit case)
- Various bits about typeclass syntax (context bounds, `apply`, `implicitly`, syntax)
- Resource.allocated with concurrency - case study with Skunk.Leak
- Several strategies for resettable timeouts
- *> vs >>
- Existentials and universals
- Avoid the import tax when your TC depends on an orphan instance of another TC
- Resettable timeouts with cats-effect
- Follow the types example
- Interesting concurrency case with Deferred
- The benefits of IO (examples)
- The benefits of IO (definitions)
- Cancellation and high level IO implementation strategy
- Small recap about Parallel
- More fs2 Pull
- fs2 Pull
- In depth conversation about algebras, starting from Pull
- Stream.bracket, F.bracket, Resource
- Caching, including mini-cache with Ref and Deferred
- MVar vs Ref/Deferred, including minimal queue implementations
- Short point on how to teach algebras
- concurrency basics, blocking, green threads
- fs2 Segments/chunks (obsolete as of fs2 1.0)
- Kinds
- Type vs tag
- In depth Final tagless vs Free explanation
- Short and sweet explanation of partial unification
- Short but complete definition of effects vs side effects
- foldMap again
- foldMap
- Short point on learning effects
- Final and initial encodings
- Getting an instance of Applicative for type F[A] = Option[(A, A)] or similar is wrong
- Flattening case classes with shapeless
- Gists