diff options
| author | Arnaud Bailly <arnaud@pankzsoft.com> | 2025-11-03 22:08:25 +0100 |
|---|---|---|
| committer | Arnaud Bailly <arnaud@pankzsoft.com> | 2025-11-03 22:08:25 +0100 |
| commit | 186785c7bc7d511fef75ec22e72143f7707ae886 (patch) | |
| tree | 6c04fa4f67c61ab04674dc1f1cd69c9d8acd0b98 /lambda-calcul/haskell/src/Minilang/Lambda/Parser.hs | |
| parent | e26753be1ed978e20ceea5e284fddbbc29f0338e (diff) | |
| download | lambda-nantes-186785c7bc7d511fef75ec22e72143f7707ae886.tar.gz | |
resugar evaluated term
Diffstat (limited to 'lambda-calcul/haskell/src/Minilang/Lambda/Parser.hs')
| -rw-r--r-- | lambda-calcul/haskell/src/Minilang/Lambda/Parser.hs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lambda-calcul/haskell/src/Minilang/Lambda/Parser.hs b/lambda-calcul/haskell/src/Minilang/Lambda/Parser.hs index fd02ebe..e15dc00 100644 --- a/lambda-calcul/haskell/src/Minilang/Lambda/Parser.hs +++ b/lambda-calcul/haskell/src/Minilang/Lambda/Parser.hs @@ -1,4 +1,5 @@ {-# LANGUAGE LambdaCase #-} +{-# LANGUAGE DeriveAnyClass #-} module Minilang.Lambda.Parser where @@ -14,6 +15,8 @@ import qualified Minilang.Lambda.Eval as Eval import Text.Megaparsec (Parsec, between, empty, errorBundlePretty, parse, some, try) import Text.Megaparsec.Char (alphaNumChar, char, letterChar, space1, symbolChar) import qualified Text.Megaparsec.Char.Lexer as L +import GHC.Generics (Generic) +import Data.Aeson (ToJSON, FromJSON) type Parser = Parsec Void Text @@ -21,7 +24,7 @@ data ParseError = ParseError Text deriving (Eq, Show) data AST = Sym Text | Abs [Text] AST | App AST AST [AST] - deriving (Eq, Show) + deriving (Eq, Show, Generic, ToJSON, FromJSON) desugar :: AST -> Term desugar = \case |
