summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gf.cabal70
-rw-r--r--src/binary/Data/Binary/Builder.hs4
-rw-r--r--src/binary/Data/Binary/Get.hs4
-rw-r--r--src/compiler/GF/Command/Abstract.hs3
-rw-r--r--src/compiler/GF/Command/Commands.hs15
-rw-r--r--src/compiler/GF/Command/Importing.hs2
-rw-r--r--src/compiler/GF/Command/Interpreter.hs4
-rw-r--r--src/compiler/GF/Command/Parse.hs3
-rw-r--r--src/compiler/GF/Compile.hs8
-rw-r--r--src/compiler/GF/Compile/CheckGrammar.hs4
-rw-r--r--src/compiler/GF/Compile/Coding.hs4
-rw-r--r--src/compiler/GF/Compile/Compute/AppPredefined.hs2
-rw-r--r--src/compiler/GF/Compile/Compute/ConcreteLazy.hs8
-rw-r--r--src/compiler/GF/Compile/Compute/ConcreteNew.hs8
-rw-r--r--src/compiler/GF/Compile/Compute/Predef.hs8
-rw-r--r--src/compiler/GF/Compile/Compute/Value.hs4
-rw-r--r--src/compiler/GF/Compile/ExampleBased.hs6
-rw-r--r--src/compiler/GF/Compile/Export.hs4
-rw-r--r--src/compiler/GF/Compile/GeneratePMCFG.hs12
-rw-r--r--src/compiler/GF/Compile/GetGrammar.hs4
-rw-r--r--src/compiler/GF/Compile/GrammarToPGF.hs19
-rw-r--r--src/compiler/GF/Compile/Instructions.hs7
-rw-r--r--src/compiler/GF/Compile/Optimize.hs8
-rw-r--r--src/compiler/GF/Compile/PGFtoHaskell.hs2
-rw-r--r--src/compiler/GF/Compile/PGFtoJS.hs12
-rw-r--r--src/compiler/GF/Compile/PGFtoLProlog.hs6
-rw-r--r--src/compiler/GF/Compile/PGFtoProlog.hs4
-rw-r--r--src/compiler/GF/Compile/PGFtoPython.hs4
-rw-r--r--src/compiler/GF/Compile/ReadFiles.hs4
-rw-r--r--src/compiler/GF/Compile/Rename.hs4
-rw-r--r--src/compiler/GF/Compile/Tags.hs4
-rw-r--r--src/compiler/GF/Compile/ToAPI.hs12
-rw-r--r--src/compiler/GF/Compile/TypeCheck/Abstract.hs4
-rw-r--r--src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs8
-rw-r--r--src/compiler/GF/Compile/TypeCheck/TC.hs2
-rw-r--r--src/compiler/GF/Data/Graph.hs2
-rw-r--r--src/compiler/GF/Data/Operations.hs4
-rw-r--r--src/compiler/GF/Data/Relation.hs2
-rw-r--r--src/compiler/GF/Data/Utilities.hs19
-rw-r--r--src/compiler/GF/Grammar/Analyse.hs4
-rw-r--r--src/compiler/GF/Grammar/Binary.hs8
-rw-r--r--src/compiler/GF/Grammar/CF.hs2
-rw-r--r--src/compiler/GF/Grammar/EBNF.hs2
-rw-r--r--src/compiler/GF/Grammar/Grammar.hs10
-rw-r--r--src/compiler/GF/Grammar/Lexer.hs4
-rw-r--r--src/compiler/GF/Grammar/Lookup.hs4
-rw-r--r--src/compiler/GF/Grammar/Macros.hs4
-rw-r--r--src/compiler/GF/Grammar/PatternMatch.hs4
-rw-r--r--src/compiler/GF/Grammar/Printer.hs8
-rw-r--r--src/compiler/GF/Grammar/Values.hs2
-rw-r--r--src/compiler/GF/Index.hs6
-rw-r--r--src/compiler/GF/Infra/CheckM.hs4
-rw-r--r--src/compiler/GF/Infra/GetOpt.hs2
-rw-r--r--src/compiler/GF/Infra/Option.hs2
-rw-r--r--src/compiler/GF/Infra/SIO.hs2
-rw-r--r--src/compiler/GF/Infra/UseIO.hs2
-rw-r--r--src/compiler/GF/Quiz.hs8
-rw-r--r--src/compiler/GF/Speech/CFG.hs10
-rw-r--r--src/compiler/GF/Speech/CFGToFA.hs10
-rw-r--r--src/compiler/GF/Speech/FiniteState.hs2
-rw-r--r--src/compiler/GF/Speech/GSL.hs4
-rw-r--r--src/compiler/GF/Speech/JSGF.hs8
-rw-r--r--src/compiler/GF/Speech/PGFToCFG.hs8
-rw-r--r--src/compiler/GF/Speech/SISR.hs6
-rw-r--r--src/compiler/GF/Speech/SLF.hs6
-rw-r--r--src/compiler/GF/Speech/SRG.hs12
-rw-r--r--src/compiler/GF/Speech/SRGS_ABNF.hs6
-rw-r--r--src/compiler/GF/Speech/SRGS_XML.hs8
-rw-r--r--src/compiler/GF/Speech/VoiceXML.hs14
-rw-r--r--src/compiler/GF/System/UseSignal.hs2
-rw-r--r--src/compiler/GFC.hs2
-rw-r--r--src/compiler/GFI.hs3
-rw-r--r--src/compiler/SimpleEditor/Convert.hs2
-rw-r--r--src/example-based/ExampleDemo.hs8
-rw-r--r--src/runtime/haskell/PGF.hs25
-rw-r--r--src/runtime/haskell/PGF/Binary.hs2
-rw-r--r--src/runtime/haskell/PGF/CId.hs4
-rw-r--r--src/runtime/haskell/PGF/Data.hs4
-rw-r--r--src/runtime/haskell/PGF/Expr.hs2
-rw-r--r--src/runtime/haskell/PGF/Forest.hs2
-rw-r--r--src/runtime/haskell/PGF/Generate.hs11
-rw-r--r--src/runtime/haskell/PGF/Linearize.hs2
-rw-r--r--src/runtime/haskell/PGF/Macros.hs8
-rw-r--r--src/runtime/haskell/PGF/Morphology.hs2
-rw-r--r--src/runtime/haskell/PGF/Optimize.hs4
-rw-r--r--src/runtime/haskell/PGF/Paraphrase.hs6
-rw-r--r--src/runtime/haskell/PGF/Parse.hs5
-rw-r--r--src/runtime/haskell/PGF/Printer.hs6
-rw-r--r--src/runtime/haskell/PGF/Probabilistic.hs4
-rw-r--r--src/runtime/haskell/PGF/SortTop.hs1
-rw-r--r--src/runtime/haskell/PGF/Tokenizer.hs2
-rw-r--r--src/runtime/haskell/PGF/Tree.hs8
-rw-r--r--src/runtime/haskell/PGF/TrieMap.hs (renamed from src/compiler/GF/Data/TrieMap.hs)2
-rw-r--r--src/runtime/haskell/PGF/Type.hs4
-rw-r--r--src/runtime/haskell/PGF/TypeCheck.hs4
-rw-r--r--src/runtime/haskell/PGF/Utilities.hs20
-rw-r--r--src/runtime/haskell/PGF/VisualizeTree.hs20
97 files changed, 309 insertions, 332 deletions
diff --git a/gf.cabal b/gf.cabal
index 22e50ae0a..3098d4d9c 100644
--- a/gf.cabal
+++ b/gf.cabal
@@ -57,7 +57,7 @@ flag custom-binary
Description: Use a customised version of the binary package
Default: True
-library
+Library
build-depends: base >= 4.2 && <5,
array,
fst,
@@ -66,11 +66,11 @@ library
random,
pretty,
mtl
- hs-source-dirs: src/compiler src/runtime/haskell
+ hs-source-dirs: src/runtime/haskell
if flag(custom-binary)
hs-source-dirs: src/binary
- other-modules:
+ exposed-modules:
-- not really part of GF but I have changed the original binary library
-- and we have to keep the copy for now.
Data.Binary
@@ -81,40 +81,38 @@ library
else
build-depends: binary
+ ghc-options: -fwarn-unused-imports
extensions:
exposed-modules:
PGF
- other-modules:
- PGF.CId
PGF.Data
PGF.Macros
+ PGF.Optimize
+ PGF.Printer
+ PGF.Signature
+ PGF.Tree
+ PGF.Utilities
+ other-modules:
+ PGF.CId
+ PGF.Binary
+ PGF.Expr
PGF.Generate
PGF.Linearize
+ PGF.Morphology
+ PGF.Paraphrase
PGF.Parse
+ PGF.Probabilistic
PGF.SortTop
- PGF.Expr
PGF.Type
- PGF.Tree
PGF.Tokenizer
- PGF.Paraphrase
PGF.TypeCheck
- PGF.Binary
- PGF.Morphology
- PGF.VisualizeTree
- PGF.Printer
- PGF.Probabilistic
PGF.Forest
- PGF.Optimize
- PGF.Signature
- GF.Data.TrieMap
- GF.Data.Utilities
- GF.Data.SortedList
- GF.Data.ErrM
- GF.Data.Relation
- GF.Data.Operations
+ PGF.TrieMap
+ PGF.VisualizeTree
-executable gf
- build-depends: base >= 4.2 && <5,
+Executable gf
+ build-depends: gf,
+ base >= 4.2 && <5,
array,
containers,
bytestring,
@@ -131,7 +129,7 @@ executable gf
haskeline,
parallel>=3,
utf8-string
- ghc-options: -threaded
+ ghc-options: -threaded -fwarn-unused-imports
if flag(server)
build-depends: httpd-shed, network, json, cgi
-- ,silently
@@ -153,21 +151,17 @@ executable gf
if impl(ghc>=7.0)
ghc-options: -rtsopts
- hs-source-dirs: src/compiler src/runtime/haskell
+ hs-source-dirs: src/compiler
- if flag(custom-binary)
- hs-source-dirs: src/binary
- other-modules: Data.Binary.IEEE754
- else
+ if !flag(custom-binary)
build-depends: binary, data-binary-ieee754
extensions:
main-is: GF.hs
other-modules:
GF.Data.BacktrackM
- GF.Data.TrieMap
GF.Data.Utilities
- GF.Data.SortedList
+-- GF.Data.SortedList
GF.Data.ErrM
GF.Data.Operations
GF.Data.Str
@@ -227,20 +221,6 @@ executable gf
GF.Compile
GF.Index
GF.Quiz
- PGF
- PGF.CId
- PGF.Data
- PGF.Expr
- PGF.Type
- PGF.Tree
- PGF.Macros
- PGF.Generate
- PGF.Linearize
- PGF.Binary
- PGF.Paraphrase
- PGF.TypeCheck
- PGF.Printer
- PGF.Optimize
GFC
GFI
diff --git a/src/binary/Data/Binary/Builder.hs b/src/binary/Data/Binary/Builder.hs
index 20e287237..183483945 100644
--- a/src/binary/Data/Binary/Builder.hs
+++ b/src/binary/Data/Binary/Builder.hs
@@ -56,7 +56,7 @@ module Data.Binary.Builder (
import Foreign
import Data.Monoid
-import Data.Word
+--import Data.Word
import qualified Data.ByteString as S
import qualified Data.ByteString.Lazy as L
@@ -66,7 +66,7 @@ import qualified Data.ByteString.Base as S
#else
import Data.ByteString.Internal (inlinePerformIO)
import qualified Data.ByteString.Internal as S
-import qualified Data.ByteString.Lazy.Internal as L
+--import qualified Data.ByteString.Lazy.Internal as L
#endif
#if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__)
diff --git a/src/binary/Data/Binary/Get.hs b/src/binary/Data/Binary/Get.hs
index 728720b3e..c2c43b691 100644
--- a/src/binary/Data/Binary/Get.hs
+++ b/src/binary/Data/Binary/Get.hs
@@ -68,7 +68,7 @@ module Data.Binary.Get (
) where
-import Control.Monad (when,liftM,ap)
+import Control.Monad (when,liftM) -- ap
import Control.Monad.Fix
import Data.Maybe (isNothing)
@@ -95,7 +95,7 @@ import Data.STRef
#if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__)
import GHC.Base
import GHC.Word
-import GHC.Int
+--import GHC.Int
#endif
-- | The parse state
diff --git a/src/compiler/GF/Command/Abstract.hs b/src/compiler/GF/Command/Abstract.hs
index 5469f12ac..8b7b824f0 100644
--- a/src/compiler/GF/Command/Abstract.hs
+++ b/src/compiler/GF/Command/Abstract.hs
@@ -1,7 +1,6 @@
module GF.Command.Abstract where
-import PGF.CId(CId,mkCId)
-import PGF.Data(Expr)
+import PGF(CId,mkCId,Expr)
type Ident = String
diff --git a/src/compiler/GF/Command/Commands.hs b/src/compiler/GF/Command/Commands.hs
index 8a19d2729..a05b3cf20 100644
--- a/src/compiler/GF/Command/Commands.hs
+++ b/src/compiler/GF/Command/Commands.hs
@@ -14,13 +14,12 @@ import Prelude hiding (putStrLn)
import PGF
-import PGF.VisualizeTree(getDepLabels)
import PGF.Macros(lookStartCat,functionsToCat,lookValCat,restrictPGF,hasLin)
import PGF.Data(abstract,funs,cats,Literal(LStr),Expr(EFun,ELit)) ----
-import PGF.Morphology(isInMorpho,morphoKnown)
+--import PGF.Morphology(isInMorpho,morphoKnown)
import PGF.Printer(ppFun,ppCat)
-import PGF.Probabilistic(rankTreesByProbs,probTree,setProbabilities)
-import PGF.Generate (generateRandomFrom) ----
+--import PGF.Probabilistic(rankTreesByProbs,probTree,setProbabilities)
+--import PGF.Generate (generateRandomFrom) ----
import PGF.Tree (Tree(Fun), expr2tree, tree2expr)
import PGF.Optimize(optimizePGF)
@@ -30,7 +29,7 @@ import GF.Compile.ExampleBased
import GF.Infra.Option (noOptions, readOutputFormat, outputFormatsExpl)
import GF.Infra.UseIO(writeUTF8File)
import GF.Infra.SIO
-import GF.Data.ErrM ----
+--import GF.Data.ErrM ----
import GF.Command.Abstract
import GF.Command.Messages
import GF.Text.Lexing
@@ -43,13 +42,13 @@ import GF.Command.TreeOperations ---- temporary place for typecheck and compute
import GF.Data.Operations
import Data.Binary (encodeFile)
-import Data.List
+import Data.List(intersperse,nub)
import Data.Maybe
import qualified Data.Map as Map
--import System.Cmd(system) -- use GF.Infra.UseIO.restricedSystem instead!
import Text.PrettyPrint
import Data.List (sort)
-import Debug.Trace
+--import Debug.Trace
--import System.Random (newStdGen) ----
@@ -940,7 +939,7 @@ allCommands = Map.fromList [
let outp = valStrOpts "output" "dot" opts
mlab <- case file of
"" -> return Nothing
- _ -> restricted (readFile file) >>= return . Just . getDepLabels . lines
+ _ -> (Just . getDepLabels . lines) `fmap` restricted (readFile file)
let lang = optLang pgf opts
let grphs = unlines $ map (graphvizDependencyTree outp debug mlab Nothing pgf lang) es
if isFlag "view" opts || isFlag "format" opts then do
diff --git a/src/compiler/GF/Command/Importing.hs b/src/compiler/GF/Command/Importing.hs
index ce06156e4..4697e8b64 100644
--- a/src/compiler/GF/Command/Importing.hs
+++ b/src/compiler/GF/Command/Importing.hs
@@ -12,7 +12,7 @@ import GF.Infra.UseIO
import GF.Infra.Option
import GF.Data.ErrM
-import Data.List (nubBy)
+--import Data.List (nubBy)
import System.FilePath
-- import a grammar in an environment where it extends an existing grammar
diff --git a/src/compiler/GF/Command/Interpreter.hs b/src/compiler/GF/Command/Interpreter.hs
index 78f243fff..f27ba47da 100644
--- a/src/compiler/GF/Command/Interpreter.hs
+++ b/src/compiler/GF/Command/Interpreter.hs
@@ -13,10 +13,8 @@ import GF.Command.Abstract
import GF.Command.Parse
import PGF
import PGF.Data
-import PGF.Morphology
-import GF.System.Signal
+--import PGF.Morphology
import GF.Infra.SIO
-import GF.Infra.Option
import Text.PrettyPrint
import Control.Monad(when)
diff --git a/src/compiler/GF/Command/Parse.hs b/src/compiler/GF/Command/Parse.hs
index d68a0bcd7..855fdb54e 100644
--- a/src/compiler/GF/Command/Parse.hs
+++ b/src/compiler/GF/Command/Parse.hs
@@ -1,7 +1,6 @@
module GF.Command.Parse(readCommandLine, pCommand) where
-import PGF.CId
-import PGF.Expr
+import PGF
import GF.Command.Abstract
import Data.Char
diff --git a/src/compiler/GF/Compile.hs b/src/compiler/GF/Compile.hs
index e572920df..00eec6e30 100644
--- a/src/compiler/GF/Compile.hs
+++ b/src/compiler/GF/Compile.hs
@@ -17,7 +17,6 @@ import GF.Compile.Coding
import GF.Compile.Tags
import GF.Grammar.Grammar
-import GF.Grammar.Lookup
import GF.Grammar.Printer
import GF.Grammar.Binary
@@ -34,15 +33,10 @@ import System.FilePath
import qualified Data.Map as Map
--import qualified Data.Set as Set
import Data.List(nub)
-import Data.Maybe (isNothing)
import Text.PrettyPrint
-import PGF.CId
-import PGF.Data
-import PGF.Macros
import PGF.Optimize
-import PGF.Probabilistic
-
+import PGF
-- | Compiles a number of source files and builds a 'PGF' structure for them.
compileToPGF :: Options -> [FilePath] -> IOE PGF
diff --git a/src/compiler/GF/Compile/CheckGrammar.hs b/src/compiler/GF/Compile/CheckGrammar.hs
index 736046179..967925275 100644
--- a/src/compiler/GF/Compile/CheckGrammar.hs
+++ b/src/compiler/GF/Compile/CheckGrammar.hs
@@ -33,8 +33,8 @@ import qualified GF.Compile.Compute.ConcreteNew as CN
import GF.Grammar
import GF.Grammar.Lexer
import GF.Grammar.Lookup
-import GF.Grammar.Predef
-import GF.Grammar.PatternMatch
+--import GF.Grammar.Predef
+--import GF.Grammar.PatternMatch
import GF.Data.Operations
import GF.Infra.CheckM
diff --git a/src/compiler/GF/Compile/Coding.hs b/src/compiler/GF/Compile/Coding.hs
index 9d7022229..d635ff2e4 100644
--- a/src/compiler/GF/Compile/Coding.hs
+++ b/src/compiler/GF/Compile/Coding.hs
@@ -3,10 +3,10 @@ module GF.Compile.Coding where
import GF.Grammar.Grammar
import GF.Grammar.Macros
import GF.Text.Coding
-import GF.Infra.Option
+--import GF.Infra.Option
import GF.Data.Operations
-import Data.Char
+--import Data.Char
import System.IO
import qualified Data.ByteString.Char8 as BS
diff --git a/src/compiler/GF/Compile/Compute/AppPredefined.hs b/src/compiler/GF/Compile/Compute/AppPredefined.hs
index 861a74a89..a597726c9 100644
--- a/src/compiler/GF/Compile/Compute/AppPredefined.hs
+++ b/src/compiler/GF/Compile/Compute/AppPredefined.hs
@@ -16,7 +16,7 @@ module GF.Compile.Compute.AppPredefined (
isInPredefined, typPredefined, arrityPredefined, predefModInfo, appPredefined
) where
-import GF.Infra.Ident(identS)
+--import GF.Infra.Ident(identS)
import GF.Infra.Option
import GF.Data.Operations
import GF.Grammar
diff --git a/src/compiler/GF/Compile/Compute/ConcreteLazy.hs b/src/compiler/GF/Compile/Compute/ConcreteLazy.hs
index 0e3a4fb45..cef4c398c 100644
--- a/src/compiler/GF/Compile/Compute/ConcreteLazy.hs
+++ b/src/compiler/GF/Compile/Compute/ConcreteLazy.hs
@@ -17,9 +17,9 @@ module GF.Compile.Compute.ConcreteLazy (computeConcrete, computeTerm,checkPredef
import GF.Data.Operations
import GF.Grammar.Grammar
import GF.Infra.Ident
-import GF.Infra.Option
+--import GF.Infra.Option
import GF.Data.Str
-import GF.Grammar.ShowTerm
+--import GF.Grammar.ShowTerm
import GF.Grammar.Printer
import GF.Grammar.Predef
import GF.Grammar.Macros
@@ -30,8 +30,8 @@ import GF.Grammar.Lockfield (isLockLabel,unlockRecord) ----
import GF.Compile.Compute.AppPredefined
-import Data.List (nub,intersperse)
-import Control.Monad (liftM2, liftM)
+import Data.List (nub) --intersperse
+--import Control.Monad (liftM2, liftM)
import Control.Monad.Identity
import Text.PrettyPrint
diff --git a/src/compiler/GF/Compile/Compute/ConcreteNew.hs b/src/compiler/GF/Compile/Compute/ConcreteNew.hs
index 3e87ea43a..dd49fffed 100644
--- a/src/compiler/GF/Compile/Compute/ConcreteNew.hs
+++ b/src/compiler/GF/Compile/Compute/ConcreteNew.hs
@@ -9,15 +9,15 @@ import GF.Grammar hiding (Env, VGen, VApp, VRecType)
import GF.Grammar.Lookup(lookupResDefLoc,allParamValues)
import GF.Grammar.Predef(cPredef,cErrorType,cTok,cStr)
import GF.Grammar.PatternMatch(matchPattern,measurePatt)
-import GF.Grammar.Lockfield(unlockRecord,lockLabel,isLockLabel,lockRecType)
+import GF.Grammar.Lockfield(lockLabel,isLockLabel,lockRecType) --unlockRecord
import GF.Compile.Compute.Value hiding (Error)
import GF.Compile.Compute.Predef(predef,predefName,delta)
import GF.Data.Str(Str,glueStr,str2strings,str,sstr,plusStr,strTok)
import GF.Data.Operations(Err,err,errIn,maybeErr,combinations,mapPairsM)
-import GF.Data.Utilities(mapFst,mapSnd,mapBoth,apBoth,apSnd)
+import GF.Data.Utilities(mapFst,mapSnd,mapBoth)
import Control.Monad(ap,liftM,liftM2,mplus,unless)
-import Data.List (findIndex,intersect,isInfixOf,nub,elemIndex,(\\))
-import Data.Char (isUpper,toUpper,toLower)
+import Data.List (findIndex,intersect,nub,elemIndex,(\\)) --,isInfixOf
+--import Data.Char (isUpper,toUpper,toLower)
import Text.PrettyPrint
import qualified Data.Map as Map
--import Debug.Trace(trace)
diff --git a/src/compiler/GF/Compile/Compute/Predef.hs b/src/compiler/GF/Compile/Compute/Predef.hs
index b8b7f7c77..8c793502a 100644
--- a/src/compiler/GF/Compile/Compute/Predef.hs
+++ b/src/compiler/GF/Compile/Compute/Predef.hs
@@ -9,13 +9,13 @@ import Data.List (isInfixOf)
import Data.Char (isUpper,toLower,toUpper)
import Control.Monad(ap)
-import GF.Data.Utilities (mapSnd,apBoth)
+import GF.Data.Utilities (apBoth) --mapSnd
import GF.Compile.Compute.Value
-import GF.Infra.Ident (Ident,varX,showIdent)
-import GF.Data.Operations(Err,err)
+import GF.Infra.Ident (Ident,showIdent) --,varX
+import GF.Data.Operations(Err) -- ,err
import GF.Grammar.Predef
-import PGF.Data(BindType(..))
+--import PGF.Data(BindType(..))
--------------------------------------------------------------------------------
class Predef a where
diff --git a/src/compiler/GF/Compile/Compute/Value.hs b/src/compiler/GF/Compile/Compute/Value.hs
index e72b06778..21a3eb20e 100644
--- a/src/compiler/GF/Compile/Compute/Value.hs
+++ b/src/compiler/GF/Compile/Compute/Value.hs
@@ -1,8 +1,8 @@
module GF.Compile.Compute.Value where
-import GF.Grammar.Grammar(Label,Type,TInfo,MetaId,Patt,QIdent)
+import GF.Grammar.Grammar(Label,Type,MetaId,Patt,QIdent)
import PGF.Data(BindType)
import GF.Infra.Ident(Ident)
-import Text.Show.Functions
+import Text.Show.Functions()
import Data.Ix(Ix)
-- | Self-contained (not quite) representation of values
diff --git a/src/compiler/GF/Compile/ExampleBased.hs b/src/compiler/GF/Compile/ExampleBased.hs
index 39d88ae49..9300fd32d 100644
--- a/src/compiler/GF/Compile/ExampleBased.hs
+++ b/src/compiler/GF/Compile/ExampleBased.hs
@@ -4,9 +4,9 @@ module GF.Compile.ExampleBased (
) where
import PGF
-import PGF.Probabilistic
-import PGF.Morphology
-import GF.Compile.ToAPI
+--import PGF.Probabilistic
+--import PGF.Morphology
+--import GF.Compile.ToAPI
import Data.List
diff --git a/src/compiler/GF/Compile/Export.hs b/src/compiler/GF/Compile/Export.hs
index b7f00677f..727a21f2d 100644
--- a/src/compiler/GF/Compile/Export.hs
+++ b/src/compiler/GF/Compile/Export.hs
@@ -1,14 +1,14 @@
module GF.Compile.Export where
import PGF
-import PGF.Printer
+import PGF.Printer(ppPGF)
import GF.Compile.PGFtoHaskell
import GF.Compile.PGFtoProlog
import GF.Compile.PGFtoLProlog
import GF.Compile.PGFtoJS
import GF.Compile.PGFtoPython
import GF.Infra.Option
-import GF.Speech.CFG
+--import GF.Speech.CFG
import GF.Speech.PGFToCFG
import GF.Speech.SRGS_ABNF
import GF.Speech.SRGS_XML
diff --git a/src/compiler/GF/Compile/GeneratePMCFG.hs b/src/compiler/GF/Compile/GeneratePMCFG.hs
index bf4bebdec..99df9af3e 100644
--- a/src/compiler/GF/Compile/GeneratePMCFG.hs
+++ b/src/compiler/GF/Compile/GeneratePMCFG.hs
@@ -13,7 +13,7 @@ module GF.Compile.GeneratePMCFG
(generatePMCFG, pgfCncCat, addPMCFG, resourceValues
) where
-import PGF.CId
+--import PGF.CId
import PGF.Data(CncCat(..),Symbol(..),fidVar)
import GF.Infra.Option
@@ -24,23 +24,23 @@ import GF.Grammar.Lockfield (isLockLabel)
import GF.Data.BacktrackM
import GF.Data.Operations
import GF.Infra.UseIO (IOE)
-import GF.Data.Utilities (updateNthM, updateNth)
+import GF.Data.Utilities (updateNthM) --updateNth
import GF.Compile.Compute.ConcreteNew(GlobalEnv,normalForm,resourceValues,ppL)
import System.IO(hPutStr,hPutStrLn,stderr)
import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Data.List as List
-import qualified Data.IntMap as IntMap
+--import qualified Data.IntMap as IntMap
import qualified Data.IntSet as IntSet
import Text.PrettyPrint hiding (Str)
import Data.Array.IArray
import Data.Array.Unboxed
-import Data.Maybe
-import Data.Char (isDigit)
+--import Data.Maybe
+--import Data.Char (isDigit)
import Control.Monad
import Control.Monad.Identity
import Control.Monad.Trans (liftIO)
-import Control.Exception
+--import Control.Exception
----------------------------------------------------------------------
-- main conversion function
diff --git a/src/compiler/GF/Compile/GetGrammar.hs b/src/compiler/GF/Compile/GetGrammar.hs
index b8832ba64..17477f49a 100644
--- a/src/compiler/GF/Compile/GetGrammar.hs
+++ b/src/compiler/GF/Compile/GetGrammar.hs
@@ -25,9 +25,9 @@ import GF.Grammar.Lexer
import GF.Grammar.Parser
import GF.Grammar.Grammar
-import GF.Compile.ReadFiles
+--import GF.Compile.ReadFiles
-import Data.Char (toUpper)
+--import Data.Char (toUpper)
import qualified Data.ByteString.Char8 as BS
import Control.Monad (foldM)
import System.Cmd (system)
diff --git a/src/compiler/GF/Compile/GrammarToPGF.hs b/src/compiler/GF/Compile/GrammarToPGF.hs
index b8a4f36fa..ce31d5dc1 100644
--- a/src/compiler/GF/Compile/GrammarToPGF.hs
+++ b/src/compiler/GF/Compile/GrammarToPGF.hs
@@ -1,24 +1,23 @@
{-# LANGUAGE BangPatterns #-}
module GF.Compile.GrammarToPGF (mkCanon2pgf) where
-import GF.Compile.Export
+--import GF.Compile.Export
import GF.Compile.GeneratePMCFG
import GF.Compile.GenerateBC
-import PGF.CId
+import PGF(CId,mkCId,bsCId)
import PGF.Data(fidInt,fidFloat,fidString,fidVar)
import PGF.Optimize(updateProductionIndices)
-import qualified PGF.Macros as CM
+--import qualified PGF.Macros as CM
import qualified PGF.Data as C
import qualified PGF.Data as D
import GF.Grammar.Predef
-import GF.Grammar.Printer
+--import GF.Grammar.Printer
import GF.Grammar.Grammar
import qualified GF.Grammar.Lookup as Look
import qualified GF.Grammar as A
import qualified GF.Grammar.Macros as GM
-import qualified GF.Infra.Option as O
-import GF.Compile.GeneratePMCFG
+--import GF.Compile.GeneratePMCFG
import GF.Infra.Ident
import GF.Infra.Option
@@ -26,13 +25,13 @@ import GF.Infra.UseIO (IOE)
import GF.Data.Operations
import Data.List
-import Data.Char (isDigit,isSpace)
+--import Data.Char (isDigit,isSpace)
import qualified Data.Set as Set
import qualified Data.Map as Map
import qualified Data.IntMap as IntMap
import Data.Array.IArray
-import Text.PrettyPrint
-import Control.Monad.Identity
+--import Text.PrettyPrint
+--import Control.Monad.Identity
mkCanon2pgf :: Options -> SourceGrammar -> Ident -> IOE D.PGF
mkCanon2pgf opts gr am = do
@@ -104,7 +103,7 @@ mkCanon2pgf opts gr am = do
return (seqs, ((m,id), info) : is)
i2i :: Ident -> CId
-i2i = CId . ident2bs
+i2i = bsCId . ident2bs
mkType :: [Ident] -> A.Type -> C.Type
mkType scope t =
diff --git a/src/compiler/GF/Compile/Instructions.hs b/src/compiler/GF/Compile/Instructions.hs
index 700fe33c2..586671a4d 100644
--- a/src/compiler/GF/Compile/Instructions.hs
+++ b/src/compiler/GF/Compile/Instructions.hs
@@ -1,12 +1,13 @@
module GF.Compile.Instructions where
-import Data.IORef
+--import Data.IORef
import Data.Binary
import Data.Binary.Put
import Data.Binary.Get
import Data.Binary.IEEE754
-import PGF.CId
-import PGF.Binary
+import PGF(CId)
+--import PGF.CId
+--import PGF.Binary
type IntRef = Int
type AConstant = CId
diff --git a/src/compiler/GF/Compile/Optimize.hs b/src/compiler/GF/Compile/Optimize.hs
index 37fe21cc0..e5289fe7b 100644
--- a/src/compiler/GF/Compile/Optimize.hs
+++ b/src/compiler/GF/Compile/Optimize.hs
@@ -23,15 +23,15 @@ import GF.Grammar.Lookup
import GF.Grammar.Predef
--import GF.Compile.Refresh
import GF.Compile.Compute.Concrete
-import GF.Compile.CheckGrammar
-import GF.Compile.Update
+--import GF.Compile.CheckGrammar
+--import GF.Compile.Update
import GF.Data.Operations
-import GF.Infra.CheckM
+--import GF.Infra.CheckM
import GF.Infra.Option
import Control.Monad
-import Data.List
+--import Data.List
import qualified Data.Set as Set
import Text.PrettyPrint
import Debug.Trace
diff --git a/src/compiler/GF/Compile/PGFtoHaskell.hs b/src/compiler/GF/Compile/PGFtoHaskell.hs
index d1032983d..17c9bb2f5 100644
--- a/src/compiler/GF/Compile/PGFtoHaskell.hs
+++ b/src/compiler/GF/Compile/PGFtoHaskell.hs
@@ -16,7 +16,7 @@
module GF.Compile.PGFtoHaskell (grammar2haskell) where
-import PGF.CId
+import PGF(showCId)
import PGF.Data
import PGF.Macros
diff --git a/src/compiler/GF/Compile/PGFtoJS.hs b/src/compiler/GF/Compile/PGFtoJS.hs
index 5cb01fac4..1730d62c4 100644
--- a/src/compiler/GF/Compile/PGFtoJS.hs
+++ b/src/compiler/GF/Compile/PGFtoJS.hs
@@ -1,18 +1,18 @@
module GF.Compile.PGFtoJS (pgf2js) where
-import PGF.CId
+import PGF(showCId)
import PGF.Data hiding (mkStr)
import qualified PGF.Macros as M
import qualified GF.JavaScript.AbsJS as JS
import qualified GF.JavaScript.PrintJS as JS
-import GF.Data.ErrM
-import GF.Infra.Option
+--import GF.Data.ErrM
+--import GF.Infra.Option
-import Control.Monad (mplus)
-import Data.Array.Unboxed (UArray)
+--import Control.Monad (mplus)
+--import Data.Array.Unboxed (UArray)
import qualified Data.Array.IArray as Array
-import Data.Maybe (fromMaybe)
+--import Data.Maybe (fromMaybe)
import Data.Map (Map)
import qualified Data.Set as Set
import qualified Data.Map as Map
diff --git a/src/compiler/GF/Compile/PGFtoLProlog.hs b/src/compiler/GF/Compile/PGFtoLProlog.hs
index 670e3a952..2ab5a26d2 100644
--- a/src/compiler/GF/Compile/PGFtoLProlog.hs
+++ b/src/compiler/GF/Compile/PGFtoLProlog.hs
@@ -1,13 +1,13 @@
module GF.Compile.PGFtoLProlog(grammar2lambdaprolog_mod, grammar2lambdaprolog_sig) where
-import PGF.CId
+import PGF(mkCId,ppCId,showCId,wildCId)
import PGF.Data hiding (ppExpr, ppType, ppHypo)
-import PGF.Macros
+--import PGF.Macros
import Data.List
import Data.Maybe
import Text.PrettyPrint
import qualified Data.Map as Map
-import Debug.Trace
+--import Debug.Trace
grammar2lambdaprolog_mod pgf = render $
text "module" <+> ppCId (absname pgf) <> char '.' $$
diff --git a/src/compiler/GF/Compile/PGFtoProlog.hs b/src/compiler/GF/Compile/PGFtoProlog.hs
index 02993ac65..061d9e874 100644
--- a/src/compiler/GF/Compile/PGFtoProlog.hs
+++ b/src/compiler/GF/Compile/PGFtoProlog.hs
@@ -8,9 +8,9 @@
module GF.Compile.PGFtoProlog (grammar2prolog) where
-import PGF.CId
+import PGF(mkCId,wildCId,showCId)
import PGF.Data
-import PGF.Macros
+--import PGF.Macros
import GF.Data.Operations
diff --git a/src/compiler/GF/Compile/PGFtoPython.hs b/src/compiler/GF/Compile/PGFtoPython.hs
index 1877f8d70..608d74f96 100644
--- a/src/compiler/GF/Compile/PGFtoPython.hs
+++ b/src/compiler/GF/Compile/PGFtoPython.hs
@@ -8,7 +8,7 @@
module GF.Compile.PGFtoPython (pgf2python) where
-import PGF.CId
+import PGF(showCId)
import PGF.Data
import qualified PGF.Macros as M
@@ -18,7 +18,7 @@ import qualified Data.Array.IArray as Array
import qualified Data.Set as Set
import qualified Data.Map as Map
import qualified Data.IntMap as IntMap
-import Data.List (intersperse)
+--import Data.List (intersperse)
pgf2python :: PGF -> String
pgf2python pgf = ("# -*- coding: utf-8 -*-" ++++
diff --git a/src/compiler/GF/Compile/ReadFiles.hs b/src/compiler/GF/Compile/ReadFiles.hs
index e5b85a0e8..de95cb30a 100644
--- a/src/compiler/GF/Compile/ReadFiles.hs
+++ b/src/compiler/GF/Compile/ReadFiles.hs
@@ -35,8 +35,8 @@ import GF.Grammar.Grammar
import GF.Grammar.Binary
import Control.Monad
-import Data.Char
-import Data.List
+--import Data.Char
+--import Data.List
import Data.Maybe(isJust)
import qualified Data.ByteString.Char8 as BS
import qualified Data.Map as Map
diff --git a/src/compiler/GF/Compile/Rename.hs b/src/compiler/GF/Compile/Rename.hs
index 5c8b7bf20..7effded1d 100644
--- a/src/compiler/GF/Compile/Rename.hs
+++ b/src/compiler/GF/Compile/Rename.hs
@@ -34,8 +34,8 @@ import GF.Infra.Ident
import GF.Infra.CheckM
import GF.Grammar.Macros
import GF.Grammar.Printer
-import GF.Grammar.Lookup
-import GF.Grammar.Printer
+--import GF.Grammar.Lookup
+--import GF.Grammar.Printer
import GF.Data.Operations
import Control.Monad
diff --git a/src/compiler/GF/Compile/Tags.hs b/src/compiler/GF/Compile/Tags.hs
index ccb47a219..16391c61b 100644
--- a/src/compiler/GF/Compile/Tags.hs
+++ b/src/compiler/GF/Compile/Tags.hs
@@ -8,10 +8,10 @@ import GF.Infra.UseIO
import GF.Data.Operations
import GF.Grammar
-import Data.List
+--import Data.List
import qualified Data.Map as Map
import qualified Data.Set as Set
-import Control.Monad
+--import Control.Monad
import Text.PrettyPrint
import System.FilePath
diff --git a/src/compiler/GF/Compile/ToAPI.hs b/src/compiler/GF/Compile/ToAPI.hs
index e118ea208..2fdbea360 100644
--- a/src/compiler/GF/Compile/ToAPI.hs
+++ b/src/compiler/GF/Compile/ToAPI.hs
@@ -2,14 +2,14 @@ module GF.Compile.ToAPI
(stringToAPI,exprToAPI)
where
-import PGF.Expr
-import PGF.CId
+import PGF.Data
+import PGF(showCId)
import Data.Maybe
-import System.IO
-import Control.Monad
-import Data.Set as Set (fromList,toList)
+--import System.IO
+--import Control.Monad
+--import Data.Set as Set (fromList,toList)
import Data.List
-import Data.Map(Map)
+--import Data.Map(Map)
import qualified Data.Map as Map
import PGF.Signature
diff --git a/src/compiler/GF/Compile/TypeCheck/Abstract.hs b/src/compiler/GF/Compile/TypeCheck/Abstract.hs
index dfded01d2..1fa4c01c6 100644
--- a/src/compiler/GF/Compile/TypeCheck/Abstract.hs
+++ b/src/compiler/GF/Compile/TypeCheck/Abstract.hs
@@ -26,11 +26,11 @@ import GF.Grammar
import GF.Grammar.Lookup
import GF.Grammar.Unify
--import GF.Compile.Refresh
-import GF.Compile.Compute.Abstract
+--import GF.Compile.Compute.Abstract
import GF.Compile.TypeCheck.TC
import Text.PrettyPrint
-import Control.Monad (foldM, liftM, liftM2)
+--import Control.Monad (foldM, liftM, liftM2)
-- | invariant way of creating TCEnv from context
initTCEnv gamma =
diff --git a/src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs b/src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs
index 583d614d3..301f1da0b 100644
--- a/src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs
+++ b/src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs
@@ -7,16 +7,16 @@ import GF.Grammar.Lockfield
import GF.Compile.Compute.ConcreteNew1
import GF.Compile.Compute.AppPredefined
import GF.Infra.CheckM
-import GF.Infra.UseIO
+--import GF.Infra.UseIO
import GF.Data.Operations
import Text.PrettyPrint
import Data.List (nub, (\\), tails)
import qualified Data.IntMap as IntMap
-import GF.Grammar.Parser
-import System.IO
-import Debug.Trace
+--import GF.Grammar.Parser
+--import System.IO
+--import Debug.Trace
checkLType :: SourceGrammar -> Term -> Type -> Check (Term, Type)
checkLType gr t ty = runTcM $ do
diff --git a/src/compiler/GF/Compile/TypeCheck/TC.hs b/src/compiler/GF/Compile/TypeCheck/TC.hs
index 5a7fa9479..5dd276303 100644
--- a/src/compiler/GF/Compile/TypeCheck/TC.hs
+++ b/src/compiler/GF/Compile/TypeCheck/TC.hs
@@ -26,7 +26,7 @@ import GF.Grammar
import GF.Grammar.Predef
import Control.Monad
-import Data.List (sortBy)
+--import Data.List (sortBy)
import Data.Maybe
import Text.PrettyPrint
diff --git a/src/compiler/GF/Data/Graph.hs b/src/compiler/GF/Data/Graph.hs
index bfb289860..797325bbb 100644
--- a/src/compiler/GF/Data/Graph.hs
+++ b/src/compiler/GF/Data/Graph.hs
@@ -24,7 +24,7 @@ module GF.Data.Graph ( Graph(..), Node, Edge, NodeInfo
, reverseGraph, mergeGraphs, renameNodes
) where
-import GF.Data.Utilities
+--import GF.Data.Utilities
import Data.List
import Data.Maybe
diff --git a/src/compiler/GF/Data/Operations.hs b/src/compiler/GF/Data/Operations.hs
index b70df6a90..06e54775e 100644
--- a/src/compiler/GF/Data/Operations.hs
+++ b/src/compiler/GF/Data/Operations.hs
@@ -60,10 +60,10 @@ module GF.Data.Operations (-- * misc functions
) where
import Data.Char (isSpace, toUpper, isSpace, isDigit)
-import Data.List (nub, sortBy, sort, deleteBy, nubBy, partition, (\\))
+import Data.List (nub, partition, (\\))
import qualified Data.Map as Map
import Data.Map (Map)
-import Control.Monad (liftM,liftM2, MonadPlus, mzero, mplus)
+import Control.Monad (liftM,liftM2)
import GF.Data.ErrM
import GF.Data.Relation
diff --git a/src/compiler/GF/Data/Relation.hs b/src/compiler/GF/Data/Relation.hs
index b888a0fd7..195faf96f 100644
--- a/src/compiler/GF/Data/Relation.hs
+++ b/src/compiler/GF/Data/Relation.hs
@@ -26,7 +26,7 @@ module GF.Data.Relation (Rel, mkRel, mkRel'
, topologicalSort, findCycles) where
import Data.Foldable (toList)
-import Data.List
+--import Data.List
import Data.Maybe
import Data.Map (Map)
import qualified Data.Map as Map
diff --git a/src/compiler/GF/Data/Utilities.hs b/src/compiler/GF/Data/Utilities.hs
index f953938c8..792f7aa4a 100644
--- a/src/compiler/GF/Data/Utilities.hs
+++ b/src/compiler/GF/Data/Utilities.hs
@@ -12,12 +12,12 @@
-----------------------------------------------------------------------------
-module GF.Data.Utilities where
+module GF.Data.Utilities(module GF.Data.Utilities, module PGF.Utilities) where
import Data.Maybe
import Data.List
import Control.Monad (MonadPlus(..),liftM)
-import qualified Data.Set as Set
+import PGF.Utilities
-- * functions on lists
@@ -68,17 +68,6 @@ safeInit :: [a] -> [a]
safeInit [] = []
safeInit xs = init xs
--- | Like 'nub', but O(n log n) instead of O(n^2), since it uses a set to lookup previous things.
--- The result list is stable (the elements are returned in the order they occur), and lazy.
--- Requires that the list elements can be compared by Ord.
--- Code ruthlessly taken from http://hpaste.org/54411
-nub' :: Ord a => [a] -> [a]
-nub' = loop Set.empty
- where loop _ [] = []
- loop seen (x : xs)
- | Set.member x seen = loop seen xs
- | otherwise = x : loop (Set.insert x seen) xs
-
-- | Sorts and then groups elements given an ordering of the
-- elements.
sortGroupBy :: (a -> a -> Ordering) -> [a] -> [[a]]
@@ -108,10 +97,6 @@ buildMultiMap :: Ord a => [(a,b)] -> [(a,[b])]
buildMultiMap = map (\g -> (fst (head g), map snd g) )
. sortGroupBy (compareBy fst)
--- | Replace all occurences of an element by another element.
-replace :: Eq a => a -> a -> [a] -> [a]
-replace x y = map (\z -> if z == x then y else z)
-
-- * equality functions
-- | Use an ordering function as an equality predicate.
diff --git a/src/compiler/GF/Grammar/Analyse.hs b/src/compiler/GF/Grammar/Analyse.hs
index 0df678345..023b76ad3 100644
--- a/src/compiler/GF/Grammar/Analyse.hs
+++ b/src/compiler/GF/Grammar/Analyse.hs
@@ -10,7 +10,7 @@ module GF.Grammar.Analyse (
import GF.Grammar.Grammar
import GF.Infra.Ident
-import GF.Infra.Option ---
+--import GF.Infra.Option ---
import GF.Grammar.Macros
import GF.Grammar.Lookup
@@ -18,7 +18,7 @@ import GF.Data.Operations
import qualified Data.Map as Map
import Data.List (nub)
-import Debug.Trace
+--import Debug.Trace
stripSourceGrammar :: SourceGrammar -> SourceGrammar
stripSourceGrammar sgr = mGrammar [(i, m{jments = Map.map stripInfo (jments m)}) | (i,m) <- modules sgr]
diff --git a/src/compiler/GF/Grammar/Binary.hs b/src/compiler/GF/Grammar/Binary.hs
index ba12fde06..6641b5718 100644
--- a/src/compiler/GF/Grammar/Binary.hs
+++ b/src/compiler/GF/Grammar/Binary.hs
@@ -12,9 +12,9 @@ module GF.Grammar.Binary(decodeModule,decodeModuleHeader,encodeModule) where
import Prelude hiding (catch)
import Control.Exception(catch,ErrorCall(..),throwIO)
-import Data.Char
+--import Data.Char
import Data.Binary
-import Control.Monad
+--import Control.Monad
import qualified Data.Map as Map
import qualified Data.ByteString.Char8 as BS
@@ -23,7 +23,7 @@ import GF.Infra.Ident
import GF.Infra.Option
import GF.Grammar.Grammar
-import PGF.Binary
+import PGF() -- Binary instances
-- Please change this every time when the GFO format is changed
gfoVersion = "GF02"
@@ -346,3 +346,5 @@ decodeFile' fpath = addFPath fpath (decodeFile fpath)
addFPath fpath m = m `catch` handle
where
handle (ErrorCall msg) = throwIO (ErrorCall (fpath++": "++msg))
+
+decodingError = fail "This file was compiled with different version of GF"
diff --git a/src/compiler/GF/Grammar/CF.hs b/src/compiler/GF/Grammar/CF.hs
index 1daa9a1ea..123d843bf 100644
--- a/src/compiler/GF/Grammar/CF.hs
+++ b/src/compiler/GF/Grammar/CF.hs
@@ -25,7 +25,7 @@ import GF.Data.Utilities (nub')
import Data.Char
import Data.List
-import System.FilePath
+--import System.FilePath
getCF :: FilePath -> String -> Err SourceGrammar
getCF fpath = fmap (cf2gf fpath) . pCF
diff --git a/src/compiler/GF/Grammar/EBNF.hs b/src/compiler/GF/Grammar/EBNF.hs
index e5cbf6c7f..b1854da54 100644
--- a/src/compiler/GF/Grammar/EBNF.hs
+++ b/src/compiler/GF/Grammar/EBNF.hs
@@ -24,7 +24,7 @@ import GF.Grammar.Grammar
import Data.Char
import Data.List
-import System.FilePath
+--import System.FilePath
diff --git a/src/compiler/GF/Grammar/Grammar.hs b/src/compiler/GF/Grammar/Grammar.hs
index 61c07399c..8db78a0f0 100644
--- a/src/compiler/GF/Grammar/Grammar.hs
+++ b/src/compiler/GF/Grammar/Grammar.hs
@@ -68,15 +68,15 @@ import GF.Data.Operations
import PGF.Data (FId, FunId, SeqId, LIndex, Sequence, BindType(..))
-import Data.List
+--import Data.List
import Data.Array.IArray
import Data.Array.Unboxed
import qualified Data.Map as Map
-import qualified Data.Set as Set
-import qualified Data.IntMap as IntMap
+--import qualified Data.Set as Set
+--import qualified Data.IntMap as IntMap
import Text.PrettyPrint
-import System.FilePath
-import Control.Monad.Identity
+--import System.FilePath
+--import Control.Monad.Identity
diff --git a/src/compiler/GF/Grammar/Lexer.hs b/src/compiler/GF/Grammar/Lexer.hs
index 8e6b05250..dfa78df64 100644
--- a/src/compiler/GF/Grammar/Lexer.hs
+++ b/src/compiler/GF/Grammar/Lexer.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE CPP,MagicHash,BangPatterns #-}
-{-# LINE 3 "lexer/Lexer.x" #-}
+-- {-# LINE 3 "lexer/Lexer.x" #-}
module GF.Grammar.Lexer
( Token(..), Posn(..)
@@ -8,7 +8,7 @@ module GF.Grammar.Lexer
) where
import GF.Infra.Ident
-import GF.Data.Operations
+--import GF.Data.Operations
import qualified Data.ByteString.Char8 as BS
import qualified Data.Map as Map
diff --git a/src/compiler/GF/Grammar/Lookup.hs b/src/compiler/GF/Grammar/Lookup.hs
index d85c7c48b..4076346a8 100644
--- a/src/compiler/GF/Grammar/Lookup.hs
+++ b/src/compiler/GF/Grammar/Lookup.hs
@@ -40,8 +40,8 @@ import GF.Grammar.Predef
import GF.Grammar.Lockfield
import Data.List (sortBy)
-import Data.Maybe (maybe)
-import Control.Monad
+--import Data.Maybe (maybe)
+--import Control.Monad
import Text.PrettyPrint
import qualified Data.Map as Map
diff --git a/src/compiler/GF/Grammar/Macros.hs b/src/compiler/GF/Grammar/Macros.hs
index f6d5c7572..db17b4451 100644
--- a/src/compiler/GF/Grammar/Macros.hs
+++ b/src/compiler/GF/Grammar/Macros.hs
@@ -22,14 +22,14 @@ import GF.Data.Operations
import GF.Data.Str
import GF.Infra.Ident
import GF.Grammar.Grammar
-import GF.Grammar.Values
+--import GF.Grammar.Values
import GF.Grammar.Predef
import GF.Grammar.Printer
import Control.Monad.Identity(Identity(..))
import qualified Data.Traversable as T(mapM)
import Control.Monad (liftM, liftM2, liftM3)
-import Data.Char (isDigit)
+--import Data.Char (isDigit)
import Data.List (sortBy,nub)
import Text.PrettyPrint
diff --git a/src/compiler/GF/Grammar/PatternMatch.hs b/src/compiler/GF/Grammar/PatternMatch.hs
index bd92e3096..071deb709 100644
--- a/src/compiler/GF/Grammar/PatternMatch.hs
+++ b/src/compiler/GF/Grammar/PatternMatch.hs
@@ -24,10 +24,10 @@ import GF.Infra.Ident
import GF.Grammar.Macros
import GF.Grammar.Printer
-import Data.List
+--import Data.List
import Control.Monad
import Text.PrettyPrint
-import Debug.Trace
+--import Debug.Trace
matchPattern :: [(Patt,rhs)] -> Term -> Err (rhs, Substitution)
matchPattern pts term =
diff --git a/src/compiler/GF/Grammar/Printer.hs b/src/compiler/GF/Grammar/Printer.hs
index 5d8751736..dba08ce44 100644
--- a/src/compiler/GF/Grammar/Printer.hs
+++ b/src/compiler/GF/Grammar/Printer.hs
@@ -29,15 +29,15 @@ import GF.Infra.Option
import GF.Grammar.Values
import GF.Grammar.Grammar
-import PGF.Expr (ppMeta)
+import PGF.Data (ppMeta)
import PGF.Printer (ppFId, ppFunId, ppSeqId, ppSeq)
import Text.PrettyPrint
-import Data.Maybe (maybe, isNothing)
+import Data.Maybe (isNothing)
import Data.List (intersperse)
import qualified Data.Map as Map
-import qualified Data.IntMap as IntMap
-import qualified Data.Set as Set
+--import qualified Data.IntMap as IntMap
+--import qualified Data.Set as Set
import qualified Data.Array.IArray as Array
data TermPrintQual
diff --git a/src/compiler/GF/Grammar/Values.hs b/src/compiler/GF/Grammar/Values.hs
index 1a68ddc89..0476825df 100644
--- a/src/compiler/GF/Grammar/Values.hs
+++ b/src/compiler/GF/Grammar/Values.hs
@@ -24,7 +24,7 @@ module GF.Grammar.Values (-- * values used in TC type checking
--Z tree2exp, loc2treeFocus
) where
-import GF.Data.Operations
+--import GF.Data.Operations
---Z import GF.Data.Zipper
import GF.Infra.Ident
diff --git a/src/compiler/GF/Index.hs b/src/compiler/GF/Index.hs
index a685f09c2..eeb8697b3 100644
--- a/src/compiler/GF/Index.hs
+++ b/src/compiler/GF/Index.hs
@@ -9,13 +9,13 @@ module GF.Index (addIndex) where
import PGF
import PGF.Data
-import PGF.Binary
+--import PGF.Binary
import Data.Binary
-import Data.ByteString.Lazy (readFile,length)
+import Data.ByteString.Lazy (length) -- readFile
import qualified Data.Map as Map
import Data.Map (toAscList)
import Data.List (intercalate)
-import qualified Data.ByteString.Lazy as BS
+--import qualified Data.ByteString.Lazy as BS
addIndex :: PGF -> PGF
addIndex pgf = pgf {gflags = flags}
diff --git a/src/compiler/GF/Infra/CheckM.hs b/src/compiler/GF/Infra/CheckM.hs
index b998f7508..2f8a842e5 100644
--- a/src/compiler/GF/Infra/CheckM.hs
+++ b/src/compiler/GF/Infra/CheckM.hs
@@ -20,9 +20,9 @@ module GF.Infra.CheckM
) where
import GF.Data.Operations
-import GF.Infra.Ident
+--import GF.Infra.Ident
--import GF.Grammar.Grammar(Context)
-import GF.Grammar.Printer
+--import GF.Grammar.Printer
import qualified Data.Map as Map
import Text.PrettyPrint
diff --git a/src/compiler/GF/Infra/GetOpt.hs b/src/compiler/GF/Infra/GetOpt.hs
index ede561c90..648d51919 100644
--- a/src/compiler/GF/Infra/GetOpt.hs
+++ b/src/compiler/GF/Infra/GetOpt.hs
@@ -69,7 +69,7 @@ module GF.Infra.GetOpt (
import Prelude -- necessary to get dependencies right
-import Data.List ( isPrefixOf, find )
+--import Data.List ( isPrefixOf, find )
-- |What to do with options following non-options
data ArgOrder a
diff --git a/src/compiler/GF/Infra/Option.hs b/src/compiler/GF/Infra/Option.hs
index 554468783..e0cba05e4 100644
--- a/src/compiler/GF/Infra/Option.hs
+++ b/src/compiler/GF/Infra/Option.hs
@@ -36,7 +36,7 @@ import GF.Infra.GetOpt
import GF.Grammar.Predef
--import System.Console.GetOpt
import System.FilePath
-import System.IO
+--import System.IO
import GF.Data.ErrM
diff --git a/src/compiler/GF/Infra/SIO.hs b/src/compiler/GF/Infra/SIO.hs
index 1011b8df4..ff2072987 100644
--- a/src/compiler/GF/Infra/SIO.hs
+++ b/src/compiler/GF/Infra/SIO.hs
@@ -20,7 +20,7 @@ module GF.Infra.SIO(
) where
import Prelude hiding (putStrLn,print)
import Control.Monad(liftM)
-import System.IO(Handle,hPutStrLn,hFlush,stdout)
+import System.IO(hPutStrLn,hFlush,stdout)
import GF.System.Catch(try)
import System.Cmd(system)
import System.Environment(getEnv)
diff --git a/src/compiler/GF/Infra/UseIO.hs b/src/compiler/GF/Infra/UseIO.hs
index 140c2623f..d16440372 100644
--- a/src/compiler/GF/Infra/UseIO.hs
+++ b/src/compiler/GF/Infra/UseIO.hs
@@ -29,7 +29,7 @@ import System.IO.Error(isUserError,ioeGetErrorString)
import System.Environment
import System.Exit
import System.CPUTime
-import System.Cmd
+--import System.Cmd
import Text.Printf
import Control.Monad
import Control.Monad.Trans(MonadIO(..))
diff --git a/src/compiler/GF/Quiz.hs b/src/compiler/GF/Quiz.hs
index aaeae34a8..2aed598d1 100644
--- a/src/compiler/GF/Quiz.hs
+++ b/src/compiler/GF/Quiz.hs
@@ -19,11 +19,11 @@ module GF.Quiz (
) where
import PGF
-import PGF.Linearize
+--import PGF.Linearize
import GF.Data.Operations
-import GF.Infra.UseIO
-import GF.Infra.Option
-import PGF.Probabilistic
+--import GF.Infra.UseIO
+--import GF.Infra.Option
+--import PGF.Probabilistic
import System.Random
import Data.List (nub)
diff --git a/src/compiler/GF/Speech/CFG.hs b/src/compiler/GF/Speech/CFG.hs
index 56d360dac..1a252139e 100644
--- a/src/compiler/GF/Speech/CFG.hs
+++ b/src/compiler/GF/Speech/CFG.hs
@@ -8,16 +8,16 @@ module GF.Speech.CFG where
import GF.Data.Utilities
import PGF
-import GF.Infra.Option
+--import GF.Infra.Option
import GF.Data.Relation
-import Control.Monad
-import Control.Monad.State (State, get, put, evalState)
+--import Control.Monad
+--import Control.Monad.State (State, get, put, evalState)
import Data.Map (Map)
import qualified Data.Map as Map
import Data.List
-import Data.Maybe (fromMaybe)
-import Data.Monoid (mconcat)
+--import Data.Maybe (fromMaybe)
+--import Data.Monoid (mconcat)
import Data.Set (Set)
import qualified Data.Set as Set
diff --git a/src/compiler/GF/Speech/CFGToFA.hs b/src/compiler/GF/Speech/CFGToFA.hs
index 3045ac842..4f5e3621e 100644
--- a/src/compiler/GF/Speech/CFGToFA.hs
+++ b/src/compiler/GF/Speech/CFGToFA.hs
@@ -14,17 +14,17 @@ import qualified Data.Map as Map
import Data.Set (Set)
import qualified Data.Set as Set
-import PGF.CId
+--import PGF.CId
import PGF.Data
import GF.Data.Utilities
import GF.Speech.CFG
-import GF.Speech.PGFToCFG
-import GF.Infra.Ident (Ident)
+--import GF.Speech.PGFToCFG
+--import GF.Infra.Ident (Ident)
import GF.Data.Graph
-import GF.Data.Relation
+--import GF.Data.Relation
import GF.Speech.FiniteState
-import GF.Speech.CFG
+--import GF.Speech.CFG
data Recursivity = RightR | LeftR | NotR
diff --git a/src/compiler/GF/Speech/FiniteState.hs b/src/compiler/GF/Speech/FiniteState.hs
index 136d773a2..4eaf3873a 100644
--- a/src/compiler/GF/Speech/FiniteState.hs
+++ b/src/compiler/GF/Speech/FiniteState.hs
@@ -41,7 +41,7 @@ import qualified Data.Map as Map
import Data.Set (Set)
import qualified Data.Set as Set
-import GF.Data.Utilities
+--import GF.Data.Utilities
import GF.Data.Graph
import qualified GF.Data.Graphviz as Dot
diff --git a/src/compiler/GF/Speech/GSL.hs b/src/compiler/GF/Speech/GSL.hs
index f1cf02ab3..3557ff21f 100644
--- a/src/compiler/GF/Speech/GSL.hs
+++ b/src/compiler/GF/Speech/GSL.hs
@@ -8,12 +8,12 @@
module GF.Speech.GSL (gslPrinter) where
-import GF.Data.Utilities
+--import GF.Data.Utilities
import GF.Speech.CFG
import GF.Speech.SRG
import GF.Speech.RegExp
import GF.Infra.Option
-import GF.Infra.Ident
+--import GF.Infra.Ident
import PGF
import Data.Char (toUpper,toLower)
diff --git a/src/compiler/GF/Speech/JSGF.hs b/src/compiler/GF/Speech/JSGF.hs
index 2cfeea5f5..921108e11 100644
--- a/src/compiler/GF/Speech/JSGF.hs
+++ b/src/compiler/GF/Speech/JSGF.hs
@@ -12,20 +12,20 @@
module GF.Speech.JSGF (jsgfPrinter) where
-import GF.Data.Utilities
+--import GF.Data.Utilities
import GF.Infra.Option
import GF.Speech.CFG
import GF.Speech.RegExp
import GF.Speech.SISR
import GF.Speech.SRG
-import PGF.CId
+--import PGF.CId
import PGF.Data
import Data.Char
import Data.List
-import Data.Maybe
+--import Data.Maybe
import Text.PrettyPrint.HughesPJ
-import Debug.Trace
+--import Debug.Trace
width :: Int
width = 75
diff --git a/src/compiler/GF/Speech/PGFToCFG.hs b/src/compiler/GF/Speech/PGFToCFG.hs
index 39c5b2a32..1f011dcec 100644
--- a/src/compiler/GF/Speech/PGFToCFG.hs
+++ b/src/compiler/GF/Speech/PGFToCFG.hs
@@ -6,18 +6,18 @@
----------------------------------------------------------------------
module GF.Speech.PGFToCFG (bnfPrinter, pgfToCFG) where
-import PGF.CId
+import PGF(showCId)
import PGF.Data as PGF
import PGF.Macros
-import GF.Infra.Ident
+--import GF.Infra.Ident
import GF.Speech.CFG hiding (Symbol)
import Data.Array.IArray as Array
-import Data.List
+--import Data.List
import Data.Map (Map)
import qualified Data.Map as Map
import qualified Data.IntMap as IntMap
-import Data.Maybe
+--import Data.Maybe
import Data.Set (Set)
import qualified Data.Set as Set
diff --git a/src/compiler/GF/Speech/SISR.hs b/src/compiler/GF/Speech/SISR.hs
index f966d96b9..8417fb203 100644
--- a/src/compiler/GF/Speech/SISR.hs
+++ b/src/compiler/GF/Speech/SISR.hs
@@ -10,12 +10,12 @@ module GF.Speech.SISR (SISRFormat(..), SISRTag, prSISR,
import Data.List
-import GF.Data.Utilities
-import GF.Infra.Ident
+--import GF.Data.Utilities
+--import GF.Infra.Ident
import GF.Infra.Option (SISRFormat(..))
import GF.Speech.CFG
import GF.Speech.SRG (SRGNT)
-import PGF.CId
+import PGF(showCId)
import qualified GF.JavaScript.AbsJS as JS
import qualified GF.JavaScript.PrintJS as JS
diff --git a/src/compiler/GF/Speech/SLF.hs b/src/compiler/GF/Speech/SLF.hs
index 84633149b..7785f2382 100644
--- a/src/compiler/GF/Speech/SLF.hs
+++ b/src/compiler/GF/Speech/SLF.hs
@@ -15,17 +15,17 @@ module GF.Speech.SLF (slfPrinter,slfGraphvizPrinter,
import GF.Data.Utilities
import GF.Speech.CFG
import GF.Speech.FiniteState
-import GF.Speech.CFG
+--import GF.Speech.CFG
import GF.Speech.CFGToFA
import GF.Speech.PGFToCFG
import qualified GF.Data.Graphviz as Dot
import PGF
-import PGF.CId
+--import PGF.CId
import Control.Monad
import qualified Control.Monad.State as STM
import Data.Char (toUpper)
-import Data.List
+--import Data.List
import Data.Maybe
data SLFs = SLFs [(String,SLF)] SLF
diff --git a/src/compiler/GF/Speech/SRG.hs b/src/compiler/GF/Speech/SRG.hs
index 8acd31aa9..4e5508de0 100644
--- a/src/compiler/GF/Speech/SRG.hs
+++ b/src/compiler/GF/Speech/SRG.hs
@@ -17,21 +17,21 @@ module GF.Speech.SRG (SRG(..), SRGRule(..), SRGAlt(..), SRGItem, SRGSymbol
, lookupFM_
) where
-import GF.Data.Operations
+--import GF.Data.Operations
import GF.Data.Utilities
-import GF.Infra.Ident
+--import GF.Infra.Ident
import GF.Infra.Option
import GF.Speech.CFG
import GF.Speech.PGFToCFG
-import GF.Data.Relation
-import GF.Speech.FiniteState
+--import GF.Data.Relation
+--import GF.Speech.FiniteState
import GF.Speech.RegExp
import GF.Speech.CFGToFA
-import GF.Infra.Option
+--import GF.Infra.Option
import PGF
import Data.List
-import Data.Maybe (fromMaybe, maybeToList)
+--import Data.Maybe (fromMaybe, maybeToList)
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Set (Set)
diff --git a/src/compiler/GF/Speech/SRGS_ABNF.hs b/src/compiler/GF/Speech/SRGS_ABNF.hs
index 2df1316a8..5d07762bb 100644
--- a/src/compiler/GF/Speech/SRGS_ABNF.hs
+++ b/src/compiler/GF/Speech/SRGS_ABNF.hs
@@ -19,7 +19,7 @@
module GF.Speech.SRGS_ABNF (srgsAbnfPrinter, srgsAbnfNonRecursivePrinter) where
-import GF.Data.Utilities
+--import GF.Data.Utilities
import GF.Infra.Option
import GF.Speech.CFG
import GF.Speech.SISR as SISR
@@ -27,11 +27,11 @@ import GF.Speech.SRG
import GF.Speech.RegExp
import PGF (PGF, CId)
-import Data.Char
+--import Data.Char
import Data.List
import Data.Maybe
import Text.PrettyPrint.HughesPJ
-import Debug.Trace
+--import Debug.Trace
width :: Int
width = 75
diff --git a/src/compiler/GF/Speech/SRGS_XML.hs b/src/compiler/GF/Speech/SRGS_XML.hs
index 5f3579406..fe973c2e6 100644
--- a/src/compiler/GF/Speech/SRGS_XML.hs
+++ b/src/compiler/GF/Speech/SRGS_XML.hs
@@ -6,7 +6,7 @@
----------------------------------------------------------------------
module GF.Speech.SRGS_XML (srgsXmlPrinter, srgsXmlNonRecursivePrinter) where
-import GF.Data.Utilities
+--import GF.Data.Utilities
import GF.Data.XML
import GF.Infra.Option
import GF.Speech.CFG
@@ -15,11 +15,11 @@ import GF.Speech.SISR as SISR
import GF.Speech.SRG
import PGF (PGF, CId, Token)
-import Control.Monad
-import Data.Char (toUpper,toLower)
+--import Control.Monad
+--import Data.Char (toUpper,toLower)
import Data.List
import Data.Maybe
-import qualified Data.Map as Map
+--import qualified Data.Map as Map
srgsXmlPrinter :: Options
-> PGF -> CId -> String
diff --git a/src/compiler/GF/Speech/VoiceXML.hs b/src/compiler/GF/Speech/VoiceXML.hs
index 23a07b62f..24c2e4d86 100644
--- a/src/compiler/GF/Speech/VoiceXML.hs
+++ b/src/compiler/GF/Speech/VoiceXML.hs
@@ -6,21 +6,21 @@
-----------------------------------------------------------------------------
module GF.Speech.VoiceXML (grammar2vxml) where
-import GF.Data.Operations
-import GF.Data.Str (sstrV)
-import GF.Data.Utilities
+--import GF.Data.Operations
+--import GF.Data.Str (sstrV)
+--import GF.Data.Utilities
import GF.Data.XML
-import GF.Infra.Ident
+--import GF.Infra.Ident
import PGF
import PGF.Data
import PGF.Macros
-import Control.Monad (liftM)
-import Data.List (isPrefixOf, find, intersperse)
+--import Control.Monad (liftM)
+import Data.List (intersperse) -- isPrefixOf, find
import qualified Data.Map as Map
import Data.Maybe (fromMaybe)
-import Debug.Trace
+--import Debug.Trace
-- | the main function
grammar2vxml :: PGF -> CId -> String
diff --git a/src/compiler/GF/System/UseSignal.hs b/src/compiler/GF/System/UseSignal.hs
index 20c70a568..c1298e0c7 100644
--- a/src/compiler/GF/System/UseSignal.hs
+++ b/src/compiler/GF/System/UseSignal.hs
@@ -18,7 +18,7 @@ module GF.System.UseSignal where
import Control.Concurrent (myThreadId, killThread)
import Control.Exception (SomeException,catch)
import Prelude hiding (catch)
-import System.IO
+--import System.IO
#ifdef mingw32_HOST_OS
import GHC.ConsoleHandler
diff --git a/src/compiler/GFC.hs b/src/compiler/GFC.hs
index c035d0676..61d5726b2 100644
--- a/src/compiler/GFC.hs
+++ b/src/compiler/GFC.hs
@@ -2,7 +2,7 @@ module GFC (mainGFC, writePGF) where
-- module Main where
import PGF
-import PGF.CId
+--import PGF.CId
import PGF.Data
import PGF.Optimize
import GF.Index
diff --git a/src/compiler/GFI.hs b/src/compiler/GFI.hs
index 7c53ed8d8..1a786a3d2 100644
--- a/src/compiler/GFI.hs
+++ b/src/compiler/GFI.hs
@@ -13,7 +13,6 @@ import GF.Data.Operations (chunks,err)
import GF.Grammar hiding (Ident,isPrefixOf)
import GF.Grammar.Analyse
import GF.Grammar.Parser (runP, pExp)
-import GF.Grammar.Printer (ppGrammar, ppModule)
import GF.Grammar.ShowTerm
import GF.Grammar.Lookup (allOpers,allOpersTo)
import GF.Compile.Rename(renameSourceTerm)
@@ -25,7 +24,6 @@ import GF.Infra.CheckM
import GF.Infra.UseIO(ioErrorText)
import GF.Infra.SIO
import GF.Infra.Option
-import GF.Infra.Ident (showIdent)
import qualified System.Console.Haskeline as Haskeline
import GF.Text.Coding(decodeUnicode,encodeUnicode)
@@ -36,7 +34,6 @@ import PGF.Data
import PGF.Macros
import Data.Char
-import Data.Maybe
import Data.List(nub,isPrefixOf,isInfixOf,partition)
import qualified Data.Map as Map
import qualified Data.ByteString.Char8 as BS
diff --git a/src/compiler/SimpleEditor/Convert.hs b/src/compiler/SimpleEditor/Convert.hs
index b2f66f17b..3554e3342 100644
--- a/src/compiler/SimpleEditor/Convert.hs
+++ b/src/compiler/SimpleEditor/Convert.hs
@@ -5,7 +5,7 @@ import Control.Monad(unless,foldM,ap,mplus)
import Data.List(sortBy)
import Data.Function(on)
import qualified Data.Map as Map
-import Text.JSON(encode,makeObj)
+import Text.JSON(makeObj) --encode
import Text.PrettyPrint(render,text,(<+>))
-- 4 extra imports just to deal with the ByteString mess...
diff --git a/src/example-based/ExampleDemo.hs b/src/example-based/ExampleDemo.hs
index 1d5fabcaf..7b411001b 100644
--- a/src/example-based/ExampleDemo.hs
+++ b/src/example-based/ExampleDemo.hs
@@ -2,14 +2,14 @@ module ExampleDemo (Environ,initial,getNext, provideExample, testThis,mkFuncWith
where
import PGF
-import System.IO
+--import System.IO
import Data.List
-import Control.Monad
+--import Control.Monad
import qualified Data.Map as Map
-import qualified Data.IntMap as IntMap
+--import qualified Data.IntMap as IntMap
import qualified Data.Set as Set
import Data.Maybe
-import System.Environment (getArgs)
+--import System.Environment (getArgs)
import System.Random (RandomGen) --newStdGen
diff --git a/src/runtime/haskell/PGF.hs b/src/runtime/haskell/PGF.hs
index fdb834cad..e7e5c53c5 100644
--- a/src/runtime/haskell/PGF.hs
+++ b/src/runtime/haskell/PGF.hs
@@ -21,6 +21,8 @@ module PGF(
-- * Identifiers
CId, mkCId, wildCId,
showCId, readCId,
+ -- extra
+ ppCId, pIdent, bsCId,
-- * Languages
Language,
@@ -50,6 +52,8 @@ module PGF(
mkInt, unInt,
mkDouble, unDouble,
mkMeta, unMeta,
+ -- extra
+ pExpr,
-- * Operations
-- ** Linearization
@@ -111,6 +115,8 @@ module PGF(
Lemma, Analysis, Morpho,
lookupMorpho, buildMorpho, fullFormLexicon,
morphoMissing,
+ -- extra:
+ morphoKnown, isInMorpho,
-- ** Tokenizing
mkTokenizer,
@@ -124,6 +130,8 @@ module PGF(
gizaAlignment,
GraphvizOptions(..),
graphvizDefaults,
+ -- extra:
+ getDepLabels,
-- * Probabilities
Probabilities,
@@ -131,6 +139,8 @@ module PGF(
defaultProbabilities,
showProbabilities,
readProbabilitiesFromFile,
+ -- extra:
+ probTree, setProbabilities, rankTreesByProbs,
-- -- ** SortTop
-- forExample,
@@ -153,21 +163,20 @@ import PGF.Macros
import PGF.Expr (Tree)
import PGF.Morphology
import PGF.Data
-import PGF.Binary
+import PGF.Binary()
import PGF.Tokenizer
import qualified PGF.Forest as Forest
import qualified PGF.Parse as Parse
+import PGF.Utilities(replace)
-import GF.Data.Utilities (replace)
-
-import Data.Char
+--import Data.Char
import qualified Data.Map as Map
-import qualified Data.IntMap as IntMap
-import Data.Maybe
+--import qualified Data.IntMap as IntMap
+--import Data.Maybe
import Data.Binary
import Data.List(mapAccumL)
-import System.Random (newStdGen)
-import Control.Monad
+--import System.Random (newStdGen)
+--import Control.Monad
import Text.PrettyPrint
---------------------------------------------------
diff --git a/src/runtime/haskell/PGF/Binary.hs b/src/runtime/haskell/PGF/Binary.hs
index bf8fe2824..202939f04 100644
--- a/src/runtime/haskell/PGF/Binary.hs
+++ b/src/runtime/haskell/PGF/Binary.hs
@@ -10,7 +10,7 @@ import Data.Array.IArray
import qualified Data.ByteString as BS
import qualified Data.Map as Map
import qualified Data.IntMap as IntMap
-import qualified Data.Set as Set
+--import qualified Data.Set as Set
import Control.Monad
pgfMajorVersion, pgfMinorVersion :: Word16
diff --git a/src/runtime/haskell/PGF/CId.hs b/src/runtime/haskell/PGF/CId.hs
index fea304d9d..6a20cb4f3 100644
--- a/src/runtime/haskell/PGF/CId.hs
+++ b/src/runtime/haskell/PGF/CId.hs
@@ -3,7 +3,7 @@ module PGF.CId (CId(..),
readCId, showCId,
-- utils
- pCId, pIdent, ppCId) where
+ bsCId, pCId, pIdent, ppCId) where
import Control.Monad
import qualified Data.ByteString.Char8 as BS
@@ -23,6 +23,8 @@ wildCId = CId (BS.singleton '_')
mkCId :: String -> CId
mkCId s = CId (BS.pack s)
+bsCId = CId
+
-- | Reads an identifier from 'String'. The function returns 'Nothing' if the string is not valid identifier.
readCId :: String -> Maybe CId
readCId s = case [x | (x,cs) <- RP.readP_to_S pCId s, all isSpace cs] of
diff --git a/src/runtime/haskell/PGF/Data.hs b/src/runtime/haskell/PGF/Data.hs
index 19df9d0ed..e37b243d0 100644
--- a/src/runtime/haskell/PGF/Data.hs
+++ b/src/runtime/haskell/PGF/Data.hs
@@ -8,11 +8,11 @@ import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Data.IntMap as IntMap
import qualified Data.IntSet as IntSet
-import qualified GF.Data.TrieMap as TMap
+import qualified PGF.TrieMap as TMap
import qualified Data.ByteString as BS
import Data.Array.IArray
import Data.Array.Unboxed
-import Data.List
+--import Data.List
-- internal datatypes for PGF
diff --git a/src/runtime/haskell/PGF/Expr.hs b/src/runtime/haskell/PGF/Expr.hs
index 998819687..01b791847 100644
--- a/src/runtime/haskell/PGF/Expr.hs
+++ b/src/runtime/haskell/PGF/Expr.hs
@@ -23,7 +23,7 @@ import PGF.CId
import PGF.Type
import Data.Char
-import Data.Maybe
+--import Data.Maybe
import Data.List as List
import qualified Data.Map as Map hiding (showTree)
import Control.Monad
diff --git a/src/runtime/haskell/PGF/Forest.hs b/src/runtime/haskell/PGF/Forest.hs
index 89ebfb299..8a38948be 100644
--- a/src/runtime/haskell/PGF/Forest.hs
+++ b/src/runtime/haskell/PGF/Forest.hs
@@ -32,7 +32,7 @@ import qualified Data.IntSet as IntSet
import qualified Data.IntMap as IntMap
import Control.Monad
import Control.Monad.State
-import GF.Data.Utilities (nub')
+import PGF.Utilities (nub')
data Forest
= Forest
diff --git a/src/runtime/haskell/PGF/Generate.hs b/src/runtime/haskell/PGF/Generate.hs
index ae6abc938..76854bda2 100644
--- a/src/runtime/haskell/PGF/Generate.hs
+++ b/src/runtime/haskell/PGF/Generate.hs
@@ -8,14 +8,13 @@ module PGF.Generate
import PGF.CId
import PGF.Data
-import PGF.Expr
-import PGF.Macros
+--import PGF.Macros
import PGF.TypeCheck
-import PGF.Probabilistic
+--import PGF.Probabilistic
-import Data.Maybe (fromMaybe)
-import qualified Data.Map as Map
-import qualified Data.IntMap as IntMap
+--import Data.Maybe (fromMaybe)
+--import qualified Data.Map as Map
+--import qualified Data.IntMap as IntMap
import Control.Monad
import Control.Monad.Identity
import System.Random
diff --git a/src/runtime/haskell/PGF/Linearize.hs b/src/runtime/haskell/PGF/Linearize.hs
index 1e3aee02e..6ec339bd5 100644
--- a/src/runtime/haskell/PGF/Linearize.hs
+++ b/src/runtime/haskell/PGF/Linearize.hs
@@ -12,7 +12,7 @@ import PGF.Macros
import PGF.Expr
import Data.Array.IArray
import Data.List
-import Control.Monad
+--import Control.Monad
import qualified Data.Map as Map
import qualified Data.IntMap as IntMap
import qualified Data.Set as Set
diff --git a/src/runtime/haskell/PGF/Macros.hs b/src/runtime/haskell/PGF/Macros.hs
index ce0f8866e..830a16674 100644
--- a/src/runtime/haskell/PGF/Macros.hs
+++ b/src/runtime/haskell/PGF/Macros.hs
@@ -4,11 +4,11 @@ import PGF.CId
import PGF.Data
import Control.Monad
import qualified Data.Map as Map
-import qualified Data.Set as Set
-import qualified Data.IntMap as IntMap
-import qualified Data.IntSet as IntSet
+--import qualified Data.Set as Set
+--import qualified Data.IntMap as IntMap
+--import qualified Data.IntSet as IntSet
import qualified Data.Array as Array
-import Data.Maybe
+--import Data.Maybe
import Data.List
import Data.Array.IArray
import Text.PrettyPrint
diff --git a/src/runtime/haskell/PGF/Morphology.hs b/src/runtime/haskell/PGF/Morphology.hs
index 894b64dfb..2da6da44e 100644
--- a/src/runtime/haskell/PGF/Morphology.hs
+++ b/src/runtime/haskell/PGF/Morphology.hs
@@ -11,7 +11,7 @@ import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Data.IntMap as IntMap
import Data.Array.IArray
-import Data.List (intersperse)
+--import Data.List (intersperse)
import Data.Char (isDigit) ----
-- these 4 definitions depend on the datastructure used
diff --git a/src/runtime/haskell/PGF/Optimize.hs b/src/runtime/haskell/PGF/Optimize.hs
index f04a8b04c..bfc12e097 100644
--- a/src/runtime/haskell/PGF/Optimize.hs
+++ b/src/runtime/haskell/PGF/Optimize.hs
@@ -7,7 +7,7 @@ module PGF.Optimize
import PGF.CId
import PGF.Data
import PGF.Macros
-import Data.Maybe
+--import Data.Maybe
import Data.List (mapAccumL)
import Data.Array.IArray
import Data.Array.MArray
@@ -17,7 +17,7 @@ import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Data.IntSet as IntSet
import qualified Data.IntMap as IntMap
-import qualified GF.Data.TrieMap as TrieMap
+import qualified PGF.TrieMap as TrieMap
import qualified Data.List as List
import Control.Monad.ST
diff --git a/src/runtime/haskell/PGF/Paraphrase.hs b/src/runtime/haskell/PGF/Paraphrase.hs
index 015779ace..57697b8d2 100644
--- a/src/runtime/haskell/PGF/Paraphrase.hs
+++ b/src/runtime/haskell/PGF/Paraphrase.hs
@@ -15,13 +15,13 @@ module PGF.Paraphrase (
import PGF.Data
import PGF.Tree
-import PGF.Macros (lookDef,isData)
-import PGF.CId
+--import PGF.Macros (lookDef,isData)
+--import PGF.CId
import Data.List (nub,sort,group)
import qualified Data.Map as Map
-import Debug.Trace ----
+--import Debug.Trace ----
paraphrase :: PGF -> Expr -> [Expr]
paraphrase pgf t = nub (paraphraseN 2 pgf t)
diff --git a/src/runtime/haskell/PGF/Parse.hs b/src/runtime/haskell/PGF/Parse.hs
index e50f8436e..9c69940ef 100644
--- a/src/runtime/haskell/PGF/Parse.hs
+++ b/src/runtime/haskell/PGF/Parse.hs
@@ -15,15 +15,14 @@ module PGF.Parse
import Data.Array.IArray
import Data.Array.Base (unsafeAt)
import Data.List (isPrefixOf, foldl')
-import Data.Maybe (fromMaybe, maybe, maybeToList)
+import Data.Maybe (fromMaybe, maybeToList)
import qualified Data.Map as Map
-import qualified GF.Data.TrieMap as TrieMap
+import qualified PGF.TrieMap as TrieMap
import qualified Data.IntMap as IntMap
import qualified Data.IntSet as IntSet
import qualified Data.Set as Set
import Control.Monad
-import GF.Data.SortedList
import PGF.CId
import PGF.Data
import PGF.Expr(Tree)
diff --git a/src/runtime/haskell/PGF/Printer.hs b/src/runtime/haskell/PGF/Printer.hs
index 5d85255d0..66d8530f0 100644
--- a/src/runtime/haskell/PGF/Printer.hs
+++ b/src/runtime/haskell/PGF/Printer.hs
@@ -2,16 +2,14 @@ module PGF.Printer (ppPGF,ppCat,ppFId,ppFunId,ppSeqId,ppSeq,ppFun) where
import PGF.CId
import PGF.Data
-import PGF.Macros
-
-import GF.Data.Operations
+--import PGF.Macros
import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Data.IntMap as IntMap
import Data.List
import Data.Array.IArray
-import Data.Array.Unboxed
+--import Data.Array.Unboxed
import Text.PrettyPrint
diff --git a/src/runtime/haskell/PGF/Probabilistic.hs b/src/runtime/haskell/PGF/Probabilistic.hs
index c1fd58fc2..7f980254b 100644
--- a/src/runtime/haskell/PGF/Probabilistic.hs
+++ b/src/runtime/haskell/PGF/Probabilistic.hs
@@ -15,12 +15,10 @@ module PGF.Probabilistic
import PGF.CId
import PGF.Data
import PGF.Macros
-import PGF.Type
-import PGF.Expr
import qualified Data.Map as Map
import Data.List (sortBy,partition,nub,mapAccumL)
-import Data.Maybe (fromMaybe, fromJust)
+import Data.Maybe (fromMaybe) --, fromJust
-- | An abstract data structure which represents
-- the probabilities for the different functions in a grammar.
diff --git a/src/runtime/haskell/PGF/SortTop.hs b/src/runtime/haskell/PGF/SortTop.hs
index 42b5d36d0..5bebd89d6 100644
--- a/src/runtime/haskell/PGF/SortTop.hs
+++ b/src/runtime/haskell/PGF/SortTop.hs
@@ -4,7 +4,6 @@ module PGF.SortTop
import PGF.CId
import PGF.Data
-import PGF.Expr
import qualified Data.Map as Map
import qualified Data.Set as Set
import Data.Maybe
diff --git a/src/runtime/haskell/PGF/Tokenizer.hs b/src/runtime/haskell/PGF/Tokenizer.hs
index 101b8fb06..ec75853aa 100644
--- a/src/runtime/haskell/PGF/Tokenizer.hs
+++ b/src/runtime/haskell/PGF/Tokenizer.hs
@@ -9,7 +9,7 @@ module PGF.Tokenizer
( mkTokenizer
) where
-import Data.List (intercalate)
+--import Data.List (intercalate)
--import Test.QuickCheck
import FST.TransducerInterface
import PGF.Morphology (fullFormLexicon, buildMorpho)
diff --git a/src/runtime/haskell/PGF/Tree.hs b/src/runtime/haskell/PGF/Tree.hs
index 62680e29e..96b9979f4 100644
--- a/src/runtime/haskell/PGF/Tree.hs
+++ b/src/runtime/haskell/PGF/Tree.hs
@@ -7,11 +7,11 @@ module PGF.Tree
import PGF.CId
import PGF.Expr hiding (Tree)
-import Data.Char
+--import Data.Char
import Data.List as List
-import Control.Monad
-import qualified Text.PrettyPrint as PP
-import qualified Text.ParserCombinators.ReadP as RP
+--import Control.Monad
+--import qualified Text.PrettyPrint as PP
+--import qualified Text.ParserCombinators.ReadP as RP
-- | The tree is an evaluated expression in the abstract syntax
-- of the grammar. The type is especially restricted to not
diff --git a/src/compiler/GF/Data/TrieMap.hs b/src/runtime/haskell/PGF/TrieMap.hs
index 996d91ec7..f0383941a 100644
--- a/src/compiler/GF/Data/TrieMap.hs
+++ b/src/runtime/haskell/PGF/TrieMap.hs
@@ -1,4 +1,4 @@
-module GF.Data.TrieMap
+module PGF.TrieMap
( TrieMap
, empty
diff --git a/src/runtime/haskell/PGF/Type.hs b/src/runtime/haskell/PGF/Type.hs
index 7114dda79..1d6884a7c 100644
--- a/src/runtime/haskell/PGF/Type.hs
+++ b/src/runtime/haskell/PGF/Type.hs
@@ -1,4 +1,4 @@
-module PGF.Type ( Type(..), Hypo,
+module PGF.Type ( Type(..), Hypo, CId,
readType, showType,
mkType, mkHypo, mkDepHypo, mkImplHypo,
unType,
@@ -10,7 +10,7 @@ import Data.Char
import Data.List
import qualified Text.PrettyPrint as PP
import qualified Text.ParserCombinators.ReadP as RP
-import Control.Monad
+--import Control.Monad
-- | To read a type from a 'String', use 'readType'.
data Type =
diff --git a/src/runtime/haskell/PGF/TypeCheck.hs b/src/runtime/haskell/PGF/TypeCheck.hs
index 268742b94..141189193 100644
--- a/src/runtime/haskell/PGF/TypeCheck.hs
+++ b/src/runtime/haskell/PGF/TypeCheck.hs
@@ -30,7 +30,7 @@ module PGF.TypeCheck ( checkType, checkExpr, inferExpr
import PGF.Data
import PGF.Expr hiding (eval, apply, applyValue, value2expr)
import qualified PGF.Expr as Expr
-import PGF.Macros (typeOfHypo, cidInt, cidFloat, cidString)
+import PGF.Macros (cidInt, cidFloat, cidString) -- typeOfHypo
import PGF.CId
import Data.Map as Map
@@ -38,7 +38,7 @@ import Data.IntMap as IntMap
import Data.Maybe as Maybe
import Data.List as List
import Control.Monad
-import Control.Monad.Identity
+--import Control.Monad.Identity
import Control.Monad.State
import Control.Monad.Error
import Text.PrettyPrint
diff --git a/src/runtime/haskell/PGF/Utilities.hs b/src/runtime/haskell/PGF/Utilities.hs
new file mode 100644
index 000000000..5af5b9b5d
--- /dev/null
+++ b/src/runtime/haskell/PGF/Utilities.hs
@@ -0,0 +1,20 @@
+-- | Basic utilities
+module PGF.Utilities where
+import Data.Set(empty,member,insert)
+
+
+-- | Like 'nub', but O(n log n) instead of O(n^2), since it uses a set to lookup previous things.
+-- The result list is stable (the elements are returned in the order they occur), and lazy.
+-- Requires that the list elements can be compared by Ord.
+-- Code ruthlessly taken from http://hpaste.org/54411
+nub' :: Ord a => [a] -> [a]
+nub' = loop empty
+ where loop _ [] = []
+ loop seen (x : xs)
+ | member x seen = loop seen xs
+ | otherwise = x : loop (insert x seen) xs
+
+
+-- | Replace all occurences of an element by another element.
+replace :: Eq a => a -> a -> [a] -> [a]
+replace x y = map (\z -> if z == x then y else z)
diff --git a/src/runtime/haskell/PGF/VisualizeTree.hs b/src/runtime/haskell/PGF/VisualizeTree.hs
index ed028feb8..855e40d75 100644
--- a/src/runtime/haskell/PGF/VisualizeTree.hs
+++ b/src/runtime/haskell/PGF/VisualizeTree.hs
@@ -21,24 +21,24 @@ module PGF.VisualizeTree
, getDepLabels
) where
-import PGF.CId (CId,wildCId,showCId,ppCId,pCId,mkCId)
+import PGF.CId (wildCId,showCId,ppCId,mkCId) --CId,pCId,
import PGF.Data
-import PGF.Expr (showExpr, Tree)
+import PGF.Expr (Tree) -- showExpr
import PGF.Linearize
-import PGF.Macros (lookValCat, lookMap,
- BracketedString(..), BracketedTokn(..), flattenBracketedString)
+import PGF.Macros (lookValCat, BracketedString(..))
+ --lookMap, BracketedTokn(..), flattenBracketedString
import qualified Data.Map as Map
-import qualified Data.IntMap as IntMap
+--import qualified Data.IntMap as IntMap
import Data.List (intersperse,nub,mapAccumL,find)
-import Data.Char (isDigit)
+--import Data.Char (isDigit)
import Data.Maybe (fromMaybe)
import Text.PrettyPrint
-import Data.Array.IArray
-import Control.Monad
-import qualified Data.Set as Set
-import qualified Text.ParserCombinators.ReadP as RP
+--import Data.Array.IArray
+--import Control.Monad
+--import qualified Data.Set as Set
+--import qualified Text.ParserCombinators.ReadP as RP
data GraphvizOptions = GraphvizOptions {noLeaves :: Bool,