-
Notifications
You must be signed in to change notification settings - Fork 244
/
Copy pathsupported-languages.nix
316 lines (316 loc) · 7.71 KB
/
supported-languages.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
{pkgs, evalPackages, ghc}:
evalPackages.writeTextFile {
name = "supported-languages";
text = ''
Haskell98
Haskell2010
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.2" >=0) ''
GHC2021
'' + pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.10" >=0) ''
GHC2024
''}Unsafe
Trustworthy
Safe
AllowAmbiguousTypes
NoAllowAmbiguousTypes
AlternativeLayoutRule
NoAlternativeLayoutRule
AlternativeLayoutRuleTransitional
NoAlternativeLayoutRuleTransitional
Arrows
NoArrows
AutoDeriveTypeable
NoAutoDeriveTypeable
BangPatterns
NoBangPatterns
BinaryLiterals
NoBinaryLiterals
CApiFFI
NoCApiFFI
CPP
NoCPP
CUSKs
NoCUSKs
ConstrainedClassMethods
NoConstrainedClassMethods
ConstraintKinds
NoConstraintKinds
DataKinds
NoDataKinds
DatatypeContexts
NoDatatypeContexts
DefaultSignatures
NoDefaultSignatures
DeriveAnyClass
NoDeriveAnyClass
DeriveDataTypeable
NoDeriveDataTypeable
DeriveFoldable
NoDeriveFoldable
DeriveFunctor
NoDeriveFunctor
DeriveGeneric
NoDeriveGeneric
DeriveLift
NoDeriveLift
DeriveTraversable
NoDeriveTraversable
DerivingStrategies
NoDerivingStrategies
DerivingVia
NoDerivingVia
DisambiguateRecordFields
NoDisambiguateRecordFields
DoAndIfThenElse
NoDoAndIfThenElse
BlockArguments
NoBlockArguments
DoRec
NoDoRec
DuplicateRecordFields
NoDuplicateRecordFields
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.2" >=0) ''
FieldSelectors
NoFieldSelectors
''}EmptyCase
NoEmptyCase
EmptyDataDecls
NoEmptyDataDecls
EmptyDataDeriving
NoEmptyDataDeriving
ExistentialQuantification
NoExistentialQuantification
ExplicitForAll
NoExplicitForAll
ExplicitNamespaces
NoExplicitNamespaces
ExtendedDefaultRules
NoExtendedDefaultRules
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.8" >=0) ''
ExtendedLiterals
NoExtendedLiterals
''}FlexibleContexts
NoFlexibleContexts
FlexibleInstances
NoFlexibleInstances
ForeignFunctionInterface
NoForeignFunctionInterface
FunctionalDependencies
NoFunctionalDependencies
GADTSyntax
NoGADTSyntax
GADTs
NoGADTs
GHCForeignImportPrim
NoGHCForeignImportPrim
GeneralizedNewtypeDeriving
NoGeneralizedNewtypeDeriving
GeneralisedNewtypeDeriving
NoGeneralisedNewtypeDeriving
ImplicitParams
NoImplicitParams
ImplicitPrelude
NoImplicitPrelude
ImportQualifiedPost
NoImportQualifiedPost
ImpredicativeTypes
NoImpredicativeTypes
IncoherentInstances
NoIncoherentInstances
TypeFamilyDependencies
NoTypeFamilyDependencies
InstanceSigs
NoInstanceSigs
ApplicativeDo
NoApplicativeDo
InterruptibleFFI
NoInterruptibleFFI
${pkgs.lib.optionalString (pkgs.stdenv.targetPlatform.isGhcjs || builtins.compareVersions ghc.version "9.8" <0) ''
JavaScriptFFI
''}NoJavaScriptFFI
KindSignatures
NoKindSignatures
LambdaCase
NoLambdaCase
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.0" >=0) ''
LexicalNegation
NoLexicalNegation
''}LiberalTypeSynonyms
NoLiberalTypeSynonyms
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.2" >=0) ''
LinearTypes
NoLinearTypes
'' + pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.10" >=0) ''
ListTuplePuns
NoListTuplePuns
''}MagicHash
NoMagicHash
MonadComprehensions
NoMonadComprehensions
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.2" <0) ''
MonadFailDesugaring
NoMonadFailDesugaring
''}MonoLocalBinds
NoMonoLocalBinds
${if (builtins.compareVersions ghc.version "9.2" >=0)
then ''
DeepSubsumption
NoDeepSubsumption
''
else ''
MonoPatBinds
NoMonoPatBinds
''
}MonomorphismRestriction
NoMonomorphismRestriction
MultiParamTypeClasses
NoMultiParamTypeClasses
MultiWayIf
NoMultiWayIf
NumericUnderscores
NoNumericUnderscores
NPlusKPatterns
NoNPlusKPatterns
NamedFieldPuns
NoNamedFieldPuns
NamedWildCards
NoNamedWildCards
NegativeLiterals
NoNegativeLiterals
HexFloatLiterals
NoHexFloatLiterals
NondecreasingIndentation
NoNondecreasingIndentation
NullaryTypeClasses
NoNullaryTypeClasses
NumDecimals
NoNumDecimals
OverlappingInstances
NoOverlappingInstances
OverloadedLabels
NoOverloadedLabels
OverloadedLists
NoOverloadedLists
OverloadedStrings
NoOverloadedStrings
PackageImports
NoPackageImports
ParallelArrays
NoParallelArrays
ParallelListComp
NoParallelListComp
PartialTypeSignatures
NoPartialTypeSignatures
PatternGuards
NoPatternGuards
PatternSignatures
NoPatternSignatures
PatternSynonyms
NoPatternSynonyms
PolyKinds
NoPolyKinds
PolymorphicComponents
NoPolymorphicComponents
QuantifiedConstraints
NoQuantifiedConstraints
PostfixOperators
NoPostfixOperators
QuasiQuotes
NoQuasiQuotes
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.2" >=0) ''
QualifiedDo
NoQualifiedDo
''}Rank2Types
NoRank2Types
RankNTypes
NoRankNTypes
RebindableSyntax
NoRebindableSyntax
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.2" >=0) ''
OverloadedRecordDot
NoOverloadedRecordDot
OverloadedRecordUpdate
NoOverloadedRecordUpdate
''}RecordPuns
NoRecordPuns
RecordWildCards
NoRecordWildCards
RecursiveDo
NoRecursiveDo
RelaxedLayout
NoRelaxedLayout
RelaxedPolyRec
NoRelaxedPolyRec
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.10" >=0) ''
RequiredTypeArguments
NoRequiredTypeArguments
''}RoleAnnotations
NoRoleAnnotations
ScopedTypeVariables
NoScopedTypeVariables
StandaloneDeriving
NoStandaloneDeriving
StarIsType
NoStarIsType
StaticPointers
NoStaticPointers
Strict
NoStrict
StrictData
NoStrictData
TemplateHaskell
NoTemplateHaskell
TemplateHaskellQuotes
NoTemplateHaskellQuotes
StandaloneKindSignatures
NoStandaloneKindSignatures
TraditionalRecordSyntax
NoTraditionalRecordSyntax
TransformListComp
NoTransformListComp
TupleSections
NoTupleSections
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.8" >=0) ''
TypeAbstractions
NoTypeAbstractions
''}TypeApplications
NoTypeApplications
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.6" >=0) ''
TypeData
NoTypeData
''}TypeInType
NoTypeInType
TypeFamilies
NoTypeFamilies
TypeOperators
NoTypeOperators
TypeSynonymInstances
NoTypeSynonymInstances
UnboxedTuples
NoUnboxedTuples
UnboxedSums
NoUnboxedSums
UndecidableInstances
NoUndecidableInstances
UndecidableSuperClasses
NoUndecidableSuperClasses
UnicodeSyntax
NoUnicodeSyntax
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.2" >=0) ''
UnliftedDatatypes
NoUnliftedDatatypes
''}UnliftedFFITypes
NoUnliftedFFITypes
UnliftedNewtypes
NoUnliftedNewtypes
ViewPatterns
NoViewPatterns
${pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.11" >=0) ''
OrPatterns
NoOrPatterns
MultilineStrings
NoMultilineStrings
NamedDefaults
NoNamedDefaults
''}'';
}