Regarding your `important` concept: boolean values are treated special,
compared to other values, in concepts. Boolean `false` is treated the same way,
as not compiling lines, that is make concept check fail, and `false` is default
value for `bool`. Other expressions/statements are implicitly wrapped with
`compiles:`, so return true disregarding of the value of the expression. These
will match:
type important2 = concept x
x.prop1 is bool # i.e. `false is bool`, which returns `true`
type important3 = concept x
x.prop1 = false # treated as `compiles: x.prop1 = false`, which
returns true
type important3 = concept x
compiles: x.prop1 # `true`
type AnotherClass = ref object
prop1*: int
type important4 = concept x
x.prop1 # wiil match `AnotherClass`, because again is treated as
`compiles: x.prop1`
echo AnotherClass is important4 # `true`
var o: AnotherClass
echo o is important4 # `true`
And you meant `is`, using `of`.