// @generated by the capnpc-rust plugin to the Cap'n Proto schema compiler.
// DO NOT EDIT.
// source: capnp/hugr-v0.capnp


pub mod package {
  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <'a,> Reader<'a,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn get_modules(self) -> ::capnp::Result<::capnp::struct_list::Reader<'a,crate::hugr_v0_capnp::module::Owned>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_modules(&self) -> bool {
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn get_version(self) -> ::capnp::Result<crate::hugr_v0_capnp::version::Reader<'a>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_version(&self) -> bool {
      !self.reader.get_pointer_field(1).is_null()
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 0, pointers: 2 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn get_modules(self) -> ::capnp::Result<::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::module::Owned>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_modules(&mut self, value: ::capnp::struct_list::Reader<'_,crate::hugr_v0_capnp::module::Owned>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_modules(self, size: u32) -> ::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::module::Owned> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), size)
    }
    #[inline]
    pub fn has_modules(&self) -> bool {
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn get_version(self) -> ::capnp::Result<crate::hugr_v0_capnp::version::Builder<'a>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_version(&mut self, value: crate::hugr_v0_capnp::version::Reader<'_>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(1), value, false)
    }
    #[inline]
    pub fn init_version(self, ) -> crate::hugr_v0_capnp::version::Builder<'a> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), 0)
    }
    #[inline]
    pub fn has_version(&self) -> bool {
      !self.builder.is_pointer_field_null(1)
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
    pub fn get_version(&self) -> crate::hugr_v0_capnp::version::Pipeline {
      ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(1))
    }
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 53] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(56, 36, 26, 168, 243, 12, 207, 208),
      ::capnp::word(20, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(93, 1, 0, 0, 166, 1, 0, 0),
      ::capnp::word(21, 0, 0, 0, 226, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 119, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 80, 97, 99, 107),
      ::capnp::word(97, 103, 101, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(41, 0, 0, 0, 66, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(36, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(64, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(61, 0, 0, 0, 66, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(56, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(68, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(109, 111, 100, 117, 108, 101, 115, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(167, 107, 35, 13, 152, 216, 48, 189),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(118, 101, 114, 115, 105, 111, 110, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(167, 171, 245, 145, 177, 155, 108, 182),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <::capnp::struct_list::Owned<crate::hugr_v0_capnp::module::Owned> as ::capnp::introspect::Introspect>::introspect(),
        1 => <crate::hugr_v0_capnp::version::Owned as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[0,1];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
    pub static MEMBERS_BY_NAME : &[u16] = &[0,1];
    pub const TYPE_ID: u64 = 0xd0cf_0cf3_a81a_2438;
  }
}

pub mod version {
  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <> Reader<'_,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn get_major(self) -> u32 {
      self.reader.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn get_minor(self) -> u32 {
      self.reader.get_data_field::<u32>(1)
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 0 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn get_major(self) -> u32 {
      self.builder.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn set_major(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(0, value);
    }
    #[inline]
    pub fn get_minor(self) -> u32 {
      self.builder.get_data_field::<u32>(1)
    }
    #[inline]
    pub fn set_minor(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(1, value);
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 49] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(167, 171, 245, 145, 177, 155, 108, 182),
      ::capnp::word(20, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(0, 0, 7, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(168, 1, 0, 0, 230, 1, 0, 0),
      ::capnp::word(21, 0, 0, 0, 226, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 119, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 86, 101, 114, 115),
      ::capnp::word(105, 111, 110, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(41, 0, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(36, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(48, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(45, 0, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(40, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(52, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(109, 97, 106, 111, 114, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(109, 105, 110, 111, 114, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        1 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[0,1];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
    pub static MEMBERS_BY_NAME : &[u16] = &[0,1];
    pub const TYPE_ID: u64 = 0xb66c_9bb1_91f5_aba7;
  }
}

pub mod module {
  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <'a,> Reader<'a,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn get_root(self) -> u32 {
      self.reader.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn get_nodes(self) -> ::capnp::Result<::capnp::struct_list::Reader<'a,crate::hugr_v0_capnp::node::Owned>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_nodes(&self) -> bool {
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn get_regions(self) -> ::capnp::Result<::capnp::struct_list::Reader<'a,crate::hugr_v0_capnp::region::Owned>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_regions(&self) -> bool {
      !self.reader.get_pointer_field(1).is_null()
    }
    #[inline]
    pub fn get_terms(self) -> ::capnp::Result<::capnp::struct_list::Reader<'a,crate::hugr_v0_capnp::term::Owned>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(2), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_terms(&self) -> bool {
      !self.reader.get_pointer_field(2).is_null()
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 3 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn get_root(self) -> u32 {
      self.builder.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn set_root(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(0, value);
    }
    #[inline]
    pub fn get_nodes(self) -> ::capnp::Result<::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::node::Owned>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_nodes(&mut self, value: ::capnp::struct_list::Reader<'_,crate::hugr_v0_capnp::node::Owned>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_nodes(self, size: u32) -> ::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::node::Owned> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), size)
    }
    #[inline]
    pub fn has_nodes(&self) -> bool {
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn get_regions(self) -> ::capnp::Result<::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::region::Owned>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_regions(&mut self, value: ::capnp::struct_list::Reader<'_,crate::hugr_v0_capnp::region::Owned>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(1), value, false)
    }
    #[inline]
    pub fn init_regions(self, size: u32) -> ::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::region::Owned> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), size)
    }
    #[inline]
    pub fn has_regions(&self) -> bool {
      !self.builder.is_pointer_field_null(1)
    }
    #[inline]
    pub fn get_terms(self) -> ::capnp::Result<::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::term::Owned>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(2), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_terms(&mut self, value: ::capnp::struct_list::Reader<'_,crate::hugr_v0_capnp::term::Owned>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(2), value, false)
    }
    #[inline]
    pub fn init_terms(self, size: u32) -> ::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::term::Owned> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(2), size)
    }
    #[inline]
    pub fn has_terms(&self) -> bool {
      !self.builder.is_pointer_field_null(2)
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 91] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(167, 107, 35, 13, 152, 216, 48, 189),
      ::capnp::word(20, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(3, 0, 7, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(232, 1, 0, 0, 98, 2, 0, 0),
      ::capnp::word(21, 0, 0, 0, 218, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 231, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 77, 111, 100, 117),
      ::capnp::word(108, 101, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(16, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(97, 0, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(92, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(104, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(101, 0, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(96, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(124, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(2, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(121, 0, 0, 0, 66, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(116, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(144, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(3, 0, 0, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(141, 0, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(136, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(164, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(114, 111, 111, 116, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(110, 111, 100, 101, 115, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(108, 130, 159, 249, 96, 124, 57, 228),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(114, 101, 103, 105, 111, 110, 115, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(225, 113, 253, 231, 231, 39, 130, 153),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(116, 101, 114, 109, 115, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(178, 107, 91, 137, 60, 121, 191, 207),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        1 => <::capnp::struct_list::Owned<crate::hugr_v0_capnp::node::Owned> as ::capnp::introspect::Introspect>::introspect(),
        2 => <::capnp::struct_list::Owned<crate::hugr_v0_capnp::region::Owned> as ::capnp::introspect::Introspect>::introspect(),
        3 => <::capnp::struct_list::Owned<crate::hugr_v0_capnp::term::Owned> as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
    pub static MEMBERS_BY_NAME : &[u16] = &[1,2,0,3];
    pub const TYPE_ID: u64 = 0xbd30_d898_0d23_6ba7;
  }
}

pub mod node {
  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <'a,> Reader<'a,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn get_operation(self) -> ::capnp::Result<crate::hugr_v0_capnp::operation::Reader<'a>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_operation(&self) -> bool {
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn get_inputs(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_inputs(&self) -> bool {
      !self.reader.get_pointer_field(1).is_null()
    }
    #[inline]
    pub fn get_outputs(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(2), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_outputs(&self) -> bool {
      !self.reader.get_pointer_field(2).is_null()
    }
    #[inline]
    pub fn get_regions(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(3), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_regions(&self) -> bool {
      !self.reader.get_pointer_field(3).is_null()
    }
    #[inline]
    pub fn get_meta(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(4), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_meta(&self) -> bool {
      !self.reader.get_pointer_field(4).is_null()
    }
    #[inline]
    pub fn get_signature(self) -> u32 {
      self.reader.get_data_field::<u32>(0)
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 5 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn get_operation(self) -> ::capnp::Result<crate::hugr_v0_capnp::operation::Builder<'a>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_operation(&mut self, value: crate::hugr_v0_capnp::operation::Reader<'_>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_operation(self, ) -> crate::hugr_v0_capnp::operation::Builder<'a> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0)
    }
    #[inline]
    pub fn has_operation(&self) -> bool {
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn get_inputs(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_inputs(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(1), value, false)
    }
    #[inline]
    pub fn init_inputs(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), size)
    }
    #[inline]
    pub fn has_inputs(&self) -> bool {
      !self.builder.is_pointer_field_null(1)
    }
    #[inline]
    pub fn get_outputs(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(2), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_outputs(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(2), value, false)
    }
    #[inline]
    pub fn init_outputs(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(2), size)
    }
    #[inline]
    pub fn has_outputs(&self) -> bool {
      !self.builder.is_pointer_field_null(2)
    }
    #[inline]
    pub fn get_regions(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(3), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_regions(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(3), value, false)
    }
    #[inline]
    pub fn init_regions(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(3), size)
    }
    #[inline]
    pub fn has_regions(&self) -> bool {
      !self.builder.is_pointer_field_null(3)
    }
    #[inline]
    pub fn get_meta(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(4), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_meta(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(4), value, false)
    }
    #[inline]
    pub fn init_meta(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(4), size)
    }
    #[inline]
    pub fn has_meta(&self) -> bool {
      !self.builder.is_pointer_field_null(4)
    }
    #[inline]
    pub fn get_signature(self) -> u32 {
      self.builder.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn set_signature(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(0, value);
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
    pub fn get_operation(&self) -> crate::hugr_v0_capnp::operation::Pipeline {
      ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(0))
    }
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 127] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(108, 130, 159, 249, 96, 124, 57, 228),
      ::capnp::word(20, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(5, 0, 7, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(100, 2, 0, 0, 46, 3, 0, 0),
      ::capnp::word(21, 0, 0, 0, 202, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 87, 1, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 78, 111, 100, 101),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(24, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(153, 0, 0, 0, 82, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(152, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(164, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(161, 0, 0, 0, 58, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(156, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(184, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(2, 0, 0, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(181, 0, 0, 0, 66, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(176, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(204, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(3, 0, 0, 0, 3, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(201, 0, 0, 0, 66, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(196, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(224, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(4, 0, 0, 0, 4, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(221, 0, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(216, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(244, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 5, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(241, 0, 0, 0, 82, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(240, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(252, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(111, 112, 101, 114, 97, 116, 105, 111),
      ::capnp::word(110, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(216, 191, 119, 93, 53, 241, 240, 155),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(105, 110, 112, 117, 116, 115, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(111, 117, 116, 112, 117, 116, 115, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(114, 101, 103, 105, 111, 110, 115, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(109, 101, 116, 97, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(115, 105, 103, 110, 97, 116, 117, 114),
      ::capnp::word(101, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <crate::hugr_v0_capnp::operation::Owned as ::capnp::introspect::Introspect>::introspect(),
        1 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        2 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        3 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        4 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        5 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3,4,5];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
    pub static MEMBERS_BY_NAME : &[u16] = &[1,4,0,2,3,5];
    pub const TYPE_ID: u64 = 0xe439_7c60_f99f_826c;
  }
}

pub mod operation {
  pub use self::Which::{Custom,Dfg,Cfg,Block,FuncDefn,FuncDecl,AliasDefn,AliasDecl,Invalid,TailLoop,Conditional,Import,ConstructorDecl,OperationDecl};

  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <'a,> Reader<'a,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn has_func_defn(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 4 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn has_func_decl(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 5 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn has_alias_decl(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 7 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn has_import(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 11 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn has_constructor_decl(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 12 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn has_operation_decl(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 13 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn which(self) -> ::core::result::Result<WhichReader<'a,>, ::capnp::NotInSchema> {
      match self.reader.get_data_field::<u16>(2) {
        0 => {
          ::core::result::Result::Ok(Custom(
            self.reader.get_data_field::<u32>(0)
          ))
        }
        1 => {
          ::core::result::Result::Ok(Dfg(
            ()
          ))
        }
        2 => {
          ::core::result::Result::Ok(Cfg(
            ()
          ))
        }
        3 => {
          ::core::result::Result::Ok(Block(
            ()
          ))
        }
        4 => {
          ::core::result::Result::Ok(FuncDefn(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        5 => {
          ::core::result::Result::Ok(FuncDecl(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        6 => {
          ::core::result::Result::Ok(AliasDefn(
            self.reader.into()
          ))
        }
        7 => {
          ::core::result::Result::Ok(AliasDecl(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        8 => {
          ::core::result::Result::Ok(Invalid(
            ()
          ))
        }
        9 => {
          ::core::result::Result::Ok(TailLoop(
            ()
          ))
        }
        10 => {
          ::core::result::Result::Ok(Conditional(
            ()
          ))
        }
        11 => {
          ::core::result::Result::Ok(Import(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        12 => {
          ::core::result::Result::Ok(ConstructorDecl(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        13 => {
          ::core::result::Result::Ok(OperationDecl(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        x => ::core::result::Result::Err(::capnp::NotInSchema(x))
      }
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 1 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn set_custom(&mut self, value: u32)  {
      self.builder.set_data_field::<u16>(2, 0);
      self.builder.set_data_field::<u32>(0, value);
    }
    #[inline]
    pub fn set_dfg(&mut self, _value: ())  {
      self.builder.set_data_field::<u16>(2, 1);
    }
    #[inline]
    pub fn set_cfg(&mut self, _value: ())  {
      self.builder.set_data_field::<u16>(2, 2);
    }
    #[inline]
    pub fn set_block(&mut self, _value: ())  {
      self.builder.set_data_field::<u16>(2, 3);
    }
    #[inline]
    pub fn set_func_defn(&mut self, value: crate::hugr_v0_capnp::symbol::Reader<'_>) -> ::capnp::Result<()> {
      self.builder.set_data_field::<u16>(2, 4);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_func_defn(self, ) -> crate::hugr_v0_capnp::symbol::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 4);
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0)
    }
    #[inline]
    pub fn has_func_defn(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 4 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn set_func_decl(&mut self, value: crate::hugr_v0_capnp::symbol::Reader<'_>) -> ::capnp::Result<()> {
      self.builder.set_data_field::<u16>(2, 5);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_func_decl(self, ) -> crate::hugr_v0_capnp::symbol::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 5);
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0)
    }
    #[inline]
    pub fn has_func_decl(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 5 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn init_alias_defn(mut self, ) -> crate::hugr_v0_capnp::operation::alias_defn::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 6);
      self.builder.reborrow().get_pointer_field(0).clear();
      self.builder.set_data_field::<u32>(0, 0u32);
      self.builder.into()
    }
    #[inline]
    pub fn set_alias_decl(&mut self, value: crate::hugr_v0_capnp::symbol::Reader<'_>) -> ::capnp::Result<()> {
      self.builder.set_data_field::<u16>(2, 7);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_alias_decl(self, ) -> crate::hugr_v0_capnp::symbol::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 7);
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0)
    }
    #[inline]
    pub fn has_alias_decl(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 7 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn set_invalid(&mut self, _value: ())  {
      self.builder.set_data_field::<u16>(2, 8);
    }
    #[inline]
    pub fn set_tail_loop(&mut self, _value: ())  {
      self.builder.set_data_field::<u16>(2, 9);
    }
    #[inline]
    pub fn set_conditional(&mut self, _value: ())  {
      self.builder.set_data_field::<u16>(2, 10);
    }
    #[inline]
    pub fn set_import(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::text::Owned>)  {
      self.builder.set_data_field::<u16>(2, 11);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false).unwrap()
    }
    #[inline]
    pub fn init_import(self, size: u32) -> ::capnp::text::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 11);
      self.builder.get_pointer_field(0).init_text(size)
    }
    #[inline]
    pub fn has_import(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 11 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn set_constructor_decl(&mut self, value: crate::hugr_v0_capnp::symbol::Reader<'_>) -> ::capnp::Result<()> {
      self.builder.set_data_field::<u16>(2, 12);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_constructor_decl(self, ) -> crate::hugr_v0_capnp::symbol::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 12);
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0)
    }
    #[inline]
    pub fn has_constructor_decl(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 12 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn set_operation_decl(&mut self, value: crate::hugr_v0_capnp::symbol::Reader<'_>) -> ::capnp::Result<()> {
      self.builder.set_data_field::<u16>(2, 13);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_operation_decl(self, ) -> crate::hugr_v0_capnp::symbol::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 13);
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0)
    }
    #[inline]
    pub fn has_operation_decl(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 13 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn which(self) -> ::core::result::Result<WhichBuilder<'a,>, ::capnp::NotInSchema> {
      match self.builder.get_data_field::<u16>(2) {
        0 => {
          ::core::result::Result::Ok(Custom(
            self.builder.get_data_field::<u32>(0)
          ))
        }
        1 => {
          ::core::result::Result::Ok(Dfg(
            ()
          ))
        }
        2 => {
          ::core::result::Result::Ok(Cfg(
            ()
          ))
        }
        3 => {
          ::core::result::Result::Ok(Block(
            ()
          ))
        }
        4 => {
          ::core::result::Result::Ok(FuncDefn(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        5 => {
          ::core::result::Result::Ok(FuncDecl(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        6 => {
          ::core::result::Result::Ok(AliasDefn(
            self.builder.into()
          ))
        }
        7 => {
          ::core::result::Result::Ok(AliasDecl(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        8 => {
          ::core::result::Result::Ok(Invalid(
            ()
          ))
        }
        9 => {
          ::core::result::Result::Ok(TailLoop(
            ()
          ))
        }
        10 => {
          ::core::result::Result::Ok(Conditional(
            ()
          ))
        }
        11 => {
          ::core::result::Result::Ok(Import(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        12 => {
          ::core::result::Result::Ok(ConstructorDecl(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        13 => {
          ::core::result::Result::Ok(OperationDecl(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        x => ::core::result::Result::Err(::capnp::NotInSchema(x))
      }
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 230] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(216, 191, 119, 93, 53, 241, 240, 155),
      ::capnp::word(20, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(1, 0, 7, 0, 0, 0, 14, 0),
      ::capnp::word(2, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(48, 3, 0, 0, 38, 5, 0, 0),
      ::capnp::word(21, 0, 0, 0, 242, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 23, 3, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 79, 112, 101, 114),
      ::capnp::word(97, 116, 105, 111, 110, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(56, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 255, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(121, 1, 0, 0, 58, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(116, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(128, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(1, 0, 254, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(125, 1, 0, 0, 34, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(120, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(132, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(2, 0, 253, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(129, 1, 0, 0, 34, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(124, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(136, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(3, 0, 252, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(133, 1, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(128, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(140, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(4, 0, 251, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(137, 1, 0, 0, 74, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(136, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(148, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(5, 0, 250, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 5, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(145, 1, 0, 0, 74, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(144, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(156, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(6, 0, 249, 255, 0, 0, 0, 0),
      ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(156, 202, 42, 93, 60, 14, 161, 193),
      ::capnp::word(153, 1, 0, 0, 82, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(7, 0, 248, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(133, 1, 0, 0, 82, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(132, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(144, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(8, 0, 247, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 8, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(141, 1, 0, 0, 66, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(136, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(148, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(9, 0, 246, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 9, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(145, 1, 0, 0, 74, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(144, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(156, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(10, 0, 245, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 10, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(153, 1, 0, 0, 98, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(152, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(164, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(11, 0, 244, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 11, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(161, 1, 0, 0, 58, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(156, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(168, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(12, 0, 243, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 12, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(165, 1, 0, 0, 130, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(164, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(176, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(13, 0, 242, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 13, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(173, 1, 0, 0, 114, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(172, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(184, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(99, 117, 115, 116, 111, 109, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(100, 102, 103, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 102, 103, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(98, 108, 111, 99, 107, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(102, 117, 110, 99, 68, 101, 102, 110),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(63, 209, 84, 70, 225, 154, 206, 223),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(102, 117, 110, 99, 68, 101, 99, 108),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(63, 209, 84, 70, 225, 154, 206, 223),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(97, 108, 105, 97, 115, 68, 101, 102),
      ::capnp::word(110, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(97, 108, 105, 97, 115, 68, 101, 99),
      ::capnp::word(108, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(63, 209, 84, 70, 225, 154, 206, 223),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(105, 110, 118, 97, 108, 105, 100, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(116, 97, 105, 108, 76, 111, 111, 112),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 111, 110, 100, 105, 116, 105, 111),
      ::capnp::word(110, 97, 108, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(105, 109, 112, 111, 114, 116, 0, 0),
      ::capnp::word(12, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(12, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 111, 110, 115, 116, 114, 117, 99),
      ::capnp::word(116, 111, 114, 68, 101, 99, 108, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(63, 209, 84, 70, 225, 154, 206, 223),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(111, 112, 101, 114, 97, 116, 105, 111),
      ::capnp::word(110, 68, 101, 99, 108, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(63, 209, 84, 70, 225, 154, 206, 223),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        1 => <() as ::capnp::introspect::Introspect>::introspect(),
        2 => <() as ::capnp::introspect::Introspect>::introspect(),
        3 => <() as ::capnp::introspect::Introspect>::introspect(),
        4 => <crate::hugr_v0_capnp::symbol::Owned as ::capnp::introspect::Introspect>::introspect(),
        5 => <crate::hugr_v0_capnp::symbol::Owned as ::capnp::introspect::Introspect>::introspect(),
        6 => <crate::hugr_v0_capnp::operation::alias_defn::Owned as ::capnp::introspect::Introspect>::introspect(),
        7 => <crate::hugr_v0_capnp::symbol::Owned as ::capnp::introspect::Introspect>::introspect(),
        8 => <() as ::capnp::introspect::Introspect>::introspect(),
        9 => <() as ::capnp::introspect::Introspect>::introspect(),
        10 => <() as ::capnp::introspect::Introspect>::introspect(),
        11 => <::capnp::text::Owned as ::capnp::introspect::Introspect>::introspect(),
        12 => <crate::hugr_v0_capnp::symbol::Owned as ::capnp::introspect::Introspect>::introspect(),
        13 => <crate::hugr_v0_capnp::symbol::Owned as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[0,1,2,3,4,5,6,7,8,9,10,11,12,13];
    pub static MEMBERS_BY_NAME : &[u16] = &[7,6,3,2,10,12,0,1,5,4,11,8,13,9];
    pub const TYPE_ID: u64 = 0x9bf0_f135_5d77_bfd8;
  }
  pub enum Which<A0,A1,A2,A3,A4,A5,A6> {
    Custom(u32),
    Dfg(()),
    Cfg(()),
    Block(()),
    FuncDefn(A0),
    FuncDecl(A1),
    AliasDefn(A2),
    AliasDecl(A3),
    Invalid(()),
    TailLoop(()),
    Conditional(()),
    Import(A4),
    ConstructorDecl(A5),
    OperationDecl(A6),
  }
  pub type WhichReader<'a,> = Which<::capnp::Result<crate::hugr_v0_capnp::symbol::Reader<'a>>,::capnp::Result<crate::hugr_v0_capnp::symbol::Reader<'a>>,crate::hugr_v0_capnp::operation::alias_defn::Reader<'a>,::capnp::Result<crate::hugr_v0_capnp::symbol::Reader<'a>>,::capnp::Result<::capnp::text::Reader<'a>>,::capnp::Result<crate::hugr_v0_capnp::symbol::Reader<'a>>,::capnp::Result<crate::hugr_v0_capnp::symbol::Reader<'a>>>;
  pub type WhichBuilder<'a,> = Which<::capnp::Result<crate::hugr_v0_capnp::symbol::Builder<'a>>,::capnp::Result<crate::hugr_v0_capnp::symbol::Builder<'a>>,crate::hugr_v0_capnp::operation::alias_defn::Builder<'a>,::capnp::Result<crate::hugr_v0_capnp::symbol::Builder<'a>>,::capnp::Result<::capnp::text::Builder<'a>>,::capnp::Result<crate::hugr_v0_capnp::symbol::Builder<'a>>,::capnp::Result<crate::hugr_v0_capnp::symbol::Builder<'a>>>;

  pub mod alias_defn {
    #[derive(Copy, Clone)]
    pub struct Owned(());
    impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
    impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
    impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
    impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

    pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
    impl <> ::core::marker::Copy for Reader<'_,>  {}
    impl <> ::core::clone::Clone for Reader<'_,>  {
      fn clone(&self) -> Self { *self }
    }

    impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
      const TYPE_ID: u64 = _private::TYPE_ID;
    }
    impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
      fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
        Self { reader,  }
      }
    }

    impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
      fn from(reader: Reader<'a,>) -> Self {
        Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
      }
    }

    impl <> ::core::fmt::Debug for Reader<'_,>  {
      fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
        core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
      }
    }

    impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
      fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
        ::core::result::Result::Ok(reader.get_struct(default)?.into())
      }
    }

    impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
      fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
        self.reader
      }
    }

    impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
      fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
        self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
      }
    }

    impl <'a,> Reader<'a,>  {
      pub fn reborrow(&self) -> Reader<'_,> {
        Self { .. *self }
      }

      pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
        self.reader.total_size()
      }
      #[inline]
      pub fn get_symbol(self) -> ::capnp::Result<crate::hugr_v0_capnp::symbol::Reader<'a>> {
        ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
      }
      #[inline]
      pub fn has_symbol(&self) -> bool {
        !self.reader.get_pointer_field(0).is_null()
      }
      #[inline]
      pub fn get_value(self) -> u32 {
        self.reader.get_data_field::<u32>(0)
      }
    }

    pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
    impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
      const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 1 };
    }
    impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
      const TYPE_ID: u64 = _private::TYPE_ID;
    }
    impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
      fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
        Self { builder,  }
      }
    }

    impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
      fn from(builder: Builder<'a,>) -> Self {
        Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
      }
    }

    impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
      fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
        self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
      }
    }

    impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
      fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
        builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
      }
      fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
        ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
      }
    }

    impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
      fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
    }

    impl <'a,> Builder<'a,>  {
      pub fn into_reader(self) -> Reader<'a,> {
        self.builder.into_reader().into()
      }
      pub fn reborrow(&mut self) -> Builder<'_,> {
        Builder { builder: self.builder.reborrow() }
      }
      pub fn reborrow_as_reader(&self) -> Reader<'_,> {
        self.builder.as_reader().into()
      }

      pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
        self.builder.as_reader().total_size()
      }
      #[inline]
      pub fn get_symbol(self) -> ::capnp::Result<crate::hugr_v0_capnp::symbol::Builder<'a>> {
        ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
      }
      #[inline]
      pub fn set_symbol(&mut self, value: crate::hugr_v0_capnp::symbol::Reader<'_>) -> ::capnp::Result<()> {
        ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
      }
      #[inline]
      pub fn init_symbol(self, ) -> crate::hugr_v0_capnp::symbol::Builder<'a> {
        ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0)
      }
      #[inline]
      pub fn has_symbol(&self) -> bool {
        !self.builder.is_pointer_field_null(0)
      }
      #[inline]
      pub fn get_value(self) -> u32 {
        self.builder.get_data_field::<u32>(0)
      }
      #[inline]
      pub fn set_value(&mut self, value: u32)  {
        self.builder.set_data_field::<u32>(0, value);
      }
    }

    pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
    impl ::capnp::capability::FromTypelessPipeline for Pipeline {
      fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
        Self { _typeless: typeless,  }
      }
    }
    impl Pipeline  {
      pub fn get_symbol(&self) -> crate::hugr_v0_capnp::symbol::Pipeline {
        ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(0))
      }
    }
    mod _private {
      pub static ENCODED_NODE: [::capnp::Word; 49] = [
        ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
        ::capnp::word(156, 202, 42, 93, 60, 14, 161, 193),
        ::capnp::word(30, 0, 0, 0, 1, 0, 1, 0),
        ::capnp::word(216, 191, 119, 93, 53, 241, 240, 155),
        ::capnp::word(1, 0, 7, 0, 1, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(29, 0, 0, 0, 119, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
        ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
        ::capnp::word(112, 110, 112, 58, 79, 112, 101, 114),
        ::capnp::word(97, 116, 105, 111, 110, 46, 97, 108),
        ::capnp::word(105, 97, 115, 68, 101, 102, 110, 0),
        ::capnp::word(8, 0, 0, 0, 3, 0, 4, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 1, 0, 6, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(41, 0, 0, 0, 58, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(36, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(48, 0, 0, 0, 2, 0, 1, 0),
        ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 1, 0, 14, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(45, 0, 0, 0, 50, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(40, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(52, 0, 0, 0, 2, 0, 1, 0),
        ::capnp::word(115, 121, 109, 98, 111, 108, 0, 0),
        ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(63, 209, 84, 70, 225, 154, 206, 223),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(118, 97, 108, 117, 101, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ];
      pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
        match index {
          0 => <crate::hugr_v0_capnp::symbol::Owned as ::capnp::introspect::Introspect>::introspect(),
          1 => <u32 as ::capnp::introspect::Introspect>::introspect(),
          _ => ::capnp::introspect::panic_invalid_field_index(index),
        }
      }
      pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
        ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
      }
      pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
      pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
        &ARENA,
        NONUNION_MEMBERS,
        MEMBERS_BY_DISCRIMINANT,
        MEMBERS_BY_NAME
      );
      pub static NONUNION_MEMBERS : &[u16] = &[0,1];
      pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
      pub static MEMBERS_BY_NAME : &[u16] = &[0,1];
      pub const TYPE_ID: u64 = 0xc1a1_0e3c_5d2a_ca9c;
    }
  }
}

pub mod symbol {
  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <'a,> Reader<'a,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn get_name(self) -> ::capnp::Result<::capnp::text::Reader<'a>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_name(&self) -> bool {
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn get_params(self) -> ::capnp::Result<::capnp::struct_list::Reader<'a,crate::hugr_v0_capnp::param::Owned>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_params(&self) -> bool {
      !self.reader.get_pointer_field(1).is_null()
    }
    #[inline]
    pub fn get_constraints(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(2), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_constraints(&self) -> bool {
      !self.reader.get_pointer_field(2).is_null()
    }
    #[inline]
    pub fn get_signature(self) -> u32 {
      self.reader.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn get_visibility(self) -> ::core::result::Result<crate::hugr_v0_capnp::Visibility,::capnp::NotInSchema> {
      ::core::convert::TryInto::try_into(self.reader.get_data_field::<u16>(2))
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 3 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn get_name(self) -> ::capnp::Result<::capnp::text::Builder<'a>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_name(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::text::Owned>)  {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false).unwrap()
    }
    #[inline]
    pub fn init_name(self, size: u32) -> ::capnp::text::Builder<'a> {
      self.builder.get_pointer_field(0).init_text(size)
    }
    #[inline]
    pub fn has_name(&self) -> bool {
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn get_params(self) -> ::capnp::Result<::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::param::Owned>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_params(&mut self, value: ::capnp::struct_list::Reader<'_,crate::hugr_v0_capnp::param::Owned>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(1), value, false)
    }
    #[inline]
    pub fn init_params(self, size: u32) -> ::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::param::Owned> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), size)
    }
    #[inline]
    pub fn has_params(&self) -> bool {
      !self.builder.is_pointer_field_null(1)
    }
    #[inline]
    pub fn get_constraints(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(2), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_constraints(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(2), value, false)
    }
    #[inline]
    pub fn init_constraints(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(2), size)
    }
    #[inline]
    pub fn has_constraints(&self) -> bool {
      !self.builder.is_pointer_field_null(2)
    }
    #[inline]
    pub fn get_signature(self) -> u32 {
      self.builder.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn set_signature(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(0, value);
    }
    #[inline]
    pub fn get_visibility(self) -> ::core::result::Result<crate::hugr_v0_capnp::Visibility,::capnp::NotInSchema> {
      ::core::convert::TryInto::try_into(self.builder.get_data_field::<u16>(2))
    }
    #[inline]
    pub fn set_visibility(&mut self, value: crate::hugr_v0_capnp::Visibility)  {
      self.builder.set_data_field::<u16>(2, value as u16);
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 105] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(63, 209, 84, 70, 225, 154, 206, 223),
      ::capnp::word(20, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(3, 0, 7, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(40, 5, 0, 0, 195, 5, 0, 0),
      ::capnp::word(21, 0, 0, 0, 218, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 31, 1, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 83, 121, 109, 98),
      ::capnp::word(111, 108, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(20, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(125, 0, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(120, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(132, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(2, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(129, 0, 0, 0, 58, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(124, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(152, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(3, 0, 0, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(149, 0, 0, 0, 98, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(148, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(176, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(4, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(173, 0, 0, 0, 82, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(172, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(184, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(0, 0, 0, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(181, 0, 0, 0, 90, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(180, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(192, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(110, 97, 109, 101, 0, 0, 0, 0),
      ::capnp::word(12, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(12, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(112, 97, 114, 97, 109, 115, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(232, 73, 199, 85, 129, 167, 53, 211),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 111, 110, 115, 116, 114, 97, 105),
      ::capnp::word(110, 116, 115, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(115, 105, 103, 110, 97, 116, 117, 114),
      ::capnp::word(101, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(118, 105, 115, 105, 98, 105, 108, 105),
      ::capnp::word(116, 121, 0, 0, 0, 0, 0, 0),
      ::capnp::word(15, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(1, 131, 104, 122, 242, 21, 131, 141),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(15, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <::capnp::text::Owned as ::capnp::introspect::Introspect>::introspect(),
        1 => <::capnp::struct_list::Owned<crate::hugr_v0_capnp::param::Owned> as ::capnp::introspect::Introspect>::introspect(),
        2 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        3 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        4 => <crate::hugr_v0_capnp::Visibility as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3,4];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
    pub static MEMBERS_BY_NAME : &[u16] = &[2,0,1,3,4];
    pub const TYPE_ID: u64 = 0xdfce_9ae1_4654_d13f;
  }
}

pub mod region {
  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <'a,> Reader<'a,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn get_kind(self) -> ::core::result::Result<crate::hugr_v0_capnp::RegionKind,::capnp::NotInSchema> {
      ::core::convert::TryInto::try_into(self.reader.get_data_field::<u16>(0))
    }
    #[inline]
    pub fn get_sources(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_sources(&self) -> bool {
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn get_targets(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_targets(&self) -> bool {
      !self.reader.get_pointer_field(1).is_null()
    }
    #[inline]
    pub fn get_children(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(2), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_children(&self) -> bool {
      !self.reader.get_pointer_field(2).is_null()
    }
    #[inline]
    pub fn get_meta(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(3), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_meta(&self) -> bool {
      !self.reader.get_pointer_field(3).is_null()
    }
    #[inline]
    pub fn get_signature(self) -> u32 {
      self.reader.get_data_field::<u32>(1)
    }
    #[inline]
    pub fn get_scope(self) -> ::capnp::Result<crate::hugr_v0_capnp::region_scope::Reader<'a>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(4), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_scope(&self) -> bool {
      !self.reader.get_pointer_field(4).is_null()
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 5 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn get_kind(self) -> ::core::result::Result<crate::hugr_v0_capnp::RegionKind,::capnp::NotInSchema> {
      ::core::convert::TryInto::try_into(self.builder.get_data_field::<u16>(0))
    }
    #[inline]
    pub fn set_kind(&mut self, value: crate::hugr_v0_capnp::RegionKind)  {
      self.builder.set_data_field::<u16>(0, value as u16);
    }
    #[inline]
    pub fn get_sources(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_sources(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_sources(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), size)
    }
    #[inline]
    pub fn has_sources(&self) -> bool {
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn get_targets(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_targets(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(1), value, false)
    }
    #[inline]
    pub fn init_targets(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), size)
    }
    #[inline]
    pub fn has_targets(&self) -> bool {
      !self.builder.is_pointer_field_null(1)
    }
    #[inline]
    pub fn get_children(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(2), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_children(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(2), value, false)
    }
    #[inline]
    pub fn init_children(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(2), size)
    }
    #[inline]
    pub fn has_children(&self) -> bool {
      !self.builder.is_pointer_field_null(2)
    }
    #[inline]
    pub fn get_meta(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(3), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_meta(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(3), value, false)
    }
    #[inline]
    pub fn init_meta(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(3), size)
    }
    #[inline]
    pub fn has_meta(&self) -> bool {
      !self.builder.is_pointer_field_null(3)
    }
    #[inline]
    pub fn get_signature(self) -> u32 {
      self.builder.get_data_field::<u32>(1)
    }
    #[inline]
    pub fn set_signature(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(1, value);
    }
    #[inline]
    pub fn get_scope(self) -> ::capnp::Result<crate::hugr_v0_capnp::region_scope::Builder<'a>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(4), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_scope(&mut self, value: crate::hugr_v0_capnp::region_scope::Reader<'_>) -> ::capnp::Result<()> {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(4), value, false)
    }
    #[inline]
    pub fn init_scope(self, ) -> crate::hugr_v0_capnp::region_scope::Builder<'a> {
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(4), 0)
    }
    #[inline]
    pub fn has_scope(&self) -> bool {
      !self.builder.is_pointer_field_null(4)
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
    pub fn get_scope(&self) -> crate::hugr_v0_capnp::region_scope::Pipeline {
      ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(4))
    }
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 142] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(225, 113, 253, 231, 231, 39, 130, 153),
      ::capnp::word(20, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(5, 0, 7, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(197, 5, 0, 0, 168, 6, 0, 0),
      ::capnp::word(21, 0, 0, 0, 218, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 143, 1, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 82, 101, 103, 105),
      ::capnp::word(111, 110, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(28, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(181, 0, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(176, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(188, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(185, 0, 0, 0, 66, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(180, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(208, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(2, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(205, 0, 0, 0, 66, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(200, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(228, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(3, 0, 0, 0, 2, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(225, 0, 0, 0, 74, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(224, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(252, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(4, 0, 0, 0, 3, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(249, 0, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(244, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(5, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 5, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(13, 1, 0, 0, 82, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(12, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(24, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(6, 0, 0, 0, 4, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 6, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(21, 1, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(28, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(107, 105, 110, 100, 0, 0, 0, 0),
      ::capnp::word(15, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(180, 118, 163, 35, 246, 26, 87, 228),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(15, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(115, 111, 117, 114, 99, 101, 115, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(116, 97, 114, 103, 101, 116, 115, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 104, 105, 108, 100, 114, 101, 110),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(109, 101, 116, 97, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(115, 105, 103, 110, 97, 116, 117, 114),
      ::capnp::word(101, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(115, 99, 111, 112, 101, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(163, 135, 81, 30, 243, 205, 148, 170),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <crate::hugr_v0_capnp::RegionKind as ::capnp::introspect::Introspect>::introspect(),
        1 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        2 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        3 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        4 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
        5 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        6 => <crate::hugr_v0_capnp::region_scope::Owned as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3,4,5,6];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
    pub static MEMBERS_BY_NAME : &[u16] = &[3,0,4,6,5,1,2];
    pub const TYPE_ID: u64 = 0x9982_27e7_e7fd_71e1;
  }
}

pub mod region_scope {
  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <> Reader<'_,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn get_links(self) -> u32 {
      self.reader.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn get_ports(self) -> u32 {
      self.reader.get_data_field::<u32>(1)
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 0 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn get_links(self) -> u32 {
      self.builder.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn set_links(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(0, value);
    }
    #[inline]
    pub fn get_ports(self) -> u32 {
      self.builder.get_data_field::<u32>(1)
    }
    #[inline]
    pub fn set_ports(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(1, value);
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 49] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(163, 135, 81, 30, 243, 205, 148, 170),
      ::capnp::word(20, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(0, 0, 7, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(170, 6, 0, 0, 236, 6, 0, 0),
      ::capnp::word(21, 0, 0, 0, 2, 1, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 119, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 82, 101, 103, 105),
      ::capnp::word(111, 110, 83, 99, 111, 112, 101, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(41, 0, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(36, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(48, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(45, 0, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(40, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(52, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(108, 105, 110, 107, 115, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(112, 111, 114, 116, 115, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        1 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[0,1];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
    pub static MEMBERS_BY_NAME : &[u16] = &[0,1];
    pub const TYPE_ID: u64 = 0xaa94_cdf3_1e51_87a3;
  }
}

#[repr(u16)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RegionKind {
  DataFlow = 0,
  ControlFlow = 1,
  Module = 2,
}

impl ::capnp::introspect::Introspect for RegionKind {
  fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Enum(::capnp::introspect::RawEnumSchema { encoded_node: &region_kind::ENCODED_NODE, annotation_types: region_kind::get_annotation_types }).into() }
}
impl ::core::convert::From<RegionKind> for ::capnp::dynamic_value::Reader<'_> {
  fn from(e: RegionKind) -> Self { ::capnp::dynamic_value::Enum::new(e.into(), ::capnp::introspect::RawEnumSchema { encoded_node: &region_kind::ENCODED_NODE, annotation_types: region_kind::get_annotation_types }.into()).into() }
}
impl ::core::convert::TryFrom<u16> for RegionKind {
  type Error = ::capnp::NotInSchema;
  fn try_from(value: u16) -> ::core::result::Result<Self, <RegionKind as ::core::convert::TryFrom<u16>>::Error> {
    match value {
      0 => ::core::result::Result::Ok(Self::DataFlow),
      1 => ::core::result::Result::Ok(Self::ControlFlow),
      2 => ::core::result::Result::Ok(Self::Module),
      n => ::core::result::Result::Err(::capnp::NotInSchema(n)),
    }
  }
}
impl From<RegionKind> for u16 {
  #[inline]
  fn from(x: RegionKind) -> u16 { x as u16 }
}
impl ::capnp::traits::HasTypeId for RegionKind {
  const TYPE_ID: u64 = 0xe457_1af6_23a3_76b4u64;
}
mod region_kind {
pub static ENCODED_NODE: [::capnp::Word; 33] = [
  ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
  ::capnp::word(180, 118, 163, 35, 246, 26, 87, 228),
  ::capnp::word(20, 0, 0, 0, 2, 0, 0, 0),
  ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(238, 6, 0, 0, 53, 7, 0, 0),
  ::capnp::word(21, 0, 0, 0, 250, 0, 0, 0),
  ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(29, 0, 0, 0, 79, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
  ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
  ::capnp::word(112, 110, 112, 58, 82, 101, 103, 105),
  ::capnp::word(111, 110, 75, 105, 110, 100, 0, 0),
  ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
  ::capnp::word(12, 0, 0, 0, 1, 0, 2, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(29, 0, 0, 0, 74, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(25, 0, 0, 0, 98, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(2, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(21, 0, 0, 0, 58, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(100, 97, 116, 97, 70, 108, 111, 119),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(99, 111, 110, 116, 114, 111, 108, 70),
  ::capnp::word(108, 111, 119, 0, 0, 0, 0, 0),
  ::capnp::word(109, 111, 100, 117, 108, 101, 0, 0),
];
pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
  ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
}
}

pub mod term {
  pub use self::Which::{Apply,Variable,List,String,Nat,Bytes,Float,Func,Wildcard,Tuple};

  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <'a,> Reader<'a,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn has_list(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 2 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn has_string(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 3 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn has_bytes(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 5 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn has_tuple(&self) -> bool {
      if self.reader.get_data_field::<u16>(2) != 9 { return false; }
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn which(self) -> ::core::result::Result<WhichReader<'a,>, ::capnp::NotInSchema> {
      match self.reader.get_data_field::<u16>(2) {
        0 => {
          ::core::result::Result::Ok(Apply(
            self.reader.into()
          ))
        }
        1 => {
          ::core::result::Result::Ok(Variable(
            self.reader.into()
          ))
        }
        2 => {
          ::core::result::Result::Ok(List(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        3 => {
          ::core::result::Result::Ok(String(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        4 => {
          ::core::result::Result::Ok(Nat(
            self.reader.get_data_field::<u64>(1)
          ))
        }
        5 => {
          ::core::result::Result::Ok(Bytes(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        6 => {
          ::core::result::Result::Ok(Float(
            self.reader.get_data_field::<f64>(1)
          ))
        }
        7 => {
          ::core::result::Result::Ok(Func(
            self.reader.get_data_field::<u32>(0)
          ))
        }
        8 => {
          ::core::result::Result::Ok(Wildcard(
            ()
          ))
        }
        9 => {
          ::core::result::Result::Ok(Tuple(
            ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        x => ::core::result::Result::Err(::capnp::NotInSchema(x))
      }
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 2, pointers: 1 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn init_apply(mut self, ) -> crate::hugr_v0_capnp::term::apply::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 0);
      self.builder.set_data_field::<u32>(0, 0u32);
      self.builder.reborrow().get_pointer_field(0).clear();
      self.builder.into()
    }
    #[inline]
    pub fn init_variable(self, ) -> crate::hugr_v0_capnp::term::variable::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 1);
      self.builder.set_data_field::<u32>(0, 0u32);
      self.builder.set_data_field::<u16>(3, 0u16);
      self.builder.into()
    }
    #[inline]
    pub fn set_list(&mut self, value: ::capnp::struct_list::Reader<'_,crate::hugr_v0_capnp::term::seq_part::Owned>) -> ::capnp::Result<()> {
      self.builder.set_data_field::<u16>(2, 2);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_list(self, size: u32) -> ::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::term::seq_part::Owned> {
      self.builder.set_data_field::<u16>(2, 2);
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), size)
    }
    #[inline]
    pub fn has_list(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 2 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn set_string(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::text::Owned>)  {
      self.builder.set_data_field::<u16>(2, 3);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false).unwrap()
    }
    #[inline]
    pub fn init_string(self, size: u32) -> ::capnp::text::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 3);
      self.builder.get_pointer_field(0).init_text(size)
    }
    #[inline]
    pub fn has_string(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 3 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn set_nat(&mut self, value: u64)  {
      self.builder.set_data_field::<u16>(2, 4);
      self.builder.set_data_field::<u64>(1, value);
    }
    #[inline]
    pub fn set_bytes(&mut self, value: ::capnp::data::Reader<'_>)  {
      self.builder.set_data_field::<u16>(2, 5);
      self.builder.reborrow().get_pointer_field(0).set_data(value);
    }
    #[inline]
    pub fn init_bytes(self, size: u32) -> ::capnp::data::Builder<'a> {
      self.builder.set_data_field::<u16>(2, 5);
      self.builder.get_pointer_field(0).init_data(size)
    }
    #[inline]
    pub fn has_bytes(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 5 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn set_float(&mut self, value: f64)  {
      self.builder.set_data_field::<u16>(2, 6);
      self.builder.set_data_field::<f64>(1, value);
    }
    #[inline]
    pub fn set_func(&mut self, value: u32)  {
      self.builder.set_data_field::<u16>(2, 7);
      self.builder.set_data_field::<u32>(0, value);
    }
    #[inline]
    pub fn set_wildcard(&mut self, _value: ())  {
      self.builder.set_data_field::<u16>(2, 8);
    }
    #[inline]
    pub fn set_tuple(&mut self, value: ::capnp::struct_list::Reader<'_,crate::hugr_v0_capnp::term::seq_part::Owned>) -> ::capnp::Result<()> {
      self.builder.set_data_field::<u16>(2, 9);
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
    }
    #[inline]
    pub fn init_tuple(self, size: u32) -> ::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::term::seq_part::Owned> {
      self.builder.set_data_field::<u16>(2, 9);
      ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), size)
    }
    #[inline]
    pub fn has_tuple(&self) -> bool {
      if self.builder.get_data_field::<u16>(2) != 9 { return false; }
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn which(self) -> ::core::result::Result<WhichBuilder<'a,>, ::capnp::NotInSchema> {
      match self.builder.get_data_field::<u16>(2) {
        0 => {
          ::core::result::Result::Ok(Apply(
            self.builder.into()
          ))
        }
        1 => {
          ::core::result::Result::Ok(Variable(
            self.builder.into()
          ))
        }
        2 => {
          ::core::result::Result::Ok(List(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        3 => {
          ::core::result::Result::Ok(String(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        4 => {
          ::core::result::Result::Ok(Nat(
            self.builder.get_data_field::<u64>(1)
          ))
        }
        5 => {
          ::core::result::Result::Ok(Bytes(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        6 => {
          ::core::result::Result::Ok(Float(
            self.builder.get_data_field::<f64>(1)
          ))
        }
        7 => {
          ::core::result::Result::Ok(Func(
            self.builder.get_data_field::<u32>(0)
          ))
        }
        8 => {
          ::core::result::Result::Ok(Wildcard(
            ()
          ))
        }
        9 => {
          ::core::result::Result::Ok(Tuple(
            ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
          ))
        }
        x => ::core::result::Result::Err(::capnp::NotInSchema(x))
      }
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 168] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(178, 107, 91, 137, 60, 121, 191, 207),
      ::capnp::word(20, 0, 0, 0, 1, 0, 2, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(1, 0, 7, 0, 0, 0, 10, 0),
      ::capnp::word(2, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(55, 7, 0, 0, 105, 9, 0, 0),
      ::capnp::word(21, 0, 0, 0, 202, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 23, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(41, 0, 0, 0, 55, 2, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 84, 101, 114, 109),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(4, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(136, 151, 188, 135, 237, 57, 73, 141),
      ::capnp::word(1, 0, 0, 0, 66, 0, 0, 0),
      ::capnp::word(83, 101, 113, 80, 97, 114, 116, 0),
      ::capnp::word(40, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 255, 255, 0, 0, 0, 0),
      ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(150, 98, 109, 181, 159, 123, 122, 222),
      ::capnp::word(9, 1, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(1, 0, 254, 255, 0, 0, 0, 0),
      ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(55, 205, 218, 56, 109, 17, 119, 134),
      ::capnp::word(241, 0, 0, 0, 74, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(2, 0, 253, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(221, 0, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(216, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(244, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(3, 0, 252, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 5, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(241, 0, 0, 0, 58, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(236, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(248, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(4, 0, 251, 255, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 6, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(245, 0, 0, 0, 34, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(240, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(252, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(5, 0, 250, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(249, 0, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(244, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(0, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(6, 0, 249, 255, 1, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 8, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(253, 0, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(248, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(4, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(7, 0, 248, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 9, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(1, 1, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(252, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(8, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(8, 0, 247, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 10, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(5, 1, 0, 0, 74, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(4, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(9, 0, 246, 255, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 11, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(13, 1, 0, 0, 50, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 1, 0, 0, 3, 0, 1, 0),
      ::capnp::word(36, 1, 0, 0, 2, 0, 1, 0),
      ::capnp::word(97, 112, 112, 108, 121, 0, 0, 0),
      ::capnp::word(118, 97, 114, 105, 97, 98, 108, 101),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(108, 105, 115, 116, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(136, 151, 188, 135, 237, 57, 73, 141),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(115, 116, 114, 105, 110, 103, 0, 0),
      ::capnp::word(12, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(12, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(110, 97, 116, 0, 0, 0, 0, 0),
      ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(98, 121, 116, 101, 115, 0, 0, 0),
      ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(102, 108, 111, 97, 116, 0, 0, 0),
      ::capnp::word(11, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(11, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(102, 117, 110, 99, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(119, 105, 108, 100, 99, 97, 114, 100),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(116, 117, 112, 108, 101, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(136, 151, 188, 135, 237, 57, 73, 141),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <crate::hugr_v0_capnp::term::apply::Owned as ::capnp::introspect::Introspect>::introspect(),
        1 => <crate::hugr_v0_capnp::term::variable::Owned as ::capnp::introspect::Introspect>::introspect(),
        2 => <::capnp::struct_list::Owned<crate::hugr_v0_capnp::term::seq_part::Owned> as ::capnp::introspect::Introspect>::introspect(),
        3 => <::capnp::text::Owned as ::capnp::introspect::Introspect>::introspect(),
        4 => <u64 as ::capnp::introspect::Introspect>::introspect(),
        5 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(),
        6 => <f64 as ::capnp::introspect::Introspect>::introspect(),
        7 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        8 => <() as ::capnp::introspect::Introspect>::introspect(),
        9 => <::capnp::struct_list::Owned<crate::hugr_v0_capnp::term::seq_part::Owned> as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[0,1,2,3,4,5,6,7,8,9];
    pub static MEMBERS_BY_NAME : &[u16] = &[0,5,6,7,2,4,3,9,1,8];
    pub const TYPE_ID: u64 = 0xcfbf_793c_895b_6bb2;
  }
  pub enum Which<A0,A1,A2,A3,A4,A5> {
    Apply(A0),
    Variable(A1),
    List(A2),
    String(A3),
    Nat(u64),
    Bytes(A4),
    Float(f64),
    Func(u32),
    Wildcard(()),
    Tuple(A5),
  }
  pub type WhichReader<'a,> = Which<crate::hugr_v0_capnp::term::apply::Reader<'a>,crate::hugr_v0_capnp::term::variable::Reader<'a>,::capnp::Result<::capnp::struct_list::Reader<'a,crate::hugr_v0_capnp::term::seq_part::Owned>>,::capnp::Result<::capnp::text::Reader<'a>>,::capnp::Result<::capnp::data::Reader<'a>>,::capnp::Result<::capnp::struct_list::Reader<'a,crate::hugr_v0_capnp::term::seq_part::Owned>>>;
  pub type WhichBuilder<'a,> = Which<crate::hugr_v0_capnp::term::apply::Builder<'a>,crate::hugr_v0_capnp::term::variable::Builder<'a>,::capnp::Result<::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::term::seq_part::Owned>>,::capnp::Result<::capnp::text::Builder<'a>>,::capnp::Result<::capnp::data::Builder<'a>>,::capnp::Result<::capnp::struct_list::Builder<'a,crate::hugr_v0_capnp::term::seq_part::Owned>>>;

  pub mod seq_part {
    pub use self::Which::{Item,Splice};

    #[derive(Copy, Clone)]
    pub struct Owned(());
    impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
    impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
    impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
    impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

    pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
    impl <> ::core::marker::Copy for Reader<'_,>  {}
    impl <> ::core::clone::Clone for Reader<'_,>  {
      fn clone(&self) -> Self { *self }
    }

    impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
      const TYPE_ID: u64 = _private::TYPE_ID;
    }
    impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
      fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
        Self { reader,  }
      }
    }

    impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
      fn from(reader: Reader<'a,>) -> Self {
        Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
      }
    }

    impl <> ::core::fmt::Debug for Reader<'_,>  {
      fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
        core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
      }
    }

    impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
      fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
        ::core::result::Result::Ok(reader.get_struct(default)?.into())
      }
    }

    impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
      fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
        self.reader
      }
    }

    impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
      fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
        self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
      }
    }

    impl <> Reader<'_,>  {
      pub fn reborrow(&self) -> Reader<'_,> {
        Self { .. *self }
      }

      pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
        self.reader.total_size()
      }
      #[inline]
      pub fn which(self) -> ::core::result::Result<WhichReader, ::capnp::NotInSchema> {
        match self.reader.get_data_field::<u16>(2) {
          0 => {
            ::core::result::Result::Ok(Item(
              self.reader.get_data_field::<u32>(0)
            ))
          }
          1 => {
            ::core::result::Result::Ok(Splice(
              self.reader.get_data_field::<u32>(0)
            ))
          }
          x => ::core::result::Result::Err(::capnp::NotInSchema(x))
        }
      }
    }

    pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
    impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
      const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 0 };
    }
    impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
      const TYPE_ID: u64 = _private::TYPE_ID;
    }
    impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
      fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
        Self { builder,  }
      }
    }

    impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
      fn from(builder: Builder<'a,>) -> Self {
        Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
      }
    }

    impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
      fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
        self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
      }
    }

    impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
      fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
        builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
      }
      fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
        ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
      }
    }

    impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
      fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
    }

    impl <'a,> Builder<'a,>  {
      pub fn into_reader(self) -> Reader<'a,> {
        self.builder.into_reader().into()
      }
      pub fn reborrow(&mut self) -> Builder<'_,> {
        Builder { builder: self.builder.reborrow() }
      }
      pub fn reborrow_as_reader(&self) -> Reader<'_,> {
        self.builder.as_reader().into()
      }

      pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
        self.builder.as_reader().total_size()
      }
      #[inline]
      pub fn set_item(&mut self, value: u32)  {
        self.builder.set_data_field::<u16>(2, 0);
        self.builder.set_data_field::<u32>(0, value);
      }
      #[inline]
      pub fn set_splice(&mut self, value: u32)  {
        self.builder.set_data_field::<u16>(2, 1);
        self.builder.set_data_field::<u32>(0, value);
      }
      #[inline]
      pub fn which(self) -> ::core::result::Result<WhichBuilder, ::capnp::NotInSchema> {
        match self.builder.get_data_field::<u16>(2) {
          0 => {
            ::core::result::Result::Ok(Item(
              self.builder.get_data_field::<u32>(0)
            ))
          }
          1 => {
            ::core::result::Result::Ok(Splice(
              self.builder.get_data_field::<u32>(0)
            ))
          }
          x => ::core::result::Result::Err(::capnp::NotInSchema(x))
        }
      }
    }

    pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
    impl ::capnp::capability::FromTypelessPipeline for Pipeline {
      fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
        Self { _typeless: typeless,  }
      }
    }
    impl Pipeline  {
    }
    mod _private {
      pub static ENCODED_NODE: [::capnp::Word; 50] = [
        ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
        ::capnp::word(136, 151, 188, 135, 237, 57, 73, 141),
        ::capnp::word(25, 0, 0, 0, 1, 0, 1, 0),
        ::capnp::word(178, 107, 91, 137, 60, 121, 191, 207),
        ::capnp::word(0, 0, 7, 0, 0, 0, 2, 0),
        ::capnp::word(2, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(251, 8, 0, 0, 103, 9, 0, 0),
        ::capnp::word(21, 0, 0, 0, 10, 1, 0, 0),
        ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(33, 0, 0, 0, 119, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
        ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
        ::capnp::word(112, 110, 112, 58, 84, 101, 114, 109),
        ::capnp::word(46, 83, 101, 113, 80, 97, 114, 116),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
        ::capnp::word(8, 0, 0, 0, 3, 0, 4, 0),
        ::capnp::word(0, 0, 255, 255, 0, 0, 0, 0),
        ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(41, 0, 0, 0, 42, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(36, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(48, 0, 0, 0, 2, 0, 1, 0),
        ::capnp::word(1, 0, 254, 255, 0, 0, 0, 0),
        ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(45, 0, 0, 0, 58, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(40, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(52, 0, 0, 0, 2, 0, 1, 0),
        ::capnp::word(105, 116, 101, 109, 0, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(115, 112, 108, 105, 99, 101, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ];
      pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
        match index {
          0 => <u32 as ::capnp::introspect::Introspect>::introspect(),
          1 => <u32 as ::capnp::introspect::Introspect>::introspect(),
          _ => ::capnp::introspect::panic_invalid_field_index(index),
        }
      }
      pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
        ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
      }
      pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
      pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
        &ARENA,
        NONUNION_MEMBERS,
        MEMBERS_BY_DISCRIMINANT,
        MEMBERS_BY_NAME
      );
      pub static NONUNION_MEMBERS : &[u16] = &[];
      pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[0,1];
      pub static MEMBERS_BY_NAME : &[u16] = &[0,1];
      pub const TYPE_ID: u64 = 0x8d49_39ed_87bc_9788;
    }
    pub enum Which {
      Item(u32),
      Splice(u32),
    }
    pub type WhichReader = Which;
    pub type WhichBuilder = Which;
  }

  pub mod apply {
    #[derive(Copy, Clone)]
    pub struct Owned(());
    impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
    impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
    impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
    impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

    pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
    impl <> ::core::marker::Copy for Reader<'_,>  {}
    impl <> ::core::clone::Clone for Reader<'_,>  {
      fn clone(&self) -> Self { *self }
    }

    impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
      const TYPE_ID: u64 = _private::TYPE_ID;
    }
    impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
      fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
        Self { reader,  }
      }
    }

    impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
      fn from(reader: Reader<'a,>) -> Self {
        Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
      }
    }

    impl <> ::core::fmt::Debug for Reader<'_,>  {
      fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
        core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
      }
    }

    impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
      fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
        ::core::result::Result::Ok(reader.get_struct(default)?.into())
      }
    }

    impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
      fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
        self.reader
      }
    }

    impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
      fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
        self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
      }
    }

    impl <'a,> Reader<'a,>  {
      pub fn reborrow(&self) -> Reader<'_,> {
        Self { .. *self }
      }

      pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
        self.reader.total_size()
      }
      #[inline]
      pub fn get_symbol(self) -> u32 {
        self.reader.get_data_field::<u32>(0)
      }
      #[inline]
      pub fn get_args(self) -> ::capnp::Result<::capnp::primitive_list::Reader<'a,u32>> {
        ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
      }
      #[inline]
      pub fn has_args(&self) -> bool {
        !self.reader.get_pointer_field(0).is_null()
      }
    }

    pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
    impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
      const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 2, pointers: 1 };
    }
    impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
      const TYPE_ID: u64 = _private::TYPE_ID;
    }
    impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
      fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
        Self { builder,  }
      }
    }

    impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
      fn from(builder: Builder<'a,>) -> Self {
        Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
      }
    }

    impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
      fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
        self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
      }
    }

    impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
      fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
        builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
      }
      fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
        ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
      }
    }

    impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
      fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
    }

    impl <'a,> Builder<'a,>  {
      pub fn into_reader(self) -> Reader<'a,> {
        self.builder.into_reader().into()
      }
      pub fn reborrow(&mut self) -> Builder<'_,> {
        Builder { builder: self.builder.reborrow() }
      }
      pub fn reborrow_as_reader(&self) -> Reader<'_,> {
        self.builder.as_reader().into()
      }

      pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
        self.builder.as_reader().total_size()
      }
      #[inline]
      pub fn get_symbol(self) -> u32 {
        self.builder.get_data_field::<u32>(0)
      }
      #[inline]
      pub fn set_symbol(&mut self, value: u32)  {
        self.builder.set_data_field::<u32>(0, value);
      }
      #[inline]
      pub fn get_args(self) -> ::capnp::Result<::capnp::primitive_list::Builder<'a,u32>> {
        ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
      }
      #[inline]
      pub fn set_args(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::primitive_list::Owned<u32>>) -> ::capnp::Result<()> {
        ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false)
      }
      #[inline]
      pub fn init_args(self, size: u32) -> ::capnp::primitive_list::Builder<'a,u32> {
        ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), size)
      }
      #[inline]
      pub fn has_args(&self) -> bool {
        !self.builder.is_pointer_field_null(0)
      }
    }

    pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
    impl ::capnp::capability::FromTypelessPipeline for Pipeline {
      fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
        Self { _typeless: typeless,  }
      }
    }
    impl Pipeline  {
    }
    mod _private {
      pub static ENCODED_NODE: [::capnp::Word; 52] = [
        ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
        ::capnp::word(150, 98, 109, 181, 159, 123, 122, 222),
        ::capnp::word(25, 0, 0, 0, 1, 0, 2, 0),
        ::capnp::word(178, 107, 91, 137, 60, 121, 191, 207),
        ::capnp::word(1, 0, 7, 0, 1, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(21, 0, 0, 0, 250, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(25, 0, 0, 0, 119, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
        ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
        ::capnp::word(112, 110, 112, 58, 84, 101, 114, 109),
        ::capnp::word(46, 97, 112, 112, 108, 121, 0, 0),
        ::capnp::word(8, 0, 0, 0, 3, 0, 4, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(41, 0, 0, 0, 58, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(36, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(48, 0, 0, 0, 2, 0, 1, 0),
        ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(45, 0, 0, 0, 42, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(40, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(68, 0, 0, 0, 2, 0, 1, 0),
        ::capnp::word(115, 121, 109, 98, 111, 108, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(97, 114, 103, 115, 0, 0, 0, 0),
        ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(14, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ];
      pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
        match index {
          0 => <u32 as ::capnp::introspect::Introspect>::introspect(),
          1 => <::capnp::primitive_list::Owned<u32> as ::capnp::introspect::Introspect>::introspect(),
          _ => ::capnp::introspect::panic_invalid_field_index(index),
        }
      }
      pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
        ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
      }
      pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
      pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
        &ARENA,
        NONUNION_MEMBERS,
        MEMBERS_BY_DISCRIMINANT,
        MEMBERS_BY_NAME
      );
      pub static NONUNION_MEMBERS : &[u16] = &[0,1];
      pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
      pub static MEMBERS_BY_NAME : &[u16] = &[1,0];
      pub const TYPE_ID: u64 = 0xde7a_7b9f_b56d_6296;
    }
  }

  pub mod variable {
    #[derive(Copy, Clone)]
    pub struct Owned(());
    impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
    impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
    impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
    impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

    pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
    impl <> ::core::marker::Copy for Reader<'_,>  {}
    impl <> ::core::clone::Clone for Reader<'_,>  {
      fn clone(&self) -> Self { *self }
    }

    impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
      const TYPE_ID: u64 = _private::TYPE_ID;
    }
    impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
      fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
        Self { reader,  }
      }
    }

    impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
      fn from(reader: Reader<'a,>) -> Self {
        Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
      }
    }

    impl <> ::core::fmt::Debug for Reader<'_,>  {
      fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
        core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
      }
    }

    impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
      fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
        ::core::result::Result::Ok(reader.get_struct(default)?.into())
      }
    }

    impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
      fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
        self.reader
      }
    }

    impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
      fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
        self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
      }
    }

    impl <> Reader<'_,>  {
      pub fn reborrow(&self) -> Reader<'_,> {
        Self { .. *self }
      }

      pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
        self.reader.total_size()
      }
      #[inline]
      pub fn get_node(self) -> u32 {
        self.reader.get_data_field::<u32>(0)
      }
      #[inline]
      pub fn get_index(self) -> u16 {
        self.reader.get_data_field::<u16>(3)
      }
    }

    pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
    impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
      const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 2, pointers: 1 };
    }
    impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
      const TYPE_ID: u64 = _private::TYPE_ID;
    }
    impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
      fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
        Self { builder,  }
      }
    }

    impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
      fn from(builder: Builder<'a,>) -> Self {
        Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
      }
    }

    impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
      fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
        self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
      }
    }

    impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
      fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
        builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
      }
      fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
        ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
      }
    }

    impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
      fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
    }

    impl <'a,> Builder<'a,>  {
      pub fn into_reader(self) -> Reader<'a,> {
        self.builder.into_reader().into()
      }
      pub fn reborrow(&mut self) -> Builder<'_,> {
        Builder { builder: self.builder.reborrow() }
      }
      pub fn reborrow_as_reader(&self) -> Reader<'_,> {
        self.builder.as_reader().into()
      }

      pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
        self.builder.as_reader().total_size()
      }
      #[inline]
      pub fn get_node(self) -> u32 {
        self.builder.get_data_field::<u32>(0)
      }
      #[inline]
      pub fn set_node(&mut self, value: u32)  {
        self.builder.set_data_field::<u32>(0, value);
      }
      #[inline]
      pub fn get_index(self) -> u16 {
        self.builder.get_data_field::<u16>(3)
      }
      #[inline]
      pub fn set_index(&mut self, value: u16)  {
        self.builder.set_data_field::<u16>(3, value);
      }
    }

    pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
    impl ::capnp::capability::FromTypelessPipeline for Pipeline {
      fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
        Self { _typeless: typeless,  }
      }
    }
    impl Pipeline  {
    }
    mod _private {
      pub static ENCODED_NODE: [::capnp::Word; 49] = [
        ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
        ::capnp::word(55, 205, 218, 56, 109, 17, 119, 134),
        ::capnp::word(25, 0, 0, 0, 1, 0, 2, 0),
        ::capnp::word(178, 107, 91, 137, 60, 121, 191, 207),
        ::capnp::word(1, 0, 7, 0, 1, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(21, 0, 0, 0, 18, 1, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(29, 0, 0, 0, 119, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
        ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
        ::capnp::word(112, 110, 112, 58, 84, 101, 114, 109),
        ::capnp::word(46, 118, 97, 114, 105, 97, 98, 108),
        ::capnp::word(101, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 3, 0, 4, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(41, 0, 0, 0, 42, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(36, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(48, 0, 0, 0, 2, 0, 1, 0),
        ::capnp::word(1, 0, 0, 0, 3, 0, 0, 0),
        ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(45, 0, 0, 0, 50, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(40, 0, 0, 0, 3, 0, 1, 0),
        ::capnp::word(52, 0, 0, 0, 2, 0, 1, 0),
        ::capnp::word(110, 111, 100, 101, 0, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(105, 110, 100, 101, 120, 0, 0, 0),
        ::capnp::word(7, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(7, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
        ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ];
      pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
        match index {
          0 => <u32 as ::capnp::introspect::Introspect>::introspect(),
          1 => <u16 as ::capnp::introspect::Introspect>::introspect(),
          _ => ::capnp::introspect::panic_invalid_field_index(index),
        }
      }
      pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
        ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
      }
      pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
      pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
        &ARENA,
        NONUNION_MEMBERS,
        MEMBERS_BY_DISCRIMINANT,
        MEMBERS_BY_NAME
      );
      pub static NONUNION_MEMBERS : &[u16] = &[0,1];
      pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
      pub static MEMBERS_BY_NAME : &[u16] = &[1,0];
      pub const TYPE_ID: u64 = 0x8677_116d_38da_cd37;
    }
  }
}

pub mod param {
  #[derive(Copy, Clone)]
  pub struct Owned(());
  impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } }
  impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; }
  impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; }

  pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> }
  impl <> ::core::marker::Copy for Reader<'_,>  {}
  impl <> ::core::clone::Clone for Reader<'_,>  {
    fn clone(&self) -> Self { *self }
  }

  impl <> ::capnp::traits::HasTypeId for Reader<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,>  {
    fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self {
      Self { reader,  }
    }
  }

  impl <'a,> ::core::convert::From<Reader<'a,>> for ::capnp::dynamic_value::Reader<'a>  {
    fn from(reader: Reader<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <> ::core::fmt::Debug for Reader<'_,>  {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> {
      core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f)
    }
  }

  impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,>  {
    fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(reader.get_struct(default)?.into())
    }
  }

  impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,>  {
    fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> {
      self.reader
    }
  }

  impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,>  {
    fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) {
      self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table))
    }
  }

  impl <'a,> Reader<'a,>  {
    pub fn reborrow(&self) -> Reader<'_,> {
      Self { .. *self }
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.reader.total_size()
    }
    #[inline]
    pub fn get_name(self) -> ::capnp::Result<::capnp::text::Reader<'a>> {
      ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn has_name(&self) -> bool {
      !self.reader.get_pointer_field(0).is_null()
    }
    #[inline]
    pub fn get_type(self) -> u32 {
      self.reader.get_data_field::<u32>(0)
    }
  }

  pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> }
  impl <> ::capnp::traits::HasStructSize for Builder<'_,>  {
    const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 1, pointers: 1 };
  }
  impl <> ::capnp::traits::HasTypeId for Builder<'_,>  {
    const TYPE_ID: u64 = _private::TYPE_ID;
  }
  impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,>  {
    fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self {
      Self { builder,  }
    }
  }

  impl <'a,> ::core::convert::From<Builder<'a,>> for ::capnp::dynamic_value::Builder<'a>  {
    fn from(builder: Builder<'a,>) -> Self {
      Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>})))
    }
  }

  impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,>  {
    fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) {
      self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table))
    }
  }

  impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,>  {
    fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self {
      builder.init_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE).into()
    }
    fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result<Self> {
      ::core::result::Result::Ok(builder.get_struct(<Self as ::capnp::traits::HasStructSize>::STRUCT_SIZE, default)?.into())
    }
  }

  impl <> ::capnp::traits::SetterInput<Owned<>> for Reader<'_,>  {
    fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) }
  }

  impl <'a,> Builder<'a,>  {
    pub fn into_reader(self) -> Reader<'a,> {
      self.builder.into_reader().into()
    }
    pub fn reborrow(&mut self) -> Builder<'_,> {
      Builder { builder: self.builder.reborrow() }
    }
    pub fn reborrow_as_reader(&self) -> Reader<'_,> {
      self.builder.as_reader().into()
    }

    pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> {
      self.builder.as_reader().total_size()
    }
    #[inline]
    pub fn get_name(self) -> ::capnp::Result<::capnp::text::Builder<'a>> {
      ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None)
    }
    #[inline]
    pub fn set_name(&mut self, value: impl ::capnp::traits::SetterInput<::capnp::text::Owned>)  {
      ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false).unwrap()
    }
    #[inline]
    pub fn init_name(self, size: u32) -> ::capnp::text::Builder<'a> {
      self.builder.get_pointer_field(0).init_text(size)
    }
    #[inline]
    pub fn has_name(&self) -> bool {
      !self.builder.is_pointer_field_null(0)
    }
    #[inline]
    pub fn get_type(self) -> u32 {
      self.builder.get_data_field::<u32>(0)
    }
    #[inline]
    pub fn set_type(&mut self, value: u32)  {
      self.builder.set_data_field::<u32>(0, value);
    }
  }

  pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline }
  impl ::capnp::capability::FromTypelessPipeline for Pipeline {
    fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self {
      Self { _typeless: typeless,  }
    }
  }
  impl Pipeline  {
  }
  mod _private {
    pub static ENCODED_NODE: [::capnp::Word; 49] = [
      ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
      ::capnp::word(232, 73, 199, 85, 129, 167, 53, 211),
      ::capnp::word(20, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
      ::capnp::word(1, 0, 7, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(107, 9, 0, 0, 163, 9, 0, 0),
      ::capnp::word(21, 0, 0, 0, 210, 0, 0, 0),
      ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(29, 0, 0, 0, 119, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
      ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
      ::capnp::word(112, 110, 112, 58, 80, 97, 114, 97),
      ::capnp::word(109, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
      ::capnp::word(8, 0, 0, 0, 3, 0, 4, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(41, 0, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(36, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(48, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(45, 0, 0, 0, 42, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(40, 0, 0, 0, 3, 0, 1, 0),
      ::capnp::word(52, 0, 0, 0, 2, 0, 1, 0),
      ::capnp::word(110, 97, 109, 101, 0, 0, 0, 0),
      ::capnp::word(12, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(12, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(116, 121, 112, 101, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(8, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
      ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
    ];
    pub fn get_field_types(index: u16) -> ::capnp::introspect::Type {
      match index {
        0 => <::capnp::text::Owned as ::capnp::introspect::Introspect>::introspect(),
        1 => <u32 as ::capnp::introspect::Introspect>::introspect(),
        _ => ::capnp::introspect::panic_invalid_field_index(index),
      }
    }
    pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
      ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
    }
    pub static ARENA: ::capnp::private::arena::GeneratedCodeArena = ::capnp::private::arena::GeneratedCodeArena::new(&ENCODED_NODE);
    pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema::new(
      &ARENA,
      NONUNION_MEMBERS,
      MEMBERS_BY_DISCRIMINANT,
      MEMBERS_BY_NAME
    );
    pub static NONUNION_MEMBERS : &[u16] = &[0,1];
    pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[];
    pub static MEMBERS_BY_NAME : &[u16] = &[0,1];
    pub const TYPE_ID: u64 = 0xd335_a781_55c7_49e8;
  }
}

#[repr(u16)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Visibility {
  Unspecified = 0,
  Private = 1,
  Public = 2,
}

impl ::capnp::introspect::Introspect for Visibility {
  fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Enum(::capnp::introspect::RawEnumSchema { encoded_node: &visibility::ENCODED_NODE, annotation_types: visibility::get_annotation_types }).into() }
}
impl ::core::convert::From<Visibility> for ::capnp::dynamic_value::Reader<'_> {
  fn from(e: Visibility) -> Self { ::capnp::dynamic_value::Enum::new(e.into(), ::capnp::introspect::RawEnumSchema { encoded_node: &visibility::ENCODED_NODE, annotation_types: visibility::get_annotation_types }.into()).into() }
}
impl ::core::convert::TryFrom<u16> for Visibility {
  type Error = ::capnp::NotInSchema;
  fn try_from(value: u16) -> ::core::result::Result<Self, <Visibility as ::core::convert::TryFrom<u16>>::Error> {
    match value {
      0 => ::core::result::Result::Ok(Self::Unspecified),
      1 => ::core::result::Result::Ok(Self::Private),
      2 => ::core::result::Result::Ok(Self::Public),
      n => ::core::result::Result::Err(::capnp::NotInSchema(n)),
    }
  }
}
impl From<Visibility> for u16 {
  #[inline]
  fn from(x: Visibility) -> u16 { x as u16 }
}
impl ::capnp::traits::HasTypeId for Visibility {
  const TYPE_ID: u64 = 0x8d83_15f2_7a68_8301u64;
}
mod visibility {
pub static ENCODED_NODE: [::capnp::Word; 32] = [
  ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0),
  ::capnp::word(1, 131, 104, 122, 242, 21, 131, 141),
  ::capnp::word(20, 0, 0, 0, 2, 0, 0, 0),
  ::capnp::word(1, 150, 80, 40, 197, 50, 43, 224),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(165, 9, 0, 0, 235, 9, 0, 0),
  ::capnp::word(21, 0, 0, 0, 250, 0, 0, 0),
  ::capnp::word(33, 0, 0, 0, 7, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(29, 0, 0, 0, 79, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(99, 97, 112, 110, 112, 47, 104, 117),
  ::capnp::word(103, 114, 45, 118, 48, 46, 99, 97),
  ::capnp::word(112, 110, 112, 58, 86, 105, 115, 105),
  ::capnp::word(98, 105, 108, 105, 116, 121, 0, 0),
  ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0),
  ::capnp::word(12, 0, 0, 0, 1, 0, 2, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(29, 0, 0, 0, 98, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(25, 0, 0, 0, 66, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(2, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(17, 0, 0, 0, 58, 0, 0, 0),
  ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0),
  ::capnp::word(117, 110, 115, 112, 101, 99, 105, 102),
  ::capnp::word(105, 101, 100, 0, 0, 0, 0, 0),
  ::capnp::word(112, 114, 105, 118, 97, 116, 101, 0),
  ::capnp::word(112, 117, 98, 108, 105, 99, 0, 0),
];
pub fn get_annotation_types(child_index: Option<u16>, index: u32) -> ::capnp::introspect::Type {
  ::capnp::introspect::panic_invalid_annotation_indices(child_index, index)
}
}
