diff --git a/Directory.Packages.props b/Directory.Packages.props
index 6e4d161b..a80edd89 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -9,6 +9,8 @@
+
+
@@ -20,6 +22,7 @@
+
diff --git a/Funcky.Xunit.v3.Test/Funcky.Xunit.v3.Test.csproj b/Funcky.Xunit.v3.Test/Funcky.Xunit.v3.Test.csproj
new file mode 100644
index 00000000..e631adb8
--- /dev/null
+++ b/Funcky.Xunit.v3.Test/Funcky.Xunit.v3.Test.csproj
@@ -0,0 +1,24 @@
+
+
+ net9.0
+ preview
+ enable
+ false
+ Funcky.Xunit.Test
+ Exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Funcky.Xunit.v3/Funcky.Xunit.v3.csproj b/Funcky.Xunit.v3/Funcky.Xunit.v3.csproj
new file mode 100644
index 00000000..faddded5
--- /dev/null
+++ b/Funcky.Xunit.v3/Funcky.Xunit.v3.csproj
@@ -0,0 +1,34 @@
+
+
+ netstandard2.0;net6.0
+ preview
+ enable
+ Package to use Funcky with xUnit v3
+ Functional Monad xUnit
+ 1.0.0
+ true
+ snupkg
+ Funcky
+
+
+ true
+
+
+ $(DefineConstants);STACK_TRACE_HIDDEN_SUPPORTED
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Funcky.Xunit.v3/PublicAPI.Shipped.txt b/Funcky.Xunit.v3/PublicAPI.Shipped.txt
new file mode 100644
index 00000000..7dc5c581
--- /dev/null
+++ b/Funcky.Xunit.v3/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/Funcky.Xunit.v3/PublicAPI.Unshipped.txt b/Funcky.Xunit.v3/PublicAPI.Unshipped.txt
new file mode 100644
index 00000000..87d9b165
--- /dev/null
+++ b/Funcky.Xunit.v3/PublicAPI.Unshipped.txt
@@ -0,0 +1,34 @@
+#nullable enable
+static Funcky.FunctionalAssert.Some(TItem expectedValue, Funcky.Monads.Option option) -> void
+static Funcky.FunctionalAssert.Some(Funcky.Monads.Option option) -> TItem
+static Funcky.FunctionalAssert.Right(TRight expectedRight, Funcky.Monads.Either either) -> void
+static Funcky.FunctionalAssert.Right(Funcky.Monads.Either either) -> TRight
+static Funcky.FunctionalAssert.Ok(TValidResult expectedResult, Funcky.Monads.Result result) -> void
+static Funcky.FunctionalAssert.Ok(Funcky.Monads.Result result) -> TValidResult
+static Funcky.FunctionalAssert.None(Funcky.Monads.Option option) -> void
+static Funcky.FunctionalAssert.Left(TLeft expectedLeft, Funcky.Monads.Either either) -> void
+static Funcky.FunctionalAssert.Left(Funcky.Monads.Either either) -> TLeft
+static Funcky.FunctionalAssert.Error(Funcky.Monads.Result result) -> System.Exception!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2)>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3)>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4)>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5)>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6)>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6, T7 Item7)>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6, T7 Item7, T8 Item8)>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6, T7 Item7, T8 Item8, T9 Item9)>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable!>!>! source) -> Xunit.TheoryData!
+static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6, T7 Item7, T8 Item8, T9 Item9, T10 Item10)>! source) -> Xunit.TheoryData!
+Funcky.FunctionalAssert
+Funcky.Extensions.ToTheoryDataExtension
diff --git a/Funcky.sln b/Funcky.sln
index 4321d770..aa69f65f 100644
--- a/Funcky.sln
+++ b/Funcky.sln
@@ -65,6 +65,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Funcky.TrimmingTest", "Func
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Funcky.BuiltinAnalyzers.CodeFixes", "Funcky.Analyzers\Funcky.BuiltinAnalyzers.CodeFixes\Funcky.BuiltinAnalyzers.CodeFixes.csproj", "{82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Funcky.Xunit.v3", "Funcky.Xunit.v3\Funcky.Xunit.v3.csproj", "{2EA64974-E4A4-416E-9E35-5744B5244EBB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Funcky.Xunit.v3.Test", "Funcky.Xunit.v3.Test\Funcky.Xunit.v3.Test.csproj", "{D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -143,6 +147,14 @@ Global
{82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2EA64974-E4A4-416E-9E35-5744B5244EBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2EA64974-E4A4-416E-9E35-5744B5244EBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2EA64974-E4A4-416E-9E35-5744B5244EBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2EA64974-E4A4-416E-9E35-5744B5244EBB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE