summaryrefslogtreecommitdiff
path: root/src/GF/Conversion
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Conversion')
-rw-r--r--src/GF/Conversion/SimpleToFCFG.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/GF/Conversion/SimpleToFCFG.hs b/src/GF/Conversion/SimpleToFCFG.hs
index 99f0f31fa..fbefd8693 100644
--- a/src/GF/Conversion/SimpleToFCFG.hs
+++ b/src/GF/Conversion/SimpleToFCFG.hs
@@ -354,14 +354,14 @@ data STermSelector
| StrSel
mkSingletonSelectors :: SLinType -> [STermSelector]
-mkSingletonSelectors ctype =
- let (rcss,tcss) = loop emptyPath ([],[]) ctype
- in [mkSelector [rcs] tcss | rcs <- rcss]
+mkSingletonSelectors ctype = sels0
where
+ (sels0,tcss0) = loop emptyPath ([],[]) ctype
+
loop path st (RecT record) = List.foldl' (\st (lbl,ctype) -> loop (path ++. lbl ) st ctype) st record
loop path st (TblT terms ctype) = List.foldl' (\st term -> loop (path ++! term) st ctype) st terms
- loop path (rcss,tcss) (ConT terms) = (rcss, map ((,) path) terms : tcss)
- loop path (rcss,tcss) (StrT) = (path : rcss, tcss)
+ loop path (sels,tcss) (ConT terms) = ( sels,map ((,) path) terms : tcss)
+ loop path (sels,tcss) (StrT) = (mkSelector [path] tcss0 : sels, tcss)
mkSelector :: [SPath] -> [[(SPath,STerm)]] -> STermSelector