Hi there!

I am Abhinav Sarkar. I'm a software engineer currently living in Bangalore, India. When not making software, I read books, play drums, take photos and ride my bike.

While you're here, you can read my blog posts, my notes, learn about me and this website, or look at my projects, the books I've read, the photos I've taken, and the recent activities I've done.

Feed Link to Atom feed of posts

Recent Notes

Short posts on miscellaneous topics.

See more notes here.

Feed Link to Atom feed of posts

Recent Posts

Long-form posts on mostly programming related topics.

Implementing Co, a Small Interpreted Language With Coroutines #1: The Parser

  • A twenty-four minute read
  • 3 🗣️ 2 🔁

Many major programming languages these days support some lightweight concurrency primitives. The most recent popular ones are Goroutines in Go, Coroutines in Kotlin and Async in Rust. Let’s explore some of these concepts in detail by implementing a programming language with support for coroutines and Go-style channels.

Read more

Solving Advent of Code “Handy Haversacks” in Type-level Haskell

  • A seventeen minute read
  • 2 🗣️ 1 🔁

I have been trying to use type-level programming in Haskell to solve interesting problems since I read Thinking with Types by Sandy Maguire. Then I found myself solving the problems in Advent of Code 2020 and some of them seemed suitable to be solved with type-level programming. So I decided to give it a shot.

Read more

JSON Parsing from Scratch in Haskell: Error Reporting—Part 2

  • A twenty-three minute read

In the previous post, we set out to rewrite the JSON parser we wrote in Haskell in an earlier post, to add support for error reporting. The parser was written very naively: if it failed, it returned nothing. You couldn’t tell what the failure was or where it happened. That’s OK for a toy parser but error reporting is an absolute must requirement for all good parsers. In the previous post, we finished writing the basic framework for the same. In this post, we’ll finish adding simple but useful error reporting capability to our JSON parser.

Read more

Visit the archive for nine more posts.

Like the posts? Subscribe to get future posts by email.

Elsewhere on the World-Wide Web