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 +5/−4
- src/Language/Lambda/AST.hs +0/−20
- src/Language/Lambda/SimplyTyped/Let/Syntax.hs +13/−0
- src/Language/Lambda/SimplyTyped/Syntax.hs +15/−0
- src/Language/Lambda/Untyped/Syntax.hs +20/−0
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++++