diff --git a/Language/Symantic/Grammar/BinTree.hs b/Language/Symantic/Grammar/BinTree.hs
--- a/Language/Symantic/Grammar/BinTree.hs
+++ b/Language/Symantic/Grammar/BinTree.hs
@@ -2,7 +2,15 @@
 -- made of applications of tokens.
 module Language.Symantic.Grammar.BinTree where
 
+import Control.Applicative (Applicative(..))
+import Control.Monad (Monad(..))
+import Data.Eq (Eq)
+import Data.Foldable (Foldable(..))
+import Data.Functor (Functor(..), (<$>))
+import Data.Monoid (Monoid(..))
 import Data.Semigroup (Semigroup(..))
+import Data.Traversable (Traversable(..))
+import Text.Show (Show)
 
 -- * Type 'BinTree'
 -- | /Binary Tree/.
diff --git a/Language/Symantic/Grammar/EBNF.hs b/Language/Symantic/Grammar/EBNF.hs
--- a/Language/Symantic/Grammar/EBNF.hs
+++ b/Language/Symantic/Grammar/EBNF.hs
@@ -1,8 +1,12 @@
 module Language.Symantic.Grammar.EBNF where
 
 import Control.Applicative (Applicative(..))
-import Data.Semigroup
+import Data.Eq (Eq)
+import Data.Function (($), (.), id)
+import Data.Functor (Functor(..))
+import Data.Semigroup (Semigroup(..))
 import Data.Text (Text)
+import Text.Show (Show(..))
 import qualified Data.Text as Text
 
 import Language.Symantic.Grammar.Meta
diff --git a/Language/Symantic/Grammar/Error.hs b/Language/Symantic/Grammar/Error.hs
--- a/Language/Symantic/Grammar/Error.hs
+++ b/Language/Symantic/Grammar/Error.hs
@@ -1,6 +1,8 @@
 {-# LANGUAGE TypeApplications #-}
 module Language.Symantic.Grammar.Error where
 
+import Data.Either (Either(..))
+import Data.Function (($), (.))
 import Data.Proxy (Proxy)
 
 -- * Class 'ErrorInj'
diff --git a/Language/Symantic/Grammar/Fixity.hs b/Language/Symantic/Grammar/Fixity.hs
--- a/Language/Symantic/Grammar/Fixity.hs
+++ b/Language/Symantic/Grammar/Fixity.hs
@@ -1,8 +1,14 @@
 module Language.Symantic.Grammar.Fixity where
 
 import Data.Bool as Bool
+import Data.Eq (Eq(..))
+import Data.Function ((.))
+import Data.Int (Int)
+import Data.Maybe (Maybe(..))
+import Data.Ord (Ord(..))
 import Data.Semigroup
 import Data.String (IsString(..))
+import Text.Show (Show)
 
 -- * Type 'Fixity'
 data Fixity
diff --git a/Language/Symantic/Grammar/Meta.hs b/Language/Symantic/Grammar/Meta.hs
--- a/Language/Symantic/Grammar/Meta.hs
+++ b/Language/Symantic/Grammar/Meta.hs
@@ -2,6 +2,10 @@
 {-# LANGUAGE UndecidableInstances #-}
 module Language.Symantic.Grammar.Meta where
 
+import Data.Either (Either)
+import Data.Function (($), const)
+import Data.Functor (Functor, (<$>))
+
 import Language.Symantic.Grammar.Source
 
 -- * Type 'Gram_Reader'
diff --git a/Language/Symantic/Grammar/Operators.hs b/Language/Symantic/Grammar/Operators.hs
--- a/Language/Symantic/Grammar/Operators.hs
+++ b/Language/Symantic/Grammar/Operators.hs
@@ -4,7 +4,15 @@
 
 import Control.Applicative (Applicative(..))
 import Control.Monad (void)
+import Data.Either (Either(..))
+import Data.Eq (Eq)
 import Data.Foldable
+import Data.Function (($), (.), flip, id)
+import Data.Functor ((<$>))
+import Data.Maybe (Maybe(..))
+import Data.Ord (Ord(..), Ordering(..))
+import Data.Tuple (curry)
+import Text.Show (Show, showChar, showParen, showString, showsPrec)
 
 import Language.Symantic.Grammar.Fixity
 import Language.Symantic.Grammar.EBNF
diff --git a/Language/Symantic/Grammar/Regular.hs b/Language/Symantic/Grammar/Regular.hs
--- a/Language/Symantic/Grammar/Regular.hs
+++ b/Language/Symantic/Grammar/Regular.hs
@@ -1,8 +1,13 @@
 -- | Symantics for regular grammars.
 module Language.Symantic.Grammar.Regular where
 
+import Control.Applicative (Applicative(..))
+import Data.Foldable (foldr)
+import Data.Function (($), flip, id)
+import Data.Functor (Functor, (<$>))
 import Data.Semigroup (Semigroup(..))
 import Data.String (IsString(..))
+import qualified Data.List as List
 import qualified Data.Text as Text
 
 import Language.Symantic.Grammar.Meta
@@ -93,10 +98,10 @@
 	(<*.) :: RegL g (a -> b) -> Terminal g a -> RegL g b
 	infixl 4 <*.
 	manyL :: Terminal g a -> RegL g [a]
-	manyL g' = reverse <$> go g'
+	manyL g' = List.reverse <$> go g'
 		where go g = flip (:) <$> go g <*. g <+> empty
 	someL :: Terminal g a -> RegL g [a]
-	someL g = (\cs c -> cs ++ [c]) <$> manyL g <*. g
+	someL g = (\cs c -> cs <> [c]) <$> manyL g <*. g
 instance Gram_RegL EBNF where
 	Reg f <*. Terminal x = Reg $ f <*> x
 	manyL (Terminal (EBNF g)) = Reg $ EBNF $ \rm _po -> "{" <> g rm (op, SideL) <> "}"  where op = infixN0
diff --git a/Language/Symantic/Grammar/Source.hs b/Language/Symantic/Grammar/Source.hs
--- a/Language/Symantic/Grammar/Source.hs
+++ b/Language/Symantic/Grammar/Source.hs
@@ -2,6 +2,9 @@
 {-# LANGUAGE TypeFamilies #-}
 module Language.Symantic.Grammar.Source where
 
+import Data.Eq (Eq)
+import Data.Ord (Ord)
+import Text.Show (Show)
 import Data.Functor (Functor)
 import Data.Typeable (Typeable)
 
diff --git a/Language/Symantic/Grammar/Terminal.hs b/Language/Symantic/Grammar/Terminal.hs
--- a/Language/Symantic/Grammar/Terminal.hs
+++ b/Language/Symantic/Grammar/Terminal.hs
@@ -2,8 +2,15 @@
 -- | Symantics for terminal grammars.
 module Language.Symantic.Grammar.Terminal where
 
+import Control.Applicative (Applicative(..))
+import Data.Bool
+import Data.Char (Char)
+import Data.Eq (Eq(..))
+import Data.Function (($), (.))
+import Data.Functor (Functor(..), (<$>))
 import Data.Semigroup (Semigroup(..))
-import Data.String (IsString(..))
+import Data.String (IsString(..), String)
+import Text.Show (Show(..))
 import qualified Data.Bool as Bool
 import qualified Data.Char as Char
 import qualified Data.List as List
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,3 +1,3 @@
-resolver: lts-10.5
+resolver: lts-12.8
 packages:
 - '.'
diff --git a/symantic-grammar.cabal b/symantic-grammar.cabal
--- a/symantic-grammar.cabal
+++ b/symantic-grammar.cabal
@@ -2,7 +2,7 @@
 -- PVP:  +-+------- breaking API changes
 --       | | +----- non-breaking API additions
 --       | | | +--- code changes with no API change
-version: 0.3.0.20180213
+version: 0.3.1.20180831
 category: Language
 synopsis: Library for symantic grammars.
 description: This library defines an embedded DSL for regular or context-free grammars,
@@ -21,7 +21,7 @@
 
 build-type: Simple
 cabal-version: >= 1.24
-tested-with: GHC==8.2.2
+tested-with: GHC==8.4.3
 extra-source-files:
   stack.yaml
 extra-tmp-files:
@@ -52,6 +52,7 @@
     KindSignatures
     LambdaCase
     MultiParamTypeClasses
+    NoImplicitPrelude
     OverloadedStrings
     ScopedTypeVariables
     StandaloneDeriving
