diff --git a/SliceMap.Tests/SliceMap.Tests.fsproj b/SliceMap.Tests/SliceMap.Tests.fsproj
index 2298c47..7ef5830 100644
--- a/SliceMap.Tests/SliceMap.Tests.fsproj
+++ b/SliceMap.Tests/SliceMap.Tests.fsproj
@@ -5,6 +5,7 @@
false
false
+ $(DefineConstants);USE_LEGACY_NAMESPACE
diff --git a/SliceMap.Tests/Tests.fs b/SliceMap.Tests/Tests.fs
index e0847bc..755f442 100644
--- a/SliceMap.Tests/Tests.fs
+++ b/SliceMap.Tests/Tests.fs
@@ -24,8 +24,11 @@ module Types =
[ |] )>]
module SlicetSetTests =
+ #if USE_LEGACY_NAMESPACE
+ open Flips.SliceMap
+ #else
open SliceMap
-
+ #endif
[]
let ``SliceSet has only distinct values`` (v:List) =
@@ -204,7 +207,11 @@ module Types =
[ |] )>]
module SliceMapTests =
+ #if USE_LEGACY_NAMESPACE
+ open Flips.SliceMap
+ #else
open SliceMap
+ #endif
[]
let ``SliceMap addition is commutative`` (v1:List<(NonEmptyString * Scalar)>) (v2:List<(NonEmptyString * Scalar)>) =
@@ -293,8 +300,15 @@ module Types =
(x1:NonEmptyString) =
let sm = d |> SMap
+ #if USE_LEGACY_NAMESPACE
+ // todo: see https://github.com/dotnet/fsharp/issues/10544
+ // maybe there is a workaround?
+ let r = sm.[Flips.SliceMap.SliceType.GreaterOrEqual x1]
+ // original code was:
+ // let r = sm.[GreaterOrEqual x1]
+ #else
let r = sm.[GreaterOrEqual x1]
-
+ #endif
for (k1) in r.Keys do
Assert.True(k1 >= x1)
diff --git a/SliceMap/SMap.fs b/SliceMap/SMap.fs
index 7a280a7..870a51c 100644
--- a/SliceMap/SMap.fs
+++ b/SliceMap/SMap.fs
@@ -207,3 +207,25 @@ module SMap =
let containsKey k (m:SMap<_,_>) =
m.ContainsKey k
+
+#if USE_LEGACY_NAMESPACE
+namespace Flips.SliceMap
+open System
+[]
+type SMap<'Key, 'Value when 'Key : comparison and 'Value : equality> = SliceMap.SMap<'Key,'Value>
+
+[]
+[]
+module SMap =
+
+ let ofSeq = SliceMap.SMap.ofSeq
+ let toSeq = SliceMap.SMap.toSeq
+
+ let ofMap = SliceMap.SMap.ofMap
+ let toMap = SliceMap.SMap.toMap
+ let ofList = SliceMap.SMap.ofList
+ let toList = SliceMap.SMap.toList
+ let ofArray = SliceMap.SMap.ofArray
+ let toArray = SliceMap.SMap.toArray
+ let containsKey = SliceMap.SMap.containsKey
+#endif
\ No newline at end of file
diff --git a/SliceMap/SliceMap.fsproj b/SliceMap/SliceMap.fsproj
index 6685d95..ac5bbdc 100644
--- a/SliceMap/SliceMap.fsproj
+++ b/SliceMap/SliceMap.fsproj
@@ -7,6 +7,7 @@
https://github.com/matthewcrews/SliceMap
MIT
+ $(DefineConstants);USE_LEGACY_NAMESPACE
diff --git a/SliceMap/SliceSet.fs b/SliceMap/SliceSet.fs
index 32ecdcb..1c84cd3 100644
--- a/SliceMap/SliceSet.fs
+++ b/SliceMap/SliceSet.fs
@@ -353,4 +353,24 @@ module SliceSet =
| Between (lowerBound, upperBound) -> keys.Between lowerBound upperBound
| In set -> keys.Intersect (SliceSet set)
| NotIn set -> keys.Minus (SliceSet set)
- | Where f -> keys.Filter f
\ No newline at end of file
+ | Where f -> keys.Filter f
+
+#if USE_LEGACY_NAMESPACE
+namespace Flips.SliceMap
+open System
+[]
+type SliceType<'a when 'a : comparison> = SliceMap.SliceType<'a>
+[]
+type RankResult = SliceMap.RankResult
+[]
+type SliceSet<'T when 'T : comparison> = SliceMap.SliceSet<'T>
+
+[]
+[]
+module SliceSet =
+ let intersect = SliceMap.SliceSet.intersect
+ let toSeq = SliceMap.SliceSet.toSeq
+ let toList = SliceMap.SliceSet.toList
+ let union = SliceMap.SliceSet.union
+ let slice = SliceMap.SliceSet.slice
+#endif
\ No newline at end of file