test1: ---
assert(Int::property.isOpen)
       |             |
       |             false
       val T.property: T
---
test2: ---
assert(Int::property.name == "a")
       |             |    |
       |             |    false
       |             property
       val T.property: T
---
test3: ---
assert((Boolean::property)(false))
        |                 |
        |                 false
        val T.property: T
---
test4: ---
assert(Boolean::property.get(false))
       |                 |
       |                 false
       val T.property: T
---
