println("MyBoolean")
def &&(o
: MyBoolean
) = v
&& o.
v }
println("MyLazyBoolean")
def &&(o
: => MyLazyBoolean
) = v
&& o.
v }
def main
(args
: Array
[String
]) { println
(MyBoolean
(true) && MyBoolean
(true))
println
(MyLazyBoolean
(true) && MyLazyBoolean
(true)) println
(MyLazyBoolean
(false) && MyLazyBoolean
(true)) }
}
Cm9iamVjdCBNYWluIHsKICAgIGNhc2UgY2xhc3MgTXlCb29sZWFuKHY6IEJvb2xlYW4pIHsKICAgICAgICBwcmludGxuKCJNeUJvb2xlYW4iKQogICAgICAgIAogICAgICAgIGRlZiAmJihvOiBNeUJvb2xlYW4pID0gdiAmJiBvLnYKICAgIH0KCiAgICBjYXNlIGNsYXNzIE15TGF6eUJvb2xlYW4odjogQm9vbGVhbikgewogICAgICAgIHByaW50bG4oIk15TGF6eUJvb2xlYW4iKQogICAgICAgIAogICAgICAgIGRlZiAmJihvOiA9PiBNeUxhenlCb29sZWFuKSA9IHYgJiYgby52CiAgICB9CgogICAgZGVmIG1haW4oYXJnczogQXJyYXlbU3RyaW5nXSkgewogICAgICAgIHByaW50bG4oTXlCb29sZWFuKHRydWUpICYmIE15Qm9vbGVhbih0cnVlKSkKICAgICAgICBwcmludGxuKE15Qm9vbGVhbihmYWxzZSkgJiYgTXlCb29sZWFuKHRydWUpKQoKICAgICAgICBwcmludGxuKE15TGF6eUJvb2xlYW4odHJ1ZSkgJiYgTXlMYXp5Qm9vbGVhbih0cnVlKSkKICAgICAgICBwcmludGxuKE15TGF6eUJvb2xlYW4oZmFsc2UpICYmIE15TGF6eUJvb2xlYW4odHJ1ZSkpCiAgICB9Cn0K