diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
--- /dev/null
+++ b/CHANGELOG
diff --git a/Data/Generics/Multiplate/Simplified.hs b/Data/Generics/Multiplate/Simplified.hs
new file mode 100644
--- /dev/null
+++ b/Data/Generics/Multiplate/Simplified.hs
@@ -0,0 +1,337 @@
+{-# LANGUAGE MultiParamTypeClasses #-}
+
+{-|
+0\. Given these data types for a simple language:
+
+@data Prog a = Prog a [Decl]
+
+data Decl = VarDecl Var Expr
+          | FunDecl Var [Var] [Decl]
+          | Return Expr
+
+data Expr = Ref String
+          | Number Int
+          | Add Expr Expr
+          | Mul Expr Expr
+
+data Var = Var String
+@
+
+\----------------------------------------
+
+1\. Define a @Plate f@ data type
+
+The name of the fields should refer to the actual data type: they will be prefixed with a \"p\" here.
+These field accessors are called projectors for the given plate and the actual data type (see the @Projector p a@ type alias).
+You have to use projectors to provide definition for the @multiplate@ method, and also for functions like @foldFor@.
+With this module, you only need projectors for the 'IsProjector' instance definition.
+(However you do have to use projectors anyway if @List, Maybe, (,)@, etc. are not part of the plate,
+in which case you have to explicitly traverse them to expose their structure to Multiplate. See: point 3.)
+
+@data Plate f = Plate
+  { pProg :: forall a. Prog a -> f (Prog a)
+  , pDecl :: Decl -> f Decl
+  , pExpr :: Expr -> f Expr
+  , pVar  :: Var  -> f Var
+  }
+@
+
+\----------------------------------------
+
+2\. Define 'IsProjector' instances for @Plate@ and all the actual data types
+
+@instance IsProjector Plate (Prog a) where
+  getProjector _ _ = pProg
+
+instance IsProjector Plate Decl where
+  getProjector _ _ = pDecl
+
+instance IsProjector Plate Expr where
+  getProjector _ _ = pExpr
+
+instance IsProjector Plate Var where
+  getProjector _ _ = pVar
+@
+
+\----------------------------------------
+
+3\. Define a single @Multiplate@ instance for @Plate@
+
+Definitions required without this module are given in the comments.
+(The \"b\" prefixes in functions stand for \"build\".)
+
+@
+instance Multiplate Plate where
+  mkPlate build = Plate (build pProg) (build pDecl) (build pExpr) (build pVar)
+  multiplate p  = Plate bProg bDecl bExpr bVar where
+@
+
+@    \-- you have to define these here to capture the \'p\' parameter
+    constr \<$>: a = constr \<$> (getProjector p a) p a
+    appl   \<*>: a = appl   \<*> (getProjector p a) p a
+    infixl 4 \<$>:
+    infixl 4 \<*>:
+@
+
+@
+    \-- definitions:
+@
+   
+@    \-- lists, maybe values, etc. have a Traversable instance, which has to be used for these \[\*\]
+    bProg (Prog a decls)           = Prog \<$> pure a \<*> traverse (pDecl p) decls    
+@
+
+@    bDecl (VarDecl var expr)       = VarDecl \<$>: var \<*>: expr
+    \-- bDecl (VarDecl str expr)    = VarDecl \<$> pVar p var \<*> pExpr p expr
+    bDecl (FunDecl var vars decls) = FunDecl \<$>: var \<*> traverse (pVar p) vars \<*> traverse (pDecl p) decls
+    bDecl (Return expr)            = Return \<$>: expr
+    \-- bDecl (Return expr)         = Return \<$> pExpr p expr
+@
+
+@    bExpr (Ref str)                = Ref \<$> pure str
+    bExpr (Number int)             = Number \<$> pure int
+    bExpr (Add expr expr\')         = Add \<$>: expr \<*>: expr\'
+    \-- bExpr (Add expr expr\')      = Add \<$> pExpr p expr \<*> pExpr p expr\'
+    bExpr (Mul expr expr\')         = Mul \<$>: expr \<*>: expr\'
+    \-- bExpr (Mul expr expr\')      = Mul \<$> pExpr p expr \<*> pExpr p expr\'
+@
+
+
+@    bVar (Var str)                 = Var \<$> pure str
+@
+
+\[\*\] However, tuples for example are not @Traversable@ (since they don't have the appropriate kind)
+so instead of @traverse@ one can use a function like this:
+
+@traverseTuple fa fb (a, b) = (,) \<$> fa a \<*> fb b
+
+bConstr (Constr a b) = Constr \<$> traverseTuple (pTypeOfA p) (pTypeOfB p) (a, b)
+@
+
+OR
+simply add tuples for the plate definition, just like @Expr@ or @Decl@.
+This also can be done for @List, Maybe@, etc., and then the @traverse@ functions can be replaced with @\<$>:@, @\<*>:@,
+and generic functions defined in this module can be used for these too.
+
+\----------------------------------------
+
+4\. Using multiplate
+
+In a given program:
+
+@var a = 1;
+function func(arg1, arg2){
+  return a + arg1
+}
+@
+
+and its representation:
+
+@prog :: Prog ()
+prog = Prog () [VarDecl (Var \"a\") (Number 1)
+               ,FunDecl (Var \"func\") [(Var \"arg1\"), (Var \"arg2\")]
+                    [Return (Add (Ref \"a\") (Ref \"arg1\"))]]
+@
+
+to get the list of variables one has to define a plate by
+updating another plate containing defaults for all types (@purePlate@) by
+modifying the field that correpsondes to 'Var' data type.
+Then create another plate where the order of traversal is set (@preorderFold@),
+and finally call 'gfoldFor' with the plate we defined, and then with the actual data type.
+Without this module instead of 'gfoldFor' one can only use @foldFor@,
+which requires an extra argument (a projector), which corresponds to the root datatype:
+in this case it's @pProg@ because our program has a 'Prog' data type.
+But 'gfoldFor', 'gtraverseFor', etc. can be used with any data type,
+because in the 'IsProjector' instances we already defined what it's projector is.
+
+@
+variablesPlate :: Plate (Constant [String])
+variablesPlate = preorderFold purePlate { pVar = (\(Var str) -> Constant [str]) }
+
+vars :: (IsProjector Plate a) => a -> [String]
+vars  x = gfoldFor       variablesPlate x
+
+vars' :: Prog a -> [String]
+vars' x =  foldFor pProg variablesPlate x
+@
+
+@> vars prog
+[\"a\",\"func\",\"arg1\",\"arg2\"]
+@
+
+\----------------------------------------
+
+All of this code is included in the source at the end of this file for easier copying.
+
+Multiplate documentation: <http://hackage.haskell.org/package/multiplate>
+
+-}
+
+
+module Data.Generics.Multiplate.Simplified where
+
+import Data.Generics.Multiplate
+import Data.Functor.Identity
+import Data.Functor.Constant
+import Data.Functor.Compose
+import Data.Monoid
+
+class (Multiplate p) => IsProjector p a where
+    getProjector :: p appl -> a -> Projector p a
+
+
+--traverseFor :: (Multiplate p) => Projector p a -> p Identity -> a -> a
+--traverseFor proj f = runIdentity . proj f
+gtraverseFor :: (IsProjector p a) => p Identity -> a -> a
+gtraverseFor f a = traverseFor (getProjector f a) f a
+
+--traverseMFor :: (Multiplate p, Monad m) => Projector p a -> p m -> a -> m a
+--traverseMFor proj f = proj f
+gtraverseMFor :: (IsProjector p a, Monad m) => p m -> a -> m a
+gtraverseMFor f a = traverseMFor (getProjector f a) f a
+
+--foldFor :: (Multiplate p) => Projector p a -> p (Constant o) -> a -> o
+--foldFor proj f = getConstant . proj f
+gfoldFor :: (IsProjector p a) => p (Constant o) -> a -> o
+gfoldFor f a = foldFor (getProjector f a) f a
+
+--unwrapFor :: (Multiplate p) => (o -> b) -> Projector p a -> p (Constant o) -> a -> b
+--unwrapFor unwrapper proj f = unwrapper . foldFor proj f
+gunwrapFor :: (IsProjector p a) => (o -> b) -> p (Constant o) -> a -> b
+gunwrapFor unwrapper f a = unwrapFor unwrapper (getProjector f a) f a
+
+
+gsumFor     :: (IsProjector p a) => p (Constant (Sum n)) -> a -> n
+gsumFor     = gunwrapFor getSum
+
+gproductFor :: (IsProjector p a) => p (Constant (Product n)) -> a -> n
+gproductFor = gunwrapFor getProduct
+
+gallFor     :: (IsProjector p a) => p (Constant All) -> a -> Bool
+gallFor     = gunwrapFor getAll
+
+ganyFor     :: (IsProjector p a) => p (Constant Any) -> a -> Bool
+ganyFor     = gunwrapFor getAny
+
+gfirstFor   :: (IsProjector p a) => p (Constant (First b)) -> a -> Maybe b
+gfirstFor   = gunwrapFor getFirst
+
+glastFor    :: (IsProjector p a) => p (Constant (Last b)) -> a -> Maybe b
+glastFor    = gunwrapFor getLast
+
+
+
+{-
+
+{-# LANGUAGE Rank2Types, MultiParamTypeClasses #-}
+
+import Data.Generics.Multiplate
+import Data.Generics.Multiplate.Simplified
+import Data.Functor.Identity
+import Data.Functor.Constant
+import Data.Functor.Compose
+import Data.Monoid
+import Data.Traversable
+import Control.Applicative
+--import Control.Monad
+--import Control.Monad.Trans.Maybe
+--import Control.Newtype
+
+
+
+data Prog a = Prog a [Decl]
+
+data Decl = VarDecl Var Expr
+          | FunDecl Var [Var] [Decl]
+          | Return Expr
+
+data Expr = Ref String
+          | Number Int
+          | Add Expr Expr
+          | Mul Expr Expr
+
+data Var = Var String
+
+
+
+data Plate f = Plate
+  { pProg :: forall a. Prog a -> f (Prog a)
+  , pDecl :: Decl -> f Decl
+  , pExpr :: Expr -> f Expr
+  , pVar  :: Var  -> f Var
+  }
+
+
+
+instance IsProjector Plate (Prog a) where
+  getProjector _ _ = pProg
+
+instance IsProjector Plate Decl where
+  getProjector _ _ = pDecl
+
+instance IsProjector Plate Expr where
+  getProjector _ _ = pExpr
+
+instance IsProjector Plate Var where
+  getProjector _ _ = pVar
+
+
+
+
+instance Multiplate Plate where
+
+  mkPlate build = Plate (build pProg) (build pDecl) (build pExpr) (build pVar)
+
+  multiplate p  = Plate bProg bDecl bExpr bVar where
+
+   -- you have to define these here to capture the 'p' parameter
+   constr <$>: a = constr <$> (getProjector p a) p a
+   appl   <*>: a = appl   <*> (getProjector p a) p a
+   infixl 4 <$>:
+   infixl 4 <*>:
+
+   -- definitions
+   
+   -- lists, maybe values, etc. have a Traversable instance, which has to be used for these [*]
+
+   bProg (Prog a decls)           = Prog <$> pure a <*> traverse (pDecl p) decls
+
+   bDecl (VarDecl var expr)       = VarDecl <$>: var <*>: expr
+   -- bDecl (VarDecl str expr)    = VarDecl <$> pVar p var <*> pExpr p expr
+
+   bDecl (FunDecl var vars decls) = FunDecl <$>: var <*> traverse (pVar p) vars <*> traverse (pDecl p) decls
+   
+   bDecl (Return expr)            = Return <$>: expr
+   -- bDecl (Return expr)         = Return <$> pExpr p expr
+
+   bExpr (Ref str)                = Ref <$> pure str
+   
+   bExpr (Number int)             = Number <$> pure int
+
+   bExpr (Add expr expr')         = Add <$>: expr <*>: expr'
+   -- bExpr (Add expr expr')      = Add <$> pExpr p expr <*> pExpr p expr'
+   
+   bExpr (Mul expr expr')         = Mul <$>: expr <*>: expr'
+   -- bExpr (Mul expr expr')      = Mul <$> pExpr p expr <*> pExpr p expr'
+   
+   bVar (Var str)                 = Var <$> pure str
+
+
+-- var a = 1;
+-- function func(arg1, arg2){
+--   return a + arg1
+-- }
+
+
+-- prog :: Prog ()
+prog = Prog () [VarDecl (Var "a") (Number 1)
+               ,FunDecl (Var "func") [(Var "arg1"), (Var "arg2")]
+                    [Return (Add (Ref "a") (Ref "arg1"))]]
+
+-- variablesPlate :: Plate (Constant [String])
+variablesPlate = preorderFold purePlate { pVar = (\(Var str) -> Constant [str]) }
+
+vars  x = gfoldFor       variablesPlate x
+vars' x =  foldFor pProg variablesPlate x
+
+-}
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2011
+Balazs Endresz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,4 @@
+#! /usr/bin/env runhaskell
+ 
+> import Distribution.Simple
+> main = defaultMain
diff --git a/dist/build/Data/Generics/Multiplate/NoProjector.hi b/dist/build/Data/Generics/Multiplate/NoProjector.hi
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Generics/Multiplate/NoProjector.hi differ
diff --git a/dist/build/Data/Generics/Multiplate/NoProjector.o b/dist/build/Data/Generics/Multiplate/NoProjector.o
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Generics/Multiplate/NoProjector.o differ
diff --git a/dist/build/Data/Generics/Multiplate/Simplified.hi b/dist/build/Data/Generics/Multiplate/Simplified.hi
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Generics/Multiplate/Simplified.hi differ
diff --git a/dist/build/Data/Generics/Multiplate/Simplified.o b/dist/build/Data/Generics/Multiplate/Simplified.o
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Generics/Multiplate/Simplified.o differ
diff --git a/dist/build/HSmultiplate-noprojector-0.0.0.1.o b/dist/build/HSmultiplate-noprojector-0.0.0.1.o
new file mode 100644
Binary files /dev/null and b/dist/build/HSmultiplate-noprojector-0.0.0.1.o differ
diff --git a/dist/build/HSmultiplate-noprojector-0.0.1.1.o b/dist/build/HSmultiplate-noprojector-0.0.1.1.o
new file mode 100644
Binary files /dev/null and b/dist/build/HSmultiplate-noprojector-0.0.1.1.o differ
diff --git a/dist/build/HSmultiplate-simplified-0.0.0.1.o b/dist/build/HSmultiplate-simplified-0.0.0.1.o
new file mode 100644
Binary files /dev/null and b/dist/build/HSmultiplate-simplified-0.0.0.1.o differ
diff --git a/dist/build/autogen/Paths_multiplate_noprojector.hs b/dist/build/autogen/Paths_multiplate_noprojector.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Paths_multiplate_noprojector.hs
@@ -0,0 +1,29 @@
+module Paths_multiplate_noprojector (
+    version,
+    getBinDir, getLibDir, getDataDir, getLibexecDir,
+    getDataFileName
+  ) where
+
+import Data.Version (Version(..))
+import System.Environment (getEnv)
+
+version :: Version
+version = Version {versionBranch = [0,0,0,1], versionTags = []}
+
+bindir, libdir, datadir, libexecdir :: FilePath
+
+bindir     = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\bin"
+libdir     = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-noprojector-0.0.0.1\\ghc-6.12.3"
+datadir    = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-noprojector-0.0.0.1"
+libexecdir = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-noprojector-0.0.0.1"
+
+getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath
+getBinDir = catch (getEnv "multiplate_noprojector_bindir") (\_ -> return bindir)
+getLibDir = catch (getEnv "multiplate_noprojector_libdir") (\_ -> return libdir)
+getDataDir = catch (getEnv "multiplate_noprojector_datadir") (\_ -> return datadir)
+getLibexecDir = catch (getEnv "multiplate_noprojector_libexecdir") (\_ -> return libexecdir)
+
+getDataFileName :: FilePath -> IO FilePath
+getDataFileName name = do
+  dir <- getDataDir
+  return (dir ++ "\\" ++ name)
diff --git a/dist/build/autogen/Paths_multiplate_simplified.hs b/dist/build/autogen/Paths_multiplate_simplified.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Paths_multiplate_simplified.hs
@@ -0,0 +1,29 @@
+module Paths_multiplate_simplified (
+    version,
+    getBinDir, getLibDir, getDataDir, getLibexecDir,
+    getDataFileName
+  ) where
+
+import Data.Version (Version(..))
+import System.Environment (getEnv)
+
+version :: Version
+version = Version {versionBranch = [0,0,0,1], versionTags = []}
+
+bindir, libdir, datadir, libexecdir :: FilePath
+
+bindir     = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\bin"
+libdir     = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-simplified-0.0.0.1\\ghc-7.0.2"
+datadir    = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-simplified-0.0.0.1"
+libexecdir = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-simplified-0.0.0.1"
+
+getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath
+getBinDir = catch (getEnv "multiplate_simplified_bindir") (\_ -> return bindir)
+getLibDir = catch (getEnv "multiplate_simplified_libdir") (\_ -> return libdir)
+getDataDir = catch (getEnv "multiplate_simplified_datadir") (\_ -> return datadir)
+getLibexecDir = catch (getEnv "multiplate_simplified_libexecdir") (\_ -> return libexecdir)
+
+getDataFileName :: FilePath -> IO FilePath
+getDataFileName name = do
+  dir <- getDataDir
+  return (dir ++ "\\" ++ name)
diff --git a/dist/build/autogen/cabal_macros.h b/dist/build/autogen/cabal_macros.h
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/cabal_macros.h
@@ -0,0 +1,23 @@
+/* DO NOT EDIT: This file is automatically generated by Cabal */
+
+/* package base-4.3.1.0 */
+#define VERSION_base "4.3.1.0"
+#define MIN_VERSION_base(major1,major2,minor) (\
+  (major1) <  4 || \
+  (major1) == 4 && (major2) <  3 || \
+  (major1) == 4 && (major2) == 3 && (minor) <= 1)
+
+/* package multiplate-0.0.1.1 */
+#define VERSION_multiplate "0.0.1.1"
+#define MIN_VERSION_multiplate(major1,major2,minor) (\
+  (major1) <  0 || \
+  (major1) == 0 && (major2) <  0 || \
+  (major1) == 0 && (major2) == 0 && (minor) <= 1)
+
+/* package transformers-0.2.2.0 */
+#define VERSION_transformers "0.2.2.0"
+#define MIN_VERSION_transformers(major1,major2,minor) (\
+  (major1) <  0 || \
+  (major1) == 0 && (major2) <  2 || \
+  (major1) == 0 && (major2) == 2 && (minor) <= 2)
+
diff --git a/dist/build/libHSmultiplate-noprojector-0.0.0.1.a b/dist/build/libHSmultiplate-noprojector-0.0.0.1.a
new file mode 100644
Binary files /dev/null and b/dist/build/libHSmultiplate-noprojector-0.0.0.1.a differ
diff --git a/dist/build/libHSmultiplate-noprojector-0.0.1.1.a b/dist/build/libHSmultiplate-noprojector-0.0.1.1.a
new file mode 100644
Binary files /dev/null and b/dist/build/libHSmultiplate-noprojector-0.0.1.1.a differ
diff --git a/dist/build/libHSmultiplate-simplified-0.0.0.1.a b/dist/build/libHSmultiplate-simplified-0.0.0.1.a
new file mode 100644
Binary files /dev/null and b/dist/build/libHSmultiplate-simplified-0.0.0.1.a differ
diff --git a/dist/doc/html/multiplate-simplified/Data-Generics-Multiplate-Simplifi b/dist/doc/html/multiplate-simplified/Data-Generics-Multiplate-Simplifi
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/Data-Generics-Multiplate-Simplifi
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.Generics.Multiplate.Simplified</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
+window.onload = function () {pageLoad();setSynopsis("mini_Data-Generics-Multiplate-Simplified.html");};
+//]]>
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">multiplate-simplified-0.0.0.1: Shorter, more generic functions for Multiplate.</p></div><div id="content"><div id="module-header"><p class="caption">Data.Generics.Multiplate.Simplified</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>0. Given these data types for a simple language:
+</p><pre>data Prog a = Prog a [Decl]
+
+data Decl = VarDecl Var Expr
+          | FunDecl Var [Var] [Decl]
+          | Return Expr
+
+data Expr = Ref String
+          | Number Int
+          | Add Expr Expr
+          | Mul Expr Expr
+
+data Var = Var String
+</pre><p>----------------------------------------
+</p><p>1. Define a <code>Plate f</code> data type
+</p><p>The name of the fields should refer to the actual data type: they will be prefixed with a &quot;p&quot; here.
+These field accessors are called projectors for the given plate and the actual data type (see the <code>Projector p a</code> type alias).
+You have to use projectors to provide definition for the <code>multiplate</code> method, and also for functions like <code>foldFor</code>.
+With this module, you only need projectors for the <code><a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a></code> instance definition.
+(However you do have to use projectors anyway if <code>List, Maybe, (,)</code>, etc. are not part of the plate,
+in which case you have to explicitly traverse them to expose their structure to Multiplate. See: point 3.)
+</p><pre>data Plate f = Plate
+  { pProg :: forall a. Prog a -&gt; f (Prog a)
+  , pDecl :: Decl -&gt; f Decl
+  , pExpr :: Expr -&gt; f Expr
+  , pVar  :: Var  -&gt; f Var
+  }
+</pre><p>----------------------------------------
+</p><p>2. Define <code><a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a></code> instances for <code>Plate</code> and all the actual data types
+</p><pre>instance IsProjector Plate (Prog a) where
+  getProjector _ _ = pProg
+
+instance IsProjector Plate Decl where
+  getProjector _ _ = pDecl
+
+instance IsProjector Plate Expr where
+  getProjector _ _ = pExpr
+
+instance IsProjector Plate Var where
+  getProjector _ _ = pVar
+</pre><p>----------------------------------------
+</p><p>3. Define a single <code>Multiplate</code> instance for <code>Plate</code>
+</p><p>Definitions required without this module are given in the comments.
+(The &quot;b&quot; prefixes in functions stand for &quot;build&quot;.)
+</p><pre>
+instance Multiplate Plate where
+  mkPlate build = Plate (build pProg) (build pDecl) (build pExpr) (build pVar)
+  multiplate p  = Plate bProg bDecl bExpr bVar where
+</pre><pre>    -- you have to define these here to capture the 'p' parameter
+    constr &lt;$&gt;: a = constr &lt;$&gt; (getProjector p a) p a
+    appl   &lt;*&gt;: a = appl   &lt;*&gt; (getProjector p a) p a
+    infixl 4 &lt;$&gt;:
+    infixl 4 &lt;*&gt;:
+</pre><pre>
+    -- definitions:
+</pre><pre>    -- lists, maybe values, etc. have a Traversable instance, which has to be used for these [*]
+    bProg (Prog a decls)           = Prog &lt;$&gt; pure a &lt;*&gt; traverse (pDecl p) decls    
+</pre><pre>    bDecl (VarDecl var expr)       = VarDecl &lt;$&gt;: var &lt;*&gt;: expr
+    -- bDecl (VarDecl str expr)    = VarDecl &lt;$&gt; pVar p var &lt;*&gt; pExpr p expr
+    bDecl (FunDecl var vars decls) = FunDecl &lt;$&gt;: var &lt;*&gt; traverse (pVar p) vars &lt;*&gt; traverse (pDecl p) decls
+    bDecl (Return expr)            = Return &lt;$&gt;: expr
+    -- bDecl (Return expr)         = Return &lt;$&gt; pExpr p expr
+</pre><pre>    bExpr (Ref str)                = Ref &lt;$&gt; pure str
+    bExpr (Number int)             = Number &lt;$&gt; pure int
+    bExpr (Add expr expr')         = Add &lt;$&gt;: expr &lt;*&gt;: expr'
+    -- bExpr (Add expr expr')      = Add &lt;$&gt; pExpr p expr &lt;*&gt; pExpr p expr'
+    bExpr (Mul expr expr')         = Mul &lt;$&gt;: expr &lt;*&gt;: expr'
+    -- bExpr (Mul expr expr')      = Mul &lt;$&gt; pExpr p expr &lt;*&gt; pExpr p expr'
+</pre><pre>    bVar (Var str)                 = Var &lt;$&gt; pure str
+</pre><p>[*] However, tuples for example are not <code>Traversable</code> (since they don't have the appropriate kind)
+so instead of <code>traverse</code> one can use a function like this:
+</p><pre>traverseTuple fa fb (a, b) = (,) &lt;$&gt; fa a &lt;*&gt; fb b
+
+bConstr (Constr a b) = Constr &lt;$&gt; traverseTuple (pTypeOfA p) (pTypeOfB p) (a, b)
+</pre><p>OR
+simply add tuples for the plate definition, just like <code>Expr</code> or <code>Decl</code>.
+This also can be done for <code>List, Maybe</code>, etc., and then the <code>traverse</code> functions can be replaced with <code>&lt;$&gt;:</code>, <code>&lt;*&gt;:</code>,
+and generic functions defined in this module can be used for these too.
+</p><p>----------------------------------------
+</p><p>4. Using multiplate
+</p><p>In a given program:
+</p><pre>var a = 1;
+function func(arg1, arg2){
+  return a + arg1
+}
+</pre><p>and its representation:
+</p><pre>prog :: Prog ()
+prog = Prog () [VarDecl (Var &quot;a&quot;) (Number 1)
+               ,FunDecl (Var &quot;func&quot;) [(Var &quot;arg1&quot;), (Var &quot;arg2&quot;)]
+                    [Return (Add (Ref &quot;a&quot;) (Ref &quot;arg1&quot;))]]
+</pre><p>to get the list of variables one has to define a plate by
+updating another plate containing defaults for all types (<code>purePlate</code>) by
+modifying the field that correpsondes to <code>Var</code> data type.
+Then create another plate where the order of traversal is set (<code>preorderFold</code>),
+and finally call <code><a href="Data-Generics-Multiplate-Simplified.html#v:gfoldFor">gfoldFor</a></code> with the plate we defined, and then with the actual data type.
+Without this module instead of <code><a href="Data-Generics-Multiplate-Simplified.html#v:gfoldFor">gfoldFor</a></code> one can only use <code>foldFor</code>,
+which requires an extra argument (a projector), which corresponds to the root datatype:
+in this case it's <code>pProg</code> because our program has a <code>Prog</code> data type.
+But <code><a href="Data-Generics-Multiplate-Simplified.html#v:gfoldFor">gfoldFor</a></code>, <code><a href="Data-Generics-Multiplate-Simplified.html#v:gtraverseFor">gtraverseFor</a></code>, etc. can be used with any data type,
+because in the <code><a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a></code> instances we already defined what it's projector is.
+</p><pre>
+variablesPlate :: Plate (Constant [String])
+variablesPlate = preorderFold purePlate { pVar = ((Var str) -&gt; Constant [str]) }
+
+vars :: (IsProjector Plate a) =&gt; a -&gt; [String]
+vars  x = gfoldFor       variablesPlate x
+
+vars' :: Prog a -&gt; [String]
+vars' x =  foldFor pProg variablesPlate x
+</pre><pre>&gt; vars prog
+[&quot;a&quot;,&quot;func&quot;,&quot;arg1&quot;,&quot;arg2&quot;]
+</pre><p>----------------------------------------
+</p><p>All of this code is included in the source at the end of this file for easier copying.
+</p><p>Multiplate documentation: <a href="http://hackage.haskell.org/package/multiplate">http://hackage.haskell.org/package/multiplate</a>
+</p></div></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> Multiplate p =&gt; <a name="t:IsProjector" class="def">IsProjector</a> p a  <span class="keyword">where</span></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:getProjector" class="def">getProjector</a> ::  p appl -&gt; a -&gt; Projector p a</p></div></div><div class="top"><p class="src"><a name="v:gtraverseFor" class="def">gtraverseFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; p Identity -&gt; a -&gt; a</p></div><div class="top"><p class="src"><a name="v:gtraverseMFor" class="def">gtraverseMFor</a> :: (<a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a, <a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; p m -&gt; a -&gt; m a</p></div><div class="top"><p class="src"><a name="v:gfoldFor" class="def">gfoldFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; p (Constant o) -&gt; a -&gt; o</p></div><div class="top"><p class="src"><a name="v:gunwrapFor" class="def">gunwrapFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; (o -&gt; b) -&gt; p (Constant o) -&gt; a -&gt; b</p></div><div class="top"><p class="src"><a name="v:gsumFor" class="def">gsumFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; p (Constant (<a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:Sum">Sum</a> n)) -&gt; a -&gt; n</p></div><div class="top"><p class="src"><a name="v:gproductFor" class="def">gproductFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; p (Constant (<a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:Product">Product</a> n)) -&gt; a -&gt; n</p></div><div class="top"><p class="src"><a name="v:gallFor" class="def">gallFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; p (Constant <a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:All">All</a>) -&gt; a -&gt; <a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:ganyFor" class="def">ganyFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; p (Constant <a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:Any">Any</a>) -&gt; a -&gt; <a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:gfirstFor" class="def">gfirstFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; p (Constant (<a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:First">First</a> b)) -&gt; a -&gt; <a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> b</p></div><div class="top"><p class="src"><a name="v:glastFor" class="def">glastFor</a> :: <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">IsProjector</a> p a =&gt; p (Constant (<a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:Last">Last</a> b)) -&gt; a -&gt; <a href="C:\Program Files\Haskell Platform\2011.2.0.0\lib/../doc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> b</p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>
diff --git a/dist/doc/html/multiplate-simplified/doc-index.html b/dist/doc/html/multiplate-simplified/doc-index.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/doc-index.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>multiplate-simplified-0.0.0.1: Shorter, more generic functions for Multiplate. (Index)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
+window.onload = function () {pageLoad();};
+//]]>
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">multiplate-simplified-0.0.0.1: Shorter, more generic functions for Multiplate.</p></div><div id="content"><div id="index"><p class="caption">Index</p><table><tr><td class="src">gallFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:gallFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">ganyFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:ganyFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">getProjector</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:getProjector">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">gfirstFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:gfirstFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">gfoldFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:gfoldFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">glastFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:glastFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">gproductFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:gproductFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">gsumFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:gsumFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">gtraverseFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:gtraverseFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">gtraverseMFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:gtraverseMFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">gunwrapFor</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#v:gunwrapFor">Data.Generics.Multiplate.Simplified</a></td></tr><tr><td class="src">IsProjector</td><td class="module"><a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector">Data.Generics.Multiplate.Simplified</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>
diff --git a/dist/doc/html/multiplate-simplified/frames.html b/dist/doc/html/multiplate-simplified/frames.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/frames.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html 
+     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script src="haddock-util.js" type="text/javascript"></script>
+<script type="text/javascript"><!--
+/*
+
+  The synopsis frame needs to be updated using javascript, so we hide
+  it by default and only show it if javascript is enabled.
+
+  TODO: provide some means to disable it.
+*/
+function load() {
+  var d = document.getElementById("inner-fs");
+  d.rows = "50%,50%";
+  postReframe();
+}
+--></script>
+<frameset id="outer-fs" cols="25%,75%" onload="load()">
+  <frameset id="inner-fs" rows="100%,0%">
+    <frame src="index-frames.html" name="modules">
+    <frame src="" name="synopsis">
+  </frameset>
+  <frame src="index.html" name="main">
+</frameset>
+</html>
diff --git a/dist/doc/html/multiplate-simplified/haddock-util.js b/dist/doc/html/multiplate-simplified/haddock-util.js
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/haddock-util.js
@@ -0,0 +1,311 @@
+// Haddock JavaScript utilities
+
+var rspace = /\s\s+/g,
+	  rtrim = /^\s+|\s+$/g;
+
+function spaced(s) { return (" " + s + " ").replace(rspace, " "); }
+function trim(s)   { return s.replace(rtrim, ""); }
+
+function hasClass(elem, value) {
+  var className = spaced(elem.className || "");
+  return className.indexOf( " " + value + " " ) >= 0;
+}
+
+function addClass(elem, value) {
+  var className = spaced(elem.className || "");
+  if ( className.indexOf( " " + value + " " ) < 0 ) {
+    elem.className = trim(className + " " + value);
+  }
+}
+
+function removeClass(elem, value) {
+  var className = spaced(elem.className || "");
+  className = className.replace(" " + value + " ", " ");
+  elem.className = trim(className);
+}
+
+function toggleClass(elem, valueOn, valueOff, bool) {
+  if (bool == null) { bool = ! hasClass(elem, valueOn); }
+  if (bool) {
+    removeClass(elem, valueOff);
+    addClass(elem, valueOn);
+  }
+  else {
+    removeClass(elem, valueOn);
+    addClass(elem, valueOff);
+  }
+  return bool;
+}
+
+
+function makeClassToggle(valueOn, valueOff)
+{
+  return function(elem, bool) {
+    return toggleClass(elem, valueOn, valueOff, bool);
+  }
+}
+
+toggleShow = makeClassToggle("show", "hide");
+toggleCollapser = makeClassToggle("collapser", "expander");
+
+function toggleSection(id)
+{
+  var b = toggleShow(document.getElementById("section." + id))
+  toggleCollapser(document.getElementById("control." + id), b)
+  return b;
+}
+
+
+function setCookie(name, value) {
+  document.cookie = name + "=" + escape(value) + ";path=/;";
+}
+
+function clearCookie(name) {
+  document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;";
+}
+
+function getCookie(name) {
+  var nameEQ = name + "=";
+  var ca = document.cookie.split(';');
+  for(var i=0;i < ca.length;i++) {
+    var c = ca[i];
+    while (c.charAt(0)==' ') c = c.substring(1,c.length);
+    if (c.indexOf(nameEQ) == 0) {
+      return unescape(c.substring(nameEQ.length,c.length));
+    }
+  }
+  return null;
+}
+
+
+
+var max_results = 75; // 50 is not enough to search for map in the base libraries
+var shown_range = null;
+var last_search = null;
+
+function quick_search()
+{
+    perform_search(false);
+}
+
+function full_search()
+{
+    perform_search(true);
+}
+
+
+function perform_search(full)
+{
+    var text = document.getElementById("searchbox").value.toLowerCase();
+    if (text == last_search && !full) return;
+    last_search = text;
+    
+    var table = document.getElementById("indexlist");
+    var status = document.getElementById("searchmsg");
+    var children = table.firstChild.childNodes;
+    
+    // first figure out the first node with the prefix
+    var first = bisect(-1);
+    var last = (first == -1 ? -1 : bisect(1));
+
+    if (first == -1)
+    {
+        table.className = "";
+        status.innerHTML = "No results found, displaying all";
+    }
+    else if (first == 0 && last == children.length - 1)
+    {
+        table.className = "";
+        status.innerHTML = "";
+    }
+    else if (last - first >= max_results && !full)
+    {
+        table.className = "";
+        status.innerHTML = "More than " + max_results + ", press Search to display";
+    }
+    else
+    {
+        // decide what you need to clear/show
+        if (shown_range)
+            setclass(shown_range[0], shown_range[1], "indexrow");
+        setclass(first, last, "indexshow");
+        shown_range = [first, last];
+        table.className = "indexsearch";
+        status.innerHTML = "";
+    }
+
+    
+    function setclass(first, last, status)
+    {
+        for (var i = first; i <= last; i++)
+        {
+            children[i].className = status;
+        }
+    }
+    
+    
+    // do a binary search, treating 0 as ...
+    // return either -1 (no 0's found) or location of most far match
+    function bisect(dir)
+    {
+        var first = 0, finish = children.length - 1;
+        var mid, success = false;
+
+        while (finish - first > 3)
+        {
+            mid = Math.floor((finish + first) / 2);
+
+            var i = checkitem(mid);
+            if (i == 0) i = dir;
+            if (i == -1)
+                finish = mid;
+            else
+                first = mid;
+        }
+        var a = (dir == 1 ? first : finish);
+        var b = (dir == 1 ? finish : first);
+        for (var i = b; i != a - dir; i -= dir)
+        {
+            if (checkitem(i) == 0) return i;
+        }
+        return -1;
+    }    
+    
+    
+    // from an index, decide what the result is
+    // 0 = match, -1 is lower, 1 is higher
+    function checkitem(i)
+    {
+        var s = getitem(i).toLowerCase().substr(0, text.length);
+        if (s == text) return 0;
+        else return (s > text ? -1 : 1);
+    }
+    
+    
+    // from an index, get its string
+    // this abstracts over alternates
+    function getitem(i)
+    {
+        for ( ; i >= 0; i--)
+        {
+            var s = children[i].firstChild.firstChild.data;
+            if (s.indexOf(' ') == -1)
+                return s;
+        }
+        return ""; // should never be reached
+    }
+}
+
+function setSynopsis(filename) {
+    if (parent.window.synopsis) {
+        if (parent.window.synopsis.location.replace) {
+            // In Firefox this avoids adding the change to the history.
+            parent.window.synopsis.location.replace(filename);
+        } else {
+            parent.window.synopsis.location = filename;
+        }
+    }
+}
+
+function addMenuItem(html) {
+  var menu = document.getElementById("page-menu");
+  if (menu) {
+    var btn = menu.firstChild.cloneNode(false);
+    btn.innerHTML = html;
+    menu.appendChild(btn);
+  }
+}
+
+function adjustForFrames() {
+  var bodyCls;
+  
+  if (parent.location.href == window.location.href) {
+    // not in frames, so add Frames button
+    addMenuItem("<a href='#' onclick='reframe();return true;'>Frames</a>");
+    bodyCls = "no-frame";
+  }
+  else {
+    bodyCls = "in-frame";
+  }
+  addClass(document.body, bodyCls);
+}
+
+function reframe() {
+  setCookie("haddock-reframe", document.URL);
+  window.location = "frames.html";
+}
+
+function postReframe() {
+  var s = getCookie("haddock-reframe");
+  if (s) {
+    parent.window.main.location = s;
+    clearCookie("haddock-reframe");
+  }
+}
+
+function styles() {
+  var i, a, es = document.getElementsByTagName("link"), rs = [];
+  for (i = 0; a = es[i]; i++) {
+    if(a.rel.indexOf("style") != -1 && a.title) {
+      rs.push(a);
+    }
+  }
+  return rs;
+}
+
+function addStyleMenu() {
+  var as = styles();
+  var i, a, btns = "";
+  for(i=0; a = as[i]; i++) {
+    btns += "<li><a href='#' onclick=\"setActiveStyleSheet('"
+      + a.title + "'); return false;\">"
+      + a.title + "</a></li>"
+  }
+  if (as.length > 1) {
+    var h = "<div id='style-menu-holder'>"
+      + "<a href='#' onclick='styleMenu(); return false;'>Style &#9662;</a>"
+      + "<ul id='style-menu' class='hide'>" + btns + "</ul>"
+      + "</div>";
+    addMenuItem(h);
+  }
+}
+
+function setActiveStyleSheet(title) {
+  var as = styles();
+  var i, a, found;
+  for(i=0; a = as[i]; i++) {
+    a.disabled = true;
+          // need to do this always, some browsers are edge triggered
+    if(a.title == title) {
+      found = a;
+    }
+  }
+  if (found) {
+    found.disabled = false;
+    setCookie("haddock-style", title);
+  }
+  else {
+    as[0].disabled = false;
+    clearCookie("haddock-style");
+  }
+  styleMenu(false);
+}
+
+function resetStyle() {
+  var s = getCookie("haddock-style");
+  if (s) setActiveStyleSheet(s);
+}
+
+
+function styleMenu(show) {
+  var m = document.getElementById('style-menu');
+  if (m) toggleShow(m, show);
+}
+
+
+function pageLoad() {
+  addStyleMenu();
+  adjustForFrames();
+  resetStyle();
+}
+
diff --git a/dist/doc/html/multiplate-simplified/haddock.css b/dist/doc/html/multiplate-simplified/haddock.css
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/haddock.css
@@ -0,0 +1,297 @@
+/* -------- Global things --------- */
+
+BODY { 
+  background-color: #ffffff;
+  color: #000000;
+  font-family: sans-serif;
+  padding: 0 0;
+  } 
+
+A:link    { color: #0000e0; text-decoration: none }
+A:visited { color: #0000a0; text-decoration: none }
+A:hover   { background-color: #e0e0ff; text-decoration: none }
+
+TABLE.vanilla {
+  width: 100%;
+  border-width: 0px;
+  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */
+}
+
+TABLE.vanilla2 {
+  border-width: 0px;
+}
+
+/* <TT> font is a little too small in MSIE */
+TT  { font-size: 100%; }
+PRE { font-size: 100%; }
+
+LI P { margin: 0pt } 
+
+TD {
+  border-width: 0px;
+}
+
+TABLE.narrow {
+  border-width: 0px;
+}
+
+TD.s8  {  height: 8px;  }
+TD.s15 {  height: 15px; }
+
+SPAN.keyword { text-decoration: underline; }
+
+/* Resize the buttom image to match the text size */
+IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }
+
+/* --------- Contents page ---------- */
+
+DIV.node {
+  padding-left: 3em;
+}
+
+DIV.cnode {
+  padding-left: 1.75em;
+}
+
+SPAN.pkg {
+  position: absolute;
+  left: 50em;
+}
+
+/* --------- Documentation elements ---------- */
+
+TD.children {
+  padding-left: 25px;
+  }
+
+TD.synopsis {
+  padding: 2px;
+  background-color: #f0f0f0;
+  font-family: monospace
+ }
+
+TD.decl { 
+  padding: 2px;
+  background-color: #f0f0f0; 
+  font-family: monospace;
+  vertical-align: top;
+  }
+
+TD.topdecl {
+  padding: 2px;
+  background-color: #f0f0f0;
+  font-family: monospace;
+  vertical-align: top;
+}
+
+TABLE.declbar {
+  border-spacing: 0px;
+ }
+
+TD.declname {
+  width: 100%;
+ }
+
+TD.declbut {
+  padding-left: 5px;
+  padding-right: 5px;
+  border-left-width: 1px;
+  border-left-color: #000099;
+  border-left-style: solid;
+  white-space: nowrap;
+  font-size: small;
+ }
+
+/* 
+  arg is just like decl, except that wrapping is not allowed.  It is
+  used for function and constructor arguments which have a text box
+  to the right, where if wrapping is allowed the text box squashes up
+  the declaration by wrapping it.
+*/
+TD.arg { 
+  padding: 2px;
+  background-color: #f0f0f0; 
+  font-family: monospace;
+  vertical-align: top;
+  white-space: nowrap;
+  }
+
+TD.recfield { padding-left: 20px }
+
+TD.doc  { 
+  padding-top: 2px;
+  padding-left: 10px;
+  }
+
+TD.ndoc  { 
+  padding: 2px;
+  }
+
+TD.rdoc  { 
+  padding: 2px;
+  padding-left: 10px;
+  width: 100%;
+  }
+
+TD.body  { 
+  padding-left: 10px
+  }
+
+TD.pkg {
+  width: 100%;
+  padding-left: 10px
+}
+
+TABLE.indexsearch TR.indexrow {
+  display: none;
+}
+TABLE.indexsearch TR.indexshow {
+  display: table-row;
+}
+
+TD.indexentry {
+  vertical-align: top;
+  padding-right: 10px
+  }
+
+TD.indexannot {
+  vertical-align: top;
+  padding-left: 20px;
+  white-space: nowrap
+  }
+
+TD.indexlinks {
+  width: 100%
+  }
+
+/* ------- Section Headings ------- */
+
+TD.section1 {
+  padding-top: 15px;
+  font-weight: bold;
+  font-size: 150%
+  }
+
+TD.section2 {
+  padding-top: 10px;
+  font-weight: bold;
+  font-size: 130%
+  }
+
+TD.section3 {
+  padding-top: 5px;
+  font-weight: bold;
+  font-size: 110%
+  }
+
+TD.section4 {
+  font-weight: bold;
+  font-size: 100%
+  }
+
+/* -------------- The title bar at the top of the page */
+
+TD.infohead {
+  color: #ffffff;
+  font-weight: bold;
+  padding-right: 10px;
+  text-align: left;
+}
+
+TD.infoval {
+  color: #ffffff;
+  padding-right: 10px;
+  text-align: left;
+}
+
+TD.topbar {
+  background-color: #000099;
+  padding: 5px;
+}
+
+TD.title {
+  color: #ffffff;
+  padding-left: 10px;
+  width: 100%
+  }
+
+TD.topbut {
+  padding-left: 5px;
+  padding-right: 5px;
+  border-left-width: 1px;
+  border-left-color: #ffffff;
+  border-left-style: solid;
+  white-space: nowrap;
+  }
+
+TD.topbut A:link {
+  color: #ffffff
+  }
+
+TD.topbut A:visited {
+  color: #ffff00
+  }
+
+TD.topbut A:hover {
+  background-color: #6060ff;
+  }
+
+TD.topbut:hover {
+  background-color: #6060ff
+  }
+
+TD.modulebar { 
+  background-color: #0077dd;
+  padding: 5px;
+  border-top-width: 1px;
+  border-top-color: #ffffff;
+  border-top-style: solid;
+  }
+
+/* --------- The page footer --------- */
+
+TD.botbar {
+  background-color: #000099;
+  color: #ffffff;
+  padding: 5px
+  }
+TD.botbar A:link {
+  color: #ffffff;
+  text-decoration: underline
+  }
+TD.botbar A:visited {
+  color: #ffff00
+  }
+TD.botbar A:hover {
+  background-color: #6060ff
+  }
+
+/* --------- Mini Synopsis for Frame View --------- */
+
+.outer {
+  margin: 0 0;
+  padding: 0 0;
+}
+
+.mini-synopsis {
+  padding: 0.25em 0.25em;
+}
+
+.mini-synopsis H1 { font-size: 130%; }
+.mini-synopsis H2 { font-size: 110%; }
+.mini-synopsis H3 { font-size: 100%; }
+.mini-synopsis H1, .mini-synopsis H2, .mini-synopsis H3 {
+  margin-top: 0.5em;
+  margin-bottom: 0.25em;
+  padding: 0 0;
+}
+
+.mini-synopsis H1 { border-bottom: 1px solid #ccc; }
+
+.mini-topbar {
+  font-size: 130%;
+  background: #0077dd;
+  padding: 0.25em;
+}
+
+
diff --git a/dist/doc/html/multiplate-simplified/haskell_icon.gif b/dist/doc/html/multiplate-simplified/haskell_icon.gif
new file mode 100644
Binary files /dev/null and b/dist/doc/html/multiplate-simplified/haskell_icon.gif differ
diff --git a/dist/doc/html/multiplate-simplified/hslogo-16.png b/dist/doc/html/multiplate-simplified/hslogo-16.png
new file mode 100644
Binary files /dev/null and b/dist/doc/html/multiplate-simplified/hslogo-16.png differ
diff --git a/dist/doc/html/multiplate-simplified/index-frames.html b/dist/doc/html/multiplate-simplified/index-frames.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/index-frames.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>multiplate-simplified-0.0.0.1: Shorter, more generic functions for Multiplate.</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
+window.onload = function () {pageLoad();};
+//]]>
+</script></head><body id="mini"><div id="module-list"><p class="caption">Modules</p><ul><li class="module"><a href="Data-Generics-Multiplate-Simplified.html" target="main">Data.Generics.Multiplate.Simplified</a></li></ul></div></body></html>
diff --git a/dist/doc/html/multiplate-simplified/index.html b/dist/doc/html/multiplate-simplified/index.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/index.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>multiplate-simplified-0.0.0.1: Shorter, more generic functions for Multiplate.</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
+window.onload = function () {pageLoad();};
+//]]>
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">multiplate-simplified-0.0.0.1: Shorter, more generic functions for Multiplate.</p></div><div id="content"><div id="description" class="doc"><h1>multiplate-simplified-0.0.0.1: Shorter, more generic functions for Multiplate.</h1><p>This module provides wrappers around some Multiplate functions to spare
+the Projector argument. This makes it simpler to use them, and
+they will work for any data type, but a simple instance definition
+has to be supplied for each one.
+</p></div><div id="module-list"><p class="caption">Modules</p><ul><li><span id="control.n.1" class="module collapser" onclick="toggleSection('n.1')">Data</span><ul id="section.n.1" class="show"><li><span id="control.n.1.1" class="module collapser" onclick="toggleSection('n.1.1')">Generics</span><ul id="section.n.1.1" class="show"><li><span id="control.n.1.1.1" class="module collapser" onclick="toggleSection('n.1.1.1')">Multiplate</span><ul id="section.n.1.1.1" class="show"><li><span class="module"><a href="Data-Generics-Multiplate-Simplified.html">Data.Generics.Multiplate.Simplified</a></span></li></ul></li></ul></li></ul></li></ul></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>
diff --git a/dist/doc/html/multiplate-simplified/mini_Data-Generics-Multiplate-Sim b/dist/doc/html/multiplate-simplified/mini_Data-Generics-Multiplate-Sim
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/mini_Data-Generics-Multiplate-Sim
@@ -0,0 +1,4 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.Generics.Multiplate.Simplified</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
+window.onload = function () {pageLoad();};
+//]]>
+</script></head><body id="mini"><div id="module-header"><p class="caption">Data.Generics.Multiplate.Simplified</p></div><div id="interface"><div class="top"><p class="src"><span class="keyword">class</span> <a href="Data-Generics-Multiplate-Simplified.html#t:IsProjector" target="main">IsProjector</a> p a</p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:gtraverseFor" target="main">gtraverseFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:gtraverseMFor" target="main">gtraverseMFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:gfoldFor" target="main">gfoldFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:gunwrapFor" target="main">gunwrapFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:gsumFor" target="main">gsumFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:gproductFor" target="main">gproductFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:gallFor" target="main">gallFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:ganyFor" target="main">ganyFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:gfirstFor" target="main">gfirstFor</a></p></div><div class="top"><p class="src"><a href="Data-Generics-Multiplate-Simplified.html#v:glastFor" target="main">glastFor</a></p></div></div></body></html>
diff --git a/dist/doc/html/multiplate-simplified/minus.gif b/dist/doc/html/multiplate-simplified/minus.gif
new file mode 100644
Binary files /dev/null and b/dist/doc/html/multiplate-simplified/minus.gif differ
diff --git a/dist/doc/html/multiplate-simplified/multiplate-simplified.haddock b/dist/doc/html/multiplate-simplified/multiplate-simplified.haddock
new file mode 100644
Binary files /dev/null and b/dist/doc/html/multiplate-simplified/multiplate-simplified.haddock differ
diff --git a/dist/doc/html/multiplate-simplified/ocean.css b/dist/doc/html/multiplate-simplified/ocean.css
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/multiplate-simplified/ocean.css
@@ -0,0 +1,542 @@
+/* @group Fundamentals */
+
+* { margin: 0; padding: 0 }
+
+/* Is this portable? */
+html {
+  background-color: white;
+  width: 100%;
+  height: 100%;
+}
+
+body {
+  background: white;
+  color: black;
+  text-align: left;
+  min-height: 100%;
+  position: relative;
+}
+
+p {
+  margin: 0.8em 0;
+}
+
+ul, ol {
+  margin: 0.8em 0 0.8em 2em;
+}
+
+dl {
+  margin: 0.8em 0;
+}
+
+dt {
+  font-weight: bold;
+}
+dd {
+  margin-left: 2em;
+}
+
+a { text-decoration: none; }
+a[href]:link { color: rgb(196,69,29); }
+a[href]:visited { color: rgb(171,105,84); }
+a[href]:hover { text-decoration:underline; }
+
+/* @end */
+
+/* @group Fonts & Sizes */
+
+/* Basic technique & IE workarounds from YUI 3
+   For reasons, see:
+      http://yui.yahooapis.com/3.1.1/build/cssfonts/fonts.css
+ */
+ 
+body {
+	font:13px/1.4 sans-serif;
+	*font-size:small; /* for IE */
+	*font:x-small; /* for IE in quirks mode */
+}
+
+h1 { font-size: 146.5%; /* 19pt */ } 
+h2 { font-size: 131%;   /* 17pt */ }
+h3 { font-size: 116%;   /* 15pt */ }
+h4 { font-size: 100%;   /* 13pt */ }
+h5 { font-size: 100%;   /* 13pt */ }
+
+select, input, button, textarea {
+	font:99% sans-serif;
+}
+
+table {
+	font-size:inherit;
+	font:100%;
+}
+
+pre, code, kbd, samp, tt, .src {
+	font-family:monospace;
+	*font-size:108%;
+	line-height: 124%;
+}
+
+.links, .link {
+  font-size: 85%; /* 11pt */
+}
+
+#module-header .caption {
+  font-size: 182%; /* 24pt */
+}
+
+.info  {
+  font-size: 85%; /* 11pt */
+}
+
+#table-of-contents, #synopsis  {
+  /* font-size: 85%; /* 11pt */
+}
+
+
+/* @end */
+
+/* @group Common */
+
+.caption, h1, h2, h3, h4, h5, h6 { 
+  font-weight: bold;
+  color: rgb(78,98,114);
+  margin: 0.8em 0 0.4em;
+}
+
+* + h1, * + h2, * + h3, * + h4, * + h5, * + h6 {
+  margin-top: 2em;
+}
+
+h1 + h2, h2 + h3, h3 + h4, h4 + h5, h5 + h6 {
+  margin-top: inherit;
+}
+
+ul.links {
+  list-style: none;
+  text-align: left;
+  float: right;
+  display: inline-table;
+  margin: 0 0 0 1em;
+}
+
+ul.links li {
+  display: inline;
+  border-left: 1px solid #d5d5d5; 
+  white-space: nowrap;
+  padding: 0;
+}
+
+ul.links li a {
+  padding: 0.2em 0.5em;
+}
+
+.hide { display: none; }
+.show { display: inherit; }
+.clear { clear: both; }
+
+.collapser {
+  background-image: url(minus.gif);
+  background-repeat: no-repeat;
+}
+.expander {
+  background-image: url(plus.gif);
+  background-repeat: no-repeat;
+}
+p.caption.collapser,
+p.caption.expander {
+  background-position: 0 0.4em;
+}
+.collapser, .expander {
+  padding-left: 14px;
+  margin-left: -14px;
+  cursor: pointer;
+}
+
+pre {
+  padding: 0.25em;
+  margin: 0.8em 0;
+  background: rgb(229,237,244);
+  overflow: auto;
+  border-bottom: 0.25em solid white;
+  /* white border adds some space below the box to compensate
+     for visual extra space that paragraphs have between baseline
+     and the bounding box */
+}
+
+.src {
+  background: #f0f0f0;
+  padding: 0.2em 0.5em;
+}
+
+.keyword { font-weight: normal; }
+.def { font-weight: bold; }
+
+
+/* @end */
+
+/* @group Page Structure */
+
+#content {
+  margin: 0 auto;
+  padding: 0 2em 6em;
+}
+
+#package-header {
+  background: rgb(41,56,69);
+  border-top: 5px solid rgb(78,98,114);
+  color: #ddd;
+  padding: 0.2em;
+  position: relative;
+  text-align: left;
+}
+
+#package-header .caption {
+  background: url(hslogo-16.png) no-repeat 0em;
+  color: white;
+  margin: 0 2em;
+  font-weight: normal;
+  font-style: normal;
+  padding-left: 2em;
+}
+
+#package-header a:link, #package-header a:visited { color: white; }
+#package-header a:hover { background: rgb(78,98,114); }
+
+#module-header .caption {
+  color: rgb(78,98,114);
+  font-weight: bold;
+  border-bottom: 1px solid #ddd;
+}
+
+table.info {
+  float: right;
+  padding: 0.5em 1em;
+  border: 1px solid #ddd;
+  color: rgb(78,98,114);
+  background-color: #fff;
+  max-width: 40%;
+  border-spacing: 0;
+  position: relative;
+  top: -0.5em;
+  margin: 0 0 0 2em;
+}
+
+.info th {
+	padding: 0 1em 0 0;
+}
+
+div#style-menu-holder {
+  position: relative;
+  z-index: 2;
+  display: inline;
+}
+
+#style-menu {
+  position: absolute;
+  z-index: 1;
+  overflow: visible;
+  background: #374c5e;
+  margin: 0;
+  text-align: center;
+  right: 0;
+  padding: 0;
+  top: 1.25em;
+}
+
+#style-menu li {
+	display: list-item;
+	border-style: none;
+	margin: 0;
+	padding: 0;
+	color: #000;
+	list-style-type: none;
+}
+
+#style-menu li + li {
+	border-top: 1px solid #919191;
+}
+
+#style-menu a {
+  width: 6em;
+  padding: 3px;
+  display: block;
+}
+
+#footer {
+  background: #ddd;
+  border-top: 1px solid #aaa;
+  padding: 0.5em 0;
+  color: #666;
+  text-align: center;
+  position: absolute;
+  bottom: 0;
+  width: 100%;
+  height: 3em;
+}
+
+/* @end */
+
+/* @group Front Matter */
+
+#table-of-contents {
+  float: right;
+  clear: right;
+  background: #faf9dc;
+  border: 1px solid #d8d7ad;
+  padding: 0.5em 1em;
+  max-width: 20em;
+  margin: 0.5em 0 1em 1em;
+}
+
+#table-of-contents .caption {
+  text-align: center;
+  margin: 0;
+}
+
+#table-of-contents ul {
+  list-style: none;
+  margin: 0;
+}
+
+#table-of-contents ul ul {
+  margin-left: 2em;
+}
+
+#description .caption {
+  display: none;
+}
+
+#synopsis {
+  display: none;
+}
+
+.no-frame #synopsis {
+  display: block;
+  position: fixed;
+  right: 0;
+  height: 80%;
+  top: 10%;
+  padding: 0;
+}
+
+#synopsis .caption {
+  float: left;
+  width: 29px;
+  color: rgba(255,255,255,0);
+  height: 110px;
+  margin: 0;
+  font-size: 1px;
+  padding: 0;
+}
+
+#synopsis p.caption.collapser {
+  background: url(synopsis.png) no-repeat -64px -8px;
+}
+
+#synopsis p.caption.expander {
+  background: url(synopsis.png) no-repeat 0px -8px;
+}
+
+#synopsis ul {
+  height: 100%;
+  overflow: auto;
+  padding: 0.5em;
+  margin: 0;
+}
+
+#synopsis ul ul {
+  overflow: hidden;
+}
+
+#synopsis ul,
+#synopsis ul li.src {
+  background-color: #faf9dc;
+  white-space: nowrap;
+  list-style: none;
+  margin-left: 0;
+}
+
+/* @end */
+
+/* @group Main Content */
+
+#interface div.top { margin: 2em 0; }
+#interface h1 + div.top,
+#interface h2 + div.top,
+#interface h3 + div.top,
+#interface h4 + div.top,
+#interface h5 + div.top {
+ 	margin-top: 1em;
+}
+#interface p.src .link {
+  float: right;
+  color: #919191;
+  border-left: 1px solid #919191;
+  background: #f0f0f0;
+  padding: 0 0.5em 0.2em;
+  margin: 0 -0.5em 0 0.5em;
+}
+
+#interface table { border-spacing: 2px; }
+#interface td {
+  vertical-align: top;
+  padding-left: 0.5em;
+}
+#interface td.src {
+  white-space: nowrap;
+}
+#interface td.doc p {
+  margin: 0;
+}
+#interface td.doc p + p {
+  margin-top: 0.8em;
+}
+
+.subs dl {
+  margin: 0;
+}
+
+.subs dt {
+  float: left;
+  clear: left;
+  display: block;
+  margin: 1px 0;
+}
+
+.subs dd {
+  float: right;
+  width: 90%;
+  display: block;
+  padding-left: 0.5em;
+  margin-bottom: 0.5em;
+}
+
+.subs dd.empty {
+  display: none;
+}
+
+.subs dd p {
+  margin: 0;
+}
+
+.top p.src {
+  border-top: 1px solid #ccc;
+}
+
+.subs, .doc {
+  /* use this selector for one level of indent */
+  padding-left: 2em;
+}
+
+.arguments {
+  margin-top: -0.4em;
+}
+.arguments .caption {
+  display: none;
+}
+
+.fields { padding-left: 1em; }
+
+.fields .caption { display: none; }
+
+.fields p { margin: 0 0; }
+
+/* this seems bulky to me
+.methods, .constructors {
+  background: #f8f8f8;
+  border: 1px solid #eee;
+}
+*/
+
+/* @end */
+
+/* @group Auxillary Pages */
+
+#mini {
+  margin: 0 auto;
+  padding: 0 1em 1em;
+}
+
+#mini > * {
+  font-size: 93%; /* 12pt */  
+}
+
+#mini #module-list .caption,
+#mini #module-header .caption {
+  font-size: 125%; /* 15pt */
+}
+
+#mini #interface h1,
+#mini #interface h2,
+#mini #interface h3,
+#mini #interface h4 {
+  font-size: 109%; /* 13pt */
+  margin: 1em 0 0;
+}
+
+#mini #interface .top,
+#mini #interface .src {
+  margin: 0;
+}
+
+#mini #module-list ul {
+  list-style: none;
+  margin: 0;
+}
+
+#alphabet ul {
+	list-style: none;
+	padding: 0;
+	margin: 0.5em 0 0;
+	text-align: center;
+}
+
+#alphabet li {
+	display: inline;
+	margin: 0 0.25em;
+}
+
+#alphabet a {
+	font-weight: bold;
+}
+
+#index .caption,
+#module-list .caption { font-size: 131%; /* 17pt */ }
+
+#index table {
+  margin-left: 2em;
+}
+
+#index .src {
+  font-weight: bold;
+}
+#index .alt {
+  font-size: 77%; /* 10pt */
+  font-style: italic;
+  padding-left: 2em;
+}
+
+#index td + td {
+  padding-left: 1em;
+}
+
+#module-list ul {
+  list-style: none;
+  margin: 0 0 0 2em;
+}
+
+#module-list li {
+  clear: right;
+}
+
+#module-list span.collapser,
+#module-list span.expander {
+  background-position: 0 0.3em;
+}
+
+#module-list .package {
+  float: right;
+}
+
+/* @end */
diff --git a/dist/doc/html/multiplate-simplified/plus.gif b/dist/doc/html/multiplate-simplified/plus.gif
new file mode 100644
Binary files /dev/null and b/dist/doc/html/multiplate-simplified/plus.gif differ
diff --git a/dist/doc/html/multiplate-simplified/synopsis.png b/dist/doc/html/multiplate-simplified/synopsis.png
new file mode 100644
Binary files /dev/null and b/dist/doc/html/multiplate-simplified/synopsis.png differ
diff --git a/dist/package.conf.inplace b/dist/package.conf.inplace
new file mode 100644
--- /dev/null
+++ b/dist/package.conf.inplace
@@ -0,0 +1,2 @@
+[InstalledPackageInfo {installedPackageId = InstalledPackageId "multiplate-simplified-0.0.0.1-inplace", sourcePackageId = PackageIdentifier {pkgName = PackageName "multiplate-simplified", pkgVersion = Version {versionBranch = [0,0,0,1], versionTags = []}}, license = MIT, copyright = "2011, Balazs Endresz", maintainer = "Balazs Endresz <balazs.endresz@gmail.com>", author = "Balazs Endresz", stability = "", homepage = "", pkgUrl = "", description = "This module provides wrappers around some Multiplate functions to spare\nthe Projector argument. This makes it simpler to use them, and\nthey will work for any data type, but a simple instance definition\nhas to be supplied for each one.", category = "Generics", exposed = True, exposedModules = ["Data.Generics.Multiplate.Simplified"], hiddenModules = [], importDirs = ["c:\\projects\\jshaskell\\trunk\\multiplate-simplified-0.0.0.1\\dist\\build"], libraryDirs = ["c:\\projects\\jshaskell\\trunk\\multiplate-simplified-0.0.0.1\\dist\\build"], hsLibraries = ["HSmultiplate-simplified-0.0.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b",InstalledPackageId "multiplate-0.0.1.1-b9a01799d58daace698402a46b099d0b",InstalledPackageId "transformers-0.2.2.0-2fe7b735c63a6cbe8724038d8e4d812a"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["c:\\projects\\jshaskell\\trunk\\multiplate-simplified-0.0.0.1\\dist\\doc\\html\\multiplate-simplified\\multiplate-simplified.haddock"], haddockHTMLs = ["c:\\projects\\jshaskell\\trunk\\multiplate-simplified-0.0.0.1\\dist\\doc\\html\\multiplate-simplified"]}
+]
diff --git a/dist/setup-config b/dist/setup-config
new file mode 100644
--- /dev/null
+++ b/dist/setup-config
@@ -0,0 +1,2 @@
+Saved package config for multiplate-simplified-0.0.0.1 written by Cabal-1.10.1.0 using ghc-7.0
+LocalBuildInfo {configFlags = ConfigFlags {configPrograms = [], configProgramPaths = [], configProgramArgs = [], configHcFlavor = Flag GHC, configHcPath = NoFlag, configHcPkg = NoFlag, configVanillaLib = Flag True, configProfLib = Flag False, configSharedLib = Flag False, configProfExe = Flag False, configConfigureArgs = [], configOptimization = Flag NormalOptimisation, configProgPrefix = Flag "", configProgSuffix = Flag "", configInstallDirs = InstallDirs {prefix = Flag "C:\\Users\\EB\\AppData\\Roaming\\cabal", bindir = NoFlag, libdir = NoFlag, libsubdir = NoFlag, dynlibdir = NoFlag, libexecdir = NoFlag, progdir = NoFlag, includedir = NoFlag, datadir = NoFlag, datasubdir = NoFlag, docdir = NoFlag, mandir = NoFlag, htmldir = NoFlag, haddockdir = NoFlag}, configScratchDir = NoFlag, configExtraLibDirs = [], configExtraIncludeDirs = [], configDistPref = Flag "dist", configVerbosity = Flag Normal, configUserInstall = Flag True, configPackageDB = NoFlag, configGHCiLib = Flag True, configSplitObjs = Flag False, configStripExes = Flag True, configConstraints = [Dependency (PackageName "base") (ThisVersion (Version {versionBranch = [4,3,1,0], versionTags = []})),Dependency (PackageName "multiplate") (ThisVersion (Version {versionBranch = [0,0,1,1], versionTags = []})),Dependency (PackageName "transformers") (ThisVersion (Version {versionBranch = [0,2,2,0], versionTags = []}))], configConfigurationsFlags = [], configTests = Flag False}, extraConfigArgs = [], installDirTemplates = InstallDirs {prefix = "C:\\Users\\EB\\AppData\\Roaming\\cabal", bindir = "$prefix\\bin", libdir = "$prefix", libsubdir = "$pkgid\\$compiler", dynlibdir = "$libdir", libexecdir = "$prefix\\$pkgid", progdir = "$libdir\\hugs\\programs", includedir = "$libdir\\$libsubdir\\include", datadir = "$prefix", datasubdir = "$pkgid", docdir = "$datadir\\doc\\$pkgid", mandir = "$datadir\\man", htmldir = "$docdir\\html", haddockdir = "$htmldir"}, compiler = Compiler {compilerId = CompilerId GHC (Version {versionBranch = [7,0,2], versionTags = []}), compilerLanguages = [(Haskell98,"-XHaskell98"),(Haskell2010,"-XHaskell2010")], compilerExtensions = [(UnknownExtension "Haskell98","-XHaskell98"),(UnknownExtension "Haskell2010","-XHaskell2010"),(CPP,"-XCPP"),(UnknownExtension "NoCPP","-XNoCPP"),(PostfixOperators,"-XPostfixOperators"),(UnknownExtension "NoPostfixOperators","-XNoPostfixOperators"),(TupleSections,"-XTupleSections"),(UnknownExtension "NoTupleSections","-XNoTupleSections"),(PatternGuards,"-XPatternGuards"),(UnknownExtension "NoPatternGuards","-XNoPatternGuards"),(UnicodeSyntax,"-XUnicodeSyntax"),(UnknownExtension "NoUnicodeSyntax","-XNoUnicodeSyntax"),(MagicHash,"-XMagicHash"),(UnknownExtension "NoMagicHash","-XNoMagicHash"),(PolymorphicComponents,"-XPolymorphicComponents"),(UnknownExtension "NoPolymorphicComponents","-XNoPolymorphicComponents"),(ExistentialQuantification,"-XExistentialQuantification"),(UnknownExtension "NoExistentialQuantification","-XNoExistentialQuantification"),(KindSignatures,"-XKindSignatures"),(UnknownExtension "NoKindSignatures","-XNoKindSignatures"),(EmptyDataDecls,"-XEmptyDataDecls"),(UnknownExtension "NoEmptyDataDecls","-XNoEmptyDataDecls"),(ParallelListComp,"-XParallelListComp"),(UnknownExtension "NoParallelListComp","-XNoParallelListComp"),(TransformListComp,"-XTransformListComp"),(UnknownExtension "NoTransformListComp","-XNoTransformListComp"),(ForeignFunctionInterface,"-XForeignFunctionInterface"),(UnknownExtension "NoForeignFunctionInterface","-XNoForeignFunctionInterface"),(UnliftedFFITypes,"-XUnliftedFFITypes"),(UnknownExtension "NoUnliftedFFITypes","-XNoUnliftedFFITypes"),(GHCForeignImportPrim,"-XGHCForeignImportPrim"),(UnknownExtension "NoGHCForeignImportPrim","-XNoGHCForeignImportPrim"),(LiberalTypeSynonyms,"-XLiberalTypeSynonyms"),(UnknownExtension "NoLiberalTypeSynonyms","-XNoLiberalTypeSynonyms"),(Rank2Types,"-XRank2Types"),(UnknownExtension "NoRank2Types","-XNoRank2Types"),(RankNTypes,"-XRankNTypes"),(UnknownExtension "NoRankNTypes","-XNoRankNTypes"),(ImpredicativeTypes,"-XImpredicativeTypes"),(UnknownExtension "NoImpredicativeTypes","-XNoImpredicativeTypes"),(TypeOperators,"-XTypeOperators"),(UnknownExtension "NoTypeOperators","-XNoTypeOperators"),(RecursiveDo,"-XRecursiveDo"),(UnknownExtension "NoRecursiveDo","-XNoRecursiveDo"),(DoRec,"-XDoRec"),(UnknownExtension "NoDoRec","-XNoDoRec"),(Arrows,"-XArrows"),(UnknownExtension "NoArrows","-XNoArrows"),(UnknownExtension "PArr","-XPArr"),(UnknownExtension "NoPArr","-XNoPArr"),(TemplateHaskell,"-XTemplateHaskell"),(UnknownExtension "NoTemplateHaskell","-XNoTemplateHaskell"),(QuasiQuotes,"-XQuasiQuotes"),(UnknownExtension "NoQuasiQuotes","-XNoQuasiQuotes"),(Generics,"-XGenerics"),(UnknownExtension "NoGenerics","-XNoGenerics"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(RecordWildCards,"-XRecordWildCards"),(UnknownExtension "NoRecordWildCards","-XNoRecordWildCards"),(NamedFieldPuns,"-XNamedFieldPuns"),(UnknownExtension "NoNamedFieldPuns","-XNoNamedFieldPuns"),(RecordPuns,"-XRecordPuns"),(UnknownExtension "NoRecordPuns","-XNoRecordPuns"),(DisambiguateRecordFields,"-XDisambiguateRecordFields"),(UnknownExtension "NoDisambiguateRecordFields","-XNoDisambiguateRecordFields"),(OverloadedStrings,"-XOverloadedStrings"),(UnknownExtension "NoOverloadedStrings","-XNoOverloadedStrings"),(GADTs,"-XGADTs"),(UnknownExtension "NoGADTs","-XNoGADTs"),(ViewPatterns,"-XViewPatterns"),(UnknownExtension "NoViewPatterns","-XNoViewPatterns"),(TypeFamilies,"-XTypeFamilies"),(UnknownExtension "NoTypeFamilies","-XNoTypeFamilies"),(BangPatterns,"-XBangPatterns"),(UnknownExtension "NoBangPatterns","-XNoBangPatterns"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NPlusKPatterns,"-XNPlusKPatterns"),(UnknownExtension "NoNPlusKPatterns","-XNoNPlusKPatterns"),(DoAndIfThenElse,"-XDoAndIfThenElse"),(UnknownExtension "NoDoAndIfThenElse","-XNoDoAndIfThenElse"),(RebindableSyntax,"-XRebindableSyntax"),(UnknownExtension "NoRebindableSyntax","-XNoRebindableSyntax"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(ExplicitForAll,"-XExplicitForAll"),(UnknownExtension "NoExplicitForAll","-XNoExplicitForAll"),(UnknownExtension "AlternativeLayoutRule","-XAlternativeLayoutRule"),(UnknownExtension "NoAlternativeLayoutRule","-XNoAlternativeLayoutRule"),(UnknownExtension "AlternativeLayoutRuleTransitional","-XAlternativeLayoutRuleTransitional"),(UnknownExtension "NoAlternativeLayoutRuleTransitional","-XNoAlternativeLayoutRuleTransitional"),(DatatypeContexts,"-XDatatypeContexts"),(UnknownExtension "NoDatatypeContexts","-XNoDatatypeContexts"),(MonoLocalBinds,"-XMonoLocalBinds"),(UnknownExtension "NoMonoLocalBinds","-XNoMonoLocalBinds"),(RelaxedPolyRec,"-XRelaxedPolyRec"),(UnknownExtension "NoRelaxedPolyRec","-XNoRelaxedPolyRec"),(ExtendedDefaultRules,"-XExtendedDefaultRules"),(UnknownExtension "NoExtendedDefaultRules","-XNoExtendedDefaultRules"),(ImplicitParams,"-XImplicitParams"),(UnknownExtension "NoImplicitParams","-XNoImplicitParams"),(ScopedTypeVariables,"-XScopedTypeVariables"),(UnknownExtension "NoScopedTypeVariables","-XNoScopedTypeVariables"),(PatternSignatures,"-XPatternSignatures"),(UnknownExtension "NoPatternSignatures","-XNoPatternSignatures"),(UnboxedTuples,"-XUnboxedTuples"),(UnknownExtension "NoUnboxedTuples","-XNoUnboxedTuples"),(StandaloneDeriving,"-XStandaloneDeriving"),(UnknownExtension "NoStandaloneDeriving","-XNoStandaloneDeriving"),(DeriveDataTypeable,"-XDeriveDataTypeable"),(UnknownExtension "NoDeriveDataTypeable","-XNoDeriveDataTypeable"),(DeriveFunctor,"-XDeriveFunctor"),(UnknownExtension "NoDeriveFunctor","-XNoDeriveFunctor"),(DeriveTraversable,"-XDeriveTraversable"),(UnknownExtension "NoDeriveTraversable","-XNoDeriveTraversable"),(DeriveFoldable,"-XDeriveFoldable"),(UnknownExtension "NoDeriveFoldable","-XNoDeriveFoldable"),(TypeSynonymInstances,"-XTypeSynonymInstances"),(UnknownExtension "NoTypeSynonymInstances","-XNoTypeSynonymInstances"),(FlexibleContexts,"-XFlexibleContexts"),(UnknownExtension "NoFlexibleContexts","-XNoFlexibleContexts"),(FlexibleInstances,"-XFlexibleInstances"),(UnknownExtension "NoFlexibleInstances","-XNoFlexibleInstances"),(ConstrainedClassMethods,"-XConstrainedClassMethods"),(UnknownExtension "NoConstrainedClassMethods","-XNoConstrainedClassMethods"),(MultiParamTypeClasses,"-XMultiParamTypeClasses"),(UnknownExtension "NoMultiParamTypeClasses","-XNoMultiParamTypeClasses"),(FunctionalDependencies,"-XFunctionalDependencies"),(UnknownExtension "NoFunctionalDependencies","-XNoFunctionalDependencies"),(GeneralizedNewtypeDeriving,"-XGeneralizedNewtypeDeriving"),(UnknownExtension "NoGeneralizedNewtypeDeriving","-XNoGeneralizedNewtypeDeriving"),(OverlappingInstances,"-XOverlappingInstances"),(UnknownExtension "NoOverlappingInstances","-XNoOverlappingInstances"),(UndecidableInstances,"-XUndecidableInstances"),(UnknownExtension "NoUndecidableInstances","-XNoUndecidableInstances"),(IncoherentInstances,"-XIncoherentInstances"),(UnknownExtension "NoIncoherentInstances","-XNoIncoherentInstances"),(PackageImports,"-XPackageImports"),(UnknownExtension "NoPackageImports","-XNoPackageImports"),(NewQualifiedOperators,"-XNewQualifiedOperators"),(UnknownExtension "NoNewQualifiedOperators","-XNoNewQualifiedOperators")]}, buildDir = "dist\\build", scratchDir = "dist\\scratch", libraryConfig = Just (ComponentLocalBuildInfo {componentPackageDeps = [(InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b",PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,3,1,0], versionTags = []}}),(InstalledPackageId "multiplate-0.0.1.1-b9a01799d58daace698402a46b099d0b",PackageIdentifier {pkgName = PackageName "multiplate", pkgVersion = Version {versionBranch = [0,0,1,1], versionTags = []}}),(InstalledPackageId "transformers-0.2.2.0-2fe7b735c63a6cbe8724038d8e4d812a",PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,2,2,0], versionTags = []}})]}), executableConfigs = [], testSuiteConfigs = [], installedPkgs = PackageIndex (fromList [(InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b",InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,3,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","IO","Encoding","CodePage","Table"],ModuleName ["GHC","Conc","Windows"],ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Float"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","MVar"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IORef"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","STRef"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [], importDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\base-4.3.1.0"], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\base-4.3.1.0"], hsLibraries = ["HSbase-4.3.1.0"], extraLibraries = ["wsock32","user32","shell32"], extraGHCiLibraries = [], includeDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\base-4.3.1.0\\include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-e1f7c380581d61d42b0360d440cc35ed",InstalledPackageId "integer-gmp-0.2.0.3-91607778cf3ae8f3948a50062b4f8479",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/base-4.3.1.0\\base.haddock"], haddockHTMLs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/base-4.3.1.0"]}),(InstalledPackageId "builtin_ffi",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_ffi", sourcePackageId = PackageIdentifier {pkgName = PackageName "ffi", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib"], hsLibraries = ["HSffi"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/include"], includes = [], depends = [], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "builtin_rts",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib"], hsLibraries = ["HSrts"], extraLibraries = ["m","wsock32"], extraGHCiLibraries = [], includeDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/include"], includes = ["Stg.h"], depends = [InstalledPackageId "builtin_ffi"], hugsOptions = [], ccOptions = [], ldOptions = ["-u","_ghczmprim_GHCziTypes_Izh_static_info","-u","_ghczmprim_GHCziTypes_Czh_static_info","-u","_ghczmprim_GHCziTypes_Fzh_static_info","-u","_ghczmprim_GHCziTypes_Dzh_static_info","-u","_base_GHCziPtr_Ptr_static_info","-u","_base_GHCziWord_Wzh_static_info","-u","_base_GHCziInt_I8zh_static_info","-u","_base_GHCziInt_I16zh_static_info","-u","_base_GHCziInt_I32zh_static_info","-u","_base_GHCziInt_I64zh_static_info","-u","_base_GHCziWord_W8zh_static_info","-u","_base_GHCziWord_W16zh_static_info","-u","_base_GHCziWord_W32zh_static_info","-u","_base_GHCziWord_W64zh_static_info","-u","_base_GHCziStable_StablePtr_static_info","-u","_ghczmprim_GHCziTypes_Izh_con_info","-u","_ghczmprim_GHCziTypes_Czh_con_info","-u","_ghczmprim_GHCziTypes_Fzh_con_info","-u","_ghczmprim_GHCziTypes_Dzh_con_info","-u","_base_GHCziPtr_Ptr_con_info","-u","_base_GHCziPtr_FunPtr_con_info","-u","_base_GHCziStable_StablePtr_con_info","-u","_ghczmprim_GHCziBool_False_closure","-u","_ghczmprim_GHCziBool_True_closure","-u","_base_GHCziPack_unpackCString_closure","-u","_base_GHCziIOziException_stackOverflow_closure","-u","_base_GHCziIOziException_heapOverflow_closure","-u","_base_ControlziExceptionziBase_nonTermination_closure","-u","_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","_base_ControlziExceptionziBase_nestedAtomically_closure","-u","_base_GHCziWeak_runFinalizzerBatch_closure","-u","_base_GHCziTopHandler_runIO_closure","-u","_base_GHCziTopHandler_runNonIO_closure","-u","_base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","_base_GHCziConcziSync_runSparks_closure","-u","_base_GHCziConcziSignal_runHandlers_closure"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "ghc-prim-0.2.0.0-e1f7c380581d61d42b0360d440cc35ed",InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-e1f7c380581d61d42b0360d440cc35ed", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Bool"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"]], hiddenModules = [], importDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\ghc-prim-0.2.0.0"], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/ghc-prim-0.2.0.0\\ghc-prim.haddock"], haddockHTMLs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/ghc-prim-0.2.0.0"]}),(InstalledPackageId "integer-gmp-0.2.0.3-91607778cf3ae8f3948a50062b4f8479",InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.2.0.3-91607778cf3ae8f3948a50062b4f8479", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,2,0,3], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], importDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\integer-gmp-0.2.0.3"], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\integer-gmp-0.2.0.3"], hsLibraries = ["HSinteger-gmp-0.2.0.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-e1f7c380581d61d42b0360d440cc35ed"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/integer-gmp-0.2.0.3\\integer-gmp.haddock"], haddockHTMLs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/integer-gmp-0.2.0.3"]}),(InstalledPackageId "multiplate-0.0.1.1-b9a01799d58daace698402a46b099d0b",InstalledPackageInfo {installedPackageId = InstalledPackageId "multiplate-0.0.1.1-b9a01799d58daace698402a46b099d0b", sourcePackageId = PackageIdentifier {pkgName = PackageName "multiplate", pkgVersion = Version {versionBranch = [0,0,1,1], versionTags = []}}, license = MIT, copyright = "2010, Russell O'Connor", maintainer = "Russell O'Connor <roconnor@theorem.ca>", author = "Russell O'Connor", stability = "", homepage = "http://haskell.org/haskellwiki/Multiplate", pkgUrl = "", description = "Multiplate is an alternative extension of the Uniplate/Compos core library\nto support mutally recursive\ndatatypes in a way that is as powerful as Compos, as easy to use as Biplate, and\nmore portable than both of them.\nMultiplate does not require GADTs and does not require multi-parameter type classes.\nIt only requires rank 3 polymorphism.", category = "Generics", exposed = True, exposedModules = [ModuleName ["Data","Generics","Multiplate"]], hiddenModules = [], importDirs = ["C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-0.0.1.1\\ghc-7.0.2"], libraryDirs = ["C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-0.0.1.1\\ghc-7.0.2"], hsLibraries = ["HSmultiplate-0.0.1.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b",InstalledPackageId "transformers-0.2.2.0-2fe7b735c63a6cbe8724038d8e4d812a"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Users\\EB\\AppData\\Roaming\\cabal\\doc\\multiplate-0.0.1.1\\html\\multiplate.haddock"], haddockHTMLs = ["C:\\Users\\EB\\AppData\\Roaming\\cabal\\doc\\multiplate-0.0.1.1\\html"]}),(InstalledPackageId "transformers-0.2.2.0-2fe7b735c63a6cbe8724038d8e4d812a",InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.2.2.0-2fe7b735c63a6cbe8724038d8e4d812a", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,2,2,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", description = "Haskell 98 part of a monad transformer library, inspired by the paper\n\\\"Functional Programming with Overloading and Higher-Order Polymorphism\\\",\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis part contains the monad transformer class, the concrete monad\ntransformers, operations and liftings.  It can be used on its own\nin Haskell 98 code, or with the monad classes in the @monads-fd@ or\n@monads-tf@ packages, which automatically lift operations introduced\nby monad transformers through other transformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","IO","Class"],ModuleName ["Control","Monad","Trans","Class"],ModuleName ["Control","Monad","Trans","Cont"],ModuleName ["Control","Monad","Trans","Error"],ModuleName ["Control","Monad","Trans","Identity"],ModuleName ["Control","Monad","Trans","List"],ModuleName ["Control","Monad","Trans","Maybe"],ModuleName ["Control","Monad","Trans","Reader"],ModuleName ["Control","Monad","Trans","RWS"],ModuleName ["Control","Monad","Trans","RWS","Lazy"],ModuleName ["Control","Monad","Trans","RWS","Strict"],ModuleName ["Control","Monad","Trans","State"],ModuleName ["Control","Monad","Trans","State","Lazy"],ModuleName ["Control","Monad","Trans","State","Strict"],ModuleName ["Control","Monad","Trans","Writer"],ModuleName ["Control","Monad","Trans","Writer","Lazy"],ModuleName ["Control","Monad","Trans","Writer","Strict"],ModuleName ["Data","Functor","Compose"],ModuleName ["Data","Functor","Constant"],ModuleName ["Data","Functor","Identity"],ModuleName ["Data","Functor","Product"]], hiddenModules = [], importDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\transformers-0.2.2.0\\ghc-7.0.2"], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\transformers-0.2.2.0\\ghc-7.0.2"], hsLibraries = ["HStransformers-0.2.2.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\doc\\transformers-0.2.2.0\\html\\transformers.haddock"], haddockHTMLs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\doc\\transformers-0.2.2.0\\html"]})]) (fromList [(PackageName "base",fromList [(Version {versionBranch = [4,3,1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,3,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","IO","Encoding","CodePage","Table"],ModuleName ["GHC","Conc","Windows"],ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Float"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","MVar"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IORef"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","STRef"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [], importDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\base-4.3.1.0"], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\base-4.3.1.0"], hsLibraries = ["HSbase-4.3.1.0"], extraLibraries = ["wsock32","user32","shell32"], extraGHCiLibraries = [], includeDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\base-4.3.1.0\\include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-e1f7c380581d61d42b0360d440cc35ed",InstalledPackageId "integer-gmp-0.2.0.3-91607778cf3ae8f3948a50062b4f8479",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/base-4.3.1.0\\base.haddock"], haddockHTMLs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/base-4.3.1.0"]}])]),(PackageName "ffi",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_ffi", sourcePackageId = PackageIdentifier {pkgName = PackageName "ffi", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib"], hsLibraries = ["HSffi"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/include"], includes = [], depends = [], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "ghc-prim",fromList [(Version {versionBranch = [0,2,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-e1f7c380581d61d42b0360d440cc35ed", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Bool"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"]], hiddenModules = [], importDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\ghc-prim-0.2.0.0"], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/ghc-prim-0.2.0.0\\ghc-prim.haddock"], haddockHTMLs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/ghc-prim-0.2.0.0"]}])]),(PackageName "integer-gmp",fromList [(Version {versionBranch = [0,2,0,3], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.2.0.3-91607778cf3ae8f3948a50062b4f8479", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,2,0,3], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], importDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\integer-gmp-0.2.0.3"], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\integer-gmp-0.2.0.3"], hsLibraries = ["HSinteger-gmp-0.2.0.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-e1f7c380581d61d42b0360d440cc35ed"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/integer-gmp-0.2.0.3\\integer-gmp.haddock"], haddockHTMLs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/../doc/html/libraries/integer-gmp-0.2.0.3"]}])]),(PackageName "multiplate",fromList [(Version {versionBranch = [0,0,1,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "multiplate-0.0.1.1-b9a01799d58daace698402a46b099d0b", sourcePackageId = PackageIdentifier {pkgName = PackageName "multiplate", pkgVersion = Version {versionBranch = [0,0,1,1], versionTags = []}}, license = MIT, copyright = "2010, Russell O'Connor", maintainer = "Russell O'Connor <roconnor@theorem.ca>", author = "Russell O'Connor", stability = "", homepage = "http://haskell.org/haskellwiki/Multiplate", pkgUrl = "", description = "Multiplate is an alternative extension of the Uniplate/Compos core library\nto support mutally recursive\ndatatypes in a way that is as powerful as Compos, as easy to use as Biplate, and\nmore portable than both of them.\nMultiplate does not require GADTs and does not require multi-parameter type classes.\nIt only requires rank 3 polymorphism.", category = "Generics", exposed = True, exposedModules = [ModuleName ["Data","Generics","Multiplate"]], hiddenModules = [], importDirs = ["C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-0.0.1.1\\ghc-7.0.2"], libraryDirs = ["C:\\Users\\EB\\AppData\\Roaming\\cabal\\multiplate-0.0.1.1\\ghc-7.0.2"], hsLibraries = ["HSmultiplate-0.0.1.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b",InstalledPackageId "transformers-0.2.2.0-2fe7b735c63a6cbe8724038d8e4d812a"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Users\\EB\\AppData\\Roaming\\cabal\\doc\\multiplate-0.0.1.1\\html\\multiplate.haddock"], haddockHTMLs = ["C:\\Users\\EB\\AppData\\Roaming\\cabal\\doc\\multiplate-0.0.1.1\\html"]}])]),(PackageName "rts",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib"], hsLibraries = ["HSrts"], extraLibraries = ["m","wsock32"], extraGHCiLibraries = [], includeDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib/include"], includes = ["Stg.h"], depends = [InstalledPackageId "builtin_ffi"], hugsOptions = [], ccOptions = [], ldOptions = ["-u","_ghczmprim_GHCziTypes_Izh_static_info","-u","_ghczmprim_GHCziTypes_Czh_static_info","-u","_ghczmprim_GHCziTypes_Fzh_static_info","-u","_ghczmprim_GHCziTypes_Dzh_static_info","-u","_base_GHCziPtr_Ptr_static_info","-u","_base_GHCziWord_Wzh_static_info","-u","_base_GHCziInt_I8zh_static_info","-u","_base_GHCziInt_I16zh_static_info","-u","_base_GHCziInt_I32zh_static_info","-u","_base_GHCziInt_I64zh_static_info","-u","_base_GHCziWord_W8zh_static_info","-u","_base_GHCziWord_W16zh_static_info","-u","_base_GHCziWord_W32zh_static_info","-u","_base_GHCziWord_W64zh_static_info","-u","_base_GHCziStable_StablePtr_static_info","-u","_ghczmprim_GHCziTypes_Izh_con_info","-u","_ghczmprim_GHCziTypes_Czh_con_info","-u","_ghczmprim_GHCziTypes_Fzh_con_info","-u","_ghczmprim_GHCziTypes_Dzh_con_info","-u","_base_GHCziPtr_Ptr_con_info","-u","_base_GHCziPtr_FunPtr_con_info","-u","_base_GHCziStable_StablePtr_con_info","-u","_ghczmprim_GHCziBool_False_closure","-u","_ghczmprim_GHCziBool_True_closure","-u","_base_GHCziPack_unpackCString_closure","-u","_base_GHCziIOziException_stackOverflow_closure","-u","_base_GHCziIOziException_heapOverflow_closure","-u","_base_ControlziExceptionziBase_nonTermination_closure","-u","_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","_base_ControlziExceptionziBase_nestedAtomically_closure","-u","_base_GHCziWeak_runFinalizzerBatch_closure","-u","_base_GHCziTopHandler_runIO_closure","-u","_base_GHCziTopHandler_runNonIO_closure","-u","_base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","_base_GHCziConcziSync_runSparks_closure","-u","_base_GHCziConcziSignal_runHandlers_closure"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "transformers",fromList [(Version {versionBranch = [0,2,2,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.2.2.0-2fe7b735c63a6cbe8724038d8e4d812a", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,2,2,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", description = "Haskell 98 part of a monad transformer library, inspired by the paper\n\\\"Functional Programming with Overloading and Higher-Order Polymorphism\\\",\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis part contains the monad transformer class, the concrete monad\ntransformers, operations and liftings.  It can be used on its own\nin Haskell 98 code, or with the monad classes in the @monads-fd@ or\n@monads-tf@ packages, which automatically lift operations introduced\nby monad transformers through other transformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","IO","Class"],ModuleName ["Control","Monad","Trans","Class"],ModuleName ["Control","Monad","Trans","Cont"],ModuleName ["Control","Monad","Trans","Error"],ModuleName ["Control","Monad","Trans","Identity"],ModuleName ["Control","Monad","Trans","List"],ModuleName ["Control","Monad","Trans","Maybe"],ModuleName ["Control","Monad","Trans","Reader"],ModuleName ["Control","Monad","Trans","RWS"],ModuleName ["Control","Monad","Trans","RWS","Lazy"],ModuleName ["Control","Monad","Trans","RWS","Strict"],ModuleName ["Control","Monad","Trans","State"],ModuleName ["Control","Monad","Trans","State","Lazy"],ModuleName ["Control","Monad","Trans","State","Strict"],ModuleName ["Control","Monad","Trans","Writer"],ModuleName ["Control","Monad","Trans","Writer","Lazy"],ModuleName ["Control","Monad","Trans","Writer","Strict"],ModuleName ["Data","Functor","Compose"],ModuleName ["Data","Functor","Constant"],ModuleName ["Data","Functor","Identity"],ModuleName ["Data","Functor","Product"]], hiddenModules = [], importDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\transformers-0.2.2.0\\ghc-7.0.2"], libraryDirs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\transformers-0.2.2.0\\ghc-7.0.2"], hsLibraries = ["HStransformers-0.2.2.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-f520cd232cc386346843c4a12b63f44b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\doc\\transformers-0.2.2.0\\html\\transformers.haddock"], haddockHTMLs = ["C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\doc\\transformers-0.2.2.0\\html"]}])])]), pkgDescrFile = Just ".\\multiplate-simplified.cabal", localPkgDescr = PackageDescription {package = PackageIdentifier {pkgName = PackageName "multiplate-simplified", pkgVersion = Version {versionBranch = [0,0,0,1], versionTags = []}}, license = MIT, licenseFile = "LICENSE", copyright = "2011, Balazs Endresz", maintainer = "Balazs Endresz <balazs.endresz@gmail.com>", author = "Balazs Endresz", stability = "", testedWith = [(GHC,ThisVersion (Version {versionBranch = [6,12,3], versionTags = []})),(GHC,ThisVersion (Version {versionBranch = [7,0,2], versionTags = []}))], homepage = "", pkgUrl = "", bugReports = "", sourceRepos = [], synopsis = "Shorter, more generic functions for Multiplate.", description = "This module provides wrappers around some Multiplate functions to spare\nthe Projector argument. This makes it simpler to use them, and\nthey will work for any data type, but a simple instance definition\nhas to be supplied for each one.", category = "Generics", customFieldsPD = [], buildDepends = [Dependency (PackageName "base") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [3], versionTags = []})) (LaterVersion (Version {versionBranch = [3], versionTags = []}))) (EarlierVersion (Version {versionBranch = [5], versionTags = []}))) (ThisVersion (Version {versionBranch = [4,3,1,0], versionTags = []}))),Dependency (PackageName "multiplate") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,0,1,1], versionTags = []}))),Dependency (PackageName "transformers") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,2], versionTags = []})) (LaterVersion (Version {versionBranch = [0,2], versionTags = []}))) (EarlierVersion (Version {versionBranch = [0,3], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,2,2,0], versionTags = []})))], specVersionRaw = Right (UnionVersionRanges (ThisVersion (Version {versionBranch = [1,4], versionTags = []})) (LaterVersion (Version {versionBranch = [1,4], versionTags = []}))), buildType = Just Simple, library = Just (Library {exposedModules = [ModuleName ["Data","Generics","Multiplate","Simplified"]], libExposed = True, libBuildInfo = BuildInfo {buildable = True, buildTools = [], cppOptions = [], ccOptions = [], ldOptions = [], pkgconfigDepends = [], frameworks = [], cSources = [], hsSourceDirs = ["."], otherModules = [], defaultLanguage = Nothing, otherLanguages = [], defaultExtensions = [], otherExtensions = [], oldExtensions = [MultiParamTypeClasses], extraLibs = [], extraLibDirs = [], includeDirs = [], includes = [], installIncludes = [], options = [], ghcProfOptions = [], ghcSharedOptions = [], customFieldsBI = [], targetBuildDepends = [Dependency (PackageName "base") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [3], versionTags = []})) (LaterVersion (Version {versionBranch = [3], versionTags = []}))) (EarlierVersion (Version {versionBranch = [5], versionTags = []}))) (ThisVersion (Version {versionBranch = [4,3,1,0], versionTags = []}))),Dependency (PackageName "multiplate") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,0,1,1], versionTags = []}))),Dependency (PackageName "transformers") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,2], versionTags = []})) (LaterVersion (Version {versionBranch = [0,2], versionTags = []}))) (EarlierVersion (Version {versionBranch = [0,3], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,2,2,0], versionTags = []})))]}}), executables = [], testSuites = [], dataFiles = ["CHANGELOG"], dataDir = "", extraSrcFiles = [], extraTmpFiles = []}, withPrograms = [("alex",ConfiguredProgram {programId = "alex", programVersion = Just (Version {versionBranch = [2,3,5], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\bin\\alex.exe"}}),("ar",ConfiguredProgram {programId = "ar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\mingw\\bin\\ar.exe"}}),("cpphs",ConfiguredProgram {programId = "cpphs", programVersion = Just (Version {versionBranch = [1,11], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\bin\\cpphs.exe"}}),("gcc",ConfiguredProgram {programId = "gcc", programVersion = Just (Version {versionBranch = [4,5,0], versionTags = []}), programDefaultArgs = ["-fno-stack-protector"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\mingw\\bin\\gcc.exe"}}),("ghc",ConfiguredProgram {programId = "ghc", programVersion = Just (Version {versionBranch = [7,0,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\bin\\ghc.exe"}}),("ghc-pkg",ConfiguredProgram {programId = "ghc-pkg", programVersion = Just (Version {versionBranch = [7,0,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\bin\\ghc-pkg.exe"}}),("haddock",ConfiguredProgram {programId = "haddock", programVersion = Just (Version {versionBranch = [2,9,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\bin\\haddock.exe"}}),("happy",ConfiguredProgram {programId = "happy", programVersion = Just (Version {versionBranch = [1,18,6], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\lib\\extralibs\\bin\\happy.exe"}}),("hsc2hs",ConfiguredProgram {programId = "hsc2hs", programVersion = Just (Version {versionBranch = [0,67], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\bin\\hsc2hs.exe"}}),("hscolour",ConfiguredProgram {programId = "hscolour", programVersion = Just (Version {versionBranch = [1,17], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Users\\EB\\AppData\\Roaming\\cabal\\bin\\HsColour.exe"}}),("ld",ConfiguredProgram {programId = "ld", programVersion = Nothing, programDefaultArgs = ["-x"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2011.2.0.0\\mingw\\bin\\ld.exe"}}),("pkg-config",ConfiguredProgram {programId = "pkg-config", programVersion = Just (Version {versionBranch = [0,23], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "c:\\bin\\gtk\\bin\\pkg-config.exe"}}),("ranlib",ConfiguredProgram {programId = "ranlib", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2010.2.0.0\\mingw\\bin\\ranlib.exe"}}),("strip",ConfiguredProgram {programId = "strip", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "C:\\Program Files\\Haskell Platform\\2010.2.0.0\\mingw\\bin\\strip.exe"}})], withPackageDB = [GlobalPackageDB,UserPackageDB], withVanillaLib = True, withProfLib = False, withSharedLib = False, withProfExe = False, withOptimization = NormalOptimisation, withGHCiLib = True, splitObjs = False, stripExes = True, progPrefix = "", progSuffix = ""}
diff --git a/multiplate-simplified.cabal b/multiplate-simplified.cabal
new file mode 100644
--- /dev/null
+++ b/multiplate-simplified.cabal
@@ -0,0 +1,25 @@
+Name:               multiplate-simplified
+Version:            0.0.0.1
+Cabal-Version:      >= 1.4
+License:            MIT
+License-File:       LICENSE
+Build-Type:         Simple
+Copyright:          2011, Balazs Endresz
+Author:             Balazs Endresz
+Maintainer:         Balazs Endresz <balazs.endresz@gmail.com>
+Synopsis:           Shorter, more generic functions for Multiplate.
+Category:           Generics
+Description:
+    This module provides wrappers around some Multiplate functions to spare 
+    the Projector argument. This makes it simpler to use them, and 
+    they will work for any data type, but a simple instance definition
+    has to be supplied for each one.
+Tested-with:        GHC == 6.12.3, GHC == 7.0.2
+data-files:         CHANGELOG
+
+Library
+    Build-Depends:     base >= 3 && < 5, transformers >= 0.2 && < 0.3, multiplate
+    Extensions: MultiParamTypeClasses
+    Exposed-modules:
+        Data.Generics.Multiplate.Simplified
+
