Makale, "eğlenceli küçük diller" olarak adlandırılan programlama dillerinin iç yapısını ve çalışma prensiplerini inceliyor. Yazar, bu dillerin nasıl işlediğini, içlerinde neler olduğunu ve farklı tasarım seçimlerinin sonuçlarını merak ediyor. Haskell benzeri dillerin yüzeysel benzerliklerine rağmen, katı (strict) veya tembel (lazy) değerlendirme, curried veya bland fonksiyon uygulaması, bootstrapped veya hosted olma, yorumlanmış veya derlenmiş olma, nominal veya yapısal tipler ve hata mesajlarının kalitesi gibi birçok boyutta farklılık gösterdiğini belirtiyor.
Çoğu dilin compiler implementasyonları, kaynak kodu işlemek için standart derleme aşamalarını kullanır: Lexing (kaynak kodu token akışına dönüştürme), Parsing (token'ları Soyut Sözdizimi Ağacına - AST dönüştürme), Desugaring (yüzey AST'yi çekirdek AST'ye basitleştirme), Type Inference (tip çıkarımı), Pattern Match Compilation (kalıp eşleştirme derlemesi), Normalization (normalize edilmiş bir ara gösterime - IR dönüştürme), Optimization (optimizasyon), Closure Conversion (kapanış dönüşümü), Code Generation (hedef koda dönüştürme), Register Allocation (kayıt tahsisi) ve Runtime System (çalışma zamanı sistemi) gibi adımlar izlenir.
Makale, özellikle katı ve tembel değerlendirme arasındaki farklara odaklanıyor. Katı değerlendirmede (ML, OCaml gibi), fonksiyon argümanları fonksiyona geçirilmeden önce değerlendirilirken, tembel değerlendirmede (Haskell gibi), argümanlar yalnızca değerleri gerçekten gerektiğinde değerlendirilir ve sonuç önbelleğe alınır. Tembel değerlendirme, sonsuz koleksiyonlar gibi özelliklere olanak tanırken, compiler implementasyonunu ve hata ayıklamayı daha karmaşık hale getirir. Ayrıca, fonksiyonların curried (her argüman için ayrı bir fonksiyon uygulaması) veya bland (çoklu argümanları tek bir fonksiyon olarak ele alma) olması arasındaki farklar ve bunun implementasyon maliyetleri de ele alınıyor. Curried dillerde arity analizi yapılmazsa her argüman için heap tahsisi gerekebilir.
Programlama dillerinin iç işleyişini anlamak, farklı tasarım seçimlerinin performans, karmaşıklık ve özellikler üzerindeki etkilerini ortaya koyar.