@freestanding(declaration, names: named(StructWithUnqualifiedLookup)) public macro structWithUnqualifiedLookup() = #externalMacro(module: "MacroDefinition", type: "DefineStructWithUnqualifiedLookupMacro") @freestanding(declaration) public macro anonymousTypes(public: Bool = false, causeErrors: Bool = false, _: () -> String) = #externalMacro(module: "MacroDefinition", type: "DefineAnonymousTypesMacro") @freestanding(declaration) public macro introduceTypeCheckingErrors() = #externalMacro(module: "MacroDefinition", type: "IntroduceTypeCheckingErrorsMacro") @freestanding(declaration) public macro freestandingWithClosure(_ value: T, body: (T) -> T) = #externalMacro(module: "MacroDefinition", type: "EmptyDeclarationMacro") @freestanding(declaration, names: arbitrary) public macro bitwidthNumberedStructs(_ baseName: String) = #externalMacro(module: "MacroDefinition", type: "DefineBitwidthNumberedStructsMacro") @freestanding(expression) public macro stringify(_ value: T) -> (T, String) = #externalMacro(module: "MacroDefinition", type: "StringifyMacro") @freestanding(declaration, names: named(value)) public macro varValue() = #externalMacro(module: "MacroDefinition", type: "VarValueMacro") // Macros that pass along generic arguments @freestanding(expression) public macro checkGeneric_root() = #externalMacro(module: "MacroDefinition", type: "GenericToVoidMacro") @freestanding(expression) public macro checkGeneric() = #checkGeneric_root() @freestanding(expression) public macro checkGeneric2_root() = #externalMacro(module: "MacroDefinition", type: "GenericToVoidMacro") @freestanding(expression) public macro checkGeneric2() = #checkGeneric2_root() @freestanding(expression) public macro checkGenericHashableCodable_root() = #externalMacro(module: "MacroDefinition", type: "GenericToVoidMacro") @freestanding(expression) public macro checkGenericHashableCodable() = #checkGenericHashableCodable_root()