Index: /sizechecking/L.hs
===================================================================
--- /sizechecking/L.hs	(revision 8)
+++ /sizechecking/L.hs	(revision 9)
@@ -11,4 +11,5 @@
 {- Lambda calculus without free variables -}
 type Arr repr a b = repr a -> repr b
+--type family Arr (repr :: * -> *) (a :: *) (b :: *) :: *
 
 class Lambda l where
@@ -118,6 +119,6 @@
 
 newtype RList a = RList { unList :: (Int, Int -> a)  }
---instance (Show a) => Show (RList a) where
---  show (RList (s,f)) = show (map f [0..s-1])
+instance (Show a) => Show (RList a) where
+  show (RList (s,f)) = show (map f [0..s-1])
 
 instance SizeExp R where
@@ -126,7 +127,6 @@
   unsized     = R $ ()
   list s f    = R $ RList (unR s, unR . (unR f) . R )
---aabs    :: Arr l Int (Arr l (Arr l Int a) b) -> l (Arr l (List l a) b)
---  aabs e      = R $ \(RList (s,f)) -> unR (e (R s) (R f))
---  shift a s c = R $ \i -> if i<(unR s) then unR a i else unR c i
+  aabs e = R $ ( \(RList (s,f)) -> (e (R s) (R (R . f . unR))) ) . unR
+  shift a s c = R $ \i -> if (unR i)<(unR s) then unR a i else unR c i
 
 -- Type level int to count arity
@@ -151,6 +151,6 @@
 type IntExp = Exp Zero
 data Condition = Eq IntExp IntExp | Gt IntExp IntExp | Lt IntExp IntExp
-type SExp = ([Condition], IntExp)
-newtype Compile a = Compile { unCompile :: SExp }
+type SExp a = ([Condition], IntExp)
+newtype Compile a = Compile { unCompile :: SExp a }
 
 --instance Lambda Compile where
