git.iko.soy/rowtype-yoga/purescript-native
on 96edff2 help sign in
43 lines 1.3 kB history raw
1-----------------------------------------------------------------------------
2--
3-- Module : Language.PureScript.Declarations
4-- Copyright : (c) Phil Freeman 2013
5-- License : MIT
6--
7-- Maintainer : Phil Freeman <paf31@cantab.net>
8-- Stability : experimental
9-- Portability :
10--
11-- |
12--
13-----------------------------------------------------------------------------
15{-# LANGUAGE DeriveDataTypeable #-}
17module Language.PureScript.Declarations where
19import Language.PureScript.Values
20import Language.PureScript.Types
21import Language.PureScript.Names
22import Language.PureScript.Kinds
24import qualified Data.Data as D
26type Precedence = Integer
28data Associativity = Infixl | Infixr deriving (Show, D.Data, D.Typeable)
30data Fixity = Fixity Associativity Precedence deriving (Show, D.Data, D.Typeable)
32data Declaration
33 = DataDeclaration ProperName [String] [(ProperName, Maybe PolyType)]
34 | TypeSynonymDeclaration ProperName [String] PolyType
35 | TypeDeclaration Ident PolyType
36 | ValueDeclaration Ident Value
37 | ExternDeclaration Ident PolyType
38 | ExternMemberDeclaration String Ident PolyType
39 | ExternDataDeclaration ProperName Kind
40 | FixityDeclaration Fixity String
41 | ModuleDeclaration ProperName [Declaration]
42 | ImportDeclaration ModulePath (Maybe [Ident])
43 deriving (Show, D.Data, D.Typeable)