From 186785c7bc7d511fef75ec22e72143f7707ae886 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Mon, 3 Nov 2025 22:08:25 +0100 Subject: resugar evaluated term --- lambda-calcul/haskell/src/Minilang/Lambda/Parser.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lambda-calcul/haskell/src/Minilang/Lambda') 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 -- cgit v1.3.1