//@ run-pass
pub trait Foo {
type Out;
}
impl Foo for () {
type Out = bool;
fn main() {
type Bool = <() as Foo>::Out;
let x: Bool = true;
assert!(x);
let y: Option<Bool> = None;
assert_eq!(y, None);