1-- | Various constants which refer to things in Prim
2module Language.PureScript.Constants.Prim where
3
4import Prelude.Compat
5
6import Data.String (IsString)
7import Language.PureScript.Names
8
9-- Prim values
10
11undefined :: forall a. (IsString a) => a
12undefined = "undefined"
13
14-- Prim
15
16pattern Prim :: ModuleName
17pattern Prim = ModuleName "Prim"
18
19pattern Partial :: Qualified (ProperName 'ClassName)
20pattern Partial = Qualified (Just Prim) (ProperName "Partial")
21
22pattern Record :: Qualified (ProperName 'TypeName)
23pattern Record = Qualified (Just Prim) (ProperName "Record")
24
25pattern Type :: Qualified (ProperName 'TypeName)
26pattern Type = Qualified (Just Prim) (ProperName "Type")
27
28pattern Constraint :: Qualified (ProperName 'TypeName)
29pattern Constraint = Qualified (Just Prim) (ProperName "Constraint")
30
31pattern Function :: Qualified (ProperName 'TypeName)
32pattern Function = Qualified (Just Prim) (ProperName "Function")
33
34pattern Array :: Qualified (ProperName 'TypeName)
35pattern Array = Qualified (Just Prim) (ProperName "Array")
36
37pattern Row :: Qualified (ProperName 'TypeName)
38pattern Row = Qualified (Just Prim) (ProperName "Row")
39
40-- Prim.Boolean
41
42pattern PrimBoolean :: ModuleName
43pattern PrimBoolean = ModuleName "Prim.Boolean"
44
45-- Prim.Coerce
46
47pattern PrimCoerce :: ModuleName
48pattern PrimCoerce = ModuleName "Prim.Coerce"
49
50pattern Coercible :: Qualified (ProperName 'ClassName)
51pattern Coercible = Qualified (Just PrimCoerce) (ProperName "Coercible")
52
53-- Prim.Ordering
54
55pattern PrimOrdering :: ModuleName
56pattern PrimOrdering = ModuleName "Prim.Ordering"
57
58orderingLT :: Qualified (ProperName 'TypeName)
59orderingLT = Qualified (Just PrimOrdering) (ProperName "LT")
60
61orderingEQ :: Qualified (ProperName 'TypeName)
62orderingEQ = Qualified (Just PrimOrdering) (ProperName "EQ")
63
64orderingGT :: Qualified (ProperName 'TypeName)
65orderingGT = Qualified (Just PrimOrdering) (ProperName "GT")
66
67-- Prim.Row
68
69pattern PrimRow :: ModuleName
70pattern PrimRow = ModuleName "Prim.Row"
71
72pattern RowUnion :: Qualified (ProperName 'ClassName)
73pattern RowUnion = Qualified (Just PrimRow) (ProperName "Union")
74
75pattern RowNub :: Qualified (ProperName 'ClassName)
76pattern RowNub = Qualified (Just PrimRow) (ProperName "Nub")
77
78pattern RowCons :: Qualified (ProperName 'ClassName)
79pattern RowCons = Qualified (Just PrimRow) (ProperName "Cons")
80
81pattern RowLacks :: Qualified (ProperName 'ClassName)
82pattern RowLacks = Qualified (Just PrimRow) (ProperName "Lacks")
83
84-- Prim.RowList
85
86pattern PrimRowList :: ModuleName
87pattern PrimRowList = ModuleName "Prim.RowList"
88
89pattern RowToList :: Qualified (ProperName 'ClassName)
90pattern RowToList = Qualified (Just PrimRowList) (ProperName "RowToList")
91
92pattern RowListNil :: Qualified (ProperName 'TypeName)
93pattern RowListNil = Qualified (Just PrimRowList) (ProperName "Nil")
94
95pattern RowListCons :: Qualified (ProperName 'TypeName)
96pattern RowListCons = Qualified (Just PrimRowList) (ProperName "Cons")
97
98-- Prim.Symbol
99
100pattern PrimSymbol :: ModuleName
101pattern PrimSymbol = ModuleName "Prim.Symbol"
102
103pattern SymbolCompare :: Qualified (ProperName 'ClassName)
104pattern SymbolCompare = Qualified (Just PrimSymbol) (ProperName "Compare")
105
106pattern SymbolAppend :: Qualified (ProperName 'ClassName)
107pattern SymbolAppend = Qualified (Just PrimSymbol) (ProperName "Append")
108
109pattern SymbolCons :: Qualified (ProperName 'ClassName)
110pattern SymbolCons = Qualified (Just PrimSymbol) (ProperName "Cons")
111
112-- Prim.TypeError
113
114pattern PrimTypeError :: ModuleName
115pattern PrimTypeError = ModuleName "Prim.TypeError"
116
117pattern Fail :: Qualified (ProperName 'ClassName)
118pattern Fail = Qualified (Just PrimTypeError) (ProperName "Fail")
119
120pattern Warn :: Qualified (ProperName 'ClassName)
121pattern Warn = Qualified (Just PrimTypeError) (ProperName "Warn")
122
123primModules :: [ModuleName]
124primModules = [Prim, PrimBoolean, PrimCoerce, PrimOrdering, PrimRow, PrimRowList, PrimSymbol, PrimTypeError]
125
126typ :: forall a. (IsString a) => a
127typ = "Type"
128
129kindOrdering :: forall a. (IsString a) => a
130kindOrdering = "Ordering"
131
132kindRowList :: forall a. (IsString a) => a
133kindRowList = "RowList"
134
135symbol :: forall a. (IsString a) => a
136symbol = "Symbol"
137
138doc :: forall a. (IsString a) => a
139doc = "Doc"
140
141row :: forall a. (IsString a) => a
142row = "Row"
143
144constraint :: forall a. (IsString a) => a
145constraint = "Constraint"
146
147-- Modules
148
149prim :: forall a. (IsString a) => a
150prim = "Prim"
151
152moduleBoolean :: forall a. (IsString a) => a
153moduleBoolean = "Boolean"
154
155moduleCoerce :: forall a. (IsString a) => a
156moduleCoerce = "Coerce"
157
158moduleOrdering :: forall a. (IsString a) => a
159moduleOrdering = "Ordering"
160
161moduleRow :: forall a. (IsString a) => a
162moduleRow = "Row"
163
164moduleRowList :: forall a. (IsString a) => a
165moduleRowList = "RowList"
166
167moduleSymbol :: forall a. (IsString a) => a
168moduleSymbol = "Symbol"
169
170typeError :: forall a. (IsString a) => a
171typeError = "TypeError"
172