thanks, i do that, but the real problem is that i need import the enum before 
other groups are generated, i get an `undeclared identifier` error

Module A 
    
    
    from builder import groupType
    
    #Generate the enum type
    groupType(Groups)
    type GroupsSet* = set[Groups]
    
    #-----------------
    # More code ...
    #-----------------
    
    
    Run

Module B 
    
    
    from builder import group
    
    group SubWindow:
      Elevate
      Resize
      Move
    
    #-----------------
    # More code...
    #-----------------
    
    
    Run

Module C 
    
    
    from builder import group
    import moduleB
    from moduleA import Groups, GroupsSet
    
    group Window:
      Maximize
      Minimize
      Close
      FocusIM
      UnfocusIM
    
    # undeclared identifier: 'gWindow'
    # undeclared identifier: 'gSubWindow'
    var a: GroupsSet = {gWindow, gSubWindow}
    
    #-----------------
    # More code...
    #-----------------
    
    
    Run

but if i define all groups in Module A, the error is gone 
    
    
    from builder import group, groupType
    
    group SubWindow:
      Elevate
      Resize
      Move
    
    group Window:
      Maximize
      Minimize
      Close
      FocusIM
      UnfocusIM
    
    # Now gSubWindow and gWindow are defined in the enum
    groupType(Groups)
    type GroupsSet* = set[Groups]
    
    #-----------------
    # More code ...
    #-----------------
    
    
    Run

i dont have a problem define all groups in one module, but define them on 
various modules could much better

Reply via email to