diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,17 +1,19 @@
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; either version 2, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
+Copyright 2017 Deian Stefan
 
-You can obtain copies of permitted licenses from these URLs:
+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:
 
-	http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
-	http://www.gnu.org/licenses/gpl-3.0.txt
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
 
-or by writing to the Free Software Foundation, Inc., 59 Temple Place,
-Suite 330, Boston, MA 02111-1307 USA
+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/LIO/DCLabel.hs b/LIO/DCLabel.hs
--- a/LIO/DCLabel.hs
+++ b/LIO/DCLabel.hs
@@ -218,9 +218,11 @@
                 next' = ((:) <$> readPrec) `ap` next
             dFromList <$> next'
 
+instance Semigroup Disjunction where
+  (<>) = dUnion
+
 instance Monoid Disjunction where
   mempty = dFalse
-  mappend = dUnion
 
 dFalse :: Disjunction
 dFalse = Disjunction Set.empty 0
@@ -276,9 +278,11 @@
                 next' = ((:) <$> readPrec) `ap` next
             cFromList <$> next'
 
+instance Semigroup CNF where
+  (<>) = cUnion
+
 instance Monoid CNF where
   mempty = cTrue
-  mappend = cUnion
   
 -- | A 'CNF' that is always @True@--i.e., trivially satisfiable.  When
 -- @'dcSecrecy' = cTrue@, it means data is public.  When
diff --git a/LIO/Label.hs b/LIO/Label.hs
--- a/LIO/Label.hs
+++ b/LIO/Label.hs
@@ -267,11 +267,13 @@
 -- 'canFlowToP' 'NoPrivs' is the same as 'canFlowTo'.
 instance Label l => PrivDesc l NoPrivs where downgradeP _ l = l
 
+instance Semigroup NoPrivs where
+  _ <> _ = NoPrivs
+
 instance Monoid NoPrivs where
-  mempty      = NoPrivs
-  mappend _ _ = NoPrivs
+  mempty = NoPrivs
 
+
 -- | 'Priv' object corresponding to 'NoPrivs'.
 noPrivs :: Priv NoPrivs
 noPrivs = PrivTCB NoPrivs
-
diff --git a/LIO/TCB.hs b/LIO/TCB.hs
--- a/LIO/TCB.hs
+++ b/LIO/TCB.hs
@@ -154,10 +154,11 @@
 -- before running your 'LIO' computation.
 newtype Priv a = PrivTCB a deriving (Show, Eq, Typeable)
 
+instance Semigroup p => Semigroup (Priv p) where
+  (PrivTCB m1) <> (PrivTCB m2) = PrivTCB $ m1 <> m2
+
 instance Monoid p => Monoid (Priv p) where
   mempty = PrivTCB mempty
-  {-# INLINE mappend #-}
-  mappend (PrivTCB m1) (PrivTCB m2) = PrivTCB $ m1 `mappend` m2
   {-# INLINE mconcat #-}
   mconcat ps = PrivTCB $ mconcat $ map (\(PrivTCB p) -> p) ps
 
diff --git a/lio.cabal b/lio.cabal
--- a/lio.cabal
+++ b/lio.cabal
@@ -1,8 +1,8 @@
 Name:           lio
-Version:        0.11.6.0
-Cabal-Version:  >= 1.8
+Version:        0.11.7.0
+Cabal-Version:  1.12
 Build-type:     Simple
-License:        GPL
+License:        MIT
 License-File:   LICENSE
 Author:         Hails team
 Maintainer:     Deian Stefan <deian at cs dot ucsd dot edu>
@@ -66,10 +66,12 @@
 
 Library
   Build-Depends:
-    base          >= 4.5     && < 6.0
+    base          >= 4.7     && < 6.0
    ,containers
-   ,bytestring    >= 0.10
-   ,hashable      >= 1.2
+   ,bytestring
+   ,hashable
+
+  Default-Language: Haskell2010
 
   GHC-options: -Wall -fno-warn-orphans
   include-dirs: LIO/TCB
