module Presyntax.Presyntax where import Data.Text (Text) data Plicity = Im | Ex deriving (Eq, Show, Ord) data Expr = Var Text | App Plicity Expr Expr | Pi Plicity Text Expr Expr | Lam Plicity Text Expr | Sigma Text Expr Expr | Pair Expr Expr | Proj1 Expr | Proj2 Expr | Span Expr Posn Posn deriving (Eq, Show, Ord) data Statement = Decl Text Expr | Defn Text Expr deriving (Eq, Show, Ord) data Posn = Posn { posnLine :: {-# UNPACK #-} !Int , posnColm :: {-# UNPACK #-} !Int } deriving (Eq, Show, Ord)