diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,30 +1,30 @@
-Copyright 2014 Heather Cynede
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-3. Neither the name of the author nor the names of his contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
+Copyright 2014 Heather Cynede
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the author nor the names of his contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,6 @@
-import Distribution.Simple
-main = defaultMain
+module Main (main) where
+
+import Distribution.Simple
+
+main :: IO ()
+main = defaultMain
diff --git a/eternal.cabal b/eternal.cabal
--- a/eternal.cabal
+++ b/eternal.cabal
@@ -1,6 +1,6 @@
 name:          eternal
 category:      Control
-version:       0.1.3
+version:       0.1.4
 author:        Heather Cynede
 maintainer:    Heather Cynede <Heather@live.ru>
 license:       BSD3
@@ -10,13 +10,13 @@
   Everything breaking the Fairbairn threshold
   but in the same time usable in other projects
 
-build-type: Simple
+build-type: Custom
 cabal-version: >= 1.8
 
 library
   Hs-Source-Dirs: src
 
-  exposed-modules:
+  Exposed-Modules:
     Control.Eternal
 
     Control.Eternal.Syntax
diff --git a/src/Control/Eternal.hs b/src/Control/Eternal.hs
--- a/src/Control/Eternal.hs
+++ b/src/Control/Eternal.hs
@@ -1,9 +1,8 @@
 {-# LANGUAGE Safe #-}
 
 module Control.Eternal
-  ( module Control.Eternal.Syntax
-  , module Control.Eternal.Reactive
+  ( module Control.Eternal
   ) where
 
-import Control.Eternal.Syntax
-import Control.Eternal.Reactive
+import Control.Eternal.Syntax   as Control.Eternal
+import Control.Eternal.Reactive as Control.Eternal
diff --git a/src/Control/Eternal/Syntax.hs b/src/Control/Eternal/Syntax.hs
--- a/src/Control/Eternal/Syntax.hs
+++ b/src/Control/Eternal/Syntax.hs
@@ -1,18 +1,15 @@
 {-# LANGUAGE Safe #-}
 
 module Control.Eternal.Syntax
-  ( module Control.Eternal.Syntax.Operators
-  , module Control.Eternal.Syntax.Unicode
-  , module Control.Eternal.Syntax.Lift
-  , module Control.Eternal.Syntax.Logic
+  ( module Control.Eternal.Syntax
   , module Prelude.Unicode
   , module Control.Monad.Unicode
   ) where
 
-import Control.Eternal.Syntax.Operators
-import Control.Eternal.Syntax.Unicode
-import Control.Eternal.Syntax.Lift
-import Control.Eternal.Syntax.Logic
+import Control.Eternal.Syntax.Operators as Control.Eternal.Syntax
+import Control.Eternal.Syntax.Unicode   as Control.Eternal.Syntax
+import Control.Eternal.Syntax.Lift      as Control.Eternal.Syntax
+import Control.Eternal.Syntax.Logic     as Control.Eternal.Syntax
 
 import Prelude.Unicode -- base-unicode-symbols
 import Control.Monad.Unicode
diff --git a/src/Control/Eternal/Syntax/Lift.hs b/src/Control/Eternal/Syntax/Lift.hs
--- a/src/Control/Eternal/Syntax/Lift.hs
+++ b/src/Control/Eternal/Syntax/Lift.hs
@@ -17,7 +17,7 @@
 liftM3_ ∷ Monad m ⇒ (α1 → α2 → α3 → m α) → m α1 → m α2 → m α3 → m α
 liftM4_ ∷ Monad m ⇒ (α1 → α2 → α3 → α4 → m α) → m α1 → m α2 → m α3 → m α4 → m α
 
-liftM_ a1 r           = join $ liftM a1 r
+liftM_ a1 r           = join $ fmap a1 r
 liftM2_ a1 a2 r       = join $ liftM2 a1 a2 r
 liftM3_ a1 a2 a3 r    = join $ liftM3 a1 a2 a3 r
 liftM4_ a1 a2 a3 a4 r = join $ liftM4 a1 a2 a3 a4 r
