diff --git a/src/ErrorOr.csproj b/src/ErrorOr.csproj
index 55ea443..2d4a2dc 100644
--- a/src/ErrorOr.csproj
+++ b/src/ErrorOr.csproj
@@ -26,14 +26,11 @@
-
+
all
runtime; build; native; contentfiles; analyzers
+
diff --git a/src/ErrorOr/CollectionBuilderAttribute.cs b/src/ErrorOr/CollectionBuilderAttribute.cs
new file mode 100644
index 0000000..6d8e898
--- /dev/null
+++ b/src/ErrorOr/CollectionBuilderAttribute.cs
@@ -0,0 +1,15 @@
+#if !NET8_0_OR_GREATER
+namespace System.Runtime.CompilerServices;
+
+internal sealed class CollectionBuilderAttribute : Attribute
+{
+ public CollectionBuilderAttribute(Type builderType, string methodName)
+ {
+ BuilderType = builderType;
+ MethodName = methodName;
+ }
+
+ public Type BuilderType { get; }
+ public string MethodName { get; }
+}
+#endif
diff --git a/src/ErrorOr/CollectionExpression.cs b/src/ErrorOr/CollectionExpression.cs
new file mode 100644
index 0000000..f4a5838
--- /dev/null
+++ b/src/ErrorOr/CollectionExpression.cs
@@ -0,0 +1,42 @@
+namespace ErrorOr;
+
+///
+/// Contains methods supporting collection expressions.
+///
+public static class CollectionExpression
+{
+ ///
+ /// Creates from read-only span of errors.
+ ///
+ /// Type of value.
+ /// Read-only span of errors.
+ /// Error or vale.
+ /// Enables support for collection expressions.
+ public static ErrorOr CreateErrorOr(ReadOnlySpan errors)
+ {
+ return errors.ToArray();
+ }
+
+ ///
+ /// Creates from read-only span of errors.
+ ///
+ /// Type of value.
+ /// Read-only span of errors.
+ /// Error or vale.
+ /// Enables support for collection expressions.
+ public static IErrorOr CreateIErrorOrValue(ReadOnlySpan errors)
+ {
+ return CreateErrorOr(errors);
+ }
+
+ ///
+ /// Creates from read-only span of errors.
+ ///
+ /// Read-only span of errors.
+ /// Error or vale.
+ /// Enables support for collection expressions.
+ public static IErrorOr CreateIErrorOr(ReadOnlySpan errors)
+ {
+ return CreateErrorOr