/// relay. This is especially important here since we're handling data that is controllable from
/// Helper function to split a `RelayLayer` into forward and backward type-erased trait objects.
fn as_circ_parameters(&self, algorithm: AlgorithmDiscriminants) -> Result<CircParameters, Bug> {