aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgentrace.sh31
-rw-r--r--src/Data/Array/Nested/Trace.hs4
2 files changed, 34 insertions, 1 deletions
diff --git a/gentrace.sh b/gentrace.sh
new file mode 100755
index 0000000..7be2b9c
--- /dev/null
+++ b/gentrace.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+cat <<'EOF'
+module Data.Array.Nested.Trace (
+ -- * Traced variants
+ module Data.Array.Nested.Trace,
+
+ -- * Re-exports from the plain "Data.Array.Nested" module
+EOF
+
+sed -n '/^module/,/^) where/!d; /^\s*-- /d; s/ \b[a-z][a-zA-Z0-9_'"'"']*,//g; /^ $/d; s/(\.\., Z.., ([^)]*))/(..)/g; /^ /p; /^$/p' src/Data/Array/Nested.hs
+
+cat <<'EOF'
+) where
+
+import Prelude hiding (mappend, mconcat)
+
+import Data.Array.Nested
+import Data.Array.Nested.Trace.TH
+
+
+EOF
+
+# shellcheck disable=SC2016 # dollar in single-quoted string
+echo '$(concat <$> mapM convertFun'
+sed -n '/^module/,/^) where/!d; /^\s*-- /d; /^ /p' src/Data/Array/Nested.hs |
+ grep -o '\b[a-z][a-zA-Z0-9_'"'"']*\b' |
+ grep -wv -e 'pattern' -e 'type' |
+ tr $'\n' ' ' |
+ sed 's/\([^ ]\+\)/'"'"'\1,/g; s/, $/])/; s/^/ [/'
+echo
diff --git a/src/Data/Array/Nested/Trace.hs b/src/Data/Array/Nested/Trace.hs
index aeb6edd..838e2b0 100644
--- a/src/Data/Array/Nested/Trace.hs
+++ b/src/Data/Array/Nested/Trace.hs
@@ -38,7 +38,9 @@ module Data.Array.Nested.Trace (
Mixed,
IxX(..), IIxX,
- KnownShX(..), StaticShX(..),
+ ShX(..), KnownShX(..),
+ StaticShX(..),
+ SMayNat(..),
Elt,
PrimElt,