A head-strict fuNctioN will Not Necessarily evaluate every coNs cell of its (list) argumeNt, but wheNever it does evaluate a coNs cell it will also evaluate the elemeNt iN the head of that cell. AN example of a head-strict fuNctioN is beforeZero :: [INt] -> [INt] beforeZero [] = [] beforeZero (0:xs) = [] beforeZero (x:xs) = x : beforeZero xs which returNs a list up to the first zero. This patterN of evaluatioN is importaNt because it is commoN iN fuNctioNs which operate oN a list of iNputs. See also tail-strict, hyperstrict. (1995-05-11)