ใน Haskell ใน 5 ขั้นตอน ฟังก์ชันแฟคทอเรียลถูกกำหนดไว้ดังนี้:
let fac n = if n == 0 then 1 else n * fac (n-1)
แต่สำหรับการกอด มันบอกว่า fac ต้องอยู่ใน fac.h ใครสามารถอธิบายได้ว่าทำไมถึงเป็นเช่นนี้ - การขาดความสามารถในการกำหนดฟังก์ชั่นที่มีชื่อดูเหมือนเป็นข้อ จำกัด มากมายสำหรับล่าม