diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2016, Nikita Volkov
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/library/Contravariant/Extras.hs b/library/Contravariant/Extras.hs
new file mode 100644
--- /dev/null
+++ b/library/Contravariant/Extras.hs
@@ -0,0 +1,7 @@
+module Contravariant.Extras
+(
+  module Rebase.Contravariant.Extras
+)
+where
+
+import Rebase.Contravariant.Extras
diff --git a/library/Control/Concurrent/STM.hs b/library/Control/Concurrent/STM.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Concurrent/STM.hs
@@ -0,0 +1,7 @@
+module Control.Concurrent.STM
+(
+  module Rebase.Control.Concurrent.STM
+)
+where
+
+import Rebase.Control.Concurrent.STM
diff --git a/library/Control/DeepSeq.hs b/library/Control/DeepSeq.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/DeepSeq.hs
@@ -0,0 +1,7 @@
+module Control.DeepSeq
+(
+  module Rebase.Control.DeepSeq
+)
+where
+
+import Rebase.Control.DeepSeq
diff --git a/library/Control/Monad/Cont/Class.hs b/library/Control/Monad/Cont/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Cont/Class.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Cont.Class
+(
+  module Rebase.Control.Monad.Cont.Class
+)
+where
+
+import Rebase.Control.Monad.Cont.Class
diff --git a/library/Control/Monad/Error/Class.hs b/library/Control/Monad/Error/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Error/Class.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Error.Class
+(
+  module Rebase.Control.Monad.Error.Class
+)
+where
+
+import Rebase.Control.Monad.Error.Class
diff --git a/library/Control/Monad/Fail.hs b/library/Control/Monad/Fail.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Fail.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Fail
+(
+  module Rebase.Control.Monad.Fail
+)
+where
+
+import Rebase.Control.Monad.Fail
diff --git a/library/Control/Monad/IO/Class.hs b/library/Control/Monad/IO/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/IO/Class.hs
@@ -0,0 +1,7 @@
+module Control.Monad.IO.Class
+(
+  module Rebase.Control.Monad.IO.Class
+)
+where
+
+import Rebase.Control.Monad.IO.Class
diff --git a/library/Control/Monad/Reader/Class.hs b/library/Control/Monad/Reader/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Reader/Class.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Reader.Class
+(
+  module Rebase.Control.Monad.Reader.Class
+)
+where
+
+import Rebase.Control.Monad.Reader.Class
diff --git a/library/Control/Monad/State/Class.hs b/library/Control/Monad/State/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/State/Class.hs
@@ -0,0 +1,7 @@
+module Control.Monad.State.Class
+(
+  module Rebase.Control.Monad.State.Class
+)
+where
+
+import Rebase.Control.Monad.State.Class
diff --git a/library/Control/Monad/Trans/Class.hs b/library/Control/Monad/Trans/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/Class.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.Class
+(
+  module Rebase.Control.Monad.Trans.Class
+)
+where
+
+import Rebase.Control.Monad.Trans.Class
diff --git a/library/Control/Monad/Trans/Cont.hs b/library/Control/Monad/Trans/Cont.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/Cont.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.Cont
+(
+  module Rebase.Control.Monad.Trans.Cont
+)
+where
+
+import Rebase.Control.Monad.Trans.Cont
diff --git a/library/Control/Monad/Trans/Either.hs b/library/Control/Monad/Trans/Either.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/Either.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.Either
+(
+  module Rebase.Control.Monad.Trans.Either
+)
+where
+
+import Rebase.Control.Monad.Trans.Either
diff --git a/library/Control/Monad/Trans/Except.hs b/library/Control/Monad/Trans/Except.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/Except.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.Except
+(
+  module Rebase.Control.Monad.Trans.Except
+)
+where
+
+import Rebase.Control.Monad.Trans.Except
diff --git a/library/Control/Monad/Trans/Maybe.hs b/library/Control/Monad/Trans/Maybe.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/Maybe.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.Maybe
+(
+  module Rebase.Control.Monad.Trans.Maybe
+)
+where
+
+import Rebase.Control.Monad.Trans.Maybe
diff --git a/library/Control/Monad/Trans/Reader.hs b/library/Control/Monad/Trans/Reader.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/Reader.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.Reader
+(
+  module Rebase.Control.Monad.Trans.Reader
+)
+where
+
+import Rebase.Control.Monad.Trans.Reader
diff --git a/library/Control/Monad/Trans/State/Lazy.hs b/library/Control/Monad/Trans/State/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/State/Lazy.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.State.Lazy
+(
+  module Rebase.Control.Monad.Trans.State.Lazy
+)
+where
+
+import Rebase.Control.Monad.Trans.State.Lazy
diff --git a/library/Control/Monad/Trans/State/Strict.hs b/library/Control/Monad/Trans/State/Strict.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/State/Strict.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.State.Strict
+(
+  module Rebase.Control.Monad.Trans.State.Strict
+)
+where
+
+import Rebase.Control.Monad.Trans.State.Strict
diff --git a/library/Control/Monad/Trans/Writer/Lazy.hs b/library/Control/Monad/Trans/Writer/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/Writer/Lazy.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.Writer.Lazy
+(
+  module Rebase.Control.Monad.Trans.Writer.Lazy
+)
+where
+
+import Rebase.Control.Monad.Trans.Writer.Lazy
diff --git a/library/Control/Monad/Trans/Writer/Strict.hs b/library/Control/Monad/Trans/Writer/Strict.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Trans/Writer/Strict.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Trans.Writer.Strict
+(
+  module Rebase.Control.Monad.Trans.Writer.Strict
+)
+where
+
+import Rebase.Control.Monad.Trans.Writer.Strict
diff --git a/library/Control/Monad/Writer/Class.hs b/library/Control/Monad/Writer/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Control/Monad/Writer/Class.hs
@@ -0,0 +1,7 @@
+module Control.Monad.Writer.Class
+(
+  module Rebase.Control.Monad.Writer.Class
+)
+where
+
+import Rebase.Control.Monad.Writer.Class
diff --git a/library/Data/Bifunctor.hs b/library/Data/Bifunctor.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Bifunctor.hs
@@ -0,0 +1,7 @@
+module Data.Bifunctor
+(
+  module Rebase.Data.Bifunctor
+)
+where
+
+import Rebase.Data.Bifunctor
diff --git a/library/Data/Bifunctor/Apply.hs b/library/Data/Bifunctor/Apply.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Bifunctor/Apply.hs
@@ -0,0 +1,7 @@
+module Data.Bifunctor.Apply
+(
+  module Rebase.Data.Bifunctor.Apply
+)
+where
+
+import Rebase.Data.Bifunctor.Apply
diff --git a/library/Data/ByteString.hs b/library/Data/ByteString.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/ByteString.hs
@@ -0,0 +1,7 @@
+module Data.ByteString
+(
+  module Rebase.Data.ByteString
+)
+where
+
+import Rebase.Data.ByteString
diff --git a/library/Data/ByteString/Builder.hs b/library/Data/ByteString/Builder.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/ByteString/Builder.hs
@@ -0,0 +1,7 @@
+module Data.ByteString.Builder
+(
+  module Rebase.Data.ByteString.Builder
+)
+where
+
+import Rebase.Data.ByteString.Builder
diff --git a/library/Data/ByteString/Char8.hs b/library/Data/ByteString/Char8.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/ByteString/Char8.hs
@@ -0,0 +1,7 @@
+module Data.ByteString.Char8
+(
+  module Rebase.Data.ByteString.Char8
+)
+where
+
+import Rebase.Data.ByteString.Char8
diff --git a/library/Data/ByteString/Lazy.hs b/library/Data/ByteString/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/ByteString/Lazy.hs
@@ -0,0 +1,7 @@
+module Data.ByteString.Lazy
+(
+  module Rebase.Data.ByteString.Lazy
+)
+where
+
+import Rebase.Data.ByteString.Lazy
diff --git a/library/Data/ByteString/Lazy/Char8.hs b/library/Data/ByteString/Lazy/Char8.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/ByteString/Lazy/Char8.hs
@@ -0,0 +1,7 @@
+module Data.ByteString.Lazy.Char8
+(
+  module Rebase.Data.ByteString.Lazy.Char8
+)
+where
+
+import Rebase.Data.ByteString.Lazy.Char8
diff --git a/library/Data/ByteString/Short.hs b/library/Data/ByteString/Short.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/ByteString/Short.hs
@@ -0,0 +1,7 @@
+module Data.ByteString.Short
+(
+  module Rebase.Data.ByteString.Short
+)
+where
+
+import Rebase.Data.ByteString.Short
diff --git a/library/Data/DList.hs b/library/Data/DList.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/DList.hs
@@ -0,0 +1,7 @@
+module Data.DList
+(
+  module Rebase.Data.DList
+)
+where
+
+import Rebase.Data.DList
diff --git a/library/Data/Either/Combinators.hs b/library/Data/Either/Combinators.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Either/Combinators.hs
@@ -0,0 +1,7 @@
+module Data.Either.Combinators
+(
+  module Rebase.Data.Either.Combinators
+)
+where
+
+import Rebase.Data.Either.Combinators
diff --git a/library/Data/Either/Validation.hs b/library/Data/Either/Validation.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Either/Validation.hs
@@ -0,0 +1,7 @@
+module Data.Either.Validation
+(
+  module Rebase.Data.Either.Validation
+)
+where
+
+import Rebase.Data.Either.Validation
diff --git a/library/Data/Functor/Alt.hs b/library/Data/Functor/Alt.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Functor/Alt.hs
@@ -0,0 +1,7 @@
+module Data.Functor.Alt
+(
+  module Rebase.Data.Functor.Alt
+)
+where
+
+import Rebase.Data.Functor.Alt
diff --git a/library/Data/Functor/Apply.hs b/library/Data/Functor/Apply.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Functor/Apply.hs
@@ -0,0 +1,7 @@
+module Data.Functor.Apply
+(
+  module Rebase.Data.Functor.Apply
+)
+where
+
+import Rebase.Data.Functor.Apply
diff --git a/library/Data/Functor/Bind.hs b/library/Data/Functor/Bind.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Functor/Bind.hs
@@ -0,0 +1,7 @@
+module Data.Functor.Bind
+(
+  module Rebase.Data.Functor.Bind
+)
+where
+
+import Rebase.Data.Functor.Bind
diff --git a/library/Data/Functor/Contravariant.hs b/library/Data/Functor/Contravariant.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Functor/Contravariant.hs
@@ -0,0 +1,7 @@
+module Data.Functor.Contravariant
+(
+  module Rebase.Data.Functor.Contravariant
+)
+where
+
+import Rebase.Data.Functor.Contravariant
diff --git a/library/Data/Functor/Contravariant/Divisible.hs b/library/Data/Functor/Contravariant/Divisible.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Functor/Contravariant/Divisible.hs
@@ -0,0 +1,7 @@
+module Data.Functor.Contravariant.Divisible
+(
+  module Rebase.Data.Functor.Contravariant.Divisible
+)
+where
+
+import Rebase.Data.Functor.Contravariant.Divisible
diff --git a/library/Data/Functor/Extend.hs b/library/Data/Functor/Extend.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Functor/Extend.hs
@@ -0,0 +1,7 @@
+module Data.Functor.Extend
+(
+  module Rebase.Data.Functor.Extend
+)
+where
+
+import Rebase.Data.Functor.Extend
diff --git a/library/Data/Functor/Identity.hs b/library/Data/Functor/Identity.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Functor/Identity.hs
@@ -0,0 +1,7 @@
+module Data.Functor.Identity
+(
+  module Rebase.Data.Functor.Identity
+)
+where
+
+import Rebase.Data.Functor.Identity
diff --git a/library/Data/Functor/Plus.hs b/library/Data/Functor/Plus.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Functor/Plus.hs
@@ -0,0 +1,7 @@
+module Data.Functor.Plus
+(
+  module Rebase.Data.Functor.Plus
+)
+where
+
+import Rebase.Data.Functor.Plus
diff --git a/library/Data/HashMap/Strict.hs b/library/Data/HashMap/Strict.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/HashMap/Strict.hs
@@ -0,0 +1,7 @@
+module Data.HashMap.Strict
+(
+  module Rebase.Data.HashMap.Strict
+)
+where
+
+import Rebase.Data.HashMap.Strict
diff --git a/library/Data/HashSet.hs b/library/Data/HashSet.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/HashSet.hs
@@ -0,0 +1,7 @@
+module Data.HashSet
+(
+  module Rebase.Data.HashSet
+)
+where
+
+import Rebase.Data.HashSet
diff --git a/library/Data/Hashable.hs b/library/Data/Hashable.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Hashable.hs
@@ -0,0 +1,7 @@
+module Data.Hashable
+(
+  module Rebase.Data.Hashable
+)
+where
+
+import Rebase.Data.Hashable
diff --git a/library/Data/IntMap/Strict.hs b/library/Data/IntMap/Strict.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/IntMap/Strict.hs
@@ -0,0 +1,7 @@
+module Data.IntMap.Strict
+(
+  module Rebase.Data.IntMap.Strict
+)
+where
+
+import Rebase.Data.IntMap.Strict
diff --git a/library/Data/IntSet.hs b/library/Data/IntSet.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/IntSet.hs
@@ -0,0 +1,7 @@
+module Data.IntSet
+(
+  module Rebase.Data.IntSet
+)
+where
+
+import Rebase.Data.IntSet
diff --git a/library/Data/List.hs b/library/Data/List.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/List.hs
@@ -0,0 +1,7 @@
+module Data.List
+(
+  module Rebase.Data.List
+)
+where
+
+import Rebase.Data.List
diff --git a/library/Data/List/NonEmpty.hs b/library/Data/List/NonEmpty.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/List/NonEmpty.hs
@@ -0,0 +1,7 @@
+module Data.List.NonEmpty
+(
+  module Rebase.Data.List.NonEmpty
+)
+where
+
+import Rebase.Data.List.NonEmpty
diff --git a/library/Data/List1.hs b/library/Data/List1.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/List1.hs
@@ -0,0 +1,7 @@
+module Data.List1
+(
+  module Rebase.Data.List1
+)
+where
+
+import Rebase.Data.List1
diff --git a/library/Data/Map/Strict.hs b/library/Data/Map/Strict.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Map/Strict.hs
@@ -0,0 +1,7 @@
+module Data.Map.Strict
+(
+  module Rebase.Data.Map.Strict
+)
+where
+
+import Rebase.Data.Map.Strict
diff --git a/library/Data/Profunctor.hs b/library/Data/Profunctor.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Profunctor.hs
@@ -0,0 +1,7 @@
+module Data.Profunctor
+(
+  module Rebase.Data.Profunctor
+)
+where
+
+import Rebase.Data.Profunctor
diff --git a/library/Data/Profunctor/Unsafe.hs b/library/Data/Profunctor/Unsafe.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Profunctor/Unsafe.hs
@@ -0,0 +1,7 @@
+module Data.Profunctor.Unsafe
+(
+  module Rebase.Data.Profunctor.Unsafe
+)
+where
+
+import Rebase.Data.Profunctor.Unsafe
diff --git a/library/Data/Scientific.hs b/library/Data/Scientific.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Scientific.hs
@@ -0,0 +1,7 @@
+module Data.Scientific
+(
+  module Rebase.Data.Scientific
+)
+where
+
+import Rebase.Data.Scientific
diff --git a/library/Data/Semigroup.hs b/library/Data/Semigroup.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Semigroup.hs
@@ -0,0 +1,7 @@
+module Data.Semigroup
+(
+  module Rebase.Data.Semigroup
+)
+where
+
+import Rebase.Data.Semigroup
diff --git a/library/Data/Semigroup/Bifoldable.hs b/library/Data/Semigroup/Bifoldable.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Semigroup/Bifoldable.hs
@@ -0,0 +1,7 @@
+module Data.Semigroup.Bifoldable
+(
+  module Rebase.Data.Semigroup.Bifoldable
+)
+where
+
+import Rebase.Data.Semigroup.Bifoldable
diff --git a/library/Data/Semigroup/Bitraversable.hs b/library/Data/Semigroup/Bitraversable.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Semigroup/Bitraversable.hs
@@ -0,0 +1,7 @@
+module Data.Semigroup.Bitraversable
+(
+  module Rebase.Data.Semigroup.Bitraversable
+)
+where
+
+import Rebase.Data.Semigroup.Bitraversable
diff --git a/library/Data/Semigroup/Foldable.hs b/library/Data/Semigroup/Foldable.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Semigroup/Foldable.hs
@@ -0,0 +1,7 @@
+module Data.Semigroup.Foldable
+(
+  module Rebase.Data.Semigroup.Foldable
+)
+where
+
+import Rebase.Data.Semigroup.Foldable
diff --git a/library/Data/Semigroup/Traversable.hs b/library/Data/Semigroup/Traversable.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Semigroup/Traversable.hs
@@ -0,0 +1,7 @@
+module Data.Semigroup.Traversable
+(
+  module Rebase.Data.Semigroup.Traversable
+)
+where
+
+import Rebase.Data.Semigroup.Traversable
diff --git a/library/Data/Semigroupoid.hs b/library/Data/Semigroupoid.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Semigroupoid.hs
@@ -0,0 +1,7 @@
+module Data.Semigroupoid
+(
+  module Rebase.Data.Semigroupoid
+)
+where
+
+import Rebase.Data.Semigroupoid
diff --git a/library/Data/Sequence.hs b/library/Data/Sequence.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Sequence.hs
@@ -0,0 +1,7 @@
+module Data.Sequence
+(
+  module Rebase.Data.Sequence
+)
+where
+
+import Rebase.Data.Sequence
diff --git a/library/Data/Set.hs b/library/Data/Set.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Set.hs
@@ -0,0 +1,7 @@
+module Data.Set
+(
+  module Rebase.Data.Set
+)
+where
+
+import Rebase.Data.Set
diff --git a/library/Data/Text.hs b/library/Data/Text.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Text.hs
@@ -0,0 +1,7 @@
+module Data.Text
+(
+  module Rebase.Data.Text
+)
+where
+
+import Rebase.Data.Text
diff --git a/library/Data/Text/Encoding/Error.hs b/library/Data/Text/Encoding/Error.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Text/Encoding/Error.hs
@@ -0,0 +1,7 @@
+module Data.Text.Encoding.Error
+(
+  module Rebase.Data.Text.Encoding.Error
+)
+where
+
+import Rebase.Data.Text.Encoding.Error
diff --git a/library/Data/Text/Lazy.hs b/library/Data/Text/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Text/Lazy.hs
@@ -0,0 +1,7 @@
+module Data.Text.Lazy
+(
+  module Rebase.Data.Text.Lazy
+)
+where
+
+import Rebase.Data.Text.Lazy
diff --git a/library/Data/Text/Lazy/Builder.hs b/library/Data/Text/Lazy/Builder.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Text/Lazy/Builder.hs
@@ -0,0 +1,7 @@
+module Data.Text.Lazy.Builder
+(
+  module Rebase.Data.Text.Lazy.Builder
+)
+where
+
+import Rebase.Data.Text.Lazy.Builder
diff --git a/library/Data/Time.hs b/library/Data/Time.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Time.hs
@@ -0,0 +1,7 @@
+module Data.Time
+(
+  module Rebase.Data.Time
+)
+where
+
+import Rebase.Data.Time
diff --git a/library/Data/UUID.hs b/library/Data/UUID.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/UUID.hs
@@ -0,0 +1,7 @@
+module Data.UUID
+(
+  module Rebase.Data.UUID
+)
+where
+
+import Rebase.Data.UUID
diff --git a/library/Data/Vector.hs b/library/Data/Vector.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Vector.hs
@@ -0,0 +1,7 @@
+module Data.Vector
+(
+  module Rebase.Data.Vector
+)
+where
+
+import Rebase.Data.Vector
diff --git a/library/Data/Vector/Mutable.hs b/library/Data/Vector/Mutable.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Vector/Mutable.hs
@@ -0,0 +1,7 @@
+module Data.Vector.Mutable
+(
+  module Rebase.Data.Vector.Mutable
+)
+where
+
+import Rebase.Data.Vector.Mutable
diff --git a/library/Data/Void.hs b/library/Data/Void.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Void.hs
@@ -0,0 +1,7 @@
+module Data.Void
+(
+  module Rebase.Data.Void
+)
+where
+
+import Rebase.Data.Void
diff --git a/library/Data/Void/Unsafe.hs b/library/Data/Void/Unsafe.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Void/Unsafe.hs
@@ -0,0 +1,7 @@
+module Data.Void.Unsafe
+(
+  module Rebase.Data.Void.Unsafe
+)
+where
+
+import Rebase.Data.Void.Unsafe
diff --git a/library/Prelude.hs b/library/Prelude.hs
new file mode 100644
--- /dev/null
+++ b/library/Prelude.hs
@@ -0,0 +1,7 @@
+module Prelude
+(
+  module Rebase.Prelude
+)
+where
+
+import Rebase.Prelude
diff --git a/rerebase.cabal b/rerebase.cabal
new file mode 100644
--- /dev/null
+++ b/rerebase.cabal
@@ -0,0 +1,113 @@
+name:
+  rerebase
+version:
+  1
+synopsis:
+  Reexports from "base" with a bunch of other standard libraries
+description:
+  This package can be used as a drop-in replacement for \"base\",
+  with all the modules preserving the original APIs and
+  being located in the original namespaces.
+homepage:
+  https://github.com/nikita-volkov/rerebase 
+bug-reports:
+  https://github.com/nikita-volkov/rerebase/issues 
+author:
+  Nikita Volkov <nikita.y.volkov@mail.ru>
+maintainer:
+  Nikita Volkov <nikita.y.volkov@mail.ru>
+copyright:
+  (c) 2016, Nikita Volkov
+license:
+  MIT
+license-file:
+  LICENSE
+build-type:
+  Simple
+cabal-version:
+  >=1.10
+
+source-repository head
+  type:
+    git
+  location:
+    git://github.com/nikita-volkov/rerebase.git
+
+library
+  hs-source-dirs:
+    library
+  default-language:
+    Haskell2010
+  exposed-modules:
+    Prelude
+    Data.List1
+    Data.Functor.Identity
+    Data.Bifunctor
+    Data.List
+    Data.Hashable
+    Data.IntMap.Strict
+    Data.IntSet
+    Data.Map.Strict
+    Data.Sequence
+    Data.Set
+    Data.HashMap.Strict
+    Data.HashSet
+    Data.Vector
+    Data.Vector.Mutable
+    Data.ByteString
+    Data.ByteString.Builder
+    Data.ByteString.Char8
+    Data.ByteString.Lazy
+    Data.ByteString.Lazy.Char8
+    Data.ByteString.Short
+    Data.Text
+    Data.Text.Encoding.Error
+    Data.Text.Lazy
+    Data.Text.Lazy.Builder
+    Data.Time
+    Data.Scientific
+    Data.UUID
+    Data.DList
+    Data.Void
+    Data.Void.Unsafe
+    Data.Profunctor
+    Data.Profunctor.Unsafe
+    Data.Functor.Contravariant
+    Data.Functor.Contravariant.Divisible
+    Contravariant.Extras
+    Data.Semigroup
+    Data.List.NonEmpty
+    Data.Bifunctor.Apply
+    Data.Functor.Alt
+    Data.Functor.Apply
+    Data.Functor.Bind
+    Data.Functor.Extend
+    Data.Functor.Plus
+    Data.Semigroup.Bifoldable
+    Data.Semigroup.Bitraversable
+    Data.Semigroup.Foldable
+    Data.Semigroup.Traversable
+    Data.Semigroupoid
+    Control.DeepSeq
+    Control.Monad.IO.Class
+    Control.Monad.Trans.Class
+    Control.Monad.Trans.Cont
+    Control.Monad.Trans.Except
+    Control.Monad.Trans.Maybe
+    Control.Monad.Trans.Reader
+    Control.Monad.Trans.State.Lazy
+    Control.Monad.Trans.State.Strict
+    Control.Monad.Trans.Writer.Lazy
+    Control.Monad.Trans.Writer.Strict
+    Control.Monad.Cont.Class
+    Control.Monad.Error.Class
+    Control.Monad.Reader.Class
+    Control.Monad.State.Class
+    Control.Monad.Writer.Class
+    Control.Monad.Trans.Either
+    Data.Either.Combinators
+    Data.Either.Validation
+    Control.Monad.Fail
+    Control.Concurrent.STM
+  build-depends:
+    rebase == 1.0.*
