## Types as Propositions in Typescript

September 05, 2023Propositions as types correspondance (PAT) (or Types as Propositions) is one of the most intriguing discoveries of Computer Science. The…

Written by **Yassine EL Ouafi**

## Types as Propositions in Typescript

September 05, 2023Propositions as types correspondance (PAT) (or Types as Propositions) is one of the most intriguing discoveries of Computer Science. The…

## Algebraic Effects: from Algebra to Programs

June 26, 2021Some time ago I wrote a series about Algebraic effects. I explained then that you could either explain the topic using Math concepts…

## A simple rule for using callbacks in React

January 20, 2021In this post I assume you know React and the Hooks API. I also assume a basic knowledge about render and commit phases in Concurrent mode…

## The Category of continuations

September 18, 2020Take a simple FP language without polymorphism, just monomorphic types, functions and products. It’s well known that this language can be…

## Write a CSV Parser

December 15, 2018Some time ago, I wrote a tutorial about parser combinators. The tutorial shows ho we can, with a few primitive parsers (e.g. for text and…

## Typing Optics (5): Lens Proxies

December 02, 2018OK, continuing my hack to make my focused lens library definetely typed. So far, I have type definitions for base typeclasses/interfaces…

## Typing Optics (4): Getters and Const

November 29, 2018This is the 4th post documenting my tentative to add typings to my focused lens library. So far, I have type definitions for base…

## Typing Optics (2): Traversals

November 24, 2018Last post I wrote about my first tentatives to add typings to my focused lens library. I explained the main issue was the lack of Higher…

## Typing Optics (3): Isomorphisms and Prisms

November 24, 2018This is the 3rd post documenting my tentative to add typings to my focused lens library. So far, I’ve been able to add type definitions for…

## Typing Optics with TypeScript

November 23, 2018I remember my first attempts to learn Optics started long time ago, I stopped on basic things due to the lack of good resources at the time…

## Algebraic Effects in JavaScript part 4 - Implementing Algebraic Effects and Handlers

November 19, 2018This is the final part of a series about Algebraic Effects and Handlers. Part 1 : continuations and control transfer Part 2 : Capturing…

## Algebraic Effects in JavaScript part 3 - Delimited Continuations

November 19, 2018This is the third part of a series about Algebraic Effects and Handlers. Part 1 : continuations and control transfer Part 2 : Capturing…

## Algebraic Effects in JavaScript part 2 - Capturing continuations with Generators

November 19, 2018This is the second part of a series about Algebraic Effects and Handlers. Part 1 : continuations and control transfer Part 2 : Capturing…

## Algebraic Effects in JavaScript part 1 - continuations and control transfer

November 19, 2018This is the first post of a series about Algebraic Effects and Handlers. There are 2 ways to approach this topic: Denotational: explain…

## Gentle introduction to Parser Combinators

November 19, 2018In this tutorial we’re going to build a set of parser combinators. What is a parser combinator? We’ll answer the above question in 2 steps…