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