@@ -33,9 +33,10 @@ import qualified Data.Map as Map
3333import Data.Text (Text)
3434
3535import qualified AST.Binop as Binop
36−import qualified AST.Literal as Literal
3736import qualified AST.Module.Name as ModuleName
37+import qualified AST.Shader as Shader
3838import qualified AST.Type as Type
39+import qualified Data.Index as Index
3940import qualified Elm.Name as N
4041import Elm.Name (Name)
4142import qualified Reporting.Annotation as A
@@ -56,7 +57,10 @@ data Expr_
5657 | VarKernel Name Name
5758 | VarForeign ModuleName.Canonical Name
5859 | VarOperator Name ModuleName.Canonical Name
59− | Literal Literal.Literal
60+ | Chr Text
61+ | Str Text
62+ | Int Int
63+ | Float Double
6064 | List [Expr]
6165 | Negate Expr
6266 | Binop Name ModuleName.Canonical Name Expr Expr
@@ -67,14 +71,13 @@ data Expr_
6771 | LetRec [Def] Expr
6872 | LetDestruct Match Expr Expr
6973 | Case Expr [(Match, Expr)]
70− | CtorAccess Expr Int
7174 | Accessor Name
7275 | Access Expr Name
7376 | Update Expr (Map.Map Name Expr)
7477 | Record (Map.Map Name Expr)
7578 | Unit
7679 | Tuple Expr Expr (Maybe Expr)
77− | GLShader Name Name Literal.Shader
80+ | Shader Name Name Shader.Shader
7881
7982
8083
@@ -95,7 +98,7 @@ data Def =
9598
9699
97100data Args = Args [Arg] Destructors
98−data Arg = Arg Int Pattern
101+data Arg = Arg Index.ZeroBased Pattern
99102
100103data Match = Match Pattern Destructors
101104
@@ -111,22 +114,24 @@ data Pattern_
111114 | PTuple Pattern Pattern (Maybe Pattern)
112115 | PList [Pattern]
113116 | PCons Pattern Pattern
114− | PLiteral Literal.Literal
117+ | PChr Text
118+ | PStr Text
119+ | PInt Int
115120 | PCtor
116121 { _p_home :: ModuleName.Canonical
117122 , _p_type :: N.Name
118123 , _p_vars :: [N.Name]
119124 , _p_name :: N.Name
120− , _p_args :: [(Int, Type.Canonical, Pattern)] -- zero indexed
125+ , _p_args :: [(Index.ZeroBased, Type.Canonical, Pattern)]
121126 }
122127
123128
124129type Destructors = Map.Map N.Name (A.Located Destructor)
125130
126131data Destructor
127− = DIndex Int Destructor
132+ = DIndex Index.ZeroBased Destructor
128133 | DField N.Name Destructor
129− | DRoot Int
134+ | DRoot Index.ZeroBased
130135
131136
132137