public static final function ana(\Closure $unfolder, $start_value) {
        $unfolded = $unfolder($start_value);
        if ($unfolded->isFile()) {
            return $unfolded;
        }

        return new GenericFixedFDirectory(
            $unfolded->fmap(function($value) use ($unfolder) {
                return self::ana($unfolder, $value);
            })
        ); 
    }