Untitled
type
HasFoo = concept v
v.foo is string
WithFoo = object
foo: string
WithoutFoo = object
bar: string
proc conceptual[T: HasFoo](val: T) =
echo $(val.foo)
proc general[T](val: T) =
echo $(val.foo)
var
foo = WithFoo(foo:"foo")
bar = WithoutFoo(bar:"bar")
conceptual(foo)
conceptual(bar)
general(foo)
general(bar)
INFO