diff --git a/she.cabal b/she.cabal
--- a/she.cabal
+++ b/she.cabal
@@ -1,5 +1,5 @@
 name:               she
-version:            0.3
+version:            0.4
 homepage:           http://personal.cis.strath.ac.uk/~conor/pub/she
 synopsis:           A Haskell preprocessor adding miscellaneous features
 description:
@@ -31,8 +31,8 @@
     main-is:            Main.lhs
 
     build-depends:      base >=3 && < 5,
-                        mtl,
-                        filepath
+                        mtl >=2 && <3,
+                        filepath >= 1 && < 2
     hs-source-dirs:     src
 
     other-modules:      Aspect
@@ -48,8 +48,8 @@
 library
     exposed-modules:    ShePrelude
     build-depends:      base >=3 && < 5,
-                        mtl,
-                        filepath
+                        mtl >=2 && <3,
+                        filepath >= 1 && < 2
     hs-source-dirs:     src    
 
 source-repository head
diff --git a/src/HaLay.lhs b/src/HaLay.lhs
--- a/src/HaLay.lhs
+++ b/src/HaLay.lhs
@@ -104,7 +104,7 @@
 >    slit = (:) <$> ch '\\' <*> ((:) <$> cha <*> slit)
 >      <|> return <$> ch '\"'
 >      <|> (:) <$> cha <*> slit
->    haha = (:) <$> ch '\\' <*> ((:) <$> cha <*> slit)
+>    haha = (:) <$> ch '\\' <*> ((:) <$> cha <*> haha)
 >      <|> return <$> ch '\''
 >      <|> (:) <$> cha <*> haha
 >    klid s = if elem s keywords then KW s else Lid s
@@ -455,13 +455,13 @@
 > lCol :: L Int
 > lCol = gets $ \ ((_, c), _) -> c
 
-> instance Alternative L where
->   empty    = StateT $ \ is -> empty
->   p <|> q  = StateT $ \ is -> runStateT p is <|> runStateT q is
+< instance Alternative L where
+<   empty    = StateT $ \ is -> empty
+<   p <|> q  = StateT $ \ is -> runStateT p is <|> runStateT q is
 
-> instance Applicative L where
->   pure = return
->   (<*>) = ap
+< instance Applicative L where
+<   pure = return
+<   (<*>) = ap
 
 > cha :: L Char
 > cha = StateT moo where
