diff --git a/lambda-ast.cabal b/lambda-ast.cabal
--- a/lambda-ast.cabal
+++ b/lambda-ast.cabal
@@ -1,13 +1,13 @@
 category:               Compilers/Interpreters
 copyright:              (c) 2012 Jonathan Fischoff 
 name:                   lambda-ast
-version:                0.0.4
+version:                0.0.12
 license:                BSD3
 license-file:           LICENSE
 author:                 Jonathan Fischoff
 maintainer:             jonathangfischoff@gmail.com
-synopsis:               Untyped Lambda Calculus Abstract Syntax Tree
-description:            An AST for the untyped lambda calculus. The AST is parameterized by symbol type.
+synopsis:               Lambda Calculi Abstract Syntax Trees
+description:            AST's for various Lambda Calculi. Adding more as I need them.
 
 stability:              experimental
 build-type:             Simple
@@ -17,7 +17,8 @@
 library
   hs-source-dirs:         src
   default-language:       Haskell98
-  exposed-modules:        Language.Lambda.AST
+  exposed-modules:        Language.Lambda.SimplyTyped.Syntax, Language.Lambda.Untyped.Syntax,
+                          Language.Lambda.SimplyTyped.Let.Syntax
   ghc-options:            -Wall
   Build-depends:          base < 6.0
   
diff --git a/src/Language/Lambda/AST.hs b/src/Language/Lambda/AST.hs
deleted file mode 100644
--- a/src/Language/Lambda/AST.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{- | An Untyped Lambda Calculus AST -}
-module Language.Lambda.AST where
-import Data.Data
-
--- | A polymorphic version of the AST to allow different symbol types
-data GExpr a = Var a
-             | App (GExpr a) (GExpr a)
-             | Lam a         (GExpr a)
-     deriving(Show, Eq, Data, Typeable)
-             
--- | A common symbol type choice
-type Sym  = String
-
--- | A common AST
-type Expr = GExpr Sym
-
-
-
-
diff --git a/src/Language/Lambda/SimplyTyped/Let/Syntax.hs b/src/Language/Lambda/SimplyTyped/Let/Syntax.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/Lambda/SimplyTyped/Let/Syntax.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+module Language.Lambda.SimplyTyped.Let.Syntax where
+import Data.Data
+
+data Type a = Base a | Arrow (Type a) (Type a)
+     deriving(Show, Eq, Data, Typeable)
+
+data Expr s a c = Var s
+                | App (Expr s a c) (Expr s a c)
+                | Lam s (Type a) (Expr s a c)
+                | Constant c
+                | Let s (Expr s a c) (Expr s a c)
+     deriving(Show, Eq, Data, Typeable)
diff --git a/src/Language/Lambda/SimplyTyped/Syntax.hs b/src/Language/Lambda/SimplyTyped/Syntax.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/Lambda/SimplyTyped/Syntax.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+module Language.Lambda.SimplyTyped.Syntax where
+import Data.Data
+
+data Type a = Base a | Arrow (Type a) (Type a)
+     deriving(Show, Eq, Data, Typeable)
+    
+data Expr s a c = Var s
+                | App (Expr s a c) (Expr s a c)
+                | Lam s (Type a) (Expr s a c)
+                | Constant c
+     deriving(Show, Eq, Data, Typeable)
+     
+
+            
diff --git a/src/Language/Lambda/Untyped/Syntax.hs b/src/Language/Lambda/Untyped/Syntax.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/Lambda/Untyped/Syntax.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{- | An Untyped Lambda Calculus AST -}
+module Language.Lambda.Untyped.Syntax where
+import Data.Data
+
+-- | A polymorphic version of the AST to allow different symbol types
+data GExpr a = Var a
+             | App (GExpr a) (GExpr a)
+             | Lam a         (GExpr a)
+     deriving(Show, Eq, Data, Typeable)
+             
+-- | A common symbol type choice
+type Sym  = String
+
+-- | A common AST
+type Expr = GExpr Sym
+
+
+
+
