diff options
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 |
