diff --git a/src/Data/Char/Frame.hs b/src/Data/Char/Frame.hs
--- a/src/Data/Char/Frame.hs
+++ b/src/Data/Char/Frame.hs
@@ -4,21 +4,34 @@
 import Data.Traversable (Traversable, traverse, foldMapDefault, )
 import Data.Foldable (Foldable, foldMap, )
 import Data.Monoid (Monoid, mempty, mappend, )
+import Data.Semigroup (Semigroup((<>)), )
 
 
 data Horizontal a = Horizontal {left, right :: a} deriving (Eq, Show)
 data Vertical a = Vertical {up, down :: a} deriving (Eq, Show)
 data Parts a = Parts (Vertical a) (Horizontal a) deriving (Eq, Show)
 
+instance Semigroup a => Semigroup (Horizontal a) where
+   Horizontal xl xr <> Horizontal yl yr =
+      Horizontal (xl <> yl) (xr <> yr)
+
 instance Monoid a => Monoid (Horizontal a) where
    mempty = Horizontal mempty mempty
    mappend (Horizontal xl xr) (Horizontal yl yr) =
       Horizontal (mappend xl yl) (mappend xr yr)
 
+instance Semigroup a => Semigroup (Vertical a) where
+   Vertical xl xr <> Vertical yl yr =
+      Vertical (xl <> yl) (xr <> yr)
+
 instance Monoid a => Monoid (Vertical a) where
    mempty = Vertical mempty mempty
    mappend (Vertical xl xr) (Vertical yl yr) =
       Vertical (mappend xl yl) (mappend xr yr)
+
+instance Semigroup a => Semigroup (Parts a) where
+   Parts xl xr <> Parts yl yr =
+      Parts (xl <> yl) (xr <> yr)
 
 instance Monoid a => Monoid (Parts a) where
    mempty = Parts mempty mempty
diff --git a/unicode.cabal b/unicode.cabal
--- a/unicode.cabal
+++ b/unicode.cabal
@@ -1,10 +1,10 @@
 Name:             unicode
-Version:          0.0
+Version:          0.0.1
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
 Maintainer:       Henning Thielemann <haskell@henning-thielemann.de>
-Homepage:         http://code.haskell.org/~thielema/unicode/
+Homepage:         http://hub.darcs.net/thielema/unicode/
 Category:         Text
 Synopsis:         Construct and transform unicode characters
 Description:
@@ -25,7 +25,7 @@
   .
   * @rfc5051@: sorting of characters
 
-Tested-With:      GHC==7.4.1
+Tested-With:      GHC==7.4.2, GHC==8.4.1
 Cabal-Version:    >=1.8
 Build-Type:       Simple
 
@@ -34,17 +34,18 @@
   default:     False
 
 Source-Repository this
-  Tag:         0.0
+  Tag:         0.0.1
   Type:        darcs
-  Location:    http://code.haskell.org/~thielema/unicode/
+  Location:    http://hub.darcs.net/thielema/unicode/
 
 Source-Repository head
   Type:        darcs
-  Location:    http://code.haskell.org/~thielema/unicode/
+  Location:    http://hub.darcs.net/thielema/unicode/
 
 Library
   Build-Depends:
     containers >=0.4 && <0.6,
+    semigroups >=0.1 && <1.0,
     base >=4 && <5
 
   GHC-Options:      -Wall
