1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE OverloadedStrings #-}
4 ( Expr, Expr_(..), VarType(..)
6 , Pattern, Pattern_(..)
28import Data.Name (Name)
29import qualified Data.Utf8 as Utf8
30import Data.Word (Word8)
31import Foreign.Ptr (Ptr)
33import qualified AST.Utils.Binop as Binop
34import qualified AST.Utils.Shader as Shader
35import qualified Reporting.Annotation as A
42type Expr = A.Located Expr_
49 | Float (Utf8.Under256 Float)
51 | VarQual VarType Name Name
55 | Binops [(Expr, A.Located Name)] Expr
56 | Lambda [Pattern] Expr
58 | If [(Expr, Expr)] Expr
59 | Let [A.Located Def] Expr
60 | Case Expr [(Pattern, Expr)]
62 | Access Expr (A.Located Name)
63 | Update (A.Located Name) [(A.Located Name, Expr)]
64 | Record [(A.Located Name, Expr)]
66 | Tuple Expr Expr [Expr]
67 | Shader Shader.Source Shader.Types
70data VarType = LowVar | CapVar
78 = Define (A.Located Name) [Pattern] Expr (Maybe Type)
79 | Destruct Pattern Expr
86type Pattern = A.Located Pattern_
92 | PRecord [A.Located Name]
93 | PAlias Pattern (A.Located Name)
95 | PTuple Pattern Pattern [Pattern]
96 | PCtor A.Region Name [Pattern]
97 | PCtorQual A.Region Name Name [Pattern]
99 | PCons Pattern Pattern
116 | TType A.Region Name [Type]
117 | TTypeQual A.Region Name Name [Type]
118 | TRecord [(A.Located Name, Type)] (Maybe (A.Located Name))
120 | TTuple Type Type [Type]
129 { _name :: Maybe (A.Located Name)
130 , _exports :: A.Located Exposing
131 , _docs :: Maybe Docs
132 , _imports :: [Import]
133 , _values :: [A.Located Value]
134 , _unions :: [A.Located Union]
135 , _aliases :: [A.Located Alias]
136 , _binops :: [A.Located Infix]
137 , _effects :: Effects
141getName :: Module -> Name
142getName (Module maybeName _ _ _ _ _ _ _ _) =
144 Just (A.At _ name) ->
151{-# NOINLINE defaultModuleName #-}
152defaultModuleName :: Name
157getImportName :: Import -> Name
158getImportName (Import (A.At _ name) _ _) =
164 { _import :: A.Located Name
165 , _alias :: Maybe Name
166 , _exposing :: Exposing
170data Value = Value (A.Located Name) [Pattern] Expr (Maybe Type)
171data Union = Union (A.Located Name) [A.Located Name] [(A.Located Name, [Type])]
172data Alias = Alias (A.Located Name) [A.Located Name] Type
173data Infix = Infix Name Binop.Associativity Binop.Precedence Name
174data Port = Port (A.Located Name) Type
180 | Manager A.Region Manager
184 = Cmd (A.Located Name)
185 | Sub (A.Located Name)
186 | Fx (A.Located Name) (A.Located Name)
191 { _overview :: Comment
192 , _comments :: [(Name, Comment)]
198 { _start :: Ptr Word8
209 | Explicit [A.Located Exposed]
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list