public protocol SimpleProto {
  func successor() -> Self
}

public protocol ComplexProto : SimpleProto {
  func predecessor() -> Self
}

public protocol ProtoUser {
  associatedtype Element
  associatedtype Impl: SimpleProto
  var start: Impl { get }
  var end: Impl { get }
  subscript(_: Impl) -> Element { get }
}
