mitchell vitez

email linkedin github resume

Hi there! I’ve written about some of my favorite topics here, including math, games, functional programming, type theory, and learning.

I work at Mercury. Before that, I started Hylomorphic.

Please feel free to contact me. I’m always looking for interesting projects, people, and perspectives!

Composing Coercions

Representational equality, identity functors, and the hashdot operator

2019 Road Trip

A slew of national parks

Interpreting the Value of Money

It's more complex than it seems

Start Predicting Everything

Once more: the way to get good is to practice


Pure undirected love

Building Lenses

Implementing basic Haskell lenses in twenty exercises

Existing Effortlessly

How much work does it really take to survive?

Life and Other Fuzzies

Boundaries and mysteries


Heatmapping channel usage over time

Time Value of Everything

The right time to capture the most you can get

Shirking Imaginary Duties

Why don't we avoid avoiding voids

A Curation Algorithm

Playing with a simple genetic algorithm

Hidden Recursion

Definitional flavors of the gamma function

The Ins and Ins of Economics

Introductory insight into incentives

Elm Everywhere

Building Android, iOS, and web apps with shared front-end logic

The Siren Song of Meta-Altruism

Effects of going one level too deep


Should the universe be allowed to hide in plain sight?

Manifesting Manifolds

Order and chaos at different structural scales

Parity Clarity

Naturally even or odd

Guessing a Function

Achieving arbitrary approximation

The Map Puzzle

No iteration!

A Mental Model of the Python REPL, for Beginners

Understanding execution is exciting

Infinite Recursive Permutation Generators

Confusing code and alphabetic enumeration

Nullity, Exceptionality, and Optionality

Ways to handle nonexistent values


Generated and human-edited music

Understanding Understanding

To really learn, first you must become confused

Dead Simple Password Safety

How to be safer with next to no effort

Thought Molding

Changing the changing of your mind


Ways to turn things into other things

Braid Isotopy

Playing with fun-to-visualize mathematical structures

Cultural Affordances

Redesigning everyday interactions

The Incredible Joys of Amateur Music-Making

Being bad at something never felt this good

Malevolent Ackermann

Non-primitive-recursive functions and fork bombs

Novelty Minus Novelty

How to do new things without doing new things

The Erlang C Formula

Calculating traffic loads

Most People

Another horribly abused phrase

Human Heroes

Looking up to imperfect role models

Lerping and Slerping

Interpolation in its finest forms

Don't Forget Training

Differences between learning, practice, and training

A Few ghci Tips

Commands that improve your ghci experience


Facts learnable just by looking inside

Fear of Repackaging

Seriously dealing with ideas requires some unoriginality

A Polarizing Intuition

Light filters aren't spooky objects from beyond classical physics

Type-Enforced Exponential Trees

Type-level Peano exponentiation comes to the rescue

Incentives at Scale

Goals are far more powerful than blacklists

You Have to be Willing to Lose

If you're always winning, you're doing something wrong

Eternal Fate

The story of one research director and a very big choice

The CAP Theorem Misconception

You can have all three of C, A, and P

Hype and Hatred

Why so many people despise buzzwords

Video Game Setpieces

Fiction could be far stranger and vaster than it is

The Inner Game

What non-analysis does better than analysis

A Sense of Relativity

Trying to gain intuition for what happens at high speed

Haskell Error Reduction

A beginner's guide to the ways Haskell helps us avoid errors

Social Exercises

The need for a structured set of principled practice problems

Forgetful Functors and Lossy Language

Generality, specificity, and their levels of precision

In Praise of Intricate Writing

Thoughts on String Theory (the tennis one)

OCaml's Categorical Origins

On being underpinned by a different kind of machine

The Supreme Cleverness of Mario Kart's Mirror Mode

Game design at its most efficient

Incentives are a Hell of a Drug

Thoughts on building habits and following through on goals

The Rise of Dark Downtempo

Good things happen at 100bpm

Things We Criticize

Why people spend almost all their time on lesser evils

The Badness of Death

An eschatological exploration

Black-Scholes Under Duress

Remembering the conditions where it doesn't hold

My Superintelligence Can Beat Up Your Superintelligence

Wild speculations about a certain meeting in the far future

Flip It Around

A whirlwind tour through one of the conceptually simplest techniques for better reasoning

Giant Steps, Tiny Steps

Bouncing around the circle of fifths

What "Hylomorphic" Means

What's in a name?

How Python Dictionaries Work

Mining the C code for interesting tidbits

Alien-Worthy Human Humor

What's intergalactically funny?

Building an AST for Lua in Haskell

Translating from MetaLua

The Chebyshev's Inequality Proof of the Weak Law of Large Numbers

Building up some intuition

Why Volleying Is Allowed In Tennis But Not In Ping-Pong

Differences in some of my favorite sports, at scale

The Only Runtime Error I've Ever Seen In Elm

Infinite recursion defeats the type system once again!

Sum Types Are Better Than Others

How sum types help us avoid bugs

Roman Numerals In Haskell

Abusing pattern matching for the greater good

Semi-Conserved Quantities

Exploring things that change, but not that much

A Resolution

Why these posts exist