pub type Chain = ChainGeneric<Context>;
pub struct Chain { pub branches: Vec<Branch<Context>>, /* private fields */ }
branches: Vec<Branch<Context>>