Hello there!
I'm Soham Chowdhury, a student of mathematics learning to coherently speak algebraic number theory and (eventually) arithmetic geometry.
I'm also a functional programmer interested in programming-language theory and expressive type systems; a self-taught guitarist and musician interested in counterpoint and fugal writing; a fan of a lot of music and writing; and an enthusiast for unexplained analogies in and around mathematics.
I'm interested in and like discussing a variety of things, including literature, music (theory), physics, philosophy, and cognitive science.
This is my personal site and blog, named after the Béla Bartók work.
Projects
preposterous
A work-in-progress implementation of the OutsideIn(X) type inference engine of Vytinotis, Peyton Jones, Schrijvers, Sulzmann (2010), used in the Glasgow Haskell Compiler.
sound-and-complete
A near-complete implementation of the Sound and Complete type system from Dunfield and Krishnaswami (2016), which describes a minimal ML-like language with GADTs, existential types, and coverage-checked pattern-matching.
rien
A set of Nix scripts for reproducible, predictable Haskell development environments supporting custom package-sets and native dependencies.
noether
A numeric programming framework for Haskell featuring highly polymorphic algebraic structures and custom deriving strategies to build complex algebraic behaviors from simpler ones.
Drafts
Notes and short proofs of concept
A stripped-down Todo app using the Reflex FRP library, with lots of comments
Type-safe neural networks in Idris, with compiler-checked linear algebra!
The quest to learn Teichmüller theory in honor of Mirzakhani's memory
Greatest hits from around the web
How I allow multiple monoid, ring, etc. structures in Noether using type families
What are higher-rank polymorphism and bidirectional type inference?
The Langlands program in number theory
Diatonic chord construction 101
The average Haskell user knows much less category theory than you think
Learn extreme pointfree notation, but don't use it
Rewrite rules for high-performance Haskell (with examples from real libraries)
The Servant library, the compiler as a companion, and evaluating your Haskell proficiency
What "prime" means, and Fermat's theorem on sums of two squares
Ideals are better than elements!
No, you're not stupid: math is actually hard
Thunks and laziness in Haskell
Idle thoughts about abstraction in math and pedagogy