Build #1 for gll-0.4.0.2

[all reports]

Package gll-0.4.0.2
Install InstallOk
Docs Ok
Tests NotTried
Time submitted 2016-10-04 16:26:28.880694 UTC
Compiler ghc-8.0.1.20160701
OS linux
Arch x86_64
Dependencies TypeCompose-0.9.12, array-0.5.1.1, base-4.9.0.0, containers-0.5.7.1, pretty-1.1.3.3, regex-applicative-0.3.3, text-1.2.2.1
Flags none

Code Coverage

No Code Coverage was submitted for this report.

Build log

[view raw]

Resolving dependencies...
cabal: Entering directory '/tmp/cabal-tmp-27441/base-orphans-0.5.4'
Configuring base-orphans-0.5.4...
Building base-orphans-0.5.4...
Preprocessing library base-orphans-0.5.4...
[1 of 2] Compiling Data.Orphans.Prelude ( src/Data/Orphans/Prelude.hs, dist/build/Data/Orphans/Prelude.o )
[2 of 2] Compiling Data.Orphans     ( src/Data/Orphans.hs, dist/build/Data/Orphans.o )
Running Haddock for base-orphans-0.5.4...
Running hscolour for base-orphans-0.5.4...
Preprocessing library base-orphans-0.5.4...
Preprocessing library base-orphans-0.5.4...
Haddock coverage:
 100% (  1 /  1) in 'Data.Orphans.Prelude'
 100% (  1 /  1) in 'Data.Orphans'
Documentation created: dist/doc/html/base-orphans/index.html,
dist/doc/html/base-orphans/base-orphans.txt
Creating package registration file:
/tmp/pkgConf-base-orphans-0.52145174067468703135.4
Installing library in
/home/builder/hackage-server/build-cache/tmp-install/lib/x86_64-linux-ghc-8.0.1.20160701/base-orphans-0.5.4-5IQvrjd7gNP548VkOOyIq6
Registering base-orphans-0.5.4...
cabal: Leaving directory '/tmp/cabal-tmp-27441/base-orphans-0.5.4'
Installed base-orphans-0.5.4
cabal: Entering directory '/tmp/cabal-tmp-27441/regex-applicative-0.3.3'
Configuring regex-applicative-0.3.3...
Building regex-applicative-0.3.3...
Preprocessing library regex-applicative-0.3.3...
[1 of 8] Compiling Text.Regex.Applicative.StateQueue ( Text/Regex/Applicative/StateQueue.hs, dist/build/Text/Regex/Applicative/StateQueue.o )
[2 of 8] Compiling Text.Regex.Applicative.Types ( Text/Regex/Applicative/Types.hs, dist/build/Text/Regex/Applicative/Types.o )
[3 of 8] Compiling Text.Regex.Applicative.Compile ( Text/Regex/Applicative/Compile.hs, dist/build/Text/Regex/Applicative/Compile.o )

Text/Regex/Applicative/Compile.hs:7:1: warning: [-Wunused-imports]
    The import of ‘Control.Applicative’ is redundant
      except perhaps to import instances from ‘Control.Applicative’
    To import instances alone, use: import Control.Applicative()
[4 of 8] Compiling Text.Regex.Applicative.Object ( Text/Regex/Applicative/Object.hs, dist/build/Text/Regex/Applicative/Object.o )

Text/Regex/Applicative/Object.hs:37:1: warning: [-Wunused-imports]
    The import of ‘Control.Applicative’ is redundant
      except perhaps to import instances from ‘Control.Applicative’
    To import instances alone, use: import Control.Applicative()
[5 of 8] Compiling Text.Regex.Applicative.Interface ( Text/Regex/Applicative/Interface.hs, dist/build/Text/Regex/Applicative/Interface.o )

Text/Regex/Applicative/Interface.hs:7:1: warning: [-Wunused-imports]
    The import of ‘Data.Traversable’ is redundant
      except perhaps to import instances from ‘Data.Traversable’
    To import instances alone, use: import Data.Traversable()
[6 of 8] Compiling Text.Regex.Applicative.Reference ( Text/Regex/Applicative/Reference.hs, dist/build/Text/Regex/Applicative/Reference.o )
[7 of 8] Compiling Text.Regex.Applicative ( Text/Regex/Applicative.hs, dist/build/Text/Regex/Applicative.o )
[8 of 8] Compiling Text.Regex.Applicative.Common ( Text/Regex/Applicative/Common.hs, dist/build/Text/Regex/Applicative/Common.o )
Running Haddock for regex-applicative-0.3.3...
Running hscolour for regex-applicative-0.3.3...
Preprocessing library regex-applicative-0.3.3...
Preprocessing library regex-applicative-0.3.3...

Text/Regex/Applicative/Compile.hs:7:1: warning: [-Wunused-imports]
    The import of ‘Control.Applicative’ is redundant
      except perhaps to import instances from ‘Control.Applicative’
    To import instances alone, use: import Control.Applicative()

Text/Regex/Applicative/Object.hs:37:1: warning: [-Wunused-imports]
    The import of ‘Control.Applicative’ is redundant
      except perhaps to import instances from ‘Control.Applicative’
    To import instances alone, use: import Control.Applicative()

Text/Regex/Applicative/Interface.hs:7:1: warning: [-Wunused-imports]
    The import of ‘Data.Traversable’ is redundant
      except perhaps to import instances from ‘Data.Traversable’
    To import instances alone, use: import Data.Traversable()
Haddock coverage:
 100% (  6 /  6) in 'Text.Regex.Applicative.StateQueue'
  50% (  3 /  6) in 'Text.Regex.Applicative.Types'
  Missing documentation for:
    Module header
    ThreadId (Text/Regex/Applicative/Types.hs:11)
    Greediness (Text/Regex/Applicative/Types.hs:28)
   0% (  0 /  2) in 'Text.Regex.Applicative.Compile'
  Missing documentation for:
    Module header
    compile (Text/Regex/Applicative/Compile.hs:11)
  94% ( 15 / 16) in 'Text.Regex.Applicative.Object'
  Missing documentation for:
    ThreadId (Text/Regex/Applicative/Types.hs:11)
  62% ( 18 / 29) in 'Text.Regex.Applicative.Interface'
  Missing documentation for:
    Module header
     (Text/Regex/Applicative/Interface.hs:13)
     (Text/Regex/Applicative/Interface.hs:17)
     (Text/Regex/Applicative/Interface.hs:23)
     (Text/Regex/Applicative/Interface.hs:29)
    prefixCounter (Text/Regex/Applicative/Interface.hs:226)
    InfixMatchingState (Text/Regex/Applicative/Interface.hs:231)
    preferOver (Text/Regex/Applicative/Interface.hs:240)
    mkInfixMatchingState (Text/Regex/Applicative/Interface.hs:251)
    gotResult (Text/Regex/Applicative/Interface.hs:266)
    findExtremalInfix (Text/Regex/Applicative/Interface.hs:281)
 100% (  2 /  2) in 'Text.Regex.Applicative.Reference'
  95% ( 21 / 22) in 'Text.Regex.Applicative'
  Missing documentation for:
    Greediness (Text/Regex/Applicative/Types.hs:28)
 100% (  8 /  8) in 'Text.Regex.Applicative.Common'
Documentation created: dist/doc/html/regex-applicative/index.html,
dist/doc/html/regex-applicative/regex-applicative.txt
Creating package registration file:
/tmp/pkgConf-regex-applicative-0.31036140795463480570.3
Installing library in
/home/builder/hackage-server/build-cache/tmp-install/lib/x86_64-linux-ghc-8.0.1.20160701/regex-applicative-0.3.3-WxA98eIqTU6IYmhPidLpN
Registering regex-applicative-0.3.3...
cabal: Leaving directory '/tmp/cabal-tmp-27441/regex-applicative-0.3.3'
Installed regex-applicative-0.3.3
cabal: Entering directory '/tmp/cabal-tmp-27441/text-1.2.2.1'
Configuring text-1.2.2.1...
Building text-1.2.2.1...
Preprocessing library text-1.2.2.1...
[ 1 of 44] Compiling Data.Text.Internal.Read ( Data/Text/Internal/Read.hs, dist/build/Data/Text/Internal/Read.o )
[ 2 of 44] Compiling Data.Text.Internal.Encoding.Utf32 ( Data/Text/Internal/Encoding/Utf32.hs, dist/build/Data/Text/Internal/Encoding/Utf32.o )
[ 3 of 44] Compiling Data.Text.Internal.Builder.RealFloat.Functions ( Data/Text/Internal/Builder/RealFloat/Functions.hs, dist/build/Data/Text/Internal/Builder/RealFloat/Functions.o )
[ 4 of 44] Compiling Data.Text.Internal.Builder.Int.Digits ( Data/Text/Internal/Builder/Int/Digits.hs, dist/build/Data/Text/Internal/Builder/Int/Digits.o )
[ 5 of 44] Compiling Data.Text.Encoding.Error ( Data/Text/Encoding/Error.hs, dist/build/Data/Text/Encoding/Error.o )
[ 6 of 44] Compiling Data.Text.Internal.Unsafe.Shift ( Data/Text/Internal/Unsafe/Shift.hs, dist/build/Data/Text/Internal/Unsafe/Shift.o )
[ 7 of 44] Compiling Data.Text.Internal.Encoding.Utf16 ( Data/Text/Internal/Encoding/Utf16.hs, dist/build/Data/Text/Internal/Encoding/Utf16.o )
[ 8 of 44] Compiling Data.Text.Internal.Functions ( Data/Text/Internal/Functions.hs, dist/build/Data/Text/Internal/Functions.o )
[ 9 of 44] Compiling Data.Text.Internal.Unsafe ( Data/Text/Internal/Unsafe.hs, dist/build/Data/Text/Internal/Unsafe.o )
[10 of 44] Compiling Data.Text.Array  ( Data/Text/Array.hs, dist/build/Data/Text/Array.o )
[11 of 44] Compiling Data.Text.Internal.Unsafe.Char ( Data/Text/Internal/Unsafe/Char.hs, dist/build/Data/Text/Internal/Unsafe/Char.o )
[12 of 44] Compiling Data.Text.Internal ( Data/Text/Internal.hs, dist/build/Data/Text/Internal.o )
[13 of 44] Compiling Data.Text.Internal.Fusion.Size ( Data/Text/Internal/Fusion/Size.hs, dist/build/Data/Text/Internal/Fusion/Size.o )
[14 of 44] Compiling Data.Text.Internal.Fusion.Types ( Data/Text/Internal/Fusion/Types.hs, dist/build/Data/Text/Internal/Fusion/Types.o )
[15 of 44] Compiling Data.Text.Internal.Fusion.CaseMapping ( Data/Text/Internal/Fusion/CaseMapping.hs, dist/build/Data/Text/Internal/Fusion/CaseMapping.o )
[16 of 44] Compiling Data.Text.Internal.Fusion.Common ( Data/Text/Internal/Fusion/Common.hs, dist/build/Data/Text/Internal/Fusion/Common.o )
[17 of 44] Compiling Data.Text.Unsafe ( Data/Text/Unsafe.hs, dist/build/Data/Text/Unsafe.o )
[18 of 44] Compiling Data.Text.Internal.Private ( Data/Text/Internal/Private.hs, dist/build/Data/Text/Internal/Private.o )
[19 of 44] Compiling Data.Text.Internal.Fusion ( Data/Text/Internal/Fusion.hs, dist/build/Data/Text/Internal/Fusion.o )
[20 of 44] Compiling Data.Text.Show   ( Data/Text/Show.hs, dist/build/Data/Text/Show.o )
[21 of 44] Compiling Data.Text.Internal.Encoding.Fusion.Common ( Data/Text/Internal/Encoding/Fusion/Common.hs, dist/build/Data/Text/Internal/Encoding/Fusion/Common.o )
[22 of 44] Compiling Data.Text.Internal.Encoding.Utf8 ( Data/Text/Internal/Encoding/Utf8.hs, dist/build/Data/Text/Internal/Encoding/Utf8.o )
[23 of 44] Compiling Data.Text.Internal.Encoding.Fusion ( Data/Text/Internal/Encoding/Fusion.hs, dist/build/Data/Text/Internal/Encoding/Fusion.o )
[24 of 44] Compiling Data.Text.Encoding ( Data/Text/Encoding.hs, dist/build/Data/Text/Encoding.o )
[25 of 44] Compiling Data.Text.Internal.Lazy.Encoding.Fusion ( Data/Text/Internal/Lazy/Encoding/Fusion.hs, dist/build/Data/Text/Internal/Lazy/Encoding/Fusion.o )
[26 of 44] Compiling Data.Text.Internal.Search ( Data/Text/Internal/Search.hs, dist/build/Data/Text/Internal/Search.o )
[27 of 44] Compiling Data.Text.Foreign ( Data/Text/Foreign.hs, dist/build/Data/Text/Foreign.o )
[28 of 44] Compiling Data.Text        ( Data/Text.hs, dist/build/Data/Text.o )

Data/Text.hs:587:1: warning: [-Winline-rule-shadowing]
    Rule "TEXT compareN/length -> compareLength" may never fire
      because ‘length’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘length’

Data/Text.hs:592:1: warning: [-Winline-rule-shadowing]
    Rule "TEXT ==N/length -> compareLength/==EQ" may never fire
      because ‘length’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘length’

Data/Text.hs:597:1: warning: [-Winline-rule-shadowing]
    Rule "TEXT /=N/length -> compareLength//=EQ" may never fire
      because ‘length’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘length’

Data/Text.hs:602:1: warning: [-Winline-rule-shadowing]
    Rule "TEXT <N/length -> compareLength/==LT" may never fire
      because ‘length’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘length’

Data/Text.hs:607:1: warning: [-Winline-rule-shadowing]
    Rule "TEXT <=N/length -> compareLength//=GT" may never fire
      because ‘length’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘length’

Data/Text.hs:612:1: warning: [-Winline-rule-shadowing]
    Rule "TEXT >N/length -> compareLength/==GT" may never fire
      because ‘length’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘length’

Data/Text.hs:617:1: warning: [-Winline-rule-shadowing]
    Rule "TEXT >=N/length -> compareLength//=LT" may never fire
      because ‘length’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘length’
[29 of 44] Compiling Data.Text.Internal.IO ( Data/Text/Internal/IO.hs, dist/build/Data/Text/Internal/IO.o )
[30 of 44] Compiling Data.Text.IO     ( Data/Text/IO.hs, dist/build/Data/Text/IO.o )
[31 of 44] Compiling Data.Text.Internal.Lazy ( Data/Text/Internal/Lazy.hs, dist/build/Data/Text/Internal/Lazy.o )
[32 of 44] Compiling Data.Text.Internal.Lazy.Fusion ( Data/Text/Internal/Lazy/Fusion.hs, dist/build/Data/Text/Internal/Lazy/Fusion.o )
[33 of 44] Compiling Data.Text.Internal.Lazy.Search ( Data/Text/Internal/Lazy/Search.hs, dist/build/Data/Text/Internal/Lazy/Search.o )
[34 of 44] Compiling Data.Text.Lazy.Internal ( Data/Text/Lazy/Internal.hs, dist/build/Data/Text/Lazy/Internal.o )
[35 of 44] Compiling Data.Text.Lazy.Encoding ( Data/Text/Lazy/Encoding.hs, dist/build/Data/Text/Lazy/Encoding.o )
[36 of 44] Compiling Data.Text.Lazy   ( Data/Text/Lazy.hs, dist/build/Data/Text/Lazy.o )
[37 of 44] Compiling Data.Text.Internal.Builder ( Data/Text/Internal/Builder.hs, dist/build/Data/Text/Internal/Builder.o )

Data/Text/Internal/Builder.hs:324:1: warning: [-Winline-rule-shadowing]
    Rule "flush/flush" may never fire
      because ‘flush’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘flush’
[38 of 44] Compiling Data.Text.Lazy.Builder ( Data/Text/Lazy/Builder.hs, dist/build/Data/Text/Lazy/Builder.o )
[39 of 44] Compiling Data.Text.Internal.Builder.Functions ( Data/Text/Internal/Builder/Functions.hs, dist/build/Data/Text/Internal/Builder/Functions.o )
[40 of 44] Compiling Data.Text.Lazy.Builder.Int ( Data/Text/Lazy/Builder/Int.hs, dist/build/Data/Text/Lazy/Builder/Int.o )
[41 of 44] Compiling Data.Text.Lazy.IO ( Data/Text/Lazy/IO.hs, dist/build/Data/Text/Lazy/IO.o )
[42 of 44] Compiling Data.Text.Lazy.Read ( Data/Text/Lazy/Read.hs, dist/build/Data/Text/Lazy/Read.o )
[43 of 44] Compiling Data.Text.Lazy.Builder.RealFloat ( Data/Text/Lazy/Builder/RealFloat.hs, dist/build/Data/Text/Lazy/Builder/RealFloat.o )
[44 of 44] Compiling Data.Text.Read   ( Data/Text/Read.hs, dist/build/Data/Text/Read.o )
Running Haddock for text-1.2.2.1...
Running hscolour for text-1.2.2.1...
Preprocessing library text-1.2.2.1...
Preprocessing library text-1.2.2.1...
Haddock coverage:
  14% (  1 /  7) in 'Data.Text.Internal.Read'
  Missing documentation for:
    IReader (Data/Text/Internal/Read.hs:26)
    IParser (Data/Text/Internal/Read.hs:28)
    T (Data/Text/Internal/Read.hs:48)
    digitToInt (Data/Text/Internal/Read.hs:61)
    hexDigitToInt (Data/Text/Internal/Read.hs:55)
    perhaps (Data/Text/Internal/Read.hs:50)
  50% (  1 /  2) in 'Data.Text.Internal.Encoding.Utf32'
  Missing documentation for:
    validate (Data/Text/Internal/Encoding/Utf32.hs:24)
  50% (  1 /  2) in 'Data.Text.Internal.Builder.RealFloat.Functions'
  Missing documentation for:
    roundTo (Data/Text/Internal/Builder/RealFloat/Functions.hs:17)
   0% (  0 /  2) in 'Data.Text.Internal.Builder.Int.Digits'
  Missing documentation for:
    Module header
    digits (Data/Text/Internal/Builder/Int/Digits.hs:21)
 100% ( 12 / 12) in 'Data.Text.Encoding.Error'
 100% (  2 /  2) in 'Data.Text.Internal.Unsafe.Shift'
  25% (  1 /  4) in 'Data.Text.Internal.Encoding.Utf16'
  Missing documentation for:
    chr2 (Data/Text/Internal/Encoding/Utf16.hs:29)
    validate1 (Data/Text/Internal/Encoding/Utf16.hs:38)
    validate2 (Data/Text/Internal/Encoding/Utf16.hs:42)
 100% (  2 /  2) in 'Data.Text.Internal.Functions'
 100% (  3 /  3) in 'Data.Text.Internal.Unsafe'
 100% ( 16 / 16) in 'Data.Text.Array'
  33% (  2 /  6) in 'Data.Text.Internal.Unsafe.Char'
  Missing documentation for:
    ord (Data/Text/Internal/Unsafe/Char.hs:39)
    unsafeChr (Data/Text/Internal/Unsafe/Char.hs:43)
    unsafeChr8 (Data/Text/Internal/Unsafe/Char.hs:47)
    unsafeChr32 (Data/Text/Internal/Unsafe/Char.hs:51)
  95% ( 19 / 20) in 'Data.Text.Internal'
  Missing documentation for:
    textP (Data/Text/Internal.hs:97)
  38% (  5 / 13) in 'Data.Text.Internal.Fusion.Size'
  Missing documentation for:
    Size (Data/Text/Internal/Fusion/Size.hs:40)
    exactly (Data/Text/Internal/Fusion/Size.hs:44)
    exactSize (Data/Text/Internal/Fusion/Size.hs:49)
    maxSize (Data/Text/Internal/Fusion/Size.hs:57)
    betweenSize (Data/Text/Internal/Fusion/Size.hs:65)
    unknownSize (Data/Text/Internal/Fusion/Size.hs:74)
    compareSize (Data/Text/Internal/Fusion/Size.hs:143)
    isEmpty (Data/Text/Internal/Fusion/Size.hs:151)
  88% (  7 /  8) in 'Data.Text.Internal.Fusion.Types'
  Missing documentation for:
    Stream (Data/Text/Internal/Fusion/Types.hs:83)
   0% (  0 /  5) in 'Data.Text.Internal.Fusion.CaseMapping'
  Missing documentation for:
    Module header
    upperMapping (Data/Text/Internal/Fusion/CaseMapping.hs:13)
    lowerMapping (Data/Text/Internal/Fusion/CaseMapping.hs:220)
    titleMapping (Data/Text/Internal/Fusion/CaseMapping.hs:225)
    foldMapping (Data/Text/Internal/Fusion/CaseMapping.hs:324)
  89% ( 63 / 71) in 'Data.Text.Internal.Fusion.Common'
  Missing documentation for:
    singleton (Data/Text/Internal/Fusion/Common.hs:119)
    streamList (Data/Text/Internal/Fusion/Common.hs:125)
    unstreamList (Data/Text/Internal/Fusion/Common.hs:131)
    intercalate (Data/Text/Internal/Fusion/Common.hs:577)
    justifyLeftI (Data/Text/Internal/Fusion/Common.hs:479)
    scanl (Data/Text/Internal/Fusion/Common.hs:656)
    replicateCharI (Data/Text/Internal/Fusion/Common.hs:671)
    replicateI (Data/Text/Internal/Fusion/Common.hs:682)
  93% ( 13 / 14) in 'Data.Text.Unsafe'
  Missing documentation for:
    Iter (Data/Text/Unsafe.hs:62)
  33% (  1 /  3) in 'Data.Text.Internal.Private'
  Missing documentation for:
    runText (Data/Text/Internal/Private.hs:33)
    span_ (Data/Text/Internal/Private.hs:23)
  91% ( 20 / 22) in 'Data.Text.Internal.Fusion'
  Missing documentation for:
    Stream (Data/Text/Internal/Fusion/Types.hs:83)
    length (Data/Text/Internal/Fusion.hs:127)
 100% (  4 /  4) in 'Data.Text.Show'
  33% (  2 /  6) in 'Data.Text.Internal.Encoding.Fusion.Common'
  Missing documentation for:
    restreamUtf16LE (Data/Text/Internal/Encoding/Fusion/Common.hs:63)
    restreamUtf16BE (Data/Text/Internal/Encoding/Fusion/Common.hs:39)
    restreamUtf32LE (Data/Text/Internal/Encoding/Fusion/Common.hs:106)
    restreamUtf32BE (Data/Text/Internal/Encoding/Fusion/Common.hs:87)
  17% (  2 / 12) in 'Data.Text.Internal.Encoding.Utf8'
  Missing documentation for:
    ord2 (Data/Text/Internal/Encoding/Utf8.hs:58)
    ord3 (Data/Text/Internal/Encoding/Utf8.hs:69)
    ord4 (Data/Text/Internal/Encoding/Utf8.hs:81)
    chr2 (Data/Text/Internal/Encoding/Utf8.hs:94)
    chr3 (Data/Text/Internal/Encoding/Utf8.hs:103)
    chr4 (Data/Text/Internal/Encoding/Utf8.hs:114)
    validate1 (Data/Text/Internal/Encoding/Utf8.hs:128)
    validate2 (Data/Text/Internal/Encoding/Utf8.hs:132)
    validate3 (Data/Text/Internal/Encoding/Utf8.hs:136)
    validate4 (Data/Text/Internal/Encoding/Utf8.hs:153)
  91% ( 10 / 11) in 'Data.Text.Internal.Encoding.Fusion'
  Missing documentation for:
    streamASCII (Data/Text/Internal/Encoding/Fusion.hs:57)
 100% ( 33 / 33) in 'Data.Text.Encoding'
 100% ( 10 / 10) in 'Data.Text.Internal.Lazy.Encoding.Fusion'
 100% (  2 /  2) in 'Data.Text.Internal.Search'
 100% ( 18 / 18) in 'Data.Text.Foreign'
 100% (127 /127) in 'Data.Text'
 100% (  3 /  3) in 'Data.Text.Internal.IO'
 100% ( 20 / 20) in 'Data.Text.IO'
  93% ( 14 / 15) in 'Data.Text.Internal.Lazy'
  Missing documentation for:
    Text (Data/Text/Internal/Lazy.hs:47)
 100% (  8 /  8) in 'Data.Text.Internal.Lazy.Fusion'
 100% (  2 /  2) in 'Data.Text.Internal.Lazy.Search'
 100% (  2 /  2) in 'Data.Text.Lazy.Internal'
  89% ( 24 / 27) in 'Data.Text.Lazy.Encoding'
  Missing documentation for:
    encodeUtf8 (Data/Text/Lazy/Encoding.hs:148)
    encodeUtf8Builder (Data/Text/Lazy/Encoding.hs:162)
    encodeUtf8BuilderEscaped (Data/Text/Lazy/Encoding.hs:167)
  99% (128 /129) in 'Data.Text.Lazy'
  Missing documentation for:
    Text (Data/Text/Internal/Lazy.hs:47)
  94% ( 16 / 17) in 'Data.Text.Internal.Builder'
  Missing documentation for:
    append' (Data/Text/Internal/Builder.hs:301)
 100% ( 12 / 12) in 'Data.Text.Lazy.Builder'
 100% (  3 /  3) in 'Data.Text.Internal.Builder.Functions'
   0% (  0 /  3) in 'Data.Text.Lazy.Builder.Int'
  Missing documentation for:
    Module header
    decimal (Data/Text/Lazy/Builder/Int.hs:52)
    hexadecimal (Data/Text/Lazy/Builder/Int.hs:162)
 100% ( 19 / 19) in 'Data.Text.Lazy.IO'
 100% (  7 /  7) in 'Data.Text.Lazy.Read'
  75% (  3 /  4) in 'Data.Text.Lazy.Builder.RealFloat'
  Missing documentation for:
    formatRealFloat (Data/Text/Lazy/Builder/RealFloat.hs:46)
 100% (  7 /  7) in 'Data.Text.Read'
Warning: Data.Text.Internal.Fusion.Common: could not find link destinations for:
    findIndicesI
Warning: Data.Text: could not find link destinations for:
    replicateChar countChar
Warning: Data.Text.Internal.IO: could not find link destinations for:
    Handle__
Warning: Data.Text.Lazy: could not find link destinations for:
    replicateChar dropWords splitAtWord countChar
Warning: Data.Text.Internal.Builder: could not find link destinations for:
    empty append
Warning: Data.Text.Lazy.Builder.RealFloat: could not find link destinations for:
    floatToDigits
Documentation created: dist/doc/html/text/index.html,
dist/doc/html/text/text.txt
Creating package registration file:
/tmp/pkgConf-text-1.2.26013856441172755590.1
Installing library in
/home/builder/hackage-server/build-cache/tmp-install/lib/x86_64-linux-ghc-8.0.1.20160701/text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3Qs
Registering text-1.2.2.1...
cabal: Leaving directory '/tmp/cabal-tmp-27441/text-1.2.2.1'
Installed text-1.2.2.1
cabal: Entering directory '/tmp/cabal-tmp-27441/TypeCompose-0.9.12'
Configuring TypeCompose-0.9.12...
Building TypeCompose-0.9.12...
Preprocessing library TypeCompose-0.9.12...

src/Data/Title.hs:1:33: warning:
    -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS
[ 1 of 10] Compiling Control.Instances ( src/Control/Instances.hs, dist/build/Control/Instances.o )
[ 2 of 10] Compiling Data.RefMonad    ( src/Data/RefMonad.hs, dist/build/Data/RefMonad.o )
[ 3 of 10] Compiling Data.Bijection   ( src/Data/Bijection.hs, dist/build/Data/Bijection.o )
[ 4 of 10] Compiling Control.Compose  ( src/Control/Compose.hs, dist/build/Control/Compose.o )

src/Control/Compose.hs:91:1: warning: [-Wunused-imports]
    The import of ‘Data.Traversable’ is redundant
      except perhaps to import instances from ‘Data.Traversable’
    To import instances alone, use: import Data.Traversable()

src/Control/Compose.hs:245:10: warning: [-Wredundant-constraints]
    • Redundant constraint: Functor g
    • In the instance declaration for ‘Foldable (g :. f)’

src/Control/Compose.hs:400:1: warning: [-Wredundant-constraints]
    • Redundant constraints: (Functor m, Functor n)
    • In the type signature for:
           bindDistribM :: (Functor m, Functor n, Monad m, Monad n,
                            DistribM m n) =>
                           (:.) m n a -> (a -> (:.) m n b) -> (:.) m n b

src/Control/Compose.hs:415:1: warning: [-Wredundant-constraints]
    • Redundant constraint: Applicative m
    • In the type signature for:
           joinMMT :: (Monad m, Monad n, Traversable n, Applicative m) =>
                      m (n (m (n a))) -> m (n a)

src/Control/Compose.hs:420:1: warning: [-Wredundant-constraints]
    • Redundant constraint: Applicative m
    • In the type signature for:
           joinComposeT :: (Monad m, Monad n, Traversable n, Applicative m) =>
                           (:.) m n ((:.) m n a) -> (:.) m n a
[ 5 of 10] Compiling Data.Title       ( src/Data/Title.hs, dist/build/Data/Title.o )
[ 6 of 10] Compiling Data.CxMonoid    ( src/Data/CxMonoid.hs, dist/build/Data/CxMonoid.o )
[ 7 of 10] Compiling Data.Pair        ( src/Data/Pair.hs, dist/build/Data/Pair.o )
[ 8 of 10] Compiling Data.Zip         ( src/Data/Zip.hs, dist/build/Data/Zip.o )

src/Data/Zip.hs:111:1: warning: [-Winline-rule-shadowing]
    Rule "zipWith  prelude" may never fire
      because ‘zipWith’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘zipWith’

src/Data/Zip.hs:112:1: warning: [-Winline-rule-shadowing]
    Rule "zipWith3 prelude" may never fire
      because ‘zipWith3’ might inline first
    Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘zipWith3’
[ 9 of 10] Compiling Data.Partial     ( src/Data/Partial.hs, dist/build/Data/Partial.o )
[10 of 10] Compiling Data.Lambda      ( src/Data/Lambda.hs, dist/build/Data/Lambda.o )
Running Haddock for TypeCompose-0.9.12...
Running hscolour for TypeCompose-0.9.12...
Preprocessing library TypeCompose-0.9.12...
Preprocessing library TypeCompose-0.9.12...

src/Data/Title.hs:1:33: warning:
    -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS

src/Control/Compose.hs:91:1: warning: [-Wunused-imports]
    The import of ‘Data.Traversable’ is redundant
      except perhaps to import instances from ‘Data.Traversable’
    To import instances alone, use: import Data.Traversable()

src/Control/Compose.hs:245:10: warning: [-Wredundant-constraints]
    • Redundant constraint: Functor g
    • In the instance declaration for ‘Foldable (g :. f)’

src/Control/Compose.hs:400:1: warning: [-Wredundant-constraints]
    • Redundant constraints: (Functor m, Functor n)
    • In the type signature for:
           bindDistribM :: (Functor m, Functor n, Monad m, Monad n,
                            DistribM m n) =>
                           (:.) m n a -> (a -> (:.) m n b) -> (:.) m n b

src/Control/Compose.hs:415:1: warning: [-Wredundant-constraints]
    • Redundant constraint: Applicative m
    • In the type signature for:
           joinMMT :: (Monad m, Monad n, Traversable n, Applicative m) =>
                      m (n (m (n a))) -> m (n a)

src/Control/Compose.hs:420:1: warning: [-Wredundant-constraints]
    • Redundant constraint: Applicative m
    • In the type signature for:
           joinComposeT :: (Monad m, Monad n, Traversable n, Applicative m) =>
                           (:.) m n ((:.) m n a) -> (:.) m n a
Haddock coverage:
 100% (  1 /  1) in 'Control.Instances'
 100% (  3 /  3) in 'Data.RefMonad'
 100% (  8 /  8) in 'Data.Bijection'
  85% ( 84 / 99) in 'Control.Compose'
  Missing documentation for:
    <~ (src/Control/Compose.hs:142)
    *<~ (src/Control/Compose.hs:155)
    returnDistribM (src/Control/Compose.hs:404)
    inFlip (src/Control/Compose.hs:579)
    inFlip2 (src/Control/Compose.hs:583)
    inFlip3 (src/Control/Compose.hs:588)
    inApp (src/Control/Compose.hs:637)
    inApp2 (src/Control/Compose.hs:641)
    unId (src/Control/Compose.hs:675)
    inId (src/Control/Compose.hs:678)
    inId2 (src/Control/Compose.hs:681)
    :->: (src/Control/Compose.hs:892)
    inConst (src/Control/Compose.hs:918)
    inConst2 (src/Control/Compose.hs:921)
    inConst3 (src/Control/Compose.hs:924)
  67% (  2 /  3) in 'Data.Title'
  Missing documentation for:
    Title_f (src/Data/Title.hs:37)
 100% (  4 /  4) in 'Data.CxMonoid'
 100% ( 16 / 16) in 'Data.Pair'
 100% ( 18 / 18) in 'Data.Zip'
  91% ( 10 / 11) in 'Data.Partial'
  Missing documentation for:
    PartialX (src/Data/Partial.hs:47)
 100% (  8 /  8) in 'Data.Lambda'
Documentation created: dist/doc/html/TypeCompose/index.html,
dist/doc/html/TypeCompose/TypeCompose.txt
Creating package registration file:
/tmp/pkgConf-TypeCompose-0.9738647283772970072.12
Installing library in
/home/builder/hackage-server/build-cache/tmp-install/lib/x86_64-linux-ghc-8.0.1.20160701/TypeCompose-0.9.12-CUb55uJGeK65Htq0yqldJX
Registering TypeCompose-0.9.12...
cabal: Leaving directory '/tmp/cabal-tmp-27441/TypeCompose-0.9.12'
Installed TypeCompose-0.9.12
Downloading gll-0.4.0.2...
cabal: Entering directory '/tmp/cabal-tmp-27441/gll-0.4.0.2'
Configuring gll-0.4.0.2...
Building gll-0.4.0.2...
Preprocessing library gll-0.4.0.2...
[ 1 of 14] Compiling GLL.Flags        ( src/GLL/Flags.hs, dist/build/GLL/Flags.o )
[ 2 of 14] Compiling GLL.Types.Grammar ( src/GLL/Types/Grammar.hs, dist/build/GLL/Types/Grammar.o )
[ 3 of 14] Compiling GLL.Parseable.Char ( src/GLL/Parseable/Char.hs, dist/build/GLL/Parseable/Char.o )
[ 4 of 14] Compiling GLL.Types.Derivations ( src/GLL/Types/Derivations.hs, dist/build/GLL/Types/Derivations.o )

src/GLL/Types/Derivations.hs:73:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner3’
        Consider giving a type signature for ‘inner3’
    • In an equation for ‘pNodeLookup’:
          pNodeLookup (_, _, pMap, _) ((alt, j), l, r)
            = maybe Nothing inner $ IM.lookup l pMap
            where
                inner = maybe Nothing inner2 . IM.lookup r
                inner2 = maybe Nothing inner3 . IM.lookup j
                inner3 = maybe Nothing (Just . IS.toList) . M.lookup alt

src/GLL/Types/Derivations.hs:94:15: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘singleAK’
        Consider giving a type signature for ‘singleAK’
    • In an equation for ‘add’:
          add alt j l r k
            = IM.alter addInnerL l pMap
            where
                addInnerL mm
                  = case mm of {
                      Nothing -> Just singleRJAK
                      Just m -> Just $ IM.alter addInnerR r m }
                addInnerR mm
                  = case mm of {
                      Nothing -> Just singleJAK
                      Just m -> Just $ IM.alter addInnerJ j m }
                addInnerJ mm
                  = case mm of {
                      Nothing -> Just singleAK
                      Just m -> Just $ M.insertWith IS.union alt singleK m }
                singleRJAK = IM.fromList [(r, singleJAK)]
                ....
      In an equation for ‘pMapInsert’:
          pMapInsert f t (sMap, iMap, pMap, eMap)
            = let pMap' = ... in (sMap, iMap, pMap', eMap)
            where
                add alt j l r k
                  = IM.alter addInnerL l pMap
                  where
                      addInnerL mm = ...
                      addInnerR mm = ...
                      ....

src/GLL/Types/Derivations.hs:100:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘sNodeLookup’:
          sNodeLookup (sm, _, _, _) (s, l, r)
            = maybe False inner $ IM.lookup l sm
            where
                inner = maybe False (S.member s) . IM.lookup r

src/GLL/Types/Derivations.hs:104:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘sMap'’
        Consider giving a type signature for ‘sMap'’
    • In the expression:
        let
          sMap'
            = case f of {
                SNode (s, l, r) -> ...
                _ -> ... }
        in (sMap', iMap, pMap, eMap)
      In an equation for ‘sNodeInsert’:
          sNodeInsert f t (sMap, iMap, pMap, eMap)
            = let sMap' = ... in (sMap', iMap, pMap, eMap)
            where
                newt sMap
                  = case t of {
                      (SNode (s, l, r)) -> add s l r sMap
                      _ -> sMap }
                add s l r sMap
                  = IM.alter addInnerL l sMap
                  where
                      addInnerL mm = ...
                      singleRS = IM.fromList ...
                      ....

src/GLL/Types/Derivations.hs:116:15: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘singleS’
        Consider giving a type signature for ‘singleS’
    • In an equation for ‘add’:
          add s l r sMap
            = IM.alter addInnerL l sMap
            where
                addInnerL mm
                  = case mm of {
                      Nothing -> Just singleRS
                      Just m -> Just $ IM.insertWith (S.union) r singleS m }
                singleRS = IM.fromList [(r, singleS)]
                singleS = S.singleton s
      In an equation for ‘sNodeInsert’:
          sNodeInsert f t (sMap, iMap, pMap, eMap)
            = let sMap' = ... in (sMap', iMap, pMap, eMap)
            where
                newt sMap
                  = case t of {
                      (SNode (s, l, r)) -> add s l r sMap
                      _ -> sMap }
                add s l r sMap
                  = IM.alter addInnerL l sMap
                  where
                      addInnerL mm = ...
                      singleRS = IM.fromList ...
                      ....

src/GLL/Types/Derivations.hs:121:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘sNodeRemove’:
          sNodeRemove (sm, iMap, pMap, eMap) (s, l, r)
            = (IM.adjust inner l sm, iMap, pMap, eMap)
            where
                inner = IM.adjust ((s `S.delete`)) r

src/GLL/Types/Derivations.hs:125:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘iNodeLookup’:
          iNodeLookup (_, iMap, _, _) (s, l, r)
            = maybe False inner $ IM.lookup l iMap
            where
                inner = maybe False (S.member s) . IM.lookup r

src/GLL/Types/Derivations.hs:129:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘iMap'’
        Consider giving a type signature for ‘iMap'’
    • In the expression:
        let
          iMap'
            = case f of {
                INode (s, l, r) -> ...
                _ -> ... }
        in (sMap, iMap', pMap, eMap)
      In an equation for ‘iNodeInsert’:
          iNodeInsert f t (sMap, iMap, pMap, eMap)
            = let iMap' = ... in (sMap, iMap', pMap, eMap)
            where
                newt iMap
                  = case t of {
                      (INode (s, l, r)) -> add s l r iMap
                      _ -> iMap }
                add s l r iMap
                  = IM.alter addInnerL l iMap
                  where
                      addInnerL mm = ...
                      singleRS = IM.fromList ...
                      ....

src/GLL/Types/Derivations.hs:141:15: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘singleS’
        Consider giving a type signature for ‘singleS’
    • In an equation for ‘add’:
          add s l r iMap
            = IM.alter addInnerL l iMap
            where
                addInnerL mm
                  = case mm of {
                      Nothing -> Just singleRS
                      Just m -> Just $ IM.insertWith (S.union) r singleS m }
                singleRS = IM.fromList [(r, singleS)]
                singleS = S.singleton s
      In an equation for ‘iNodeInsert’:
          iNodeInsert f t (sMap, iMap, pMap, eMap)
            = let iMap' = ... in (sMap, iMap', pMap, eMap)
            where
                newt iMap
                  = case t of {
                      (INode (s, l, r)) -> add s l r iMap
                      _ -> iMap }
                add s l r iMap
                  = IM.alter addInnerL l iMap
                  where
                      addInnerL mm = ...
                      singleRS = IM.fromList ...
                      ....

src/GLL/Types/Derivations.hs:146:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘iNodeRemove’:
          iNodeRemove (sMap, iMap, pMap, eMap) (s, l, r)
            = (sMap, IM.adjust inner l iMap, pMap, eMap)
            where
                inner = IM.adjust ((s `S.delete`)) r

src/GLL/Types/Derivations.hs:154:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘inU’:
          inU (slot, l, i) u
            = maybe False inner $ IM.lookup l u
            where
                inner = maybe False (S.member slot) . IM.lookup i

src/GLL/Types/Derivations.hs:187:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘prefixMap’
        Consider giving a type signature for ‘prefixMap’
    • In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Types/Derivations.hs:196:25: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘init’
        Consider giving a type signature for ‘init’
    • In the expression:
        let
          init = map ((\ (Term t) -> t) . (alpha !!)) [a .. (z - 2)]
          last = alpha !! (z - 1)
        in
          case last of {
            Nt nt -> (a, init, Just nt)
            Term t -> (a, init ++ [...], Nothing) }
      In an equation for ‘rangePrefix’:
          rangePrefix (a, z)
            = let
                init = map ((\ (Term t) -> ...) . (alpha !!)) ...
                last = alpha !! (z - 1)
              in
                case last of {
                  Nt nt -> (a, init, Just nt)
                  Term t -> (a, init ++ ..., Nothing) }
      In an equation for ‘prefix’:
          prefix x alpha
            = map rangePrefix ranges
            where
                js = (map ((+) 1) (findIndices isNt alpha))
                ranges = zip (0 : js) (js ++ [length alpha])
                rangePrefix (a, z) | a >= z = (a, [], Nothing)
                rangePrefix (a, z)
                  = let ...
                    in
                      case last of {
                        Nt nt -> ...
                        Term t -> ... }

src/GLL/Types/Derivations.hs:197:25: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘last’
        Consider giving a type signature for ‘last’
    • In the expression:
        let
          init = map ((\ (Term t) -> t) . (alpha !!)) [a .. (z - 2)]
          last = alpha !! (z - 1)
        in
          case last of {
            Nt nt -> (a, init, Just nt)
            Term t -> (a, init ++ [...], Nothing) }
      In an equation for ‘rangePrefix’:
          rangePrefix (a, z)
            = let
                init = map ((\ (Term t) -> ...) . (alpha !!)) ...
                last = alpha !! (z - 1)
              in
                case last of {
                  Nt nt -> (a, init, Just nt)
                  Term t -> (a, init ++ ..., Nothing) }
      In an equation for ‘prefix’:
          prefix x alpha
            = map rangePrefix ranges
            where
                js = (map ((+) 1) (findIndices isNt alpha))
                ranges = zip (0 : js) (js ++ [length alpha])
                rangePrefix (a, z) | a >= z = (a, [], Nothing)
                rangePrefix (a, z)
                  = let ...
                    in
                      case last of {
                        Nt nt -> ...
                        Term t -> ... }

src/GLL/Types/Derivations.hs:206:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘selectMap’
        Consider giving a type signature for ‘selectMap’
    • In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Types/Derivations.hs:215:25: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘firsts’
        Consider giving a type signature for ‘firsts’
    • In an equation for ‘select’:
          select alpha x
            = res
            where
                firsts = first_alpha [] alpha
                res
                  | eps `S.member` firsts
                  = S.delete eps firsts `S.union` (followMap M.! x)
                  | otherwise = firsts
      In an equation for ‘selectMap’:
          selectMap
            = M.fromList
                [((x, alpha), select alpha x) |
                   Prod x rhs <- prs, alpha <- split rhs]
            where
                split rhs
                  = foldr op [] js
                  where
                      op j acc = drop j rhs : acc
                      js = 0 : findIndices isNt rhs
                select alpha x
                  = res
                  where
                      firsts = first_alpha ... alpha
                      res
                        | eps `S.member` firsts
                        = S.delete eps firsts `S.union` (followMap M.! x)
                        | otherwise = firsts
      In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Types/Derivations.hs:216:25: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘res’
        Consider giving a type signature for ‘res’
    • In an equation for ‘select’:
          select alpha x
            = res
            where
                firsts = first_alpha [] alpha
                res
                  | eps `S.member` firsts
                  = S.delete eps firsts `S.union` (followMap M.! x)
                  | otherwise = firsts
      In an equation for ‘selectMap’:
          selectMap
            = M.fromList
                [((x, alpha), select alpha x) |
                   Prod x rhs <- prs, alpha <- split rhs]
            where
                split rhs
                  = foldr op [] js
                  where
                      op j acc = drop j rhs : acc
                      js = 0 : findIndices isNt rhs
                select alpha x
                  = res
                  where
                      firsts = first_alpha ... alpha
                      res
                        | eps `S.member` firsts
                        = S.delete eps firsts `S.union` (followMap M.! x)
                        | otherwise = firsts
      In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Types/Derivations.hs:227:17: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘fs’
        Consider giving a type signature for ‘fs’
    • In the expression:
        let
          fs
            | x `elem` ys = S.empty
            | otherwise = first_x (x : ys) x
        in
          if x `S.member` nullableSet then
              S.delete eps fs `S.union` first_alpha (x : ys) xs
          else
              fs
      In a case alternative:
          Nt x
            -> let
                 fs
                   | x `elem` ys = S.empty
                   | otherwise = first_x (x : ys) x
               in
                 if x `S.member` nullableSet then
                     S.delete eps fs `S.union` first_alpha (x : ys) xs
                 else
                     fs
      In the expression:
        case x of {
          Term tau
            -> if tau == eps then first_alpha ys xs else S.singleton tau
          Nt x
            -> let
                 fs
                   | x `elem` ys = ...
                   | otherwise = ...
               in
                 if x `S.member` nullableSet then
                     S.delete eps fs `S.union` first_alpha (x : ys) xs
                 else
                     fs }

src/GLL/Types/Derivations.hs:238:29: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘ts’
        Consider giving a type signature for ‘ts’
    • In the expression:
        let
          ts = S.delete eps (first_alpha [] ss)
          fs = follow (x : ys) y
        in
          if nullable_alpha [] ss && not (x `elem` (y : ys)) then
              ts `S.union` fs
          else
              ts
      In an equation for ‘fw’:
          fw (y, ss)
            = let
                ts = S.delete eps (first_alpha ... ss)
                fs = follow (x : ys) y
              in
                if nullable_alpha [] ss && not (x `elem` (y : ys)) then
                    ts `S.union` fs
                else
                    ts
      In an equation for ‘follow’:
          follow ys x
            = S.unions (map fw (maybe [] id $ M.lookup x localMap))
              `S.union` (if x == s then S.singleton eos else S.empty)
            where
                fw (y, ss)
                  = let ...
                    in
                      if nullable_alpha ... ss && not (x `elem` (y : ys)) then
                          ts `S.union` fs
                      else
                          ts

src/GLL/Types/Derivations.hs:239:29: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘fs’
        Consider giving a type signature for ‘fs’
    • In the expression:
        let
          ts = S.delete eps (first_alpha [] ss)
          fs = follow (x : ys) y
        in
          if nullable_alpha [] ss && not (x `elem` (y : ys)) then
              ts `S.union` fs
          else
              ts
      In an equation for ‘fw’:
          fw (y, ss)
            = let
                ts = S.delete eps (first_alpha ... ss)
                fs = follow (x : ys) y
              in
                if nullable_alpha [] ss && not (x `elem` (y : ys)) then
                    ts `S.union` fs
                else
                    ts
      In an equation for ‘follow’:
          follow ys x
            = S.unions (map fw (maybe [] id $ M.lookup x localMap))
              `S.union` (if x == s then S.singleton eos else S.empty)
            where
                fw (y, ss)
                  = let ...
                    in
                      if nullable_alpha ... ss && not (x `elem` (y : ys)) then
                          ts `S.union` fs
                      else
                          ts

src/GLL/Types/Derivations.hs:244:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘localMap’
        Consider giving a type signature for ‘localMap’
    • In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....
[ 5 of 14] Compiling GLL.Parser       ( src/GLL/Parser.hs, dist/build/GLL/Parser.o )

src/GLL/Parser.hs:180:1: warning: [-Wunused-imports]
    The import of ‘Control.Applicative’ is redundant
      except perhaps to import instances from ‘Control.Applicative’
    To import instances alone, use: import Control.Applicative()

src/GLL/Parser.hs:252:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘sppf'’
        Consider giving a type signature for ‘sppf'’
    • In the expression:
        let
          sppf'
            = (if symbol_nodes flags then sNodeInsert f t else id)
              $ (if intermediate_nodes flags then iNodeInsert f t else id)
                $ (if edges flags then eMapInsert f t else id)
                  $ pMapInsert f t (mut_sppf mut)
        in ((), mut {mut_sppf = sppf'})
      In the second argument of ‘($)’, namely
        ‘\ flags mut -> let sppf' = ... in ((), mut {mut_sppf = sppf'})’
      In the expression:
        GLL
        $ \ flags mut -> let sppf' = ... in ((), mut {mut_sppf = sppf'})

src/GLL/Parser.hs:261:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘newU’
        Consider giving a type signature for ‘newU’
    • In the expression:
        let
          new
            = maybe True inner $ IM.lookup i (mut_descriptors mut)
            where
                inner m = ...
          newU
            = IM.alter inner i (mut_descriptors mut)
            where
                inner mm = ...
                ....
        in
          if new then
              ((), 
               mut
                 {mut_worklist = (alt, sppf) : (mut_worklist mut),
                  mut_descriptors = newU})
          else
              ((), mut)
      In the second argument of ‘($)’, namely
        ‘\ _ mut
           -> let
                new
                  = ...
                  where
                      ...
                ....
              in
                if new then
                    ((), 
                     mut
                       {mut_worklist = ... : (mut_worklist mut), mut_descriptors = newU})
                else
                    ((), mut)’
      In the expression:
        GLL
        $ \ _ mut
            -> let
                 new
                   = ...
                   where
                       ...
                 ....
               in
                 if new then
                     ((), 
                      mut
                        {mut_worklist = ... : (mut_worklist mut), mut_descriptors = newU})
                 else
                     ((), mut)

src/GLL/Parser.hs:276:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘newP’
        Consider giving a type signature for ‘newP’
    • In the expression:
        let
          newP
            = IM.alter inner l (mut_popset mut)
            where
                inner mm = ...
        in ((), mut {mut_popset = newP})
      In the second argument of ‘($)’, namely
        ‘\ _ mut
           -> let
                newP
                  = ...
                  where
                      ...
              in ((), mut {mut_popset = newP})’
      In the expression:
        GLL
        $ \ _ mut
            -> let
                 newP
                   = ...
                   where
                       ...
               in ((), mut {mut_popset = newP})

src/GLL/Parser.hs:288:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘newGSS’
        Consider giving a type signature for ‘newGSS’
    • In the expression:
        let
          newGSS
            = IM.alter inner i (mut_gss mut)
            where
                inner mm = ...
        in ((), mut {mut_gss = newGSS})
      In the second argument of ‘($)’, namely
        ‘\ _ mut
           -> let
                newGSS
                  = ...
                  where
                      ...
              in ((), mut {mut_gss = newGSS})’
      In the expression:
        GLL
        $ \ _ mut
            -> let
                 newGSS
                   = ...
                   where
                       ...
               in ((), mut {mut_gss = newGSS})

src/GLL/Parser.hs:296:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘res’:
          res
            = maybe [] inner $ IM.lookup l (mut_popset mut)
            where
                inner = maybe [] id . M.lookup gs
      In the expression:
        let
          res
            = maybe [] inner $ IM.lookup l (mut_popset mut)
            where
                inner = ...
        in (res, mut)
      In the second argument of ‘($)’, namely
        ‘\ _ mut
           -> let
                res
                  = ...
                  where
                      ...
              in (res, mut)’

src/GLL/Parser.hs:305:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘newM’
        Consider giving a type signature for ‘newM’
    • In the expression:
        let
          newM = IM.insertWith S.union k ts (mut_mismatches mut)
          newM'
            | length (IM.keys newM) > max_errors flags = IM.deleteMin newM
            | otherwise = newM
        in ((), mut {mut_mismatches = newM'})
      In the second argument of ‘($)’, namely
        ‘\ flags mut
           -> let
                newM = ...
                ....
              in ((), mut {mut_mismatches = newM'})’
      In the expression:
        GLL
        $ \ flags mut
            -> let
                 newM = ...
                 ....
               in ((), mut {mut_mismatches = newM'})

src/GLL/Parser.hs:323:40: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘a’,
                                                               ‘p'’
        Consider giving a type signature for these binders
    • In the expression:
        let
          (a, p') = m o p
          (GLL m') = f a
        in m' o p'
      In the second argument of ‘($)’, namely
        ‘\ o p
           -> let
                (a, p') = ...
                ....
              in m' o p'’
      In the expression:
        GLL
        $ \ o p
            -> let
                 (a, p') = ...
                 ....
               in m' o p'

src/GLL/Parser.hs:344:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘mutable’
        Consider giving a type signature for ‘mutable’
    • In the expression:
        let
          flags = runOptions opts
          (mutable, _, _) = gll flags m False grammar input
          m = length str
          ....
        in resultFromMutable input flags mutable (Nt start, 0, m)
      In an equation for ‘parseWithOptions’:
          parseWithOptions opts grammar@(start, _) str
            = let
                flags = runOptions opts
                (mutable, _, _) = gll flags m False grammar input
                ....
              in resultFromMutable input flags mutable (Nt start, 0, m)

src/GLL/Parser.hs:346:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘input’
        Consider giving a type signature for ‘input’
    • In the expression:
        let
          flags = runOptions opts
          (mutable, _, _) = gll flags m False grammar input
          m = length str
          ....
        in resultFromMutable input flags mutable (Nt start, 0, m)
      In an equation for ‘parseWithOptions’:
          parseWithOptions opts grammar@(start, _) str
            = let
                flags = runOptions opts
                (mutable, _, _) = gll flags m False grammar input
                ....
              in resultFromMutable input flags mutable (Nt start, 0, m)

src/GLL/Parser.hs:354:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘context’
        Consider giving a type signature for ‘context’
    • In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:356:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘dispatch’,
                                                               ‘pRhs’, ‘pLhs’
        Consider giving a type signature for these binders
    • In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:367:17: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘first_ts’
        Consider giving a type signature for ‘first_ts’
    • In the expression:
        do { let alts = ...
                 first_ts = S.unions (map snd alts)
                 ....;
             if null cands then
                 addMisMatch i first_ts
             else
                 forM_ cands (addDescr Dummy);
             dispatch }
      In an equation for ‘pLhs’:
          pLhs (bigx, i)
            = do { let alts = ...
                       ....;
                   if null cands then
                       addMisMatch i first_ts
                   else
                       forM_ cands (addDescr Dummy);
                   dispatch }
      In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:368:17: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘cands’
        Consider giving a type signature for ‘cands’
    • In the expression:
        do { let alts = ...
                 first_ts = S.unions (map snd alts)
                 ....;
             if null cands then
                 addMisMatch i first_ts
             else
                 forM_ cands (addDescr Dummy);
             dispatch }
      In an equation for ‘pLhs’:
          pLhs (bigx, i)
            = do { let alts = ...
                       ....;
                   if null cands then
                       addMisMatch i first_ts
                   else
                       forM_ cands (addDescr Dummy);
                   dispatch }
      In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:419:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘prodMap’,
                                                               ‘follows’, ‘selects’
        Consider giving a type signature for these binders
    • In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:430:12: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘merge’:
          merge m1 m2
            = IM.unionWith inner m1 m2
            where
                inner = IM.unionWith S.union
      In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....
[ 6 of 14] Compiling GLL.Combinators.Visit.Grammar ( src/GLL/Combinators/Visit/Grammar.hs, dist/build/GLL/Combinators/Visit/Grammar.o )
[ 7 of 14] Compiling GLL.Combinators.Lexer ( src/GLL/Combinators/Lexer.hs, dist/build/GLL/Combinators/Lexer.o )

src/GLL/Combinators/Lexer.hs:87:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘lCharacters’
        Consider giving a type signature for ‘lCharacters’
    • In an equation for ‘lTokens’:
          lTokens lexsets
            = lCharacters <|> lKeywords
              <|> charsToInt <$> optional (sym '-') <*> some (psym isDigit)
              <|> upcast . IDLit . Just <$> identifiers lexsets
              <|> upcast . AltIDLit . Just <$> altIdentifiers lexsets
              <|> upcast . CharLit . Just <$> lCharLit
              <|> upcast . StringLit . Just <$> lStringLit
              <|> lMore
            where
                charsToInt Nothing n = upcast (IntLit (Just (read n)))
                charsToInt (Just _) n = upcast (IntLit (Just (- (read n))))
                lChar c = upcast (Char c) <$ sym c
                lCharacters = foldr ((<|>) . lChar) empty (keychars lexsets)
                lKeyword k = upcast (Keyword k) <$ string k
                ....

src/GLL/Combinators/Lexer.hs:90:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘lKeywords’
        Consider giving a type signature for ‘lKeywords’
    • In an equation for ‘lTokens’:
          lTokens lexsets
            = lCharacters <|> lKeywords
              <|> charsToInt <$> optional (sym '-') <*> some (psym isDigit)
              <|> upcast . IDLit . Just <$> identifiers lexsets
              <|> upcast . AltIDLit . Just <$> altIdentifiers lexsets
              <|> upcast . CharLit . Just <$> lCharLit
              <|> upcast . StringLit . Just <$> lStringLit
              <|> lMore
            where
                charsToInt Nothing n = upcast (IntLit (Just (read n)))
                charsToInt (Just _) n = upcast (IntLit (Just (- (read n))))
                lChar c = upcast (Char c) <$ sym c
                lCharacters = foldr ((<|>) . lChar) empty (keychars lexsets)
                lKeyword k = upcast (Keyword k) <$ string k
                ....

src/GLL/Combinators/Lexer.hs:92:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘lMore’
        Consider giving a type signature for ‘lMore’
    • In an equation for ‘lTokens’:
          lTokens lexsets
            = lCharacters <|> lKeywords
              <|> charsToInt <$> optional (sym '-') <*> some (psym isDigit)
              <|> upcast . IDLit . Just <$> identifiers lexsets
              <|> upcast . AltIDLit . Just <$> altIdentifiers lexsets
              <|> upcast . CharLit . Just <$> lCharLit
              <|> upcast . StringLit . Just <$> lStringLit
              <|> lMore
            where
                charsToInt Nothing n = upcast (IntLit (Just (read n)))
                charsToInt (Just _) n = upcast (IntLit (Just (- (read n))))
                lChar c = upcast (Char c) <$ sym c
                lCharacters = foldr ((<|>) . lChar) empty (keychars lexsets)
                lKeyword k = upcast (Keyword k) <$ string k
                ....

src/GLL/Combinators/Lexer.hs:95:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘lStringLit’
        Consider giving a type signature for ‘lStringLit’
    • In an equation for ‘lTokens’:
          lTokens lexsets
            = lCharacters <|> lKeywords
              <|> charsToInt <$> optional (sym '-') <*> some (psym isDigit)
              <|> upcast . IDLit . Just <$> identifiers lexsets
              <|> upcast . AltIDLit . Just <$> altIdentifiers lexsets
              <|> upcast . CharLit . Just <$> lCharLit
              <|> upcast . StringLit . Just <$> lStringLit
              <|> lMore
            where
                charsToInt Nothing n = upcast (IntLit (Just (read n)))
                charsToInt (Just _) n = upcast (IntLit (Just (- (read n))))
                lChar c = upcast (Char c) <$ sym c
                lCharacters = foldr ((<|>) . lChar) empty (keychars lexsets)
                lKeyword k = upcast (Keyword k) <$ string k
                ....
[ 8 of 14] Compiling GLL.Combinators.Memoisation ( src/GLL/Combinators/Memoisation.hs, dist/build/GLL/Combinators/Memoisation.o )
[ 9 of 14] Compiling GLL.Combinators.Options ( src/GLL/Combinators/Options.hs, dist/build/GLL/Combinators/Options.o )

src/GLL/Combinators/Options.hs:95:17: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘max’
        Consider giving a type signature for ‘max’
    • In the expression:
        let (max, _) : _ = maximumsWith (compare `on` fst) $ map head xss
        in (filter ((== max) . fst . head) xss)
      In an equation for ‘maintain’:
          maintain xss
            = let (max, _) : _ = maximumsWith (compare `on` fst) $ map head xss
              in (filter ((== max) . fst . head) xss)
      In an equation for ‘maintainWith’:
          maintainWith compare
            = maintain . filter (not . null)
            where
                maintain xss = let ... in (filter ((== max) . fst . head) xss)
[10 of 14] Compiling GLL.Combinators.Visit.Sem ( src/GLL/Combinators/Visit/Sem.hs, dist/build/GLL/Combinators/Visit/Sem.o )
[11 of 14] Compiling GLL.Combinators.Visit.Join ( src/GLL/Combinators/Visit/Join.hs, dist/build/GLL/Combinators/Visit/Join.o )

src/GLL/Combinators/Visit/Join.hs:5:1: warning: [-Wunused-imports]
    The import of ‘GLL.Types.Derivations’ is redundant
      except perhaps to import instances from ‘GLL.Types.Derivations’
    To import instances alone, use: import GLL.Types.Derivations()

src/GLL/Combinators/Visit/Join.hs:39:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘altPs’
        Consider giving a type signature for ‘altPs’
    • In the expression:
        let
          vas1 = map (\ (AltExpr (f, _, _)) -> f) altPs
          vas2 = map (\ (AltExpr (_, s, _)) -> s) altPs
          vas3 = map (\ (AltExpr (_, _, t)) -> t) altPs
          ....
        in
          SymbExpr
            (Nt x, grammar_nterm x alts vas2, 
             sem_nterm use_ctx left_biased x alts vas3)
      In an equation for ‘mkNtRule’:
          mkNtRule use_ctx left_biased x' altPs'
            = let
                vas1 = map (\ (AltExpr (f, _, _)) -> ...) altPs
                vas2 = map (\ (AltExpr (_, s, _)) -> ...) altPs
                ....
              in
                SymbExpr
                  (Nt x, grammar_nterm x alts vas2, 
                   sem_nterm use_ctx left_biased x alts vas3)

src/GLL/Combinators/Visit/Join.hs:45:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘vpa1’,
                                                               ‘vpa2’, ‘vpa3’
        Consider giving a type signature for these binders
    • In the expression:
        let SymbExpr (vpa1, vpa2, vpa3) = mkRule p'
        in AltExpr ([vpa1], grammar_apply vpa2, sem_apply f vpa3)
      In an equation for ‘join_apply’:
          join_apply f p'
            = let SymbExpr (vpa1, vpa2, vpa3) = mkRule p'
              in AltExpr ([vpa1], grammar_apply vpa2, sem_apply f vpa3)

src/GLL/Combinators/Visit/Join.hs:51:7: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘vimp1’,
                                                               ‘vimp2’, ‘vimp3’
        Consider giving a type signature for these binders
    • In the expression:
        let
          AltExpr (vimp1, vimp2, vimp3) = toAlt pl'
          SymbExpr (vpa1, vpa2, vpa3) = mkRule pr'
        in
          AltExpr
            (vimp1 ++ [vpa1], grammar_seq vimp2 vpa2, 
             sem_seq local_opts vimp3 vpa3)
      In an equation for ‘join_seq’:
          join_seq local_opts pl' pr'
            = let
                AltExpr (vimp1, vimp2, vimp3) = toAlt pl'
                SymbExpr (vpa1, vpa2, vpa3) = mkRule pr'
              in
                AltExpr
                  (vimp1 ++ [vpa1], grammar_seq vimp2 vpa2, 
                   sem_seq local_opts vimp3 vpa3)

src/GLL/Combinators/Visit/Join.hs:52:7: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘vpa1’,
                                                               ‘vpa2’, ‘vpa3’
        Consider giving a type signature for these binders
    • In the expression:
        let
          AltExpr (vimp1, vimp2, vimp3) = toAlt pl'
          SymbExpr (vpa1, vpa2, vpa3) = mkRule pr'
        in
          AltExpr
            (vimp1 ++ [vpa1], grammar_seq vimp2 vpa2, 
             sem_seq local_opts vimp3 vpa3)
      In an equation for ‘join_seq’:
          join_seq local_opts pl' pr'
            = let
                AltExpr (vimp1, vimp2, vimp3) = toAlt pl'
                SymbExpr (vpa1, vpa2, vpa3) = mkRule pr'
              in
                AltExpr
                  (vimp1 ++ [vpa1], grammar_seq vimp2 vpa2, 
                   sem_seq local_opts vimp3 vpa3)
[12 of 14] Compiling GLL.Combinators.Interface ( src/GLL/Combinators/Interface.hs, dist/build/GLL/Combinators/Interface.o )

src/GLL/Combinators/Interface.hs:260:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘start’,
                                                               ‘vpa2’, ‘vpa3’
        Consider giving a type signature for these binders
    • In the expression:
        let
          SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO [...])
          snode = (start, 0, m)
          m = length input
          ....
        in
          (grammar, parse_res, 
           if res_success parse_res && not (null res_list) then
               Right $ res_list
           else
               Left (error_message parse_res))
      In an equation for ‘parse'’:
          parse' popts opts p' input
            = let
                SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO ...)
                snode = ...
                ....
              in
                (grammar, parse_res, 
                 if res_success parse_res && not (null res_list) then
                     Right $ res_list
                 else
                     Left (error_message parse_res))

src/GLL/Combinators/Interface.hs:261:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘snode’
        Consider giving a type signature for ‘snode’
    • In the expression:
        let
          SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO [...])
          snode = (start, 0, m)
          m = length input
          ....
        in
          (grammar, parse_res, 
           if res_success parse_res && not (null res_list) then
               Right $ res_list
           else
               Left (error_message parse_res))
      In an equation for ‘parse'’:
          parse' popts opts p' input
            = let
                SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO ...)
                snode = ...
                ....
              in
                (grammar, parse_res, 
                 if res_success parse_res && not (null res_list) then
                     Right $ res_list
                 else
                     Left (error_message parse_res))

src/GLL/Combinators/Interface.hs:267:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘parse_res’
        Consider giving a type signature for ‘parse_res’
    • In the expression:
        let
          SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO [...])
          snode = (start, 0, m)
          m = length input
          ....
        in
          (grammar, parse_res, 
           if res_success parse_res && not (null res_list) then
               Right $ res_list
           else
               Left (error_message parse_res))
      In an equation for ‘parse'’:
          parse' popts opts p' input
            = let
                SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO ...)
                snode = ...
                ....
              in
                (grammar, parse_res, 
                 if res_success parse_res && not (null res_list) then
                     Right $ res_list
                 else
                     Left (error_message parse_res))

src/GLL/Combinators/Interface.hs:388:18: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘l’
        Consider giving a type signature for ‘l’
    • In the expression:
        let
          l = toAlt l'
          r = altsOf r'
        in OO (l : r)
      In an equation for ‘<||>’:
          l' <||> r'
            = let
                l = toAlt l'
                r = altsOf r'
              in OO (l : r)

src/GLL/Combinators/Interface.hs:389:18: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘r’
        Consider giving a type signature for ‘r’
    • In the expression:
        let
          l = toAlt l'
          r = altsOf r'
        in OO (l : r)
      In an equation for ‘<||>’:
          l' <||> r'
            = let
                l = toAlt l'
                r = altsOf r'
              in OO (l : r)

src/GLL/Combinators/Interface.hs:528:21: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘sym’,
                                                               ‘rules’, ‘sem’
        Consider giving a type signature for these binders
    • In the expression:
        let
          SymbExpr (sym, rules, sem) = toSymb p'
          lhs_sem opts ctx sppf arr l r
            | not (do_memo opts) = sem opts ctx sppf arr l r
            | otherwise = do { ... }
        in SymbExpr (sym, rules, lhs_sem)
      In an equation for ‘memo’:
          memo ref p'
            = let
                SymbExpr (sym, rules, sem) = toSymb p'
                lhs_sem opts ctx sppf arr l r
                  | not (do_memo opts) = sem opts ctx sppf arr l r
                  | otherwise = ...
              in SymbExpr (sym, rules, lhs_sem)

src/GLL/Combinators/Interface.hs:546:18: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘myx’
        Consider giving a type signature for ‘myx’
    • In the expression:
        let SymbExpr (myx, _, _) = mkRule p
        in "_(" ++ show myx ++ ")" ++ str
      In an equation for ‘mkNt’:
          mkNt p str
            = let SymbExpr (myx, _, _) = mkRule p
              in "_(" ++ show myx ++ ")" ++ str

src/GLL/Combinators/Interface.hs:551:15: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘s’,
                                                               ‘r’, ‘sem’
        Consider giving a type signature for these binders
    • In the expression:
        let AltExpr (s, r, sem) = toAlt i
        in
          AltExpr
            (s, r, 
             \ opts slot ctx sppf arr l r
               -> do { as <- sem opts slot ctx sppf arr l r;
                       .... })
      In an equation for ‘.$.’:
          f .$. i
            = let AltExpr (s, r, sem) = toAlt i
              in AltExpr (s, r, \ opts slot ctx sppf arr l r -> do { ... })
[13 of 14] Compiling GLL.Combinators  ( src/GLL/Combinators.hs, dist/build/GLL/Combinators.o )
[14 of 14] Compiling GLL.Combinators.Test.Interface ( src/GLL/Combinators/Test/Interface.hs, dist/build/GLL/Combinators/Test/Interface.o )

src/GLL/Combinators/Test/Interface.hs:53:21: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘parse_res’
        Consider giving a type signature for ‘parse_res’
    • In the expression:
        do { case mref of {
               Nothing -> return ()
               Just ref -> memClear ref };
             j <- readIORef subcount;
             modifyIORef subcount succ;
             let parse_res = parseWithOptions ... p str
                 norm = take 100 . sort . nub
                 ....;
             .... }
      In the second argument of ‘($)’, namely
        ‘\ (str, res)
           -> do { case mref of {
                     Nothing -> ...
                     Just ref -> ... };
                   j <- readIORef subcount;
                   .... }’
      In a stmt of a 'do' block:
        forM_ arg_pairs
        $ \ (str, res)
            -> do { case mref of {
                      Nothing -> ...
                      Just ref -> ... };
                    j <- readIORef subcount;
                    .... }

src/GLL/Combinators/Test/Interface.hs:54:21: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘norm’
        Consider giving a type signature for ‘norm’
    • In the expression:
        do { case mref of {
               Nothing -> return ()
               Just ref -> memClear ref };
             j <- readIORef subcount;
             modifyIORef subcount succ;
             let parse_res = parseWithOptions ... p str
                 norm = take 100 . sort . nub
                 ....;
             .... }
      In the second argument of ‘($)’, namely
        ‘\ (str, res)
           -> do { case mref of {
                     Nothing -> ...
                     Just ref -> ... };
                   j <- readIORef subcount;
                   .... }’
      In a stmt of a 'do' block:
        forM_ arg_pairs
        $ \ (str, res)
            -> do { case mref of {
                      Nothing -> ...
                      Just ref -> ... };
                    j <- readIORef subcount;
                    .... }

src/GLL/Combinators/Test/Interface.hs:55:21: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘norm_p_res’
        Consider giving a type signature for ‘norm_p_res’
    • In the expression:
        do { case mref of {
               Nothing -> return ()
               Just ref -> memClear ref };
             j <- readIORef subcount;
             modifyIORef subcount succ;
             let parse_res = parseWithOptions ... p str
                 norm = take 100 . sort . nub
                 ....;
             .... }
      In the second argument of ‘($)’, namely
        ‘\ (str, res)
           -> do { case mref of {
                     Nothing -> ...
                     Just ref -> ... };
                   j <- readIORef subcount;
                   .... }’
      In a stmt of a 'do' block:
        forM_ arg_pairs
        $ \ (str, res)
            -> do { case mref of {
                      Nothing -> ...
                      Just ref -> ... };
                    j <- readIORef subcount;
                    .... }

src/GLL/Combinators/Test/Interface.hs:94:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:105:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:119:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:133:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:145:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pL’
        Consider giving a type signature for ‘pL’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:151:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:152:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:157:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:158:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:163:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pS’
        Consider giving a type signature for ‘pS’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:171:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pE’
        Consider giving a type signature for ‘pE’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:183:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:188:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:190:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pB’
        Consider giving a type signature for ‘pB’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:195:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘pX’,
                                                               ‘pY’
        Consider giving a type signature for these binders
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:196:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pA’
        Consider giving a type signature for ‘pA’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:204:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:205:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:211:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:212:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:219:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pE’
        Consider giving a type signature for ‘pE’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:226:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘pY’,
                                                               ‘pX’
        Consider giving a type signature for these binders
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:227:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pA’
        Consider giving a type signature for ‘pA’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:243:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:244:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In an equation for ‘pX’:
          pX
            = "X" <:=> multiple pY
            where
                pY = 1 <$$ char '1' <||> 2 <$$ char '1' <** char '1'
      In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:248:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:249:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In an equation for ‘pX’:
          pX
            = "X" <:=> some pY
            where
                pY = 1 <$$ char '1' <||> 2 <$$ char '1' <** char '1'
      In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:261:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:262:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In an equation for ‘pX’:
          pX
            = "X" <:=> many pY
            where
                pY = 1 <$$ char '1' <||> 2 <$$ char '1' <** char '1'
      In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]
Running Haddock for gll-0.4.0.2...
Running hscolour for gll-0.4.0.2...
Preprocessing library gll-0.4.0.2...
Preprocessing library gll-0.4.0.2...

src/GLL/Types/Derivations.hs:73:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner3’
        Consider giving a type signature for ‘inner3’
    • In an equation for ‘pNodeLookup’:
          pNodeLookup (_, _, pMap, _) ((alt, j), l, r)
            = maybe Nothing inner $ IM.lookup l pMap
            where
                inner = maybe Nothing inner2 . IM.lookup r
                inner2 = maybe Nothing inner3 . IM.lookup j
                inner3 = maybe Nothing (Just . IS.toList) . M.lookup alt

src/GLL/Types/Derivations.hs:94:15: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘singleAK’
        Consider giving a type signature for ‘singleAK’
    • In an equation for ‘add’:
          add alt j l r k
            = IM.alter addInnerL l pMap
            where
                addInnerL mm
                  = case mm of {
                      Nothing -> Just singleRJAK
                      Just m -> Just $ IM.alter addInnerR r m }
                addInnerR mm
                  = case mm of {
                      Nothing -> Just singleJAK
                      Just m -> Just $ IM.alter addInnerJ j m }
                addInnerJ mm
                  = case mm of {
                      Nothing -> Just singleAK
                      Just m -> Just $ M.insertWith IS.union alt singleK m }
                singleRJAK = IM.fromList [(r, singleJAK)]
                ....
      In an equation for ‘pMapInsert’:
          pMapInsert f t (sMap, iMap, pMap, eMap)
            = let pMap' = ... in (sMap, iMap, pMap', eMap)
            where
                add alt j l r k
                  = IM.alter addInnerL l pMap
                  where
                      addInnerL mm = ...
                      addInnerR mm = ...
                      ....

src/GLL/Types/Derivations.hs:100:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘sNodeLookup’:
          sNodeLookup (sm, _, _, _) (s, l, r)
            = maybe False inner $ IM.lookup l sm
            where
                inner = maybe False (S.member s) . IM.lookup r

src/GLL/Types/Derivations.hs:104:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘sMap'’
        Consider giving a type signature for ‘sMap'’
    • In the expression:
        let
          sMap'
            = case f of {
                SNode (s, l, r) -> ...
                _ -> ... }
        in (sMap', iMap, pMap, eMap)
      In an equation for ‘sNodeInsert’:
          sNodeInsert f t (sMap, iMap, pMap, eMap)
            = let sMap' = ... in (sMap', iMap, pMap, eMap)
            where
                newt sMap
                  = case t of {
                      (SNode (s, l, r)) -> add s l r sMap
                      _ -> sMap }
                add s l r sMap
                  = IM.alter addInnerL l sMap
                  where
                      addInnerL mm = ...
                      singleRS = IM.fromList ...
                      ....

src/GLL/Types/Derivations.hs:116:15: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘singleS’
        Consider giving a type signature for ‘singleS’
    • In an equation for ‘add’:
          add s l r sMap
            = IM.alter addInnerL l sMap
            where
                addInnerL mm
                  = case mm of {
                      Nothing -> Just singleRS
                      Just m -> Just $ IM.insertWith (S.union) r singleS m }
                singleRS = IM.fromList [(r, singleS)]
                singleS = S.singleton s
      In an equation for ‘sNodeInsert’:
          sNodeInsert f t (sMap, iMap, pMap, eMap)
            = let sMap' = ... in (sMap', iMap, pMap, eMap)
            where
                newt sMap
                  = case t of {
                      (SNode (s, l, r)) -> add s l r sMap
                      _ -> sMap }
                add s l r sMap
                  = IM.alter addInnerL l sMap
                  where
                      addInnerL mm = ...
                      singleRS = IM.fromList ...
                      ....

src/GLL/Types/Derivations.hs:121:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘sNodeRemove’:
          sNodeRemove (sm, iMap, pMap, eMap) (s, l, r)
            = (IM.adjust inner l sm, iMap, pMap, eMap)
            where
                inner = IM.adjust ((s `S.delete`)) r

src/GLL/Types/Derivations.hs:125:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘iNodeLookup’:
          iNodeLookup (_, iMap, _, _) (s, l, r)
            = maybe False inner $ IM.lookup l iMap
            where
                inner = maybe False (S.member s) . IM.lookup r

src/GLL/Types/Derivations.hs:129:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘iMap'’
        Consider giving a type signature for ‘iMap'’
    • In the expression:
        let
          iMap'
            = case f of {
                INode (s, l, r) -> ...
                _ -> ... }
        in (sMap, iMap', pMap, eMap)
      In an equation for ‘iNodeInsert’:
          iNodeInsert f t (sMap, iMap, pMap, eMap)
            = let iMap' = ... in (sMap, iMap', pMap, eMap)
            where
                newt iMap
                  = case t of {
                      (INode (s, l, r)) -> add s l r iMap
                      _ -> iMap }
                add s l r iMap
                  = IM.alter addInnerL l iMap
                  where
                      addInnerL mm = ...
                      singleRS = IM.fromList ...
                      ....

src/GLL/Types/Derivations.hs:141:15: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘singleS’
        Consider giving a type signature for ‘singleS’
    • In an equation for ‘add’:
          add s l r iMap
            = IM.alter addInnerL l iMap
            where
                addInnerL mm
                  = case mm of {
                      Nothing -> Just singleRS
                      Just m -> Just $ IM.insertWith (S.union) r singleS m }
                singleRS = IM.fromList [(r, singleS)]
                singleS = S.singleton s
      In an equation for ‘iNodeInsert’:
          iNodeInsert f t (sMap, iMap, pMap, eMap)
            = let iMap' = ... in (sMap, iMap', pMap, eMap)
            where
                newt iMap
                  = case t of {
                      (INode (s, l, r)) -> add s l r iMap
                      _ -> iMap }
                add s l r iMap
                  = IM.alter addInnerL l iMap
                  where
                      addInnerL mm = ...
                      singleRS = IM.fromList ...
                      ....

src/GLL/Types/Derivations.hs:146:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘iNodeRemove’:
          iNodeRemove (sMap, iMap, pMap, eMap) (s, l, r)
            = (sMap, IM.adjust inner l iMap, pMap, eMap)
            where
                inner = IM.adjust ((s `S.delete`)) r

src/GLL/Types/Derivations.hs:154:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘inU’:
          inU (slot, l, i) u
            = maybe False inner $ IM.lookup l u
            where
                inner = maybe False (S.member slot) . IM.lookup i

src/GLL/Types/Derivations.hs:187:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘prefixMap’
        Consider giving a type signature for ‘prefixMap’
    • In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Types/Derivations.hs:196:25: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘init’
        Consider giving a type signature for ‘init’
    • In the expression:
        let
          init = map ((\ (Term t) -> t) . (alpha !!)) [a .. (z - 2)]
          last = alpha !! (z - 1)
        in
          case last of {
            Nt nt -> (a, init, Just nt)
            Term t -> (a, init ++ [...], Nothing) }
      In an equation for ‘rangePrefix’:
          rangePrefix (a, z)
            = let
                init = map ((\ (Term t) -> ...) . (alpha !!)) ...
                last = alpha !! (z - 1)
              in
                case last of {
                  Nt nt -> (a, init, Just nt)
                  Term t -> (a, init ++ ..., Nothing) }
      In an equation for ‘prefix’:
          prefix x alpha
            = map rangePrefix ranges
            where
                js = (map ((+) 1) (findIndices isNt alpha))
                ranges = zip (0 : js) (js ++ [length alpha])
                rangePrefix (a, z) | a >= z = (a, [], Nothing)
                rangePrefix (a, z)
                  = let ...
                    in
                      case last of {
                        Nt nt -> ...
                        Term t -> ... }

src/GLL/Types/Derivations.hs:197:25: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘last’
        Consider giving a type signature for ‘last’
    • In the expression:
        let
          init = map ((\ (Term t) -> t) . (alpha !!)) [a .. (z - 2)]
          last = alpha !! (z - 1)
        in
          case last of {
            Nt nt -> (a, init, Just nt)
            Term t -> (a, init ++ [...], Nothing) }
      In an equation for ‘rangePrefix’:
          rangePrefix (a, z)
            = let
                init = map ((\ (Term t) -> ...) . (alpha !!)) ...
                last = alpha !! (z - 1)
              in
                case last of {
                  Nt nt -> (a, init, Just nt)
                  Term t -> (a, init ++ ..., Nothing) }
      In an equation for ‘prefix’:
          prefix x alpha
            = map rangePrefix ranges
            where
                js = (map ((+) 1) (findIndices isNt alpha))
                ranges = zip (0 : js) (js ++ [length alpha])
                rangePrefix (a, z) | a >= z = (a, [], Nothing)
                rangePrefix (a, z)
                  = let ...
                    in
                      case last of {
                        Nt nt -> ...
                        Term t -> ... }

src/GLL/Types/Derivations.hs:206:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘selectMap’
        Consider giving a type signature for ‘selectMap’
    • In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Types/Derivations.hs:215:25: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘firsts’
        Consider giving a type signature for ‘firsts’
    • In an equation for ‘select’:
          select alpha x
            = res
            where
                firsts = first_alpha [] alpha
                res
                  | eps `S.member` firsts
                  = S.delete eps firsts `S.union` (followMap M.! x)
                  | otherwise = firsts
      In an equation for ‘selectMap’:
          selectMap
            = M.fromList
                [((x, alpha), select alpha x) |
                   Prod x rhs <- prs, alpha <- split rhs]
            where
                split rhs
                  = foldr op [] js
                  where
                      op j acc = drop j rhs : acc
                      js = 0 : findIndices isNt rhs
                select alpha x
                  = res
                  where
                      firsts = first_alpha ... alpha
                      res
                        | eps `S.member` firsts
                        = S.delete eps firsts `S.union` (followMap M.! x)
                        | otherwise = firsts
      In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Types/Derivations.hs:216:25: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘res’
        Consider giving a type signature for ‘res’
    • In an equation for ‘select’:
          select alpha x
            = res
            where
                firsts = first_alpha [] alpha
                res
                  | eps `S.member` firsts
                  = S.delete eps firsts `S.union` (followMap M.! x)
                  | otherwise = firsts
      In an equation for ‘selectMap’:
          selectMap
            = M.fromList
                [((x, alpha), select alpha x) |
                   Prod x rhs <- prs, alpha <- split rhs]
            where
                split rhs
                  = foldr op [] js
                  where
                      op j acc = drop j rhs : acc
                      js = 0 : findIndices isNt rhs
                select alpha x
                  = res
                  where
                      firsts = first_alpha ... alpha
                      res
                        | eps `S.member` firsts
                        = S.delete eps firsts `S.union` (followMap M.! x)
                        | otherwise = firsts
      In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Types/Derivations.hs:227:17: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘fs’
        Consider giving a type signature for ‘fs’
    • In the expression:
        let
          fs
            | x `elem` ys = S.empty
            | otherwise = first_x (x : ys) x
        in
          if x `S.member` nullableSet then
              S.delete eps fs `S.union` first_alpha (x : ys) xs
          else
              fs
      In a case alternative:
          Nt x
            -> let
                 fs
                   | x `elem` ys = S.empty
                   | otherwise = first_x (x : ys) x
               in
                 if x `S.member` nullableSet then
                     S.delete eps fs `S.union` first_alpha (x : ys) xs
                 else
                     fs
      In the expression:
        case x of {
          Term tau
            -> if tau == eps then first_alpha ys xs else S.singleton tau
          Nt x
            -> let
                 fs
                   | x `elem` ys = ...
                   | otherwise = ...
               in
                 if x `S.member` nullableSet then
                     S.delete eps fs `S.union` first_alpha (x : ys) xs
                 else
                     fs }

src/GLL/Types/Derivations.hs:238:29: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘ts’
        Consider giving a type signature for ‘ts’
    • In the expression:
        let
          ts = S.delete eps (first_alpha [] ss)
          fs = follow (x : ys) y
        in
          if nullable_alpha [] ss && not (x `elem` (y : ys)) then
              ts `S.union` fs
          else
              ts
      In an equation for ‘fw’:
          fw (y, ss)
            = let
                ts = S.delete eps (first_alpha ... ss)
                fs = follow (x : ys) y
              in
                if nullable_alpha [] ss && not (x `elem` (y : ys)) then
                    ts `S.union` fs
                else
                    ts
      In an equation for ‘follow’:
          follow ys x
            = S.unions (map fw (maybe [] id $ M.lookup x localMap))
              `S.union` (if x == s then S.singleton eos else S.empty)
            where
                fw (y, ss)
                  = let ...
                    in
                      if nullable_alpha ... ss && not (x `elem` (y : ys)) then
                          ts `S.union` fs
                      else
                          ts

src/GLL/Types/Derivations.hs:239:29: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘fs’
        Consider giving a type signature for ‘fs’
    • In the expression:
        let
          ts = S.delete eps (first_alpha [] ss)
          fs = follow (x : ys) y
        in
          if nullable_alpha [] ss && not (x `elem` (y : ys)) then
              ts `S.union` fs
          else
              ts
      In an equation for ‘fw’:
          fw (y, ss)
            = let
                ts = S.delete eps (first_alpha ... ss)
                fs = follow (x : ys) y
              in
                if nullable_alpha [] ss && not (x `elem` (y : ys)) then
                    ts `S.union` fs
                else
                    ts
      In an equation for ‘follow’:
          follow ys x
            = S.unions (map fw (maybe [] id $ M.lookup x localMap))
              `S.union` (if x == s then S.singleton eos else S.empty)
            where
                fw (y, ss)
                  = let ...
                    in
                      if nullable_alpha ... ss && not (x `elem` (y : ys)) then
                          ts `S.union` fs
                      else
                          ts

src/GLL/Types/Derivations.hs:244:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘localMap’
        Consider giving a type signature for ‘localMap’
    • In an equation for ‘fixedMaps’:
          fixedMaps s prs
            = (prodMap, prefixMap, firstMap, followMap, selectMap)
            where
                prodMap = M.fromListWith (++) [(x, [...]) | pr@(Prod x _) <- prs]
                prefixMap
                  = M.fromList
                      [((pr, j), (tokens, msymb)) |
                         pr@(Prod x alpha) <- prs, (j, tokens, msymb) <- prefix x alpha]
                  where
                      prefix x alpha
                        = map rangePrefix ranges
                        where
                            ...
                firstMap = M.fromList [(x, first_x ... x) | x <- M.keys prodMap]
                first_x ys x
                  = S.unions [first_alpha (x : ys) rhs | Prod _ rhs <- prodMap M.! x]
                ....

src/GLL/Parser.hs:180:1: warning: [-Wunused-imports]
    The import of ‘Control.Applicative’ is redundant
      except perhaps to import instances from ‘Control.Applicative’
    To import instances alone, use: import Control.Applicative()

src/GLL/Parser.hs:252:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘sppf'’
        Consider giving a type signature for ‘sppf'’
    • In the expression:
        let
          sppf'
            = (if symbol_nodes flags then sNodeInsert f t else id)
              $ (if intermediate_nodes flags then iNodeInsert f t else id)
                $ (if edges flags then eMapInsert f t else id)
                  $ pMapInsert f t (mut_sppf mut)
        in ((), mut {mut_sppf = sppf'})
      In the second argument of ‘($)’, namely
        ‘\ flags mut -> let sppf' = ... in ((), mut {mut_sppf = sppf'})’
      In the expression:
        GLL
        $ \ flags mut -> let sppf' = ... in ((), mut {mut_sppf = sppf'})

src/GLL/Parser.hs:261:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘newU’
        Consider giving a type signature for ‘newU’
    • In the expression:
        let
          new
            = maybe True inner $ IM.lookup i (mut_descriptors mut)
            where
                inner m = ...
          newU
            = IM.alter inner i (mut_descriptors mut)
            where
                inner mm = ...
                ....
        in
          if new then
              ((), 
               mut
                 {mut_worklist = (alt, sppf) : (mut_worklist mut),
                  mut_descriptors = newU})
          else
              ((), mut)
      In the second argument of ‘($)’, namely
        ‘\ _ mut
           -> let
                new
                  = ...
                  where
                      ...
                ....
              in
                if new then
                    ((), 
                     mut
                       {mut_worklist = ... : (mut_worklist mut), mut_descriptors = newU})
                else
                    ((), mut)’
      In the expression:
        GLL
        $ \ _ mut
            -> let
                 new
                   = ...
                   where
                       ...
                 ....
               in
                 if new then
                     ((), 
                      mut
                        {mut_worklist = ... : (mut_worklist mut), mut_descriptors = newU})
                 else
                     ((), mut)

src/GLL/Parser.hs:276:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘newP’
        Consider giving a type signature for ‘newP’
    • In the expression:
        let
          newP
            = IM.alter inner l (mut_popset mut)
            where
                inner mm = ...
        in ((), mut {mut_popset = newP})
      In the second argument of ‘($)’, namely
        ‘\ _ mut
           -> let
                newP
                  = ...
                  where
                      ...
              in ((), mut {mut_popset = newP})’
      In the expression:
        GLL
        $ \ _ mut
            -> let
                 newP
                   = ...
                   where
                       ...
               in ((), mut {mut_popset = newP})

src/GLL/Parser.hs:288:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘newGSS’
        Consider giving a type signature for ‘newGSS’
    • In the expression:
        let
          newGSS
            = IM.alter inner i (mut_gss mut)
            where
                inner mm = ...
        in ((), mut {mut_gss = newGSS})
      In the second argument of ‘($)’, namely
        ‘\ _ mut
           -> let
                newGSS
                  = ...
                  where
                      ...
              in ((), mut {mut_gss = newGSS})’
      In the expression:
        GLL
        $ \ _ mut
            -> let
                 newGSS
                   = ...
                   where
                       ...
               in ((), mut {mut_gss = newGSS})

src/GLL/Parser.hs:296:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘res’:
          res
            = maybe [] inner $ IM.lookup l (mut_popset mut)
            where
                inner = maybe [] id . M.lookup gs
      In the expression:
        let
          res
            = maybe [] inner $ IM.lookup l (mut_popset mut)
            where
                inner = ...
        in (res, mut)
      In the second argument of ‘($)’, namely
        ‘\ _ mut
           -> let
                res
                  = ...
                  where
                      ...
              in (res, mut)’

src/GLL/Parser.hs:305:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘newM’
        Consider giving a type signature for ‘newM’
    • In the expression:
        let
          newM = IM.insertWith S.union k ts (mut_mismatches mut)
          newM'
            | length (IM.keys newM) > max_errors flags = IM.deleteMin newM
            | otherwise = newM
        in ((), mut {mut_mismatches = newM'})
      In the second argument of ‘($)’, namely
        ‘\ flags mut
           -> let
                newM = ...
                ....
              in ((), mut {mut_mismatches = newM'})’
      In the expression:
        GLL
        $ \ flags mut
            -> let
                 newM = ...
                 ....
               in ((), mut {mut_mismatches = newM'})

src/GLL/Parser.hs:323:40: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘a’,
                                                               ‘p'’
        Consider giving a type signature for these binders
    • In the expression:
        let
          (a, p') = m o p
          (GLL m') = f a
        in m' o p'
      In the second argument of ‘($)’, namely
        ‘\ o p
           -> let
                (a, p') = ...
                ....
              in m' o p'’
      In the expression:
        GLL
        $ \ o p
            -> let
                 (a, p') = ...
                 ....
               in m' o p'

src/GLL/Parser.hs:344:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘mutable’
        Consider giving a type signature for ‘mutable’
    • In the expression:
        let
          flags = runOptions opts
          (mutable, _, _) = gll flags m False grammar input
          m = length str
          ....
        in resultFromMutable input flags mutable (Nt start, 0, m)
      In an equation for ‘parseWithOptions’:
          parseWithOptions opts grammar@(start, _) str
            = let
                flags = runOptions opts
                (mutable, _, _) = gll flags m False grammar input
                ....
              in resultFromMutable input flags mutable (Nt start, 0, m)

src/GLL/Parser.hs:346:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘input’
        Consider giving a type signature for ‘input’
    • In the expression:
        let
          flags = runOptions opts
          (mutable, _, _) = gll flags m False grammar input
          m = length str
          ....
        in resultFromMutable input flags mutable (Nt start, 0, m)
      In an equation for ‘parseWithOptions’:
          parseWithOptions opts grammar@(start, _) str
            = let
                flags = runOptions opts
                (mutable, _, _) = gll flags m False grammar input
                ....
              in resultFromMutable input flags mutable (Nt start, 0, m)

src/GLL/Parser.hs:354:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘context’
        Consider giving a type signature for ‘context’
    • In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:356:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘dispatch’,
                                                               ‘pRhs’, ‘pLhs’
        Consider giving a type signature for these binders
    • In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:367:17: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘first_ts’
        Consider giving a type signature for ‘first_ts’
    • In the expression:
        do { let alts = ...
                 first_ts = S.unions (map snd alts)
                 ....;
             if null cands then
                 addMisMatch i first_ts
             else
                 forM_ cands (addDescr Dummy);
             dispatch }
      In an equation for ‘pLhs’:
          pLhs (bigx, i)
            = do { let alts = ...
                       ....;
                   if null cands then
                       addMisMatch i first_ts
                   else
                       forM_ cands (addDescr Dummy);
                   dispatch }
      In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:368:17: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘cands’
        Consider giving a type signature for ‘cands’
    • In the expression:
        do { let alts = ...
                 first_ts = S.unions (map snd alts)
                 ....;
             if null cands then
                 addMisMatch i first_ts
             else
                 forM_ cands (addDescr Dummy);
             dispatch }
      In an equation for ‘pLhs’:
          pLhs (bigx, i)
            = do { let alts = ...
                       ....;
                   if null cands then
                       addMisMatch i first_ts
                   else
                       forM_ cands (addDescr Dummy);
                   dispatch }
      In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:419:5: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘prodMap’,
                                                               ‘follows’, ‘selects’
        Consider giving a type signature for these binders
    • In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Parser.hs:430:12: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘inner’
        Consider giving a type signature for ‘inner’
    • In an equation for ‘merge’:
          merge m1 m2
            = IM.unionWith inner m1 m2
            where
                inner = IM.unionWith S.union
      In an equation for ‘gll’:
          gll flags m debug (start, prods) input
            = (runGLL (pLhs (start, 0)) flags context, selects, follows)
            where
                context
                  = Mutable False emptySPPF [] IM.empty IM.empty IM.empty IM.empty
                dispatch
                  = do { mnext <- getDescr;
                         .... }
                pLhs (bigx, i)
                  = do { let ...;
                         .... }
                pRhs (Slot bigx alpha ((Term tau) : beta), i, l) sppf
                  = if (input A.! i `matches` tau) then do { ... } else do { ... }
                  where
                      slot = Slot bigx (alpha ++ ...) beta
                pRhs (Slot bigx alpha ((Nt bigy) : beta), i, l) sppf
                  = if any (matches (input A.! i)) first_ts then
                        do { ... }
                    else
                        do { ... }
                  where
                      ret = ...
                      slot = Slot bigx (alpha ++ ...) beta
                      ....
                pRhs (Slot bigy alpha [], i, l) sppf
                  | bigy == start && l == 0
                  = if i == m then
                        addSuccess >> dispatch
                    else
                        addMisMatch i (S.singleton eos) >> dispatch
                pRhs (Slot bigx alpha [], i, l) Dummy
                  = do { root <- joinSPPFs slot Dummy l i i;
                         .... }
                  where
                      slot = Slot bigx ... ...
                pRhs (Slot bigy alpha [], i, l) ynode
                  = do { addPop ... i;
                         .... }
                ....

src/GLL/Combinators/Lexer.hs:87:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘lCharacters’
        Consider giving a type signature for ‘lCharacters’
    • In an equation for ‘lTokens’:
          lTokens lexsets
            = lCharacters <|> lKeywords
              <|> charsToInt <$> optional (sym '-') <*> some (psym isDigit)
              <|> upcast . IDLit . Just <$> identifiers lexsets
              <|> upcast . AltIDLit . Just <$> altIdentifiers lexsets
              <|> upcast . CharLit . Just <$> lCharLit
              <|> upcast . StringLit . Just <$> lStringLit
              <|> lMore
            where
                charsToInt Nothing n = upcast (IntLit (Just (read n)))
                charsToInt (Just _) n = upcast (IntLit (Just (- (read n))))
                lChar c = upcast (Char c) <$ sym c
                lCharacters = foldr ((<|>) . lChar) empty (keychars lexsets)
                lKeyword k = upcast (Keyword k) <$ string k
                ....

src/GLL/Combinators/Lexer.hs:90:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘lKeywords’
        Consider giving a type signature for ‘lKeywords’
    • In an equation for ‘lTokens’:
          lTokens lexsets
            = lCharacters <|> lKeywords
              <|> charsToInt <$> optional (sym '-') <*> some (psym isDigit)
              <|> upcast . IDLit . Just <$> identifiers lexsets
              <|> upcast . AltIDLit . Just <$> altIdentifiers lexsets
              <|> upcast . CharLit . Just <$> lCharLit
              <|> upcast . StringLit . Just <$> lStringLit
              <|> lMore
            where
                charsToInt Nothing n = upcast (IntLit (Just (read n)))
                charsToInt (Just _) n = upcast (IntLit (Just (- (read n))))
                lChar c = upcast (Char c) <$ sym c
                lCharacters = foldr ((<|>) . lChar) empty (keychars lexsets)
                lKeyword k = upcast (Keyword k) <$ string k
                ....

src/GLL/Combinators/Lexer.hs:92:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘lMore’
        Consider giving a type signature for ‘lMore’
    • In an equation for ‘lTokens’:
          lTokens lexsets
            = lCharacters <|> lKeywords
              <|> charsToInt <$> optional (sym '-') <*> some (psym isDigit)
              <|> upcast . IDLit . Just <$> identifiers lexsets
              <|> upcast . AltIDLit . Just <$> altIdentifiers lexsets
              <|> upcast . CharLit . Just <$> lCharLit
              <|> upcast . StringLit . Just <$> lStringLit
              <|> lMore
            where
                charsToInt Nothing n = upcast (IntLit (Just (read n)))
                charsToInt (Just _) n = upcast (IntLit (Just (- (read n))))
                lChar c = upcast (Char c) <$ sym c
                lCharacters = foldr ((<|>) . lChar) empty (keychars lexsets)
                lKeyword k = upcast (Keyword k) <$ string k
                ....

src/GLL/Combinators/Lexer.hs:95:13: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘lStringLit’
        Consider giving a type signature for ‘lStringLit’
    • In an equation for ‘lTokens’:
          lTokens lexsets
            = lCharacters <|> lKeywords
              <|> charsToInt <$> optional (sym '-') <*> some (psym isDigit)
              <|> upcast . IDLit . Just <$> identifiers lexsets
              <|> upcast . AltIDLit . Just <$> altIdentifiers lexsets
              <|> upcast . CharLit . Just <$> lCharLit
              <|> upcast . StringLit . Just <$> lStringLit
              <|> lMore
            where
                charsToInt Nothing n = upcast (IntLit (Just (read n)))
                charsToInt (Just _) n = upcast (IntLit (Just (- (read n))))
                lChar c = upcast (Char c) <$ sym c
                lCharacters = foldr ((<|>) . lChar) empty (keychars lexsets)
                lKeyword k = upcast (Keyword k) <$ string k
                ....

src/GLL/Combinators/Options.hs:95:17: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘max’
        Consider giving a type signature for ‘max’
    • In the expression:
        let (max, _) : _ = maximumsWith (compare `on` fst) $ map head xss
        in (filter ((== max) . fst . head) xss)
      In an equation for ‘maintain’:
          maintain xss
            = let (max, _) : _ = maximumsWith (compare `on` fst) $ map head xss
              in (filter ((== max) . fst . head) xss)
      In an equation for ‘maintainWith’:
          maintainWith compare
            = maintain . filter (not . null)
            where
                maintain xss = let ... in (filter ((== max) . fst . head) xss)

src/GLL/Combinators/Visit/Join.hs:5:1: warning: [-Wunused-imports]
    The import of ‘GLL.Types.Derivations’ is redundant
      except perhaps to import instances from ‘GLL.Types.Derivations’
    To import instances alone, use: import GLL.Types.Derivations()

src/GLL/Combinators/Visit/Join.hs:39:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘altPs’
        Consider giving a type signature for ‘altPs’
    • In the expression:
        let
          vas1 = map (\ (AltExpr (f, _, _)) -> f) altPs
          vas2 = map (\ (AltExpr (_, s, _)) -> s) altPs
          vas3 = map (\ (AltExpr (_, _, t)) -> t) altPs
          ....
        in
          SymbExpr
            (Nt x, grammar_nterm x alts vas2, 
             sem_nterm use_ctx left_biased x alts vas3)
      In an equation for ‘mkNtRule’:
          mkNtRule use_ctx left_biased x' altPs'
            = let
                vas1 = map (\ (AltExpr (f, _, _)) -> ...) altPs
                vas2 = map (\ (AltExpr (_, s, _)) -> ...) altPs
                ....
              in
                SymbExpr
                  (Nt x, grammar_nterm x alts vas2, 
                   sem_nterm use_ctx left_biased x alts vas3)

src/GLL/Combinators/Visit/Join.hs:45:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘vpa1’,
                                                               ‘vpa2’, ‘vpa3’
        Consider giving a type signature for these binders
    • In the expression:
        let SymbExpr (vpa1, vpa2, vpa3) = mkRule p'
        in AltExpr ([vpa1], grammar_apply vpa2, sem_apply f vpa3)
      In an equation for ‘join_apply’:
          join_apply f p'
            = let SymbExpr (vpa1, vpa2, vpa3) = mkRule p'
              in AltExpr ([vpa1], grammar_apply vpa2, sem_apply f vpa3)

src/GLL/Combinators/Visit/Join.hs:51:7: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘vimp1’,
                                                               ‘vimp2’, ‘vimp3’
        Consider giving a type signature for these binders
    • In the expression:
        let
          AltExpr (vimp1, vimp2, vimp3) = toAlt pl'
          SymbExpr (vpa1, vpa2, vpa3) = mkRule pr'
        in
          AltExpr
            (vimp1 ++ [vpa1], grammar_seq vimp2 vpa2, 
             sem_seq local_opts vimp3 vpa3)
      In an equation for ‘join_seq’:
          join_seq local_opts pl' pr'
            = let
                AltExpr (vimp1, vimp2, vimp3) = toAlt pl'
                SymbExpr (vpa1, vpa2, vpa3) = mkRule pr'
              in
                AltExpr
                  (vimp1 ++ [vpa1], grammar_seq vimp2 vpa2, 
                   sem_seq local_opts vimp3 vpa3)

src/GLL/Combinators/Visit/Join.hs:52:7: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘vpa1’,
                                                               ‘vpa2’, ‘vpa3’
        Consider giving a type signature for these binders
    • In the expression:
        let
          AltExpr (vimp1, vimp2, vimp3) = toAlt pl'
          SymbExpr (vpa1, vpa2, vpa3) = mkRule pr'
        in
          AltExpr
            (vimp1 ++ [vpa1], grammar_seq vimp2 vpa2, 
             sem_seq local_opts vimp3 vpa3)
      In an equation for ‘join_seq’:
          join_seq local_opts pl' pr'
            = let
                AltExpr (vimp1, vimp2, vimp3) = toAlt pl'
                SymbExpr (vpa1, vpa2, vpa3) = mkRule pr'
              in
                AltExpr
                  (vimp1 ++ [vpa1], grammar_seq vimp2 vpa2, 
                   sem_seq local_opts vimp3 vpa3)

src/GLL/Combinators/Interface.hs:260:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘start’,
                                                               ‘vpa2’, ‘vpa3’
        Consider giving a type signature for these binders
    • In the expression:
        let
          SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO [...])
          snode = (start, 0, m)
          m = length input
          ....
        in
          (grammar, parse_res, 
           if res_success parse_res && not (null res_list) then
               Right $ res_list
           else
               Left (error_message parse_res))
      In an equation for ‘parse'’:
          parse' popts opts p' input
            = let
                SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO ...)
                snode = ...
                ....
              in
                (grammar, parse_res, 
                 if res_success parse_res && not (null res_list) then
                     Right $ res_list
                 else
                     Left (error_message parse_res))

src/GLL/Combinators/Interface.hs:261:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘snode’
        Consider giving a type signature for ‘snode’
    • In the expression:
        let
          SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO [...])
          snode = (start, 0, m)
          m = length input
          ....
        in
          (grammar, parse_res, 
           if res_success parse_res && not (null res_list) then
               Right $ res_list
           else
               Left (error_message parse_res))
      In an equation for ‘parse'’:
          parse' popts opts p' input
            = let
                SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO ...)
                snode = ...
                ....
              in
                (grammar, parse_res, 
                 if res_success parse_res && not (null res_list) then
                     Right $ res_list
                 else
                     Left (error_message parse_res))

src/GLL/Combinators/Interface.hs:267:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘parse_res’
        Consider giving a type signature for ‘parse_res’
    • In the expression:
        let
          SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO [...])
          snode = (start, 0, m)
          m = length input
          ....
        in
          (grammar, parse_res, 
           if res_success parse_res && not (null res_list) then
               Right $ res_list
           else
               Left (error_message parse_res))
      In an equation for ‘parse'’:
          parse' popts opts p' input
            = let
                SymbExpr (Nt start, vpa2, vpa3) = mkRule ("__Start" <:=> OO ...)
                snode = ...
                ....
              in
                (grammar, parse_res, 
                 if res_success parse_res && not (null res_list) then
                     Right $ res_list
                 else
                     Left (error_message parse_res))

src/GLL/Combinators/Interface.hs:388:18: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘l’
        Consider giving a type signature for ‘l’
    • In the expression:
        let
          l = toAlt l'
          r = altsOf r'
        in OO (l : r)
      In an equation for ‘<||>’:
          l' <||> r'
            = let
                l = toAlt l'
                r = altsOf r'
              in OO (l : r)

src/GLL/Combinators/Interface.hs:389:18: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘r’
        Consider giving a type signature for ‘r’
    • In the expression:
        let
          l = toAlt l'
          r = altsOf r'
        in OO (l : r)
      In an equation for ‘<||>’:
          l' <||> r'
            = let
                l = toAlt l'
                r = altsOf r'
              in OO (l : r)

src/GLL/Combinators/Interface.hs:528:21: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘sym’,
                                                               ‘rules’, ‘sem’
        Consider giving a type signature for these binders
    • In the expression:
        let
          SymbExpr (sym, rules, sem) = toSymb p'
          lhs_sem opts ctx sppf arr l r
            | not (do_memo opts) = sem opts ctx sppf arr l r
            | otherwise = do { ... }
        in SymbExpr (sym, rules, lhs_sem)
      In an equation for ‘memo’:
          memo ref p'
            = let
                SymbExpr (sym, rules, sem) = toSymb p'
                lhs_sem opts ctx sppf arr l r
                  | not (do_memo opts) = sem opts ctx sppf arr l r
                  | otherwise = ...
              in SymbExpr (sym, rules, lhs_sem)

src/GLL/Combinators/Interface.hs:546:18: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘myx’
        Consider giving a type signature for ‘myx’
    • In the expression:
        let SymbExpr (myx, _, _) = mkRule p
        in "_(" ++ show myx ++ ")" ++ str
      In an equation for ‘mkNt’:
          mkNt p str
            = let SymbExpr (myx, _, _) = mkRule p
              in "_(" ++ show myx ++ ")" ++ str

src/GLL/Combinators/Interface.hs:551:15: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘s’,
                                                               ‘r’, ‘sem’
        Consider giving a type signature for these binders
    • In the expression:
        let AltExpr (s, r, sem) = toAlt i
        in
          AltExpr
            (s, r, 
             \ opts slot ctx sppf arr l r
               -> do { as <- sem opts slot ctx sppf arr l r;
                       .... })
      In an equation for ‘.$.’:
          f .$. i
            = let AltExpr (s, r, sem) = toAlt i
              in AltExpr (s, r, \ opts slot ctx sppf arr l r -> do { ... })

src/GLL/Combinators/Test/Interface.hs:53:21: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘parse_res’
        Consider giving a type signature for ‘parse_res’
    • In the expression:
        do { case mref of {
               Nothing -> return ()
               Just ref -> memClear ref };
             j <- readIORef subcount;
             modifyIORef subcount succ;
             let parse_res = parseWithOptions ... p str
                 norm = take 100 . sort . nub
                 ....;
             .... }
      In the second argument of ‘($)’, namely
        ‘\ (str, res)
           -> do { case mref of {
                     Nothing -> ...
                     Just ref -> ... };
                   j <- readIORef subcount;
                   .... }’
      In a stmt of a 'do' block:
        forM_ arg_pairs
        $ \ (str, res)
            -> do { case mref of {
                      Nothing -> ...
                      Just ref -> ... };
                    j <- readIORef subcount;
                    .... }

src/GLL/Combinators/Test/Interface.hs:54:21: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘norm’
        Consider giving a type signature for ‘norm’
    • In the expression:
        do { case mref of {
               Nothing -> return ()
               Just ref -> memClear ref };
             j <- readIORef subcount;
             modifyIORef subcount succ;
             let parse_res = parseWithOptions ... p str
                 norm = take 100 . sort . nub
                 ....;
             .... }
      In the second argument of ‘($)’, namely
        ‘\ (str, res)
           -> do { case mref of {
                     Nothing -> ...
                     Just ref -> ... };
                   j <- readIORef subcount;
                   .... }’
      In a stmt of a 'do' block:
        forM_ arg_pairs
        $ \ (str, res)
            -> do { case mref of {
                      Nothing -> ...
                      Just ref -> ... };
                    j <- readIORef subcount;
                    .... }

src/GLL/Combinators/Test/Interface.hs:55:21: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘norm_p_res’
        Consider giving a type signature for ‘norm_p_res’
    • In the expression:
        do { case mref of {
               Nothing -> return ()
               Just ref -> memClear ref };
             j <- readIORef subcount;
             modifyIORef subcount succ;
             let parse_res = parseWithOptions ... p str
                 norm = take 100 . sort . nub
                 ....;
             .... }
      In the second argument of ‘($)’, namely
        ‘\ (str, res)
           -> do { case mref of {
                     Nothing -> ...
                     Just ref -> ... };
                   j <- readIORef subcount;
                   .... }’
      In a stmt of a 'do' block:
        forM_ arg_pairs
        $ \ (str, res)
            -> do { case mref of {
                      Nothing -> ...
                      Just ref -> ... };
                    j <- readIORef subcount;
                    .... }

src/GLL/Combinators/Test/Interface.hs:94:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:105:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:119:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:133:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:145:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pL’
        Consider giving a type signature for ‘pL’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:151:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:152:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:157:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:158:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:163:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pS’
        Consider giving a type signature for ‘pS’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:171:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pE’
        Consider giving a type signature for ‘pE’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:183:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:188:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:190:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pB’
        Consider giving a type signature for ‘pB’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:195:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘pX’,
                                                               ‘pY’
        Consider giving a type signature for these binders
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:196:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pA’
        Consider giving a type signature for ‘pA’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:204:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:205:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:211:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:212:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:219:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pE’
        Consider giving a type signature for ‘pE’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:226:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the bindings for ‘pY’,
                                                               ‘pX’
        Consider giving a type signature for these binders
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:227:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pA’
        Consider giving a type signature for ‘pA’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:243:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:244:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In an equation for ‘pX’:
          pX
            = "X" <:=> multiple pY
            where
                pY = 1 <$$ char '1' <||> 2 <$$ char '1' <** char '1'
      In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:248:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:249:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In an equation for ‘pX’:
          pX
            = "X" <:=> some pY
            where
                pY = 1 <$$ char '1' <||> 2 <$$ char '1' <** char '1'
      In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:261:9: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pX’
        Consider giving a type signature for ‘pX’
    • In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]

src/GLL/Combinators/Test/Interface.hs:262:16: warning: [-Wmonomorphism-restriction]
    • The Monomorphism Restriction applies to the binding for ‘pY’
        Consider giving a type signature for ‘pY’
    • In an equation for ‘pX’:
          pX
            = "X" <:=> many pY
            where
                pY = 1 <$$ char '1' <||> 2 <$$ char '1' <** char '1'
      In the expression:
        do { count <- newIORef 1;
             let test mref name p arg_pairs = ...;
             test Nothing "eps1" (satisfy 0) [("", [0])];
             test Nothing "eps2" (satisfy 0) [("", [0]), ("111", [])];
             .... }
      In an equation for ‘main’:
          main
            = do { count <- newIORef 1;
                   let test mref name p arg_pairs = ...;
                   test Nothing "eps1" (satisfy 0) [("", [...])];
                   .... }
            where
                aho_S_5 = ["10101010100", ....]
                _EEE_3 = ["00111", ....]
Haddock coverage:
  92% ( 11 / 12) in 'GLL.Flags'
  Missing documentation for:
    Module header
  57% ( 12 / 21) in 'GLL.Types.Grammar'
  Missing documentation for:
    Module header
     (src/GLL/Types/Grammar.hs:94)
     (src/GLL/Types/Grammar.hs:101)
     (src/GLL/Types/Grammar.hs:121)
    unlexToken (src/GLL/Types/Grammar.hs:145)
    isNt (src/GLL/Types/Grammar.hs:160)
    isTerm (src/GLL/Types/Grammar.hs:163)
     (src/GLL/Types/Grammar.hs:166)
     (src/GLL/Types/Grammar.hs:172)
 100% (  1 /  1) in 'GLL.Parseable.Char'
  16% (  6 / 37) in 'GLL.Types.Derivations'
  Missing documentation for:
    Module header
    SlotL (src/GLL/Types/Derivations.hs:13)
    PrL (src/GLL/Types/Derivations.hs:14)
    NtL (src/GLL/Types/Derivations.hs:15)
    SNode (src/GLL/Types/Derivations.hs:61)
    PNode (src/GLL/Types/Derivations.hs:62)
    SEdge (src/GLL/Types/Derivations.hs:63)
    PEdge (src/GLL/Types/Derivations.hs:64)
    emptySPPF (src/GLL/Types/Derivations.hs:66)
    pNodeLookup (src/GLL/Types/Derivations.hs:69)
    pMapInsert (src/GLL/Types/Derivations.hs:75)
    sNodeLookup (src/GLL/Types/Derivations.hs:98)
    sNodeInsert (src/GLL/Types/Derivations.hs:102)
    sNodeRemove (src/GLL/Types/Derivations.hs:118)
    iNodeLookup (src/GLL/Types/Derivations.hs:123)
    iNodeInsert (src/GLL/Types/Derivations.hs:127)
    iNodeRemove (src/GLL/Types/Derivations.hs:143)
    eMapInsert (src/GLL/Types/Derivations.hs:148)
    inU (src/GLL/Types/Derivations.hs:153)
    toU (src/GLL/Types/Derivations.hs:156)
    showD (src/GLL/Types/Derivations.hs:164)
    showG (src/GLL/Types/Derivations.hs:165)
    showP (src/GLL/Types/Derivations.hs:166)
    showS (src/GLL/Types/Derivations.hs:169)
    showSPPF (src/GLL/Types/Derivations.hs:172)
    ProdMap (src/GLL/Types/Derivations.hs:175)
    PrefixMap (src/GLL/Types/Derivations.hs:176)
    SelectMap (src/GLL/Types/Derivations.hs:177)
    FirstMap (src/GLL/Types/Derivations.hs:178)
    FollowMap (src/GLL/Types/Derivations.hs:179)
    fixedMaps (src/GLL/Types/Derivations.hs:181)
  97% ( 36 / 37) in 'GLL.Parser'
  Missing documentation for:
    showSPPF (src/GLL/Types/Derivations.hs:172)
   0% (  0 /  5) in 'GLL.Combinators.Visit.Grammar'
  Missing documentation for:
    Module header
    Grammar_Expr (src/GLL/Combinators/Visit/Grammar.hs:8)
    grammar_nterm (src/GLL/Combinators/Visit/Grammar.hs:10)
    grammar_apply (src/GLL/Combinators/Visit/Grammar.hs:15)
    grammar_seq (src/GLL/Combinators/Visit/Grammar.hs:18)
  80% (  4 /  5) in 'GLL.Combinators.Lexer'
  Missing documentation for:
    Module header
  57% (  4 /  7) in 'GLL.Combinators.Memoisation'
  Missing documentation for:
    Module header
    memLookup (src/GLL/Combinators/Memoisation.hs:15)
    memInsert (src/GLL/Combinators/Memoisation.hs:19)
  84% ( 21 / 25) in 'GLL.Combinators.Options'
  Missing documentation for:
    Module header
    runOptions (src/GLL/Combinators/Options.hs:25)
    runOptionsOn (src/GLL/Combinators/Options.hs:28)
    maintainWith (src/GLL/Combinators/Options.hs:90)
   0% (  0 /  9) in 'GLL.Combinators.Visit.Sem'
  Missing documentation for:
    Module header
    Sem_Symb (src/GLL/Combinators/Visit/Sem.hs:13)
    Sem_Alt (src/GLL/Combinators/Visit/Sem.hs:15)
    sem_nterm (src/GLL/Combinators/Visit/Sem.hs:18)
    sem_apply (src/GLL/Combinators/Visit/Sem.hs:41)
    sem_seq (src/GLL/Combinators/Visit/Sem.hs:47)
    Ancestors (src/GLL/Combinators/Visit/Sem.hs:60)
    inAncestors (src/GLL/Combinators/Visit/Sem.hs:62)
    toAncestors (src/GLL/Combinators/Visit/Sem.hs:67)
  35% (  7 / 20) in 'GLL.Combinators.Visit.Join'
  Missing documentation for:
    Module header
    mkNtRule (src/GLL/Combinators/Visit/Join.hs:33)
    join_apply (src/GLL/Combinators/Visit/Join.hs:43)
    join_seq (src/GLL/Combinators/Visit/Join.hs:48)
     (src/GLL/Combinators/Visit/Join.hs:63)
     (src/GLL/Combinators/Visit/Join.hs:66)
     (src/GLL/Combinators/Visit/Join.hs:69)
     (src/GLL/Combinators/Visit/Join.hs:78)
     (src/GLL/Combinators/Visit/Join.hs:81)
     (src/GLL/Combinators/Visit/Join.hs:84)
     (src/GLL/Combinators/Visit/Join.hs:92)
     (src/GLL/Combinators/Visit/Join.hs:95)
     (src/GLL/Combinators/Visit/Join.hs:98)
  98% (118 /121) in 'GLL.Combinators.Interface'
  Missing documentation for:
    unlexToken (src/GLL/Types/Grammar.hs:145)
    <<**> (src/GLL/Combinators/Interface.hs:575)
    **>>> (src/GLL/Combinators/Interface.hs:571)
 100% (  2 /  2) in 'GLL.Combinators.Test.Interface'
 100% (  2 /  2) in 'GLL.Combinators'
Documentation created: dist/doc/html/gll/index.html, dist/doc/html/gll/gll.txt
Creating package registration file:
/tmp/pkgConf-gll-0.4.02425889541849552528.2
Installing library in
/home/builder/hackage-server/build-cache/tmp-install/lib/x86_64-linux-ghc-8.0.1.20160701/gll-0.4.0.2-3hvvmlpAlXLDelaXbr5Cij
Registering gll-0.4.0.2...
cabal: Leaving directory '/tmp/cabal-tmp-27441/gll-0.4.0.2'
Installed gll-0.4.0.2

Test log

No test log was submitted for this report.