error[E0391]: cycle detected when computing layout of `core::option::Option<S>`
   |
   = note: ...which requires computing layout of `S`...
   = note: ...which requires computing layout of `core::option::Option<<S as Mirror>::It>`...
   = note: ...which again requires computing layout of `core::option::Option<S>`, completing the cycle
   = note: cycle used when computing layout of `core::option::Option<<S as Mirror>::It>`
   = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information

error: aborting due to previous error

For more information about this error, try `rustc --explain E0391`.