Blueprint
The goal of the blueprint technique is to allow reading a data structure like Data.Map
while constructing it.
The idea is to separate the structure from the contained data.
It is discussed at length in
- Haskell-Cafe on Optimization problem.