After reading list and seeing statement that lazy/Lazy.force is faster then closure/apply, I've decided to run microbenchmark with both. Results are rather confusing: Byte code - Lazy is three times slower than closure Native code (x86) - it's either coredumps or leaks memory Code attached as <>. With it's current form native code leaks memory, by uncommenting first two lines it would coredump. Also both compilers tends to generate rather strange error. =-=-=-=-=-= The files lazy.cmi and lazy.cmi make inconsistent assumptions over interface Lazy =-=-=-=-=-= This error fixable by removing lazy.cmi from a disk. Have I stepped on some known bug/feature? Vladimir