diff --git a/eo-integration-tests/src/test/resources/org/eolang/snippets/compact-array.yaml b/eo-integration-tests/src/test/resources/org/eolang/snippets/compact-array.yaml
new file mode 100644
index 00000000000..d63fc547dae
--- /dev/null
+++ b/eo-integration-tests/src/test/resources/org/eolang/snippets/compact-array.yaml
@@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: Copyright (c) 2016-2025 Objectionary.com
+# SPDX-License-Identifier: MIT
+---
+# yamllint disable rule:line-length
+out:
+ - ".*Hello, 上海.*"
+file: program.eo
+args: ["org.eolang.snippets.program", "上海"]
+target: "eoc"
+eo: |
+ +alias org.eolang.io.stdout
+ +package org.eolang.snippets
+
+ [args] > program
+ io.stdout > @
+ tt.sprintf *1
+ "Hello, %s\n"
+ args.at 0
diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/transpile-packs/compact-array.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/transpile-packs/compact-array.yaml
new file mode 100644
index 00000000000..6719dd1c732
--- /dev/null
+++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/transpile-packs/compact-array.yaml
@@ -0,0 +1,24 @@
+# SPDX-FileCopyrightText: Copyright (c) 2016-2025 Objectionary.com
+# SPDX-License-Identifier: MIT
+---
+# yamllint disable rule:line-length
+sheets:
+ - /org/eolang/maven/transpile/set-locators.xsl
+ - /org/eolang/maven/transpile/set-original-names.xsl
+ - /org/eolang/maven/transpile/classes.xsl
+ - /org/eolang/maven/transpile/package.xsl
+ - /org/eolang/maven/transpile/attrs.xsl
+ - /org/eolang/maven/transpile/data.xsl
+ - /org/eolang/maven/transpile/to-java.xsl
+asserts:
+ - /object[not(errors)]
+ - //java[contains(text(), 'base="Φ.org.eolang.tt.sprintf"')]
+input: |
+ +alias org.eolang.io.stdout
+ +package org.eolang.snippets
+
+ [args] > program
+ io.stdout > @
+ tt.sprintf *1
+ "Hello, %s\n"
+ args.at 0
diff --git a/eo-parser/src/main/java/org/eolang/parser/CompactArrayFqn.java b/eo-parser/src/main/java/org/eolang/parser/CompactArrayFqn.java
index e8ac5d03242..19959bcdc53 100644
--- a/eo-parser/src/main/java/org/eolang/parser/CompactArrayFqn.java
+++ b/eo-parser/src/main/java/org/eolang/parser/CompactArrayFqn.java
@@ -46,17 +46,13 @@ public String asString() {
.map(ParseTree::getText)
.collect(Collectors.joining("."));
final String fqn;
- if (this.context.HOME() == null) {
+ if (this.context.HOME() == null && this.context.XI() == null) {
fqn = name;
- } else {
+ } else if (this.context.HOME() != null && this.context.XI() == null) {
fqn = String.format("Φ.org.eolang.%s", name);
- }
- final String base;
- if (this.context.XI() == null) {
- base = fqn;
} else {
- base = String.format("ξ.%s", fqn);
+ fqn = String.format("ξ.%s", name);
}
- return base;
+ return fqn;
}
}
diff --git a/eo-parser/src/main/resources/org/eolang/parser/parse/build-fqns.xsl b/eo-parser/src/main/resources/org/eolang/parser/parse/build-fqns.xsl
index 4ca4faceca1..50f6ee52849 100644
--- a/eo-parser/src/main/resources/org/eolang/parser/parse/build-fqns.xsl
+++ b/eo-parser/src/main/resources/org/eolang/parser/parse/build-fqns.xsl
@@ -185,6 +185,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eo-parser/src/test/java/org/eolang/parser/CompactArrayFqnTest.java b/eo-parser/src/test/java/org/eolang/parser/CompactArrayFqnTest.java
index 0eb28412963..70fad753981 100644
--- a/eo-parser/src/test/java/org/eolang/parser/CompactArrayFqnTest.java
+++ b/eo-parser/src/test/java/org/eolang/parser/CompactArrayFqnTest.java
@@ -20,6 +20,7 @@ final class CompactArrayFqnTest {
@CsvSource(
{
"foo *1,foo",
+ "tt.x *55,tt.x",
"QQ.foo.bar *42,Φ.org.eolang.foo.bar",
"QQ.nan *52,Φ.org.eolang.nan",
"$.seq *1,ξ.seq"
diff --git a/eo-parser/src/test/resources/org/eolang/parser/eo-packs/parse/validate-resolve-before-stars.yaml b/eo-parser/src/test/resources/org/eolang/parser/eo-packs/parse/validate-resolve-before-stars.yaml
index 10aa09a77d7..70d9f631118 100644
--- a/eo-parser/src/test/resources/org/eolang/parser/eo-packs/parse/validate-resolve-before-stars.yaml
+++ b/eo-parser/src/test/resources/org/eolang/parser/eo-packs/parse/validate-resolve-before-stars.yaml
@@ -10,27 +10,27 @@ asserts:
- //o[@name='first' and count(o)=1]/o[@base='Φ.org.eolang.tuple' and @star and count(o)=2]
- //o[@name='second' and count(o)=2]/o[position()=2 and @base='Φ.org.eolang.tuple' and @star and count(o)=2]
- //o[@name='third' and count(o)=3]/o[position()=3 and @base='Φ.org.eolang.tuple' and @star and count(o)=1]
- - //o[@name='fourth' and count(o)=2]/o[@base='sprintf' and count(o)=1]/o[@base='Φ.org.eolang.tuple' and @star and count(o)=2]
+ - //o[@name='fourth' and count(o)=2]/o[@base='Φ.org.eolang.tt.sprintf' and count(o)=1]/o[@base='Φ.org.eolang.tuple' and @star and count(o)=2]
- //o[@name='fourth']/o[@base='Φ.org.eolang.tuple' and @star and count(o)=1]
- /object[count(//o[@before-star])=0]
input: |
# No comments.
[] > foo
- sprintf *2 > with-error
+ QQ.tt.sprintf *2 > with-error
x
- sprintf * > first
+ QQ.tt.sprintf * > first
x
y
- sprintf *1 > second
+ QQ.tt.sprintf *1 > second
x
y
z
- sprintf *2 > third
+ QQ.tt.sprintf *2 > third
x
y
z
- sprintf *1 > fourth
- sprintf *
+ QQ.tt.sprintf *1 > fourth
+ QQ.tt.sprintf *
x
y
z
diff --git a/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-array-with-defined-first-part.yaml b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-array-with-defined-first-part.yaml
new file mode 100644
index 00000000000..487e9a35e5c
--- /dev/null
+++ b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-array-with-defined-first-part.yaml
@@ -0,0 +1,16 @@
+# SPDX-FileCopyrightText: Copyright (c) 2016-2025 Objectionary.com
+# SPDX-License-Identifier: MIT
+---
+# yamllint disable rule:line-length
+sheets: []
+asserts:
+ - /object[not(errors)]
+ - //o[@base='foo.bar']/o[@base='Φ.org.eolang.x']
+ - //o[@base='foo.bar']//o[@base='Φ.org.eolang.y']
+input: |
+ # No comments.
+ [] > app
+ boom > foo
+ foo.bar *1 > @
+ x
+ y
diff --git a/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-array.yaml b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-array.yaml
new file mode 100644
index 00000000000..64c3e174f25
--- /dev/null
+++ b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-array.yaml
@@ -0,0 +1,17 @@
+# SPDX-FileCopyrightText: Copyright (c) 2016-2025 Objectionary.com
+# SPDX-License-Identifier: MIT
+---
+# yamllint disable rule:line-length
+sheets: []
+asserts:
+ - /object[not(errors)]
+ - //o[@base='Φ.org.eolang.tt.sprintf']
+input: |
+ +alias org.eolang.io.stdout
+ +package org.eolang.snippets
+
+ [args] > program
+ io.stdout > @
+ tt.sprintf *1
+ "Hello, %s\n"
+ args.at 0
diff --git a/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-sprintf-aliased.yaml b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-sprintf-aliased.yaml
new file mode 100644
index 00000000000..02598cc96e0
--- /dev/null
+++ b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/compact-sprintf-aliased.yaml
@@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: Copyright (c) 2016-2025 Objectionary.com
+# SPDX-License-Identifier: MIT
+---
+# yamllint disable rule:line-length
+sheets: []
+asserts:
+ - /object[not(errors)]
+ - //o[@base='Φ.org.eolang.tt.sprintf']/o[@base='Φ.org.eolang.string']
+input: |
+ +alias org.eolang.io.stdout
+ +alias org.eolang.tt.sprintf
+
+ # No comments.
+ [args] > simple
+ stdout > @
+ sprintf *1
+ "Hello, %s"
+ args.at 0
diff --git a/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/sugared-array-with-composite-name-aliased.yaml b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/sugared-array-with-composite-name-aliased.yaml
new file mode 100644
index 00000000000..236061733f9
--- /dev/null
+++ b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/sugared-array-with-composite-name-aliased.yaml
@@ -0,0 +1,16 @@
+# SPDX-FileCopyrightText: Copyright (c) 2016-2025 Objectionary.com
+# SPDX-License-Identifier: MIT
+---
+# yamllint disable rule:line-length
+sheets: []
+asserts:
+ - /object[not(errors)]
+ - //o[@base='Φ.org.eolang.foo.bar']/o[@base='Φ.org.eolang.x']
+ - //o[@base='Φ.org.eolang.foo.bar']//o[@base='Φ.org.eolang.y']
+input: |
+ +alias org.eolang.foo.bar
+
+ [] > app
+ bar *1 > @
+ x
+ y
diff --git a/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/sugared-array-with-composite-name.yaml b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/sugared-array-with-composite-name.yaml
index cbe163e71ab..39b8c1e99a5 100644
--- a/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/sugared-array-with-composite-name.yaml
+++ b/eo-parser/src/test/resources/org/eolang/parser/eo-syntax/sugared-array-with-composite-name.yaml
@@ -5,8 +5,8 @@
sheets: []
asserts:
- /object[not(errors)]
- - //o[@base='foo.bar']/o[@base='Φ.org.eolang.x']
- - //o[@base='foo.bar']//o[@base='Φ.org.eolang.y']
+ - //o[@base='Φ.org.eolang.foo.bar']/o[@base='Φ.org.eolang.x']
+ - //o[@base='Φ.org.eolang.foo.bar']//o[@base='Φ.org.eolang.y']
input: |
# No comments.
[] > app