diff --git a/anansi.cabal b/anansi.cabal
--- a/anansi.cabal
+++ b/anansi.cabal
@@ -1,5 +1,5 @@
 name: anansi
-version: 0.4.7
+version: 0.4.8
 license: GPL-3
 license-file: license.txt
 author: John Millikin <john@john-millikin.com>, Dirk Laurie <dirk.laurie@gmail.com>
@@ -32,12 +32,15 @@
 source-repository this
   type: git
   location: https://john-millikin.com/code/anansi/
-  tag: anansi_0.4.7
+  tag: anansi_0.4.8
 
 library
   hs-source-dirs: lib
   ghc-options: -Wall -O2
 
+  if impl(ghc>=7.10)
+    ghc-options: -fno-warn-tabs
+
   build-depends:
       base >= 4.0 && < 5.0
     , bytestring >= 0.9
@@ -69,6 +72,9 @@
   main-is: Main.hs
   hs-source-dirs: lib,src
   ghc-options: -Wall -O2
+
+  if impl(ghc>=7.10)
+    ghc-options: -fno-warn-tabs
 
   build-depends:
       base >= 4.0 && < 5.0
diff --git a/lib/Anansi/Tangle.hs b/lib/Anansi/Tangle.hs
--- a/lib/Anansi/Tangle.hs
+++ b/lib/Anansi/Tangle.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies #-}
 
 -- Copyright (C) 2010-2011 John Millikin <jmillikin@gmail.com>
 --
diff --git a/lib/Anansi/Types.hs b/lib/Anansi/Types.hs
--- a/lib/Anansi/Types.hs
+++ b/lib/Anansi/Types.hs
@@ -33,7 +33,8 @@
 
 import           Prelude hiding (FilePath)
 
-import           Control.Monad (liftM)
+import           Control.Applicative (Applicative, pure, (<*>))
+import           Control.Monad (ap, liftM)
 import qualified Control.Monad.Reader as Reader
 import           Control.Monad.Reader (ReaderT, EnvType, runReaderT)
 import qualified Control.Monad.Writer as Writer
@@ -98,6 +99,10 @@
 
 instance Functor LoomM where
 	fmap = liftM
+
+instance Applicative LoomM where
+	pure = return
+	(<*>) = ap
 
 instance Monad LoomM where
 	return = LoomM . return
