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/brainheck.cabal b/brainheck.cabal
--- a/brainheck.cabal
+++ b/brainheck.cabal
@@ -1,15 +1,14 @@
 cabal-version: 1.18
 name: brainheck
-version: 0.1.0.8
+version: 0.1.0.9
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2016-2018 Vanessa McHale
 maintainer: vamchale@gmail.com
 author: Vanessa McHale
-homepage: https://github.com/vmchale/brainheck#readme
 synopsis: Brainh*ck interpreter in haskell
 description:
-    Brainh*ck interpreter written in haskell and taking advantage of many prominent libraries
+    Brainh*ck interpreter written in haskell and taking advantage of several advanced libraries
 category: Web
 build-type: Simple
 extra-source-files:
@@ -36,15 +35,14 @@
         Brainheck
     hs-source-dirs: src
     default-language: Haskell2010
-    default-extensions: DeriveFunctor DeriveFoldable DeriveTraversable
-                        TypeFamilies
+    default-extensions: DeriveFunctor
     other-extensions: TemplateHaskell KindSignatures FlexibleContexts
     ghc-options: -Wall
     build-depends:
         base >=4.10 && <5,
         mtl -any,
         vector -any,
-        recursion-schemes -any,
+        recursion -any,
         text -any,
         lens -any,
         megaparsec >=6.0,
diff --git a/src/Brainheck.hs b/src/Brainheck.hs
--- a/src/Brainheck.hs
+++ b/src/Brainheck.hs
@@ -1,6 +1,5 @@
 {-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE KindSignatures   #-}
-{-# LANGUAGE TemplateHaskell  #-}
+{-# LANGUAGE TypeFamilies     #-}
 
 -- | Module with parser etc.
 module Brainheck
@@ -12,8 +11,7 @@
 
 import           Control.Lens             hiding (lens)
 import           Control.Monad.State.Lazy
-import           Data.Functor.Foldable
-import           Data.Functor.Foldable.TH
+import           Control.Recursion
 import qualified Data.Map                 as M
 import           Data.Maybe
 import qualified Data.Text                as T
@@ -32,7 +30,17 @@
               | Seq [Syntax a]
               | Token a
 
-makeBaseFunctor ''Syntax
+data SyntaxF a x = LoopF x
+                 | SeqF [x]
+                 | TokenF a
+                 deriving (Functor)
+
+type instance Base (Syntax a) = SyntaxF a
+
+instance Recursive (Syntax a) where
+    project (Loop x)  = LoopF x
+    project (Seq xs)  = SeqF xs
+    project (Token c) = TokenF c
 
 -- | Map a char to its action in the `St` monad
 toAction :: Char -> St ()
