-- File generated by the BNF Converter (bnfc 2.9.6).
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-- | The abstract syntax of language Lam.
module Lam.Abs where
import Prelude (String)
import qualified Prelude as C (Eq, Ord, Show, Read)
import qualified Data.String
data Exp = EId Ident | EApp Exp Exp | EAbs Lambda Ident Arrow Exp
deriving (C.Eq, C.Ord, C.Show, C.Read)
data Ty = TId Ident | TArr Ty Arrow Ty
deriving (C.Eq, C.Ord, C.Show, C.Read)
newtype Ident = Ident String
deriving (C.Eq, C.Ord, C.Show, C.Read, Data.String.IsString)
newtype Lambda = Lambda String
deriving (C.Eq, C.Ord, C.Show, C.Read, Data.String.IsString)
newtype Arrow = Arrow String
deriving (C.Eq, C.Ord, C.Show, C.Read, Data.String.IsString)