diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,8 @@
+1.0 - 2019-05-17
+
+* Drop support for GHC < 8
+* Upgrade to hedgehog-1.0
+
 0.6
 
 * hedgehog-0.6 compatibility
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/hedgehog-fn.cabal b/hedgehog-fn.cabal
--- a/hedgehog-fn.cabal
+++ b/hedgehog-fn.cabal
@@ -2,7 +2,7 @@
 -- see http://haskell.org/cabal/users-guide/
 
 name:                hedgehog-fn
-version:             0.6
+version:             1.0
 synopsis:            Function generation for `hedgehog`
 description:         Generating shrinkable, showable functions with `hedgehog`. See
                      `Hedgehog.Function` for example usages.
@@ -17,7 +17,7 @@
 build-type:          Simple
 cabal-version:       >=1.10
 extra-source-files:  ChangeLog.md
-tested-with:         GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.3
+tested-with:         GHC==8.0.2, GHC==8.2.2, GHC==8.4.3, GHC==8.6.5
 
 source-repository    head
   type:              git
@@ -32,7 +32,7 @@
                      , Hedgehog.Function.Internal
   build-depends:       base >=4.8 && <5
                      , contravariant >=1.4 && <1.6
-                     , hedgehog >=0.6 && <0.7
+                     , hedgehog >=1.0 && <1.1
                      , transformers >=0.5 && <0.6
   hs-source-dirs:      src
   default-language:    Haskell2010
@@ -45,6 +45,6 @@
     buildable:         False
   hs-source-dirs:      example
   build-depends:       base >=4.8 && <5
-                     , hedgehog >=0.5 && <0.7
+                     , hedgehog >=1.0 && <1.1
                      , hedgehog-fn
   default-language:    Haskell2010
diff --git a/src/Hedgehog/Function/Internal.hs b/src/Hedgehog/Function/Internal.hs
--- a/src/Hedgehog/Function/Internal.hs
+++ b/src/Hedgehog/Function/Internal.hs
@@ -16,7 +16,7 @@
 import Data.Word (Word8, Word64)
 import Hedgehog.Internal.Gen (GenT(..), Gen, runGenT)
 import Hedgehog.Internal.Seed (Seed(..))
-import Hedgehog.Internal.Tree (Tree(..), Node(..))
+import Hedgehog.Internal.Tree (TreeT(..), NodeT(..))
 import Hedgehog.Internal.Property (PropertyT, forAll)
 
 import GHC.Generics
@@ -169,14 +169,14 @@
 unsafeApply f = fromJust . apply' f
 
 -- | The type of randomly-generated functions
-data Fn a b = Fn b (a :-> Tree (MaybeT Identity) b)
+data Fn a b = Fn b (a :-> TreeT (MaybeT Identity) b)
 
--- | Extract the root value from a 'Tree'. Unsafe.
-unsafeFromTree :: Functor m => Tree (MaybeT m) a -> m a
+-- | Extract the root value from a 'TreeT'. Unsafe.
+unsafeFromTree :: Functor m => TreeT (MaybeT m) a -> m a
 unsafeFromTree =
   fmap (maybe (error "empty generator in function") nodeValue) .
   runMaybeT .
-  runTree
+  runTreeT
 
 instance (Show a, Show b) => Show (Fn a b) where
   show (Fn b a) =
@@ -184,7 +184,7 @@
       [] -> "_ -> " ++ show b
       ta -> showTable ta ++ "_ -> " ++ show b
     where
-      showTable :: (Show a, Show b) => [(a, Tree (MaybeT Identity) b)] -> String
+      showTable :: (Show a, Show b) => [(a, TreeT (MaybeT Identity) b)] -> String
       showTable [] = "<empty function>\n"
       showTable (x : xs) = unlines (showCase <$> x : xs)
         where
@@ -207,12 +207,12 @@
     notNil _ = True
 shrinkFn shr (Map f g a) = (\case; Nil -> Nil; x -> Map f g x) <$> shrinkFn shr a
 
-shrinkTree :: Monad m => Tree (MaybeT m) a -> m [Tree (MaybeT m) a]
-shrinkTree (Tree m) = do
+shrinkTree :: Monad m => TreeT (MaybeT m) a -> m [TreeT (MaybeT m) a]
+shrinkTree (Tree.TreeT m) = do
   a <- runMaybeT m
   case a of
     Nothing -> pure []
-    Just (Node _ cs) -> pure cs
+    Just (Tree.NodeT _ cs) -> pure cs
 
 -- | Evaluate an 'Fn'
 apply :: Fn a b -> a -> b
@@ -225,7 +225,7 @@
   gb <*>
   genFn (\a -> applyCoGenT cg a gb)
   where
-    genFn :: Arg a => (a -> Gen b) -> Gen (a :-> Tree (MaybeT Identity) b)
+    genFn :: Arg a => (a -> Gen b) -> Gen (a :-> TreeT (MaybeT Identity) b)
     genFn g =
       GenT $ \sz sd ->
       Tree.unfold (shrinkFn $ runIdentity . shrinkTree) .
