packages feed

visualize-type-inference-0.0.1.0: src/Lam/Abs.hs

-- 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)