Fruit was designed to help with the study of game-tree search algorithms, when applied to chess. It is now released as a chess engine, which is a somewhat different category of programs. Therefore the source code contains entire files and also functions that are either not used by the engine, or could be replaced with a much simpler (although somewhat less efficient) equivalent.
As a chess engine, Fruit combines a "robust" search algorithm with a "minimalist" evaluation function. The latter is not a design choice, and will hopefully change in the future.
The following description is only a very incomplete description. Please consult the source code for an absolute definition.
The search algorithm was designed to accommodate with heavy forward-pruning eccentricities (such as search inconsistencies).