elm/compiler/SourceSyntax/Declaration.hs

19 lines
525 B
Haskell
Raw Normal View History

{-# LANGUAGE DeriveDataTypeable #-}
module SourceSyntax.Declaration where
import Data.Data
import qualified SourceSyntax.Expression as Expr
import SourceSyntax.Type
data Declaration tipe var
= Definition (Expr.Def tipe var)
| Datatype String [String] [(String,[Type])]
| TypeAlias String [String] Type
| ImportEvent String (Expr.LExpr tipe var) String Type
| ExportEvent String String Type
| Fixity Assoc Int String
deriving (Eq, Show)
data Assoc = L | N | R
deriving (Eq, Show)