packages feed

lambda-ast 0.0.4 → 0.0.12

raw patch · 5 files changed

+53/−24 lines, 5 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Language.Lambda.AST: App :: (GExpr a) -> (GExpr a) -> GExpr a
- Language.Lambda.AST: Lam :: a -> (GExpr a) -> GExpr a
- Language.Lambda.AST: Var :: a -> GExpr a
- Language.Lambda.AST: data GExpr a
- Language.Lambda.AST: instance Data a => Data (GExpr a)
- Language.Lambda.AST: instance Eq a => Eq (GExpr a)
- Language.Lambda.AST: instance Show a => Show (GExpr a)
- Language.Lambda.AST: instance Typeable1 GExpr
- Language.Lambda.AST: type Expr = GExpr Sym
- Language.Lambda.AST: type Sym = String
+ Language.Lambda.SimplyTyped.Let.Syntax: App :: (Expr s a c) -> (Expr s a c) -> Expr s a c
+ Language.Lambda.SimplyTyped.Let.Syntax: Arrow :: (Type a) -> (Type a) -> Type a
+ Language.Lambda.SimplyTyped.Let.Syntax: Base :: a -> Type a
+ Language.Lambda.SimplyTyped.Let.Syntax: Constant :: c -> Expr s a c
+ Language.Lambda.SimplyTyped.Let.Syntax: Lam :: s -> (Type a) -> (Expr s a c) -> Expr s a c
+ Language.Lambda.SimplyTyped.Let.Syntax: Let :: s -> (Expr s a c) -> (Expr s a c) -> Expr s a c
+ Language.Lambda.SimplyTyped.Let.Syntax: Var :: s -> Expr s a c
+ Language.Lambda.SimplyTyped.Let.Syntax: data Expr s a c
+ Language.Lambda.SimplyTyped.Let.Syntax: data Type a
+ Language.Lambda.SimplyTyped.Let.Syntax: instance (Data s, Data a, Data c) => Data (Expr s a c)
+ Language.Lambda.SimplyTyped.Let.Syntax: instance (Eq s, Eq a, Eq c) => Eq (Expr s a c)
+ Language.Lambda.SimplyTyped.Let.Syntax: instance (Show s, Show a, Show c) => Show (Expr s a c)
+ Language.Lambda.SimplyTyped.Let.Syntax: instance Data a => Data (Type a)
+ Language.Lambda.SimplyTyped.Let.Syntax: instance Eq a => Eq (Type a)
+ Language.Lambda.SimplyTyped.Let.Syntax: instance Show a => Show (Type a)
+ Language.Lambda.SimplyTyped.Let.Syntax: instance Typeable1 Type
+ Language.Lambda.SimplyTyped.Let.Syntax: instance Typeable3 Expr
+ Language.Lambda.SimplyTyped.Syntax: App :: (Expr s a c) -> (Expr s a c) -> Expr s a c
+ Language.Lambda.SimplyTyped.Syntax: Arrow :: (Type a) -> (Type a) -> Type a
+ Language.Lambda.SimplyTyped.Syntax: Base :: a -> Type a
+ Language.Lambda.SimplyTyped.Syntax: Constant :: c -> Expr s a c
+ Language.Lambda.SimplyTyped.Syntax: Lam :: s -> (Type a) -> (Expr s a c) -> Expr s a c
+ Language.Lambda.SimplyTyped.Syntax: Var :: s -> Expr s a c
+ Language.Lambda.SimplyTyped.Syntax: data Expr s a c
+ Language.Lambda.SimplyTyped.Syntax: data Type a
+ Language.Lambda.SimplyTyped.Syntax: instance (Data s, Data a, Data c) => Data (Expr s a c)
+ Language.Lambda.SimplyTyped.Syntax: instance (Eq s, Eq a, Eq c) => Eq (Expr s a c)
+ Language.Lambda.SimplyTyped.Syntax: instance (Show s, Show a, Show c) => Show (Expr s a c)
+ Language.Lambda.SimplyTyped.Syntax: instance Data a => Data (Type a)
+ Language.Lambda.SimplyTyped.Syntax: instance Eq a => Eq (Type a)
+ Language.Lambda.SimplyTyped.Syntax: instance Show a => Show (Type a)
+ Language.Lambda.SimplyTyped.Syntax: instance Typeable1 Type
+ Language.Lambda.SimplyTyped.Syntax: instance Typeable3 Expr
+ Language.Lambda.Untyped.Syntax: App :: (GExpr a) -> (GExpr a) -> GExpr a
+ Language.Lambda.Untyped.Syntax: Lam :: a -> (GExpr a) -> GExpr a
+ Language.Lambda.Untyped.Syntax: Var :: a -> GExpr a
+ Language.Lambda.Untyped.Syntax: data GExpr a
+ Language.Lambda.Untyped.Syntax: instance Data a => Data (GExpr a)
+ Language.Lambda.Untyped.Syntax: instance Eq a => Eq (GExpr a)
+ Language.Lambda.Untyped.Syntax: instance Show a => Show (GExpr a)
+ Language.Lambda.Untyped.Syntax: instance Typeable1 GExpr
+ Language.Lambda.Untyped.Syntax: type Expr = GExpr Sym
+ Language.Lambda.Untyped.Syntax: type Sym = String

Files

lambda-ast.cabal view
@@ -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   
− src/Language/Lambda/AST.hs
@@ -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----
+ src/Language/Lambda/SimplyTyped/Let/Syntax.hs view
@@ -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)
+ src/Language/Lambda/SimplyTyped/Syntax.hs view
@@ -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)+     ++            
+ src/Language/Lambda/Untyped/Syntax.hs view
@@ -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++++