Not long ago I was searching the Internet on the topic "combining eager and lazy evaluation", and have run over a paper which I obviously dismissed as "not interesting enough", yet now I have realized that it could indeed be useful, but am unable to find it. I know it was talking about a useful primitive, I do not know how exactly it was named, which checked whether values passed as arguments to functions were lazy (blocks to be evaluated) or eager (already evaluated), and using it some functions, e.g. map (this example was present in the paper) could be implemented to be both eager and lazy at the same time, depending on the arguments. Does anyone recognize this description? - Tom