A free algebra represents primitive effect operations as a program that can be sequenced without committing to a target effect. An interpreter later translates that program into an executable effect, separating program construction from execution. section 13.6
This separation contrasts with capability traits: a capability constructs operations directly in the target monad, while a free program is built first and interpreted afterward. The Free data type supplies sequencing before any concrete effect is chosen. section 13.6
