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.

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

  • A seventeen minute read
  • 0 comments
  • 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
  • 0 comments

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

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

  • A twenty-six minute read
  • 0 comments
  • 3 🗣️ 4 🔁

In the previous post we wrote a simple but correct JSON parser in Haskell. 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. So in this post and next post, we’ll add simple but useful error reporting capability to our JSON parser.

Read more

Visit the archive for eight more posts.

Recent Books

Books I've recently finished reading.

See more readings here.

Recent Activities

Activities I've recently done.

Feb 25   0:36:26 hr
Feb 23   0:51:08 hr
Feb 20   0:55:00 hr
Feb 18   0:47:43 hr
Feb 17   0:48:38 hr

See more activities here.

Some photos I've taken.

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

Elsewhere on the World-Wide Web