public function cata(\Closure $trans) {
        return $trans( $this->directory->unfix()->fmap(function(FSObject $obj) use ($trans) {
            if ($obj->isFile()) {
                return $trans($obj);
            }
            assert($obj instanceof FixedFDirectory);
            return $obj->cata($trans);
        }));
    }