diff --git a/lambdacube-ir.cabal b/lambdacube-ir.cabal
--- a/lambdacube-ir.cabal
+++ b/lambdacube-ir.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                lambdacube-ir
-version:             0.2.0.0
+version:             0.3.0.0
 synopsis:            LambdaCube 3D intermediate representation of 3D graphics pipelines
 description:         LambdaCube 3D intermediate representation of 3D graphics pipelines
 license:             BSD3
@@ -28,7 +28,7 @@
                        containers >=0.5 && <0.6,
                        vector >=0.11 && <0.12,
                        text >=1.2 && <1.3,
-                       aeson >=0.9 && <0.11,
+                       aeson >=0.9 && <1,
                        mtl >=2.2 && <2.3
   hs-source-dirs:      src
   default-language:    Haskell2010
diff --git a/src/LambdaCube/IR.hs b/src/LambdaCube/IR.hs
--- a/src/LambdaCube/IR.hs
+++ b/src/LambdaCube/IR.hs
@@ -1,5 +1,5 @@
 -- generated file, do not modify!
--- 2016-01-28T13:15:30.803775Z
+-- 2016-02-26T11:37:22.233668000000Z
 
 {-# LANGUAGE OverloadedStrings, RecordWildCards #-}
 module LambdaCube.IR where
@@ -484,7 +484,8 @@
 
 data Pipeline
   = Pipeline
-  { backend :: Backend
+  { info :: String
+  , backend :: Backend
   , textures :: Vector TextureDescriptor
   , samplers :: Vector SamplerDescriptor
   , targets :: Vector RenderTarget
@@ -1571,6 +1572,7 @@
   toJSON v = case v of
     Pipeline{..} -> object
       [ "tag" .= ("Pipeline" :: Text)
+      , "info" .= info
       , "backend" .= backend
       , "textures" .= textures
       , "samplers" .= samplers
@@ -1586,6 +1588,7 @@
     tag <- obj .: "tag"
     case tag :: Text of
       "Pipeline" -> do
+        info <- obj .: "info"
         backend <- obj .: "backend"
         textures <- obj .: "textures"
         samplers <- obj .: "samplers"
@@ -1595,7 +1598,8 @@
         streams <- obj .: "streams"
         commands <- obj .: "commands"
         pure $ Pipeline
-          { backend = backend
+          { info = info
+          , backend = backend
           , textures = textures
           , samplers = samplers
           , targets = targets
diff --git a/src/LambdaCube/Mesh.hs b/src/LambdaCube/Mesh.hs
--- a/src/LambdaCube/Mesh.hs
+++ b/src/LambdaCube/Mesh.hs
@@ -1,5 +1,5 @@
 -- generated file, do not modify!
--- 2016-01-28T13:15:31.220124Z
+-- 2016-02-26T11:37:22.580893000000Z
 
 {-# LANGUAGE OverloadedStrings, RecordWildCards #-}
 module LambdaCube.Mesh where
diff --git a/src/LambdaCube/PipelineSchema.hs b/src/LambdaCube/PipelineSchema.hs
--- a/src/LambdaCube/PipelineSchema.hs
+++ b/src/LambdaCube/PipelineSchema.hs
@@ -1,5 +1,5 @@
 -- generated file, do not modify!
--- 2016-01-28T13:15:31.196716Z
+-- 2016-02-26T11:37:22.561871000000Z
 
 {-# LANGUAGE OverloadedStrings, RecordWildCards #-}
 module LambdaCube.PipelineSchema where
