How to define MLIR types for Julia?

Does anyone know if there are dialects made for julia and MLIR, not wrappers for MLIR dialects but compiled to MLIR that define julias types and ops for MLIR in C++ files. The problem: MLIR types need their storage class fully defined before
registration, but I have a circular dependency:

  • JLCSTypes.h includes the typedef classes
  • But the storage definition is in JLCSTypes.cpp.inc
  • JLCSDialect.cpp includes JLCSTypes.h then tries to register the type
  • Storage is incomplete at registration time. Do I split the files and try resolving the includes seperatley. This is all my MLIR files so far: RepliBuild.jl/src/Mlir at main · obsidianjulua/RepliBuild.jl · GitHub