M app/Main.hs => app/Main.hs +2 -1
@@ 26,7 26,8 @@ parseStyle syn
     toks = tokenize $ pack syn
     apply ((key, val):props)
         | Just self' <- longhand self self key val = self'
-        | otherwise = apply (shorthand self key val ++ props)
+        | props'@(_:_) <- shorthand self key val = apply (props' ++ props)
+        | otherwise = trace ("Unsupported property " ++ unpack key) self
       where self = apply props
     apply [] = temp
 
 
M lib/Graphics/Rendering/Rect.hs => lib/Graphics/Rendering/Rect.hs +1 -1
@@ 10,7 10,7 @@ import Control.Monad.IO.Class (MonadIO)
 
 shrink :: Rect -> Float -> Float -> Float -> Float -> Rect
 shrink self dLeft dTop dRight dBottom =
-    Rect (left self - dLeft) (top self - dTop)
+    Rect (left self + dLeft) (top self + dTop)
          (right self - dRight) (bottom self - dBottom)
 shrink1 :: Rect -> Float -> Rect
 shrink1 self d = shrink self d d d d
 
M lib/Graphics/Rendering/Rect/CSS.hs => lib/Graphics/Rendering/Rect/CSS.hs +4 -1
@@ 5,7 5,10 @@ import Stylist (PropertyParser(..))
 import Graphics.Rendering.Rect.CSS.Colour (ColourPallet(foreground))
 import Graphics.Rendering.Rect.CSS.Background (Backgrounds(..))
 
-data RectStyle = RectStyle { colours :: ColourPallet, backgrounds :: Backgrounds }
+data RectStyle = RectStyle {
+    colours :: ColourPallet,
+    backgrounds :: Backgrounds
+} deriving (Read, Show, Eq)
 colour = foreground . colours
 
 instance PropertyParser RectStyle where
 
M lib/Graphics/Rendering/Rect/CSS/Background.hs => lib/Graphics/Rendering/Rect/CSS/Background.hs +1 -1
@@ 8,7 8,7 @@ import Data.Colour (AlphaColour, transparent)
 data Backgrounds = Backgrounds {
     pallet :: ColourPallet,
     background :: AlphaColour Float
-}
+} deriving (Read, Show, Eq)
 
 instance PropertyParser Backgrounds where
     temp = Backgrounds { pallet = temp, background = transparent }
 
M lib/Graphics/Rendering/Rect/CSS/Colour.hs => lib/Graphics/Rendering/Rect/CSS/Colour.hs +1 -1
@@ 25,7 25,7 @@ hsl' h s l = uncurryRGB rgb $ hsl h s l
 data ColourPallet = ColourPallet {
     foreground :: AlphaColour Float,
     accent :: AlphaColour Float
-}
+} deriving (Read, Show, Eq)
 
 instance PropertyParser ColourPallet where
     temp = ColourPallet { foreground = opaque black, accent = opaque blue }