diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,8 @@
+0.9.1.6:
+
+  Updated dependencies to support GHC 8.0 (RC1) and updated the code to
+  remove the un-needed constraints pointed out to me by the new compiler.
+
 0.9.1.5:
 
   Removed the developer flag as it causes problems with 'cabal upload'
diff --git a/src/Swish/GraphClass.hs b/src/Swish/GraphClass.hs
--- a/src/Swish/GraphClass.hs
+++ b/src/Swish/GraphClass.hs
@@ -10,7 +10,7 @@
 -- |
 --  Module      :  GraphClass
 --  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin,
---                 2011, 2012 Douglas Burke
+--                 2011, 2012, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -103,7 +103,7 @@
     update f g  = setArcs g ( f (getArcs g) )
 
 -- | Extract components from a set.
-getComponents :: (Ord a, Ord b) => (a -> [b]) -> S.Set a -> S.Set b
+getComponents :: Ord b => (a -> [b]) -> S.Set a -> S.Set b
 getComponents f = 
     let ins sgr = foldl' (flip S.insert) sgr . f
     in S.foldl' ins S.empty 
diff --git a/src/Swish/GraphMatch.hs b/src/Swish/GraphMatch.hs
--- a/src/Swish/GraphMatch.hs
+++ b/src/Swish/GraphMatch.hs
@@ -7,7 +7,8 @@
 --------------------------------------------------------------------------------
 -- |
 --  Module      :  GraphMatch
---  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin, 2011, 2012 Douglas Burke
+--  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin,
+--                 2011, 2012, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -83,7 +84,7 @@
 instance (Label lb, Eq lv) => Eq (GenLabelEntry lb lv) where
     (LabelEntry k1 v1) == (LabelEntry k2 v2) = (k1,v1) == (k2,v2)
 
-instance (Label lb, Show lv, Ord lv) => Ord (GenLabelEntry lb lv) where
+instance (Label lb, Ord lv) => Ord (GenLabelEntry lb lv) where
     (LabelEntry lb1 lv1) `compare` (LabelEntry lb2 lv2) =
         (lb1, lv1) `compare` (lb2, lv2)
 
diff --git a/src/Swish/GraphMem.hs b/src/Swish/GraphMem.hs
--- a/src/Swish/GraphMem.hs
+++ b/src/Swish/GraphMem.hs
@@ -8,7 +8,7 @@
 -- |
 --  Module      :  GraphMem
 --  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin,
---                 2011, 2012, 2014 Douglas Burke
+--                 2011, 2012, 2014, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -47,7 +47,7 @@
 
 data GraphMem lb = GraphMem { arcs :: ArcSet lb }
 
-instance (Label lb) => LDGraph GraphMem lb where
+instance LDGraph GraphMem lb where
     emptyGraph   = GraphMem S.empty
     getArcs      = arcs
     setArcs g as = g { arcs=as }
diff --git a/src/Swish/Proof.hs b/src/Swish/Proof.hs
--- a/src/Swish/Proof.hs
+++ b/src/Swish/Proof.hs
@@ -3,7 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 --  Module      :  Proof
---  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin, 2011 Douglas Burke
+--  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin,
+--                 2011, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -102,7 +103,7 @@
 --  being in correspondence with the name of one of the indicated
 --  valid rules of inference.
 checkStep :: 
-  (Expression ex, Ord ex) 
+  Ord ex
   => [Rule ex]   -- ^ rules
   -> [ex]        -- ^ antecedants
   -> Step ex     -- ^ the step to validate
@@ -179,7 +180,7 @@
 --  valid rules of inference.
 --
 explainStep :: 
-  (Expression ex, Ord ex) 
+  Ord ex
   => [Rule ex]  -- ^ rules
   -> [ex]       -- ^ previous
   -> Step ex    -- ^ step
diff --git a/src/Swish/RDF/Formatter/Internal.hs b/src/Swish/RDF/Formatter/Internal.hs
--- a/src/Swish/RDF/Formatter/Internal.hs
+++ b/src/Swish/RDF/Formatter/Internal.hs
@@ -7,7 +7,7 @@
 -- |
 --  Module      :  Internal
 --  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin,
---                 2011, 2012, 2013, 2014 Douglas Burke
+--                 2011, 2012, 2013, 2014, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -245,7 +245,7 @@
 
 newtype SortedArcs lb = SA [Arc lb]
 
-sortArcs :: (Ord lb) => ArcSet lb -> SortedArcs lb
+sortArcs :: ArcSet lb -> SortedArcs lb
 sortArcs = SA . S.toAscList
 
 --  Rearrange a list of arcs into a tree of pairs which group together
diff --git a/src/Swish/RDF/Graph.hs b/src/Swish/RDF/Graph.hs
--- a/src/Swish/RDF/Graph.hs
+++ b/src/Swish/RDF/Graph.hs
@@ -9,7 +9,7 @@
 -- |
 --  Module      :  Graph
 --  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin,
---                 2011, 2012, 2013, 2014, 2015 Douglas Burke
+--                 2011, 2012, 2013, 2014, 2015, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -1278,7 +1278,7 @@
     , statements :: ArcSet lb         -- ^ the statements in the graph
     }
 
-instance (Label lb) => LDGraph NSGraph lb where
+instance LDGraph NSGraph lb where
     emptyGraph   = NSGraph emptyNamespaceMap M.empty S.empty
     getArcs      = statements 
     setArcs g as = g { statements=as }
@@ -1309,7 +1309,7 @@
     NSGraph ns <$> traverseFormulaMap f fml <*> (traverseSet $ Traversable.traverse f) stmts
 
 traverseSet ::
-    (Applicative f, Ord a, Ord b)
+    (Applicative f, Ord b)
     => (a -> f b) -> S.Set a -> f (S.Set b)
 traverseSet f = S.foldr cons (pure S.empty)
     where
diff --git a/src/Swish/RDF/Proof.hs b/src/Swish/RDF/Proof.hs
--- a/src/Swish/RDF/Proof.hs
+++ b/src/Swish/RDF/Proof.hs
@@ -7,7 +7,8 @@
 --------------------------------------------------------------------------------
 -- |
 --  Module      :  Proof
---  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin, 2011, 2012, 2014 Douglas Burke
+--  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin,
+--                 2011, 2012, 2014, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -72,7 +73,7 @@
 --  The empty RDF graph is always @True@ (other enduring
 --  truths are asserted as axioms).
 
-instance (Label lb, LDGraph lg lb, Eq (lg lb)) => Expression (lg lb) where
+instance (LDGraph lg lb, Eq (lg lb)) => Expression (lg lb) where
     isValid = S.null . getArcs 
 
 ------------------------------------------------------------
diff --git a/src/Swish/RDF/Ruleset.hs b/src/Swish/RDF/Ruleset.hs
--- a/src/Swish/RDF/Ruleset.hs
+++ b/src/Swish/RDF/Ruleset.hs
@@ -6,7 +6,8 @@
 --------------------------------------------------------------------------------
 -- |
 --  Module      :  Ruleset
---  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin, 2011, 2012, 2014 Douglas Burke
+--  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin,
+--                 2011, 2012, 2014, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -145,7 +146,7 @@
                ruleAnt c1 == ruleAnt c2 &&
                ruleCon c1 == ruleCon c2
 
-instance (Label lb) => Show (GraphClosure lb) where
+instance Show (GraphClosure lb) where
     show c = "GraphClosure " ++ show (nameGraphRule c)
 
 ------------------------------------------------------------
diff --git a/src/Swish/VarBinding.hs b/src/Swish/VarBinding.hs
--- a/src/Swish/VarBinding.hs
+++ b/src/Swish/VarBinding.hs
@@ -9,7 +9,7 @@
 -- |
 --  Module      :  VarBinding
 --  Copyright   :  (c) 2003, Graham Klyne, 2009 Vasili I Galchin, 
---                 2011, 2012, 2014, 2015 Douglas Burke
+--                 2011, 2012, 2014, 2015, 2016 Douglas Burke
 --  License     :  GPL V2
 --
 --  Maintainer  :  Douglas Burke
@@ -114,7 +114,7 @@
 
 -- |Return a list of the variables bound by a supplied variable binding
 --
-boundVars :: (Ord a, Ord b) => VarBinding a b -> S.Set a
+boundVars :: Ord a => VarBinding a b -> S.Set a
 boundVars = S.map fst . vbEnum
 
 -- |VarBinding subset function, tests to see if one query binding
diff --git a/swish.cabal b/swish.cabal
--- a/swish.cabal
+++ b/swish.cabal
@@ -1,10 +1,10 @@
 Name:               swish
-Version:            0.9.1.5
+Version:            0.9.1.6
 Stability:          experimental
 License:            LGPL
 License-file:       LICENSE 
 Author:             Graham Klyne - GK@ninebynine.org
-Copyright:          (c) 2003, 2004 G. Klyne; 2009 Vasili I Galchin; 2011, 2012, 2013, 2014, 2015 Doug Burke; All rights reserved.
+Copyright:          (c) 2003, 2004 G. Klyne; 2009 Vasili I Galchin; 2011, 2012, 2013, 2014, 2015, 2016 Doug Burke; All rights reserved.
 Maintainer:         dburke@cfa.harvard.edu
 Category:           Semantic Web
 Synopsis:           A semantic web toolkit. 
@@ -99,7 +99,7 @@
       polyparse >= 1.6 && <= 1.11,
       semigroups >= 0.5 && < 0.19,
       text >= 0.11 && < 1.3,
-      time >= 1.1 && < 1.6
+      time >= 1.1 && < 1.7
 
    if flag(network-uri)
      build-depends: network-uri == 2.6.*
