pub trait ReceiveInFile<IdN, Idx, IdO, O>: Sized + SetLen<IdO, Self::SA1> + Transition<Self::SB1<O>> {
type SA1: ReceiveNode<IdN, Self::SA2> + ReceiveDirName<Self::SB1<O>> + SetRoot<IdN, O>;
type SA2: ReceiveOffset<IdO, Self::SA3>;
type SA3: ReceiveIdx<Idx, Self::SA1>;
type SB1<OO>;
}