diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -179,10 +179,10 @@
 center boundPic = let Bounds { .. } = getBounds boundPic in translate (left + right) (bottom + top) boundPic
 
 compPic :: (Data s1, Data s2) => Composition s1 s2 -> BoundedPic
-compPic (Composition (s1, s2))
-  | isUnit s1 = stateBoundedPic s2
-  | isUnit s2 = stateBoundedPic s1
-  | otherwise = stateBoundedPic s1 `addRight` stateBoundedPic s2
+compPic Composition { .. }
+  | isUnit state1 = stateBoundedPic state2
+  | isUnit state2 = stateBoundedPic state1
+  | otherwise = stateBoundedPic state1 `addRight` stateBoundedPic state2
 
 glossDebugger :: Debugger PictureM
 glossDebugger = Debugger $ liveCell $ every 100 >>> keep blank >>> arrM (lift . lift . tell)
diff --git a/essence-of-live-coding-gloss-example.cabal b/essence-of-live-coding-gloss-example.cabal
--- a/essence-of-live-coding-gloss-example.cabal
+++ b/essence-of-live-coding-gloss-example.cabal
@@ -1,5 +1,5 @@
 name:                essence-of-live-coding-gloss-example
-version:             0.2.1
+version:             0.2.2
 synopsis: General purpose live coding framework - Gloss example
 description:
   essence-of-live-coding is a general purpose and type safe live coding framework.
@@ -32,7 +32,7 @@
 source-repository this
   type:     git
   location: git@github.com:turion/essence-of-live-coding.git
-  tag:      v0.2.1
+  tag:      v0.2.2
 
 
 executable essence-of-live-coding-gloss-example
@@ -41,8 +41,8 @@
       base >= 4.11 && < 5
     , transformers >= 0.5
     , gloss >= 1.13
-    , essence-of-live-coding >= 0.2.1
-    , essence-of-live-coding-gloss >= 0.2.1
+    , essence-of-live-coding >= 0.2.2
+    , essence-of-live-coding-gloss >= 0.2.2
     , syb >= 0.7
   hs-source-dirs:      app
   default-language:    Haskell2010
