From 3d5b9bd1fd46a51651cbfbd45f03e5b878aebbac Mon Sep 17 00:00:00 2001 From: hallgren Date: Thu, 19 Sep 2013 18:23:47 +0000 Subject: Make Ident abstract; imports of Data.ByteString.Char8 down from 29 to 16 modules Most of the explicit uses of ByteStrings were eliminated by using identS, identS = identC . BS.pack which was found in GF.Grammar.CF and moved to GF.Infra.Ident. The function prefixIdent :: String -> Ident -> Ident allowed one additional import of ByteString to be eliminated. The functions isArgIdent :: Ident -> Bool getArgIndex :: Ident -> Maybe Int were needed to eliminate explicit pattern matching on Ident from two modules. --- src/compiler/GF/Compile/Optimize.hs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/compiler/GF/Compile/Optimize.hs') diff --git a/src/compiler/GF/Compile/Optimize.hs b/src/compiler/GF/Compile/Optimize.hs index 11d30d051..9ee50251b 100644 --- a/src/compiler/GF/Compile/Optimize.hs +++ b/src/compiler/GF/Compile/Optimize.hs @@ -35,7 +35,6 @@ import Data.List import qualified Data.Set as Set import Text.PrettyPrint import Debug.Trace -import qualified Data.ByteString.Char8 as BS -- | partial evaluation of concrete syntax. AR 6\/2001 -- 16\/5\/2003 -- 5\/2\/2005. @@ -194,7 +193,7 @@ factor param c i t = else V ty (map snd pvs0) --- we hope this will be fresh and don't check... in GFC would be safe - qvar = identC (BS.pack ("q_" ++ showIdent c ++ "__" ++ show i)) + qvar = identS ("q_" ++ showIdent c ++ "__" ++ show i) mkFun (patt, val) = replace (patt2term patt) (Vr qvar) val mkCases t = [(PV qvar, t)] -- cgit v1.2.3