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.
This commit is contained in:
hallgren
2013-09-19 18:23:47 +00:00
parent c08f42ce9f
commit 3d5b9bd1fd
18 changed files with 101 additions and 237 deletions

View File

@@ -215,7 +215,7 @@ freeVarsExp e = case e of
_ -> [] --- thus applies to abstract syntax only
int2var :: Int -> Ident
int2var = identC . BS.pack . ('$':) . show
int2var = identS . ('$':) . show
meta0 :: MetaId
meta0 = 0