foo.nim
import bar
type
Foo* = ref FooObj
FooObj* = object of RootObj
b: Bar
bar.nim
import foo
type
Bar* = ref BarObj
BarObj* = object of RootObj
proc foo*(s: Bar, p: Foo) = discard
run.nim
import foo, bar
nim c run.nim
bar.nim(8, 22) Error: undeclared identifier: 'Foo'
Is it because of cross-importing, or some kind of a bug? Error message is not very helpful.