diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,13 +3,13 @@
 env:
  - GHCVER=7.6.3
  - GHCVER=7.8.4 # see note about Alex/Happy
- - GHCVER=7.10.2 # see note about Alex/Happy
+ - GHCVER=7.10.3 # see note about Alex/Happy
 
 before_install:
  - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
  - travis_retry sudo apt-get update
- - travis_retry sudo apt-get install cabal-install-1.22 ghc-$GHCVER libgsl0-dev liblapack-dev
- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.22/bin:$PATH
+ - travis_retry sudo apt-get install cabal-install-1.24 ghc-$GHCVER libgsl0-dev liblapack-dev
+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.24/bin:$PATH
 
 install:
  - cabal update
@@ -24,7 +24,7 @@
  - cabal sdist   # tests that a source-distribution can be generated
 
 # The following scriptlet checks that the resulting source distribution can be built & installed
- - export SRC_TGZ=$(cabal-1.22 info . | awk '{print $2 ".tar.gz";exit}') ;
+ - export SRC_TGZ=$(cabal-1.24 info . | awk '{print $2 ".tar.gz";exit}') ;
    cd dist/;
    if [ -f "$SRC_TGZ" ]; then
       cabal install "$SRC_TGZ";
diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+0.6.0.1
+---
+* spatial-math.0.3.0.0 compatability
+
 0.6.0.0
 ---
 * Split Datatype/Constructor/Field more cleanly.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2013-2015, Greg Horn
+Copyright (c) 2013-2016, Greg Horn
 
 All rights reserved.
 
diff --git a/generic-accessors.cabal b/generic-accessors.cabal
--- a/generic-accessors.cabal
+++ b/generic-accessors.cabal
@@ -1,5 +1,5 @@
 name:                generic-accessors
-version:             0.6.0.0
+version:             0.6.0.1
 synopsis:            stringly-named getters for generic data
 license:             BSD3
 license-file:        LICENSE
@@ -31,13 +31,14 @@
                      Accessors.Instances
   build-depends:     base >= 4.6.0.0 && < 5
                      , linear
-                     , spatial-math >= 0.2.0
+                     , spatial-math >= 0.3.0.0
                      , lens
                      , cereal
+                     , TypeCompose >= 0.9.11
                      , binary
 
   ghc-options:      -O2 -Wall
-  ghc-prof-options: -O2 -Wall -prof -fprof-auto -fprof-cafs -rtsopts
+  ghc-prof-options: -O2 -Wall
 
 
 test-suite unit-tests
diff --git a/src/Accessors.hs b/src/Accessors.hs
--- a/src/Accessors.hs
+++ b/src/Accessors.hs
@@ -15,6 +15,7 @@
        , flatten'
        , showTree
        , showFlat
+       , GLookup(..)
        ) where
 
 import Accessors.Accessors
diff --git a/src/Accessors/Accessors.hs b/src/Accessors/Accessors.hs
--- a/src/Accessors/Accessors.hs
+++ b/src/Accessors/Accessors.hs
@@ -22,6 +22,7 @@
        , flatten'
        , showTree
        , showFlat
+       , GLookup(..)
        ) where
 
 import GHC.Generics
diff --git a/src/Accessors/Instances.hs b/src/Accessors/Instances.hs
--- a/src/Accessors/Instances.hs
+++ b/src/Accessors/Instances.hs
@@ -1,8 +1,11 @@
 {-# OPTIONS_GHC -Wall -fno-warn-orphans #-}
+{-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE TypeOperators #-}
 
 module Accessors.Instances () where
 
+import Control.Compose ( (:.)(..), Id(..), unO, unId )
 import Control.Lens ( Lens' )
 import qualified Linear
 import GHC.Word
@@ -212,8 +215,12 @@
 realFracLens f x = fmap realToFrac (f (realToFrac x))
 
 -- other types
-instance Lookup a => Lookup (Rot f1 f2 a) where
-  toAccessorTree lens0 = toAccessorTree (lens0 . (\f x -> fmap Rot (f (unR x))))
+instance Lookup a => Lookup (Id a) where
+  toAccessorTree lens0 = toAccessorTree (lens0 . (\f x -> fmap Id (f (unId x))))
+instance Lookup (g (f a)) => Lookup ((g :. f) a) where
+  toAccessorTree lens0 = toAccessorTree (lens0 . (\f x -> fmap O (f (unO x))))
+instance Lookup (g a) => Lookup (Rot f1 f2 g a) where
+  toAccessorTree lens0 = toAccessorTree (lens0 . (\f x -> fmap Rot (f (unRot x))))
 instance Lookup a => Lookup (V3T f a) where
   toAccessorTree lens0 = toAccessorTree (lens0 . (\f x -> fmap V3T (f (unV x))))
 instance Lookup a => Lookup (Euler a)
