on e55ba2b help sign in
elk/src/AST/Pattern.hs
54 lines 915 B history raw
1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE OverloadedStrings #-}
3module AST.Pattern
4 ( Raw
5 , Raw_(..)
6 , Canonical
7 , Canonical_(..)
8 )
9 where
12import qualified AST.Literal as Literal
13import qualified AST.Module.Name as ModuleName
14import qualified Elm.Name as N
15import qualified Reporting.Annotation as A
16import qualified Reporting.Region as R
20-- RAW
23type Raw = A.Located Raw_
26data Raw_
27 = RCtor R.Region (Maybe N.Name) N.Name [Raw]
28 | RRecord [A.Located N.Name]
29 | RUnit
30 | RTuple Raw Raw [Raw]
31 | RList [Raw]
32 | RCons Raw Raw
33 | RAlias Raw (A.Located N.Name)
34 | RVar N.Name
35 | RAnything
36 | RLiteral Literal.Literal
40-- CANONICAL
43type Canonical = A.Located Canonical_
46data Canonical_
47 = Ctor ModuleName.Canonical N.Name [Canonical]
48 | Record [N.Name]
49 | Unit
50 | Tuple Canonical Canonical [Canonical]
51 | Alias Canonical N.Name
52 | Var N.Name
53 | Anything
54 | Literal Literal.Literal