summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgaryb <>2018-05-21 23:08:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2018-05-21 23:08:00 (GMT)
commit25a279f1e1a547125036fd4b81f0549bf37f5339 (patch)
tree275459e96260851ddd35286594daebedf769bfb1
parentb725646839c21c8b8d698c862b6f3b7e88acaa8e (diff)
version 0.12.00.12.0
-rw-r--r--CONTRIBUTING.md16
-rw-r--r--CONTRIBUTORS.md12
-rw-r--r--INSTALL.md23
-rw-r--r--README.md1
-rw-r--r--app/Command/Compile.hs57
-rw-r--r--app/Command/Docs.hs46
-rw-r--r--app/Command/Docs/Ctags.hs13
-rw-r--r--app/Command/Docs/Etags.hs13
-rw-r--r--app/Command/Docs/Tags.hs21
-rw-r--r--app/Command/REPL.hs13
-rw-r--r--app/Main.hs18
-rw-r--r--examples/docs/src/TypeLevelString.purs7
-rw-r--r--examples/failing/1310.purs18
-rw-r--r--examples/failing/2567.purs5
-rw-r--r--examples/failing/ArgLengthMismatch.purs7
-rw-r--r--examples/failing/ArrayType.purs14
-rw-r--r--examples/failing/Eff.purs13
-rw-r--r--examples/failing/ExportExplicit.purs8
-rw-r--r--examples/failing/ExportExplicit1.purs12
-rw-r--r--examples/failing/ExportExplicit1/M1.purs3
-rw-r--r--examples/failing/ExportExplicit2.purs8
-rw-r--r--examples/failing/ExportExplicit3.purs10
-rw-r--r--examples/failing/ExportExplicit3/M1.purs4
-rw-r--r--examples/failing/ImportExplicit.purs4
-rw-r--r--examples/failing/ImportExplicit/M1.purs3
-rw-r--r--examples/failing/ImportExplicit2.purs4
-rw-r--r--examples/failing/ImportExplicit2/M1.purs3
-rw-r--r--examples/failing/ImportHidingModule.purs4
-rw-r--r--examples/failing/ImportHidingModule/A.purs2
-rw-r--r--examples/failing/ImportHidingModule/B.purs3
-rw-r--r--examples/failing/ImportModule.purs4
-rw-r--r--examples/failing/ImportModule/M2.purs3
-rw-r--r--examples/failing/InstanceExport.purs7
-rw-r--r--examples/failing/InstanceExport/InstanceExport.purs11
-rw-r--r--examples/failing/MultipleTypeOpFixities.purs9
-rw-r--r--examples/failing/MultipleValueOpFixities.purs9
-rw-r--r--examples/failing/NonWildcardNewtypeInstance.purs8
-rw-r--r--examples/failing/OrphanInstance.purs7
-rw-r--r--examples/failing/OrphanInstance/Class.purs4
-rw-r--r--examples/failing/OrphanInstanceNullary.purs4
-rw-r--r--examples/failing/OrphanInstanceNullary/Lib.purs2
-rw-r--r--examples/failing/OrphanTypeDecl.purs4
-rw-r--r--examples/failing/ProgrammableTypeErrors.purs16
-rw-r--r--examples/failing/ProgrammableTypeErrorsTypeString.purs18
-rw-r--r--examples/failing/RequiredHiddenType.purs9
-rw-r--r--examples/failing/RowConstructors1.purs9
-rw-r--r--examples/failing/RowConstructors2.purs9
-rw-r--r--examples/failing/RowConstructors3.purs9
-rw-r--r--examples/failing/SkolemEscape2.purs10
-rw-r--r--examples/failing/Superclasses5.purs26
-rw-r--r--examples/failing/TypedBinders.purs10
-rw-r--r--examples/failing/TypedBinders2.purs9
-rw-r--r--examples/failing/TypedBinders3.purs13
-rw-r--r--examples/failing/TypedHole.purs9
-rw-r--r--examples/failing/UnderscoreModuleName.purs6
-rw-r--r--examples/passing/1110.purs26
-rw-r--r--examples/passing/1185.purs15
-rw-r--r--examples/passing/1335.purs14
-rw-r--r--examples/passing/1570.purs8
-rw-r--r--examples/passing/1664.purs16
-rw-r--r--examples/passing/1697.purs25
-rw-r--r--examples/passing/1807.purs14
-rw-r--r--examples/passing/1881.purs19
-rw-r--r--examples/passing/1991.purs22
-rw-r--r--examples/passing/2018.purs12
-rw-r--r--examples/passing/2049.purs14
-rw-r--r--examples/passing/2136.purs9
-rw-r--r--examples/passing/2138.purs7
-rw-r--r--examples/passing/2172.purs10
-rw-r--r--examples/passing/2197-1.purs12
-rw-r--r--examples/passing/2197-2.purs11
-rw-r--r--examples/passing/2252.purs15
-rw-r--r--examples/passing/2288.purs19
-rw-r--r--examples/passing/2378.purs9
-rw-r--r--examples/passing/2438.purs8
-rw-r--r--examples/passing/2609.purs12
-rw-r--r--examples/passing/2616.purs13
-rw-r--r--examples/passing/2626.purs13
-rw-r--r--examples/passing/2663.purs9
-rw-r--r--examples/passing/2689.purs36
-rw-r--r--examples/passing/2695.purs13
-rw-r--r--examples/passing/2756.purs20
-rw-r--r--examples/passing/2787.purs8
-rw-r--r--examples/passing/2795.purs14
-rw-r--r--examples/passing/2806.purs14
-rw-r--r--examples/passing/2958.purs14
-rw-r--r--examples/passing/2972.purs13
-rw-r--r--examples/passing/3125.purs16
-rw-r--r--examples/passing/652.purs18
-rw-r--r--examples/passing/810.purs14
-rw-r--r--examples/passing/862.purs8
-rw-r--r--examples/passing/922.purs20
-rw-r--r--examples/passing/Applicative.purs16
-rw-r--r--examples/passing/ArrayType.purs12
-rw-r--r--examples/passing/Auto.purs16
-rw-r--r--examples/passing/AutoPrelude.purs11
-rw-r--r--examples/passing/AutoPrelude2.purs10
-rw-r--r--examples/passing/BindersInFunctions.purs16
-rw-r--r--examples/passing/BindingGroups.purs11
-rw-r--r--examples/passing/BlockString.purs9
-rw-r--r--examples/passing/CaseInDo.purs21
-rw-r--r--examples/passing/CaseInputWildcard.purs18
-rw-r--r--examples/passing/CaseMultipleExpressions.purs21
-rw-r--r--examples/passing/CaseStatement.purs22
-rw-r--r--examples/passing/CheckFunction.purs8
-rw-r--r--examples/passing/CheckSynonymBug.purs13
-rw-r--r--examples/passing/CheckTypeClass.purs18
-rw-r--r--examples/passing/Church.purs18
-rw-r--r--examples/passing/ClassRefSyntax.purs9
-rw-r--r--examples/passing/Collatz.purs21
-rw-r--r--examples/passing/Comparisons.purs15
-rw-r--r--examples/passing/Conditional.purs9
-rw-r--r--examples/passing/Console.purs15
-rw-r--r--examples/passing/ConstraintInference.purs10
-rw-r--r--examples/passing/ConstraintParens.purs12
-rw-r--r--examples/passing/ConstraintParsingIssue.purs9
-rw-r--r--examples/passing/ContextSimplification.purs15
-rw-r--r--examples/passing/DataAndType.purs10
-rw-r--r--examples/passing/DctorName.purs33
-rw-r--r--examples/passing/DctorOperatorAlias.purs34
-rw-r--r--examples/passing/DeepArrayBinder.purs17
-rw-r--r--examples/passing/DeepCase.purs15
-rw-r--r--examples/passing/DeriveNewtype.purs29
-rw-r--r--examples/passing/DeriveWithNestedSynonyms.purs29
-rw-r--r--examples/passing/Deriving.purs36
-rw-r--r--examples/passing/DerivingFunctor.purs28
-rw-r--r--examples/passing/Do.purs68
-rw-r--r--examples/passing/Dollar.purs16
-rw-r--r--examples/passing/DuplicateProperties.purs27
-rw-r--r--examples/passing/Eff.purs26
-rw-r--r--examples/passing/EmptyDataDecls.purs20
-rw-r--r--examples/passing/EmptyRow.purs11
-rw-r--r--examples/passing/EmptyTypeClass.purs11
-rw-r--r--examples/passing/EntailsKindedType.purs11
-rw-r--r--examples/passing/EqOrd.purs18
-rw-r--r--examples/passing/ExplicitImportReExport.purs11
-rw-r--r--examples/passing/ExplicitImportReExport/Bar.purs3
-rw-r--r--examples/passing/ExplicitImportReExport/Foo.purs4
-rw-r--r--examples/passing/ExplicitOperatorSections.purs15
-rw-r--r--examples/passing/ExportExplicit.purs10
-rw-r--r--examples/passing/ExportExplicit/M1.purs10
-rw-r--r--examples/passing/ExportExplicit2.purs8
-rw-r--r--examples/passing/ExportExplicit2/M1.purs7
-rw-r--r--examples/passing/ExportedInstanceDeclarations.purs45
-rw-r--r--examples/passing/ExtendedInfixOperators.purs17
-rw-r--r--examples/passing/Fib.purs18
-rw-r--r--examples/passing/FieldConsPuns.purs13
-rw-r--r--examples/passing/FieldPuns.purs10
-rw-r--r--examples/passing/FinalTagless.purs25
-rw-r--r--examples/passing/ForeignKind.purs10
-rw-r--r--examples/passing/FunWithFunDeps.purs41
-rw-r--r--examples/passing/FunctionScope.purs13
-rw-r--r--examples/passing/FunctionalDependencies.purs21
-rw-r--r--examples/passing/Functions.purs12
-rw-r--r--examples/passing/Functions2.purs13
-rw-r--r--examples/passing/Generalization1.purs11
-rw-r--r--examples/passing/GenericsRep.purs63
-rw-r--r--examples/passing/Guards.purs64
-rw-r--r--examples/passing/HasOwnProperty.purs5
-rw-r--r--examples/passing/HoistError.purs12
-rw-r--r--examples/passing/IfThenElseMaybe.purs12
-rw-r--r--examples/passing/IfWildcard.purs19
-rw-r--r--examples/passing/ImplicitEmptyImport.purs9
-rw-r--r--examples/passing/Import.purs6
-rw-r--r--examples/passing/Import/M1.purs8
-rw-r--r--examples/passing/Import/M2.purs6
-rw-r--r--examples/passing/ImportExplicit.purs10
-rw-r--r--examples/passing/ImportExplicit/M1.purs4
-rw-r--r--examples/passing/ImportHiding.purs19
-rw-r--r--examples/passing/ImportQualified.purs8
-rw-r--r--examples/passing/ImportQualified/M1.purs3
-rw-r--r--examples/passing/InferRecFunWithConstrainedArgument.purs11
-rw-r--r--examples/passing/InstanceBeforeClass.purs12
-rw-r--r--examples/passing/InstanceSigs.purs12
-rw-r--r--examples/passing/InstanceSigsGeneral.purs12
-rw-r--r--examples/passing/IntAndChar.purs19
-rw-r--r--examples/passing/JSReserved.purs13
-rw-r--r--examples/passing/KindedType.purs34
-rw-r--r--examples/passing/LargeSumType.purs35
-rw-r--r--examples/passing/Let.purs58
-rw-r--r--examples/passing/Let2.purs20
-rw-r--r--examples/passing/LetInInstance.purs15
-rw-r--r--examples/passing/LetPattern.purs196
-rw-r--r--examples/passing/LiberalTypeSynonyms.purs22
-rw-r--r--examples/passing/MPTCs.purs21
-rw-r--r--examples/passing/Match.purs10
-rw-r--r--examples/passing/Module.purs7
-rw-r--r--examples/passing/ModuleDeps.purs6
-rw-r--r--examples/passing/ModuleDeps/M1.purs5
-rw-r--r--examples/passing/ModuleDeps/M2.purs5
-rw-r--r--examples/passing/ModuleDeps/M3.purs3
-rw-r--r--examples/passing/ModuleExport.purs8
-rw-r--r--examples/passing/ModuleExportDupes.purs11
-rw-r--r--examples/passing/ModuleExportExcluded.purs11
-rw-r--r--examples/passing/ModuleExportQualified.purs9
-rw-r--r--examples/passing/ModuleExportSelf.purs11
-rw-r--r--examples/passing/ModuleExportSelf/A.purs5
-rw-r--r--examples/passing/Monad.purs32
-rw-r--r--examples/passing/MonadState.purs63
-rw-r--r--examples/passing/MultiArgFunctions.purs27
-rw-r--r--examples/passing/MutRec.purs20
-rw-r--r--examples/passing/MutRec2.purs20
-rw-r--r--examples/passing/MutRec3.purs20
-rw-r--r--examples/passing/NakedConstraint.purs10
-rw-r--r--examples/passing/NamedPatterns.purs10
-rw-r--r--examples/passing/NegativeBinder.purs10
-rw-r--r--examples/passing/NegativeIntInRange.purs9
-rw-r--r--examples/passing/Nested.purs10
-rw-r--r--examples/passing/NestedRecordUpdate.purs24
-rw-r--r--examples/passing/NestedRecordUpdateWildcards.purs20
-rw-r--r--examples/passing/NestedTypeSynonyms.purs12
-rw-r--r--examples/passing/NestedWhere.purs13
-rw-r--r--examples/passing/Newtype.purs23
-rw-r--r--examples/passing/NewtypeClass.purs40
-rw-r--r--examples/passing/NewtypeEff.purs29
-rw-r--r--examples/passing/NewtypeInstance.purs57
-rw-r--r--examples/passing/NewtypeWithRecordUpdate.purs16
-rw-r--r--examples/passing/NonConflictingExports.purs10
-rw-r--r--examples/passing/NonOrphanInstanceFunDepExtra.purs8
-rw-r--r--examples/passing/NonOrphanInstanceMulti.purs7
-rw-r--r--examples/passing/NumberLiterals.purs39
-rw-r--r--examples/passing/ObjectGetter.purs14
-rw-r--r--examples/passing/ObjectSynonym.purs16
-rw-r--r--examples/passing/ObjectUpdate.purs23
-rw-r--r--examples/passing/ObjectUpdate2.purs18
-rw-r--r--examples/passing/ObjectUpdater.purs26
-rw-r--r--examples/passing/ObjectWildcards.purs20
-rw-r--r--examples/passing/Objects.purs36
-rw-r--r--examples/passing/OneConstructor.purs10
-rw-r--r--examples/passing/OperatorAlias.purs11
-rw-r--r--examples/passing/OperatorAliasElsewhere.purs9
-rw-r--r--examples/passing/OperatorAliasElsewhere/Def.purs4
-rw-r--r--examples/passing/OperatorAssociativity.purs25
-rw-r--r--examples/passing/OperatorInlining.purs48
-rw-r--r--examples/passing/OperatorSections.purs18
-rw-r--r--examples/passing/Operators.purs91
-rw-r--r--examples/passing/OptimizerBug.purs10
-rw-r--r--examples/passing/OptionalQualified.purs12
-rw-r--r--examples/passing/OverlappingInstances.purs17
-rw-r--r--examples/passing/OverlappingInstances2.purs27
-rw-r--r--examples/passing/OverlappingInstances3.purs20
-rw-r--r--examples/passing/ParensInType.purs20
-rw-r--r--examples/passing/ParensInTypedBinder.purs20
-rw-r--r--examples/passing/PartialFunction.purs11
-rw-r--r--examples/passing/Patterns.purs23
-rw-r--r--examples/passing/PendingConflictingImports.purs8
-rw-r--r--examples/passing/PendingConflictingImports2.purs10
-rw-r--r--examples/passing/Person.purs12
-rw-r--r--examples/passing/PolyLabels.purs65
-rw-r--r--examples/passing/PrimedTypeName.purs20
-rw-r--r--examples/passing/QualifiedNames.purs11
-rw-r--r--examples/passing/QualifiedNames/Either.purs5
-rw-r--r--examples/passing/QualifiedQualifiedImports.purs6
-rw-r--r--examples/passing/Rank2Data.purs30
-rw-r--r--examples/passing/Rank2Object.purs11
-rw-r--r--examples/passing/Rank2TypeSynonym.purs17
-rw-r--r--examples/passing/Rank2Types.purs12
-rw-r--r--examples/passing/ReExportQualified.purs7
-rw-r--r--examples/passing/RebindableSyntax.purs43
-rw-r--r--examples/passing/Recursion.purs11
-rw-r--r--examples/passing/RedefinedFixity.purs6
-rw-r--r--examples/passing/RedefinedFixity/M1.purs6
-rw-r--r--examples/passing/RedefinedFixity/M2.purs5
-rw-r--r--examples/passing/RedefinedFixity/M3.purs6
-rw-r--r--examples/passing/ReservedWords.purs19
-rw-r--r--examples/passing/ResolvableScopeConflict.purs13
-rw-r--r--examples/passing/ResolvableScopeConflict2.purs15
-rw-r--r--examples/passing/ResolvableScopeConflict3.purs9
-rw-r--r--examples/passing/RowConstructors.purs43
-rw-r--r--examples/passing/RowInInstanceHeadDetermined.purs40
-rw-r--r--examples/passing/RowPolyInstanceContext.purs23
-rw-r--r--examples/passing/RowUnion.purs68
-rw-r--r--examples/passing/RowsInInstanceContext.purs25
-rw-r--r--examples/passing/RuntimeScopeIssue.purs22
-rw-r--r--examples/passing/ScopedTypeVariables.purs37
-rw-r--r--examples/passing/Sequence.purs16
-rw-r--r--examples/passing/SequenceDesugared.purs38
-rw-r--r--examples/passing/ShadowedModuleName.purs8
-rw-r--r--examples/passing/ShadowedName.purs11
-rw-r--r--examples/passing/ShadowedRename.purs14
-rw-r--r--examples/passing/ShadowedTCO.purs21
-rw-r--r--examples/passing/ShadowedTCOLet.purs15
-rw-r--r--examples/passing/SignedNumericLiterals.purs18
-rw-r--r--examples/passing/SolvingAppendSymbol.purs32
-rw-r--r--examples/passing/SolvingCompareSymbol.purs30
-rw-r--r--examples/passing/SolvingIsSymbol.purs13
-rw-r--r--examples/passing/Stream.purs26
-rw-r--r--examples/passing/StringEdgeCases/Records.purs66
-rw-r--r--examples/passing/StringEdgeCases/Symbols.purs30
-rw-r--r--examples/passing/StringEscapes.purs26
-rw-r--r--examples/passing/Superclasses1.purs23
-rw-r--r--examples/passing/Superclasses3.purs41
-rw-r--r--examples/passing/TCO.purs28
-rw-r--r--examples/passing/TCOCase.purs13
-rw-r--r--examples/passing/TailCall.purs20
-rw-r--r--examples/passing/Tick.purs8
-rw-r--r--examples/passing/TopLevelCase.purs19
-rw-r--r--examples/passing/TransitiveImport.purs9
-rw-r--r--examples/passing/TypeClassMemberOrderChange.purs16
-rw-r--r--examples/passing/TypeClasses.purs71
-rw-r--r--examples/passing/TypeClassesInOrder.purs12
-rw-r--r--examples/passing/TypeClassesWithOverlappingTypeVariables.purs12
-rw-r--r--examples/passing/TypeDecl.purs13
-rw-r--r--examples/passing/TypeOperators.purs20
-rw-r--r--examples/passing/TypeSynonymInData.purs12
-rw-r--r--examples/passing/TypeSynonyms.purs28
-rw-r--r--examples/passing/TypeWildcards.purs16
-rw-r--r--examples/passing/TypeWildcardsRecordExtension.purs9
-rw-r--r--examples/passing/TypeWithoutParens.purs12
-rw-r--r--examples/passing/TypedBinders.purs68
-rw-r--r--examples/passing/TypedWhere.purs18
-rw-r--r--examples/passing/UTF8Sourcefile.purs8
-rw-r--r--examples/passing/UnderscoreIdent.purs13
-rw-r--r--examples/passing/UnicodeIdentifier.purs7
-rw-r--r--examples/passing/UnicodeOperators.purs22
-rw-r--r--examples/passing/UnicodeType.purs22
-rw-r--r--examples/passing/UnifyInTypeInstanceLookup.purs25
-rw-r--r--examples/passing/Unit.purs8
-rw-r--r--examples/passing/UnknownInTypeClassLookup.purs15
-rw-r--r--examples/passing/UnsafeCoerce.purs16
-rw-r--r--examples/passing/UntupledConstraints.purs17
-rw-r--r--examples/passing/UsableTypeClassMethods.purs35
-rw-r--r--examples/passing/Where.purs49
-rw-r--r--examples/passing/WildcardInInstance.purs23
-rw-r--r--examples/passing/WildcardType.purs12
-rw-r--r--examples/passing/iota.purs11
-rw-r--r--examples/passing/s.purs8
-rw-r--r--examples/warning/2383.purs12
-rw-r--r--examples/warning/2411.purs15
-rw-r--r--examples/warning/2542.purs16
-rw-r--r--examples/warning/CustomWarning.purs9
-rw-r--r--examples/warning/CustomWarning2.purs11
-rw-r--r--examples/warning/CustomWarning3.purs13
-rw-r--r--examples/warning/DuplicateImport.purs10
-rw-r--r--examples/warning/DuplicateSelectiveImport.purs10
-rw-r--r--examples/warning/HidingImport.purs9
-rw-r--r--examples/warning/ImplicitImport.purs9
-rw-r--r--examples/warning/ImplicitQualifiedImport.purs11
-rw-r--r--examples/warning/NewtypeInstance2.purs16
-rw-r--r--examples/warning/NewtypeInstance3.purs22
-rw-r--r--examples/warning/NewtypeInstance4.purs24
-rw-r--r--examples/warning/OverlappingInstances.purs17
-rw-r--r--examples/warning/UnusedExplicitImport.purs8
-rw-r--r--examples/warning/UnusedExplicitImportTypeOp.purs9
-rw-r--r--examples/warning/UnusedExplicitImportValOp.purs8
-rw-r--r--examples/warning/UnusedImport.purs14
-rw-r--r--purescript.cabal1366
-rw-r--r--src/Language/PureScript/AST/Binders.hs128
-rw-r--r--src/Language/PureScript/AST/Declarations.hs68
-rw-r--r--src/Language/PureScript/AST/Exported.hs2
-rw-r--r--src/Language/PureScript/AST/SourcePos.hs3
-rw-r--r--src/Language/PureScript/AST/Traversals.hs185
-rw-r--r--src/Language/PureScript/Bundle.hs11
-rw-r--r--src/Language/PureScript/CodeGen/JS.hs46
-rw-r--r--src/Language/PureScript/CodeGen/JS/Common.hs1
-rw-r--r--src/Language/PureScript/Constants.hs194
-rw-r--r--src/Language/PureScript/CoreFn.hs1
-rw-r--r--src/Language/PureScript/CoreFn/Desugar.hs43
-rw-r--r--src/Language/PureScript/CoreFn/FromJSON.hs293
-rw-r--r--src/Language/PureScript/CoreFn/Meta.hs7
-rw-r--r--src/Language/PureScript/CoreFn/Module.hs13
-rw-r--r--src/Language/PureScript/CoreFn/Optimizer.hs47
-rw-r--r--src/Language/PureScript/CoreFn/ToJSON.hs302
-rw-r--r--src/Language/PureScript/CoreImp/Optimizer.hs5
-rw-r--r--src/Language/PureScript/CoreImp/Optimizer/Inliner.hs56
-rw-r--r--src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs31
-rw-r--r--src/Language/PureScript/CoreImp/Optimizer/Unused.hs7
-rw-r--r--src/Language/PureScript/Docs.hs1
-rw-r--r--src/Language/PureScript/Docs/Convert.hs52
-rw-r--r--src/Language/PureScript/Docs/Convert/ReExports.hs19
-rw-r--r--src/Language/PureScript/Docs/Convert/Single.hs4
-rw-r--r--src/Language/PureScript/Docs/ParseInPackage.hs11
-rw-r--r--src/Language/PureScript/Docs/Prim.hs297
-rw-r--r--src/Language/PureScript/Docs/Render.hs4
-rw-r--r--src/Language/PureScript/Docs/Tags.hs53
-rw-r--r--src/Language/PureScript/Docs/Types.hs14
-rw-r--r--src/Language/PureScript/Environment.hs285
-rw-r--r--src/Language/PureScript/Errors.hs93
-rw-r--r--src/Language/PureScript/Errors/JSON.hs12
-rw-r--r--src/Language/PureScript/Externs.hs8
-rw-r--r--src/Language/PureScript/Ide.hs53
-rw-r--r--src/Language/PureScript/Ide/CaseSplit.hs2
-rw-r--r--src/Language/PureScript/Ide/Command.hs22
-rw-r--r--src/Language/PureScript/Ide/Imports.hs59
-rw-r--r--src/Language/PureScript/Ide/Prim.hs59
-rw-r--r--src/Language/PureScript/Ide/Pursuit.hs69
-rw-r--r--src/Language/PureScript/Ide/Rebuild.hs2
-rw-r--r--src/Language/PureScript/Ide/SourceFile.hs6
-rw-r--r--src/Language/PureScript/Ide/State.hs9
-rw-r--r--src/Language/PureScript/Ide/Types.hs59
-rw-r--r--src/Language/PureScript/Ide/Usage.hs161
-rw-r--r--src/Language/PureScript/Ide/Util.hs27
-rw-r--r--src/Language/PureScript/Interactive.hs37
-rw-r--r--src/Language/PureScript/Interactive/Completion.hs147
-rw-r--r--src/Language/PureScript/Interactive/Module.hs27
-rw-r--r--src/Language/PureScript/Interactive/Parser.hs27
-rw-r--r--src/Language/PureScript/Interactive/Types.hs116
-rw-r--r--src/Language/PureScript/Kinds.hs4
-rw-r--r--src/Language/PureScript/Linter.hs55
-rw-r--r--src/Language/PureScript/Linter/Exhaustive.hs43
-rw-r--r--src/Language/PureScript/Linter/Imports.hs53
-rw-r--r--src/Language/PureScript/Make.hs406
-rw-r--r--src/Language/PureScript/Make/Actions.hs281
-rw-r--r--src/Language/PureScript/Make/BuildPlan.hs160
-rw-r--r--src/Language/PureScript/Make/Monad.hs54
-rw-r--r--src/Language/PureScript/ModuleDependencies.hs9
-rw-r--r--src/Language/PureScript/Names.hs18
-rw-r--r--src/Language/PureScript/Options.hs12
-rw-r--r--src/Language/PureScript/Parser/Common.hs5
-rw-r--r--src/Language/PureScript/Parser/Declarations.hs166
-rw-r--r--src/Language/PureScript/Parser/Lexer.hs1
-rw-r--r--src/Language/PureScript/Pretty/Values.hs35
-rw-r--r--src/Language/PureScript/Publish.hs2
-rw-r--r--src/Language/PureScript/Renamer.hs7
-rw-r--r--src/Language/PureScript/Sugar.hs5
-rw-r--r--src/Language/PureScript/Sugar/AdoNotation.hs67
-rw-r--r--src/Language/PureScript/Sugar/BindingGroups.hs18
-rw-r--r--src/Language/PureScript/Sugar/CaseDeclarations.hs40
-rw-r--r--src/Language/PureScript/Sugar/DoNotation.hs14
-rw-r--r--src/Language/PureScript/Sugar/LetPattern.hs44
-rw-r--r--src/Language/PureScript/Sugar/Names.hs39
-rw-r--r--src/Language/PureScript/Sugar/Names/Env.hs147
-rw-r--r--src/Language/PureScript/Sugar/Names/Exports.hs67
-rw-r--r--src/Language/PureScript/Sugar/Names/Imports.hs29
-rw-r--r--src/Language/PureScript/Sugar/ObjectWildcards.hs20
-rw-r--r--src/Language/PureScript/Sugar/Operators.hs125
-rw-r--r--src/Language/PureScript/Sugar/Operators/Binders.hs17
-rw-r--r--src/Language/PureScript/Sugar/Operators/Common.hs107
-rw-r--r--src/Language/PureScript/Sugar/Operators/Expr.hs18
-rw-r--r--src/Language/PureScript/Sugar/Operators/Types.hs19
-rw-r--r--src/Language/PureScript/Sugar/TypeClasses.hs30
-rw-r--r--[-rwxr-xr-x]src/Language/PureScript/Sugar/TypeClasses/Deriving.hs525
-rw-r--r--src/Language/PureScript/Sugar/TypeDeclarations.hs6
-rw-r--r--src/Language/PureScript/TypeChecker.hs205
-rw-r--r--src/Language/PureScript/TypeChecker/Entailment.hs340
-rw-r--r--src/Language/PureScript/TypeChecker/Monad.hs10
-rw-r--r--src/Language/PureScript/TypeChecker/Skolems.hs2
-rw-r--r--src/Language/PureScript/TypeChecker/TypeSearch.hs2
-rw-r--r--src/Language/PureScript/TypeChecker/Types.hs107
-rw-r--r--src/Language/PureScript/TypeClassDictionaries.hs6
-rw-r--r--stack.yaml4
-rw-r--r--tests/Language/PureScript/Ide/ImportsSpec.hs18
-rw-r--r--tests/Language/PureScript/Ide/StateSpec.hs4
-rw-r--r--tests/Language/PureScript/Ide/Test.hs10
-rw-r--r--tests/Language/PureScript/Ide/UsageSpec.hs82
-rw-r--r--tests/Main.hs33
-rw-r--r--tests/TestCompiler.hs33
-rw-r--r--tests/TestCoreFn.hs247
-rw-r--r--tests/TestDocs.hs132
-rw-r--r--tests/TestHierarchy.hs10
-rw-r--r--tests/TestIde.hs19
-rw-r--r--tests/TestPrimDocs.hs19
-rw-r--r--tests/TestPscIde.hs13
-rw-r--r--tests/TestPscPublish.hs2
-rw-r--r--tests/TestPsci.hs8
-rw-r--r--tests/TestPsci/CommandTest.hs10
-rw-r--r--tests/TestPsci/CompletionTest.hs109
-rw-r--r--tests/TestPsci/EvalTest.hs2
-rw-r--r--tests/TestPsci/TestEnv.hs13
-rw-r--r--tests/purs/docs/bower.json (renamed from examples/docs/bower.json)0
-rw-r--r--tests/purs/docs/bower_components/purescript-prelude/src/Prelude.purs (renamed from examples/docs/bower_components/purescript-prelude/src/Prelude.purs)0
-rw-r--r--tests/purs/docs/output/ConstrainedArgument/externs.json1
-rw-r--r--tests/purs/docs/output/ConstrainedArgument/index.js5
-rw-r--r--tests/purs/docs/resolutions.json (renamed from examples/docs/resolutions.json)0
-rw-r--r--tests/purs/docs/src/ChildDeclOrder.purs (renamed from examples/docs/src/ChildDeclOrder.purs)0
-rw-r--r--tests/purs/docs/src/Clash.purs (renamed from examples/docs/src/Clash.purs)0
-rw-r--r--tests/purs/docs/src/Clash1.purs (renamed from examples/docs/src/Clash1.purs)0
-rw-r--r--tests/purs/docs/src/Clash1a.purs (renamed from examples/docs/src/Clash1a.purs)0
-rw-r--r--tests/purs/docs/src/Clash2.purs (renamed from examples/docs/src/Clash2.purs)0
-rw-r--r--tests/purs/docs/src/Clash2a.purs (renamed from examples/docs/src/Clash2a.purs)0
-rw-r--r--tests/purs/docs/src/ConstrainedArgument.purs (renamed from examples/docs/src/ConstrainedArgument.purs)0
-rw-r--r--tests/purs/docs/src/DeclOrder.purs (renamed from examples/docs/src/DeclOrder.purs)0
-rw-r--r--tests/purs/docs/src/DeclOrderNoExportList.purs (renamed from examples/docs/src/DeclOrderNoExportList.purs)0
-rw-r--r--tests/purs/docs/src/Desugar.purs (renamed from examples/docs/src/Desugar.purs)0
-rw-r--r--tests/purs/docs/src/DocComments.purs (renamed from examples/docs/src/DocComments.purs)0
-rw-r--r--tests/purs/docs/src/DuplicateNames.purs (renamed from examples/docs/src/DuplicateNames.purs)0
-rw-r--r--tests/purs/docs/src/Example.purs (renamed from examples/docs/src/Example.purs)0
-rw-r--r--tests/purs/docs/src/Example2.purs (renamed from examples/docs/src/Example2.purs)0
-rw-r--r--tests/purs/docs/src/ExplicitExport.purs7
-rw-r--r--tests/purs/docs/src/ExplicitTypeSignatures.purs (renamed from examples/docs/src/ExplicitTypeSignatures.purs)0
-rw-r--r--tests/purs/docs/src/ImportedTwice.purs (renamed from examples/docs/src/ImportedTwice.purs)0
-rw-r--r--tests/purs/docs/src/ImportedTwiceA.purs (renamed from examples/docs/src/ImportedTwiceA.purs)0
-rw-r--r--tests/purs/docs/src/ImportedTwiceB.purs (renamed from examples/docs/src/ImportedTwiceB.purs)0
-rw-r--r--tests/purs/docs/src/MultiVirtual.purs (renamed from examples/docs/src/MultiVirtual.purs)0
-rw-r--r--tests/purs/docs/src/MultiVirtual1.purs (renamed from examples/docs/src/MultiVirtual1.purs)0
-rw-r--r--tests/purs/docs/src/MultiVirtual2.purs (renamed from examples/docs/src/MultiVirtual2.purs)0
-rw-r--r--tests/purs/docs/src/MultiVirtual3.purs (renamed from examples/docs/src/MultiVirtual3.purs)0
-rw-r--r--tests/purs/docs/src/NewOperators.purs (renamed from examples/docs/src/NewOperators.purs)0
-rw-r--r--tests/purs/docs/src/NewOperators2.purs (renamed from examples/docs/src/NewOperators2.purs)0
-rw-r--r--tests/purs/docs/src/NotAllCtors.purs (renamed from examples/docs/src/NotAllCtors.purs)0
-rw-r--r--tests/purs/docs/src/PrimSubmodules.purs11
-rw-r--r--tests/purs/docs/src/ReExportedTypeClass.purs (renamed from examples/docs/src/ReExportedTypeClass.purs)0
-rw-r--r--tests/purs/docs/src/SolitaryTypeClassMember.purs (renamed from examples/docs/src/SolitaryTypeClassMember.purs)0
-rw-r--r--tests/purs/docs/src/SomeTypeClass.purs (renamed from examples/docs/src/SomeTypeClass.purs)0
-rw-r--r--tests/purs/docs/src/Transitive1.purs (renamed from examples/docs/src/Transitive1.purs)0
-rw-r--r--tests/purs/docs/src/Transitive2.purs (renamed from examples/docs/src/Transitive2.purs)0
-rw-r--r--tests/purs/docs/src/Transitive3.purs (renamed from examples/docs/src/Transitive3.purs)0
-rw-r--r--tests/purs/docs/src/TypeClassWithFunDeps.purs (renamed from examples/docs/src/TypeClassWithFunDeps.purs)0
-rw-r--r--tests/purs/docs/src/TypeClassWithoutMembers.purs (renamed from examples/docs/src/TypeClassWithoutMembers.purs)0
-rw-r--r--tests/purs/docs/src/TypeClassWithoutMembersIntermediate.purs (renamed from examples/docs/src/TypeClassWithoutMembersIntermediate.purs)0
-rw-r--r--tests/purs/docs/src/TypeLevelString.purs9
-rw-r--r--tests/purs/docs/src/TypeOpAliases.purs (renamed from examples/docs/src/TypeOpAliases.purs)0
-rw-r--r--tests/purs/docs/src/UTF8.purs (renamed from examples/docs/src/UTF8.purs)0
-rw-r--r--tests/purs/docs/src/Virtual.purs (renamed from examples/docs/src/Virtual.purs)0
-rw-r--r--tests/purs/failing/1071.purs (renamed from examples/failing/1071.purs)0
-rw-r--r--tests/purs/failing/1169.purs (renamed from examples/failing/1169.purs)0
-rw-r--r--tests/purs/failing/1175.purs (renamed from examples/failing/1175.purs)0
-rw-r--r--tests/purs/failing/1310.purs18
-rw-r--r--tests/purs/failing/1570.purs (renamed from examples/failing/1570.purs)0
-rw-r--r--tests/purs/failing/1733.purs (renamed from examples/failing/1733.purs)0
-rw-r--r--tests/purs/failing/1733/Thingy.purs (renamed from examples/failing/1733/Thingy.purs)0
-rw-r--r--tests/purs/failing/1825.purs (renamed from examples/failing/1825.purs)0
-rw-r--r--tests/purs/failing/1881.purs (renamed from examples/failing/1881.purs)0
-rw-r--r--tests/purs/failing/2128-class.purs (renamed from examples/failing/2128-class.purs)0
-rw-r--r--tests/purs/failing/2128-instance.purs (renamed from examples/failing/2128-instance.purs)0
-rw-r--r--tests/purs/failing/2197-shouldFail.purs (renamed from examples/failing/2197-shouldFail.purs)0
-rw-r--r--tests/purs/failing/2197-shouldFail2.purs (renamed from examples/failing/2197-shouldFail2.purs)0
-rw-r--r--tests/purs/failing/2378.purs (renamed from examples/failing/2378.purs)0
-rw-r--r--tests/purs/failing/2378/Lib.purs (renamed from examples/failing/2378/Lib.purs)0
-rw-r--r--tests/purs/failing/2379.purs (renamed from examples/failing/2379.purs)0
-rw-r--r--tests/purs/failing/2379/Lib.purs (renamed from examples/failing/2379/Lib.purs)0
-rw-r--r--tests/purs/failing/2434.purs (renamed from examples/failing/2434.purs)0
-rw-r--r--tests/purs/failing/2534.purs (renamed from examples/failing/2534.purs)0
-rw-r--r--tests/purs/failing/2542.purs (renamed from examples/failing/2542.purs)0
-rw-r--r--tests/purs/failing/2567.purs7
-rw-r--r--tests/purs/failing/2601.purs (renamed from examples/failing/2601.purs)0
-rw-r--r--tests/purs/failing/2616.purs (renamed from examples/failing/2616.purs)0
-rw-r--r--tests/purs/failing/2806.purs (renamed from examples/failing/2806.purs)0
-rw-r--r--tests/purs/failing/2874-forall.purs (renamed from examples/failing/2874-forall.purs)0
-rw-r--r--tests/purs/failing/2874-forall2.purs (renamed from examples/failing/2874-forall2.purs)0
-rw-r--r--tests/purs/failing/2874-wildcard.purs (renamed from examples/failing/2874-wildcard.purs)0
-rw-r--r--tests/purs/failing/2947.purs10
-rw-r--r--tests/purs/failing/3132.purs18
-rw-r--r--tests/purs/failing/3275-BindingGroupErrorPos.purs12
-rw-r--r--tests/purs/failing/3275-DataBindingGroupErrorPos.purs8
-rw-r--r--tests/purs/failing/3335-TypeOpAssociativityError.purs7
-rw-r--r--tests/purs/failing/365.purs (renamed from examples/failing/365.purs)0
-rw-r--r--tests/purs/failing/438.purs (renamed from examples/failing/438.purs)0
-rw-r--r--tests/purs/failing/881.purs (renamed from examples/failing/881.purs)0
-rw-r--r--tests/purs/failing/AnonArgument1.purs (renamed from examples/failing/AnonArgument1.purs)0
-rw-r--r--tests/purs/failing/AnonArgument2.purs (renamed from examples/failing/AnonArgument2.purs)0
-rw-r--r--tests/purs/failing/AnonArgument3.purs (renamed from examples/failing/AnonArgument3.purs)0
-rw-r--r--tests/purs/failing/ArgLengthMismatch.purs7
-rw-r--r--tests/purs/failing/ArrayType.purs13
-rw-r--r--tests/purs/failing/Arrays.purs (renamed from examples/failing/Arrays.purs)0
-rw-r--r--tests/purs/failing/BindInDo-2.purs (renamed from examples/failing/BindInDo-2.purs)0
-rw-r--r--tests/purs/failing/BindInDo.purs (renamed from examples/failing/BindInDo.purs)0
-rw-r--r--tests/purs/failing/CannotDeriveNewtypeForData.purs (renamed from examples/failing/CannotDeriveNewtypeForData.purs)0
-rw-r--r--tests/purs/failing/CaseBinderLengthsDiffer.purs (renamed from examples/failing/CaseBinderLengthsDiffer.purs)0
-rw-r--r--tests/purs/failing/CaseDoesNotMatchAllConstructorArgs.purs (renamed from examples/failing/CaseDoesNotMatchAllConstructorArgs.purs)0
-rw-r--r--tests/purs/failing/ConflictingExports.purs (renamed from examples/failing/ConflictingExports.purs)0
-rw-r--r--tests/purs/failing/ConflictingExports/A.purs (renamed from examples/passing/ResolvableScopeConflict3/A.purs)0
-rw-r--r--tests/purs/failing/ConflictingExports/B.purs (renamed from examples/passing/PendingConflictingImports/B.purs)0
-rw-r--r--tests/purs/failing/ConflictingImports.purs (renamed from examples/failing/ConflictingImports.purs)0
-rw-r--r--tests/purs/failing/ConflictingImports/A.purs (renamed from examples/passing/ResolvableScopeConflict/A.purs)0
-rw-r--r--tests/purs/failing/ConflictingImports/B.purs (renamed from examples/failing/ConflictingQualifiedImports2/B.purs)0
-rw-r--r--tests/purs/failing/ConflictingImports2.purs (renamed from examples/failing/ConflictingImports2.purs)0
-rw-r--r--tests/purs/failing/ConflictingImports2/A.purs (renamed from examples/passing/PendingConflictingImports2/A.purs)0
-rw-r--r--tests/purs/failing/ConflictingImports2/B.purs (renamed from examples/failing/ConflictingQualifiedImports/B.purs)0
-rw-r--r--tests/purs/failing/ConflictingQualifiedImports.purs (renamed from examples/failing/ConflictingQualifiedImports.purs)0
-rw-r--r--tests/purs/failing/ConflictingQualifiedImports/A.purs (renamed from examples/passing/PendingConflictingImports/A.purs)0
-rw-r--r--tests/purs/failing/ConflictingQualifiedImports/B.purs (renamed from examples/failing/ConflictingImports2/B.purs)0
-rw-r--r--tests/purs/failing/ConflictingQualifiedImports2.purs (renamed from examples/failing/ConflictingQualifiedImports2.purs)0
-rw-r--r--tests/purs/failing/ConflictingQualifiedImports2/A.purs (renamed from examples/passing/NonConflictingExports/A.purs)0
-rw-r--r--tests/purs/failing/ConflictingQualifiedImports2/B.purs (renamed from examples/failing/ConflictingImports/B.purs)0
-rw-r--r--tests/purs/failing/ConstraintFailure.purs (renamed from examples/failing/ConstraintFailure.purs)0
-rw-r--r--tests/purs/failing/ConstraintInference.purs (renamed from examples/failing/ConstraintInference.purs)0
-rw-r--r--tests/purs/failing/DctorOperatorAliasExport.purs (renamed from examples/failing/DctorOperatorAliasExport.purs)0
-rw-r--r--tests/purs/failing/DeclConflictClassCtor.purs (renamed from examples/failing/DeclConflictClassCtor.purs)0
-rw-r--r--tests/purs/failing/DeclConflictClassSynonym.purs (renamed from examples/failing/DeclConflictClassSynonym.purs)0
-rw-r--r--tests/purs/failing/DeclConflictClassType.purs (renamed from examples/failing/DeclConflictClassType.purs)0
-rw-r--r--tests/purs/failing/DeclConflictCtorClass.purs (renamed from examples/failing/DeclConflictCtorClass.purs)0
-rw-r--r--tests/purs/failing/DeclConflictCtorCtor.purs (renamed from examples/failing/DeclConflictCtorCtor.purs)0
-rw-r--r--tests/purs/failing/DeclConflictDuplicateCtor.purs (renamed from examples/failing/DeclConflictDuplicateCtor.purs)0
-rw-r--r--tests/purs/failing/DeclConflictSynonymClass.purs (renamed from examples/failing/DeclConflictSynonymClass.purs)0
-rw-r--r--tests/purs/failing/DeclConflictSynonymType.purs (renamed from examples/failing/DeclConflictSynonymType.purs)0
-rw-r--r--tests/purs/failing/DeclConflictTypeClass.purs (renamed from examples/failing/DeclConflictTypeClass.purs)0
-rw-r--r--tests/purs/failing/DeclConflictTypeSynonym.purs (renamed from examples/failing/DeclConflictTypeSynonym.purs)0
-rw-r--r--tests/purs/failing/DeclConflictTypeType.purs (renamed from examples/failing/DeclConflictTypeType.purs)0
-rw-r--r--tests/purs/failing/DiffKindsSameName.purs (renamed from examples/failing/DiffKindsSameName.purs)0
-rw-r--r--tests/purs/failing/DiffKindsSameName/LibA.purs (renamed from examples/failing/DiffKindsSameName/LibA.purs)0
-rw-r--r--tests/purs/failing/DiffKindsSameName/LibB.purs (renamed from examples/failing/DiffKindsSameName/LibB.purs)0
-rw-r--r--tests/purs/failing/Do.purs (renamed from examples/failing/Do.purs)0
-rw-r--r--tests/purs/failing/DoNotSuggestComposition.purs (renamed from examples/failing/DoNotSuggestComposition.purs)0
-rw-r--r--tests/purs/failing/DoNotSuggestComposition2.purs (renamed from examples/failing/DoNotSuggestComposition2.purs)0
-rw-r--r--tests/purs/failing/DuplicateDeclarationsInLet.purs (renamed from examples/failing/DuplicateDeclarationsInLet.purs)0
-rw-r--r--tests/purs/failing/DuplicateInstance.purs (renamed from examples/failing/DuplicateInstance.purs)0
-rw-r--r--tests/purs/failing/DuplicateModule.purs (renamed from examples/failing/DuplicateModule.purs)0
-rw-r--r--tests/purs/failing/DuplicateModule/M1.purs (renamed from examples/failing/DuplicateModule/M1.purs)0
-rw-r--r--tests/purs/failing/DuplicateProperties.purs (renamed from examples/failing/DuplicateProperties.purs)0
-rw-r--r--tests/purs/failing/DuplicateTypeClass.purs (renamed from examples/failing/DuplicateTypeClass.purs)0
-rw-r--r--tests/purs/failing/DuplicateTypeVars.purs (renamed from examples/failing/DuplicateTypeVars.purs)0
-rw-r--r--tests/purs/failing/EmptyCase.purs (renamed from examples/failing/EmptyCase.purs)0
-rw-r--r--tests/purs/failing/EmptyClass.purs (renamed from examples/failing/EmptyClass.purs)0
-rw-r--r--tests/purs/failing/EmptyDo.purs (renamed from examples/failing/EmptyDo.purs)0
-rw-r--r--tests/purs/failing/ExpectedWildcard.purs8
-rw-r--r--tests/purs/failing/ExportConflictClass.purs (renamed from examples/failing/ExportConflictClass.purs)0
-rw-r--r--tests/purs/failing/ExportConflictClass/A.purs (renamed from examples/failing/ExportConflictClass/A.purs)0
-rw-r--r--tests/purs/failing/ExportConflictClass/B.purs (renamed from examples/failing/ExportConflictClass/B.purs)0
-rw-r--r--tests/purs/failing/ExportConflictCtor.purs (renamed from examples/failing/ExportConflictCtor.purs)0
-rw-r--r--tests/purs/failing/ExportConflictCtor/A.purs (renamed from examples/failing/ExportConflictCtor/A.purs)0
-rw-r--r--tests/purs/failing/ExportConflictCtor/B.purs (renamed from examples/failing/ExportConflictCtor/B.purs)0
-rw-r--r--tests/purs/failing/ExportConflictType.purs (renamed from examples/failing/ExportConflictType.purs)0
-rw-r--r--tests/purs/failing/ExportConflictType/A.purs (renamed from examples/failing/ExportConflictType/A.purs)0
-rw-r--r--tests/purs/failing/ExportConflictType/B.purs (renamed from examples/failing/ExportConflictType/B.purs)0
-rw-r--r--tests/purs/failing/ExportConflictTypeOp.purs (renamed from examples/failing/ExportConflictTypeOp.purs)0
-rw-r--r--tests/purs/failing/ExportConflictTypeOp/A.purs (renamed from examples/failing/ExportConflictTypeOp/A.purs)0
-rw-r--r--tests/purs/failing/ExportConflictTypeOp/B.purs (renamed from examples/failing/ExportConflictTypeOp/B.purs)0
-rw-r--r--tests/purs/failing/ExportConflictValue.purs (renamed from examples/failing/ExportConflictValue.purs)0
-rw-r--r--tests/purs/failing/ExportConflictValue/A.purs (renamed from examples/failing/ExportConflictValue/A.purs)0
-rw-r--r--tests/purs/failing/ExportConflictValue/B.purs (renamed from examples/failing/ExportConflictValue/B.purs)0
-rw-r--r--tests/purs/failing/ExportConflictValueOp.purs (renamed from examples/failing/ExportConflictValueOp.purs)0
-rw-r--r--tests/purs/failing/ExportConflictValueOp/A.purs (renamed from examples/failing/ExportConflictValueOp/A.purs)0
-rw-r--r--tests/purs/failing/ExportConflictValueOp/B.purs (renamed from examples/failing/ExportConflictValueOp/B.purs)0
-rw-r--r--tests/purs/failing/ExportExplicit.purs8
-rw-r--r--tests/purs/failing/ExportExplicit1.purs12
-rw-r--r--tests/purs/failing/ExportExplicit1/M1.purs3
-rw-r--r--tests/purs/failing/ExportExplicit2.purs8
-rw-r--r--tests/purs/failing/ExportExplicit3.purs10
-rw-r--r--tests/purs/failing/ExportExplicit3/M1.purs4
-rw-r--r--tests/purs/failing/ExtraRecordField.purs (renamed from examples/failing/ExtraRecordField.purs)0
-rw-r--r--tests/purs/failing/ExtraneousClassMember.purs11
-rw-r--r--tests/purs/failing/Foldable.purs (renamed from examples/failing/Foldable.purs)0
-rw-r--r--tests/purs/failing/Generalization1.purs (renamed from examples/failing/Generalization1.purs)0
-rw-r--r--tests/purs/failing/Generalization2.purs (renamed from examples/failing/Generalization2.purs)0
-rw-r--r--tests/purs/failing/ImportExplicit.purs4
-rw-r--r--tests/purs/failing/ImportExplicit/M1.purs3
-rw-r--r--tests/purs/failing/ImportExplicit2.purs4
-rw-r--r--tests/purs/failing/ImportExplicit2/M1.purs3
-rw-r--r--tests/purs/failing/ImportHidingModule.purs4
-rw-r--r--tests/purs/failing/ImportHidingModule/A.purs2
-rw-r--r--tests/purs/failing/ImportHidingModule/B.purs3
-rw-r--r--tests/purs/failing/ImportModule.purs4
-rw-r--r--tests/purs/failing/ImportModule/M2.purs3
-rw-r--r--tests/purs/failing/InfiniteKind.purs (renamed from examples/failing/InfiniteKind.purs)0
-rw-r--r--tests/purs/failing/InfiniteKind2.purs (renamed from examples/failing/InfiniteKind2.purs)0
-rw-r--r--tests/purs/failing/InfiniteType.purs (renamed from examples/failing/InfiniteType.purs)0
-rw-r--r--tests/purs/failing/InstanceChainBothUnknownAndMatch.purs18
-rw-r--r--tests/purs/failing/InstanceChainSkolemUnknownMatch.purs15
-rw-r--r--tests/purs/failing/InstanceExport.purs7
-rw-r--r--tests/purs/failing/InstanceExport/InstanceExport.purs11
-rw-r--r--tests/purs/failing/InstanceSigsBodyIncorrect.purs (renamed from examples/failing/InstanceSigsBodyIncorrect.purs)0
-rw-r--r--tests/purs/failing/InstanceSigsDifferentTypes.purs (renamed from examples/failing/InstanceSigsDifferentTypes.purs)0
-rw-r--r--tests/purs/failing/InstanceSigsIncorrectType.purs (renamed from examples/failing/InstanceSigsIncorrectType.purs)0
-rw-r--r--tests/purs/failing/InstanceSigsOrphanTypeDeclaration.purs (renamed from examples/failing/InstanceSigsOrphanTypeDeclaration.purs)0
-rw-r--r--tests/purs/failing/IntOutOfRange.purs (renamed from examples/failing/IntOutOfRange.purs)0
-rw-r--r--tests/purs/failing/InvalidDerivedInstance.purs (renamed from examples/failing/InvalidDerivedInstance.purs)0
-rw-r--r--tests/purs/failing/InvalidDerivedInstance2.purs (renamed from examples/failing/InvalidDerivedInstance2.purs)0
-rw-r--r--tests/purs/failing/InvalidOperatorInBinder.purs (renamed from examples/failing/InvalidOperatorInBinder.purs)0
-rw-r--r--tests/purs/failing/KindError.purs (renamed from examples/failing/KindError.purs)0
-rw-r--r--tests/purs/failing/KindStar.purs (renamed from examples/failing/KindStar.purs)0
-rw-r--r--tests/purs/failing/LacksWithSubGoal.purs16
-rw-r--r--tests/purs/failing/LeadingZeros1.purs (renamed from examples/failing/LeadingZeros1.purs)0
-rw-r--r--tests/purs/failing/LeadingZeros2.purs (renamed from examples/failing/LeadingZeros2.purs)0
-rw-r--r--tests/purs/failing/Let.purs (renamed from examples/failing/Let.purs)0
-rw-r--r--tests/purs/failing/LetPatterns1.purs (renamed from examples/failing/LetPatterns1.purs)0
-rw-r--r--tests/purs/failing/LetPatterns2.purs (renamed from examples/failing/LetPatterns2.purs)0
-rw-r--r--tests/purs/failing/LetPatterns3.purs (renamed from examples/failing/LetPatterns3.purs)0
-rw-r--r--tests/purs/failing/LetPatterns4.purs (renamed from examples/failing/LetPatterns4.purs)0
-rw-r--r--tests/purs/failing/MPTCs.purs (renamed from examples/failing/MPTCs.purs)0
-rw-r--r--tests/purs/failing/MissingClassExport.purs (renamed from examples/failing/MissingClassExport.purs)0
-rw-r--r--tests/purs/failing/MissingClassMember.purs (renamed from examples/failing/TypeClassInstances.purs)0
-rw-r--r--tests/purs/failing/MissingClassMemberExport.purs (renamed from examples/failing/MissingClassMemberExport.purs)0
-rw-r--r--tests/purs/failing/MissingFFIImplementations.js1
-rw-r--r--tests/purs/failing/MissingFFIImplementations.purs5
-rw-r--r--tests/purs/failing/MissingRecordField.purs (renamed from examples/failing/MissingRecordField.purs)0
-rw-r--r--tests/purs/failing/MixedAssociativityError.purs6
-rw-r--r--tests/purs/failing/MultipleErrors.purs (renamed from examples/failing/MultipleErrors.purs)0
-rw-r--r--tests/purs/failing/MultipleErrors2.purs (renamed from examples/failing/MultipleErrors2.purs)0
-rw-r--r--tests/purs/failing/MultipleTypeOpFixities.purs9
-rw-r--r--tests/purs/failing/MultipleValueOpFixities.purs9
-rw-r--r--tests/purs/failing/MutRec.purs (renamed from examples/failing/MutRec.purs)0
-rw-r--r--tests/purs/failing/MutRec2.purs (renamed from examples/failing/MutRec2.purs)0
-rw-r--r--tests/purs/failing/NewtypeInstance.purs (renamed from examples/failing/NewtypeInstance.purs)0
-rw-r--r--tests/purs/failing/NewtypeInstance2.purs (renamed from examples/failing/NewtypeInstance2.purs)0
-rw-r--r--tests/purs/failing/NewtypeInstance3.purs (renamed from examples/failing/NewtypeInstance3.purs)0
-rw-r--r--tests/purs/failing/NewtypeInstance4.purs (renamed from examples/failing/NewtypeInstance4.purs)0
-rw-r--r--tests/purs/failing/NewtypeInstance5.purs (renamed from examples/failing/NewtypeInstance5.purs)0
-rw-r--r--tests/purs/failing/NewtypeInstance6.purs (renamed from examples/failing/NewtypeInstance6.purs)0
-rw-r--r--tests/purs/failing/NewtypeMultiArgs.purs (renamed from examples/failing/NewtypeMultiArgs.purs)0
-rw-r--r--tests/purs/failing/NewtypeMultiCtor.purs (renamed from examples/failing/NewtypeMultiCtor.purs)0
-rw-r--r--tests/purs/failing/NonAssociativeError.purs8
-rw-r--r--tests/purs/failing/NonExhaustivePatGuard.purs (renamed from examples/failing/NonExhaustivePatGuard.purs)0
-rw-r--r--tests/purs/failing/NullaryAbs.purs (renamed from examples/failing/NullaryAbs.purs)0
-rw-r--r--tests/purs/failing/Object.purs (renamed from examples/failing/Object.purs)0
-rw-r--r--tests/purs/failing/OperatorAliasNoExport.purs (renamed from examples/failing/OperatorAliasNoExport.purs)0
-rw-r--r--tests/purs/failing/OperatorSections.purs (renamed from examples/failing/OperatorSections.purs)0
-rw-r--r--tests/purs/failing/OrphanInstance.purs7
-rw-r--r--tests/purs/failing/OrphanInstance/Class.purs4
-rw-r--r--tests/purs/failing/OrphanInstanceFunDepCycle.purs (renamed from examples/failing/OrphanInstanceFunDepCycle.purs)0
-rw-r--r--tests/purs/failing/OrphanInstanceFunDepCycle/Lib.purs (renamed from examples/failing/OrphanInstanceFunDepCycle/Lib.purs)0
-rw-r--r--tests/purs/failing/OrphanInstanceNullary.purs4
-rw-r--r--tests/purs/failing/OrphanInstanceNullary/Lib.purs2
-rw-r--r--tests/purs/failing/OrphanInstanceWithDetermined.purs (renamed from examples/failing/OrphanInstanceWithDetermined.purs)0
-rw-r--r--tests/purs/failing/OrphanInstanceWithDetermined/Lib.purs (renamed from examples/failing/OrphanInstanceWithDetermined/Lib.purs)0
-rw-r--r--tests/purs/failing/OrphanTypeDecl.purs4
-rw-r--r--tests/purs/failing/OverlapAcrossModules.purs7
-rw-r--r--tests/purs/failing/OverlapAcrossModules/Class.purs2
-rw-r--r--tests/purs/failing/OverlapAcrossModules/X.purs4
-rw-r--r--tests/purs/failing/OverlappingArguments.purs (renamed from examples/failing/OverlappingArguments.purs)0
-rw-r--r--tests/purs/failing/OverlappingBinders.purs (renamed from examples/failing/OverlappingBinders.purs)0
-rw-r--r--tests/purs/failing/OverlappingInstances.purs17
-rw-r--r--tests/purs/failing/OverlappingVars.purs (renamed from examples/failing/OverlappingVars.purs)0
-rw-r--r--tests/purs/failing/PrimModuleReserved.purs4
-rw-r--r--tests/purs/failing/PrimModuleReserved/Prim.purs1
-rw-r--r--tests/purs/failing/PrimRow.purs13
-rw-r--r--tests/purs/failing/PrimSubModuleReserved.purs4
-rw-r--r--tests/purs/failing/PrimSubModuleReserved/Prim_Foobar.purs1
-rw-r--r--tests/purs/failing/ProgrammableTypeErrors.purs17
-rw-r--r--tests/purs/failing/ProgrammableTypeErrorsTypeString.purs24
-rw-r--r--tests/purs/failing/Rank2Types.purs (renamed from examples/failing/Rank2Types.purs)0
-rw-r--r--tests/purs/failing/RequiredHiddenType.purs9
-rw-r--r--tests/purs/failing/Reserved.purs (renamed from examples/failing/Reserved.purs)0
-rw-r--r--tests/purs/failing/RowConstructors1.purs9
-rw-r--r--tests/purs/failing/RowConstructors2.purs9
-rw-r--r--tests/purs/failing/RowConstructors3.purs9
-rw-r--r--tests/purs/failing/RowInInstanceNotDetermined0.purs (renamed from examples/failing/RowInInstanceNotDetermined0.purs)0
-rw-r--r--tests/purs/failing/RowInInstanceNotDetermined1.purs (renamed from examples/failing/RowInInstanceNotDetermined1.purs)0
-rw-r--r--tests/purs/failing/RowInInstanceNotDetermined2.purs (renamed from examples/failing/RowInInstanceNotDetermined2.purs)0
-rw-r--r--tests/purs/failing/RowLacks.purs18
-rw-r--r--tests/purs/failing/SkolemEscape.purs (renamed from examples/failing/SkolemEscape.purs)0
-rw-r--r--tests/purs/failing/SkolemEscape2.purs11
-rw-r--r--tests/purs/failing/SuggestComposition.purs (renamed from examples/failing/SuggestComposition.purs)0
-rw-r--r--tests/purs/failing/Superclasses1.purs (renamed from examples/failing/Superclasses1.purs)0
-rw-r--r--tests/purs/failing/Superclasses2.purs (renamed from examples/failing/Superclasses2.purs)0
-rw-r--r--tests/purs/failing/Superclasses3.purs (renamed from examples/failing/Superclasses3.purs)0
-rw-r--r--tests/purs/failing/Superclasses5.purs26
-rw-r--r--tests/purs/failing/TooFewClassInstanceArgs.purs (renamed from examples/failing/TooFewClassInstanceArgs.purs)0
-rw-r--r--tests/purs/failing/TopLevelCaseNoArgs.purs (renamed from examples/failing/TopLevelCaseNoArgs.purs)0
-rw-r--r--tests/purs/failing/TransitiveDctorExport.purs (renamed from examples/failing/TransitiveDctorExport.purs)0
-rw-r--r--tests/purs/failing/TransitiveKindExport.purs6
-rw-r--r--tests/purs/failing/TransitiveSynonymExport.purs (renamed from examples/failing/TransitiveSynonymExport.purs)0
-rw-r--r--tests/purs/failing/TypeClasses2.purs (renamed from examples/failing/TypeClasses2.purs)0
-rw-r--r--tests/purs/failing/TypeError.purs (renamed from examples/failing/TypeError.purs)0
-rw-r--r--tests/purs/failing/TypeOperatorAliasNoExport.purs (renamed from examples/failing/TypeOperatorAliasNoExport.purs)0
-rw-r--r--tests/purs/failing/TypeSynonyms.purs (renamed from examples/failing/TypeSynonyms.purs)0
-rw-r--r--tests/purs/failing/TypeSynonyms2.purs (renamed from examples/failing/TypeSynonyms2.purs)0
-rw-r--r--tests/purs/failing/TypeSynonyms3.purs (renamed from examples/failing/TypeSynonyms3.purs)0
-rw-r--r--tests/purs/failing/TypeSynonyms4.purs (renamed from examples/failing/TypeSynonyms4.purs)0
-rw-r--r--tests/purs/failing/TypeSynonyms5.purs (renamed from examples/failing/TypeSynonyms5.purs)0
-rw-r--r--tests/purs/failing/TypeWildcards1.purs (renamed from examples/failing/TypeWildcards1.purs)0
-rw-r--r--tests/purs/failing/TypeWildcards2.purs (renamed from examples/failing/TypeWildcards2.purs)0
-rw-r--r--tests/purs/failing/TypeWildcards3.purs (renamed from examples/failing/TypeWildcards3.purs)0
-rw-r--r--tests/purs/failing/TypedBinders.purs10
-rw-r--r--tests/purs/failing/TypedBinders2.purs9
-rw-r--r--tests/purs/failing/TypedBinders3.purs13
-rw-r--r--tests/purs/failing/TypedHole.purs8
-rw-r--r--tests/purs/failing/UnderscoreModuleName.purs6
-rw-r--r--tests/purs/failing/UnknownType.purs (renamed from examples/failing/UnknownType.purs)0
-rw-r--r--tests/purs/failing/UnusableTypeClassMethod.purs (renamed from examples/failing/UnusableTypeClassMethod.purs)0
-rw-r--r--tests/purs/failing/UnusableTypeClassMethodConflictingIdent.purs (renamed from examples/failing/UnusableTypeClassMethodConflictingIdent.purs)0
-rw-r--r--tests/purs/failing/UnusableTypeClassMethodSynonym.purs (renamed from examples/failing/UnusableTypeClassMethodSynonym.purs)0
-rw-r--r--tests/purs/passing/1110.purs26
-rw-r--r--tests/purs/passing/1185.purs15
-rw-r--r--tests/purs/passing/1335.purs14
-rw-r--r--tests/purs/passing/1570.purs8
-rw-r--r--tests/purs/passing/1664.purs16
-rw-r--r--tests/purs/passing/1697.purs25
-rw-r--r--tests/purs/passing/1807.purs14
-rw-r--r--tests/purs/passing/1881.purs19
-rw-r--r--tests/purs/passing/1991.purs22
-rw-r--r--tests/purs/passing/2018.purs12
-rw-r--r--tests/purs/passing/2018/A.purs (renamed from examples/passing/2018/A.purs)0
-rw-r--r--tests/purs/passing/2018/B.purs (renamed from examples/passing/2018/B.purs)0
-rw-r--r--tests/purs/passing/2049.purs14
-rw-r--r--tests/purs/passing/2136.purs9
-rw-r--r--tests/purs/passing/2138.purs7
-rw-r--r--tests/purs/passing/2138/Lib.purs (renamed from examples/passing/2138/Lib.purs)0
-rw-r--r--tests/purs/passing/2172.js (renamed from examples/passing/2172.js)0
-rw-r--r--tests/purs/passing/2172.purs10
-rw-r--r--tests/purs/passing/2197-1.purs12
-rw-r--r--tests/purs/passing/2197-2.purs11
-rw-r--r--tests/purs/passing/2252.purs15
-rw-r--r--tests/purs/passing/2288.purs19
-rw-r--r--tests/purs/passing/2378.purs9
-rw-r--r--tests/purs/passing/2438.purs8
-rw-r--r--tests/purs/passing/2609.purs12
-rw-r--r--tests/purs/passing/2609/Eg.purs (renamed from examples/passing/2609/Eg.purs)0
-rw-r--r--tests/purs/passing/2616.purs13
-rw-r--r--tests/purs/passing/2626.purs13
-rw-r--r--tests/purs/passing/2663.purs10
-rw-r--r--tests/purs/passing/2689.purs36
-rw-r--r--tests/purs/passing/2756.purs20
-rw-r--r--tests/purs/passing/2787.purs8
-rw-r--r--tests/purs/passing/2795.purs14
-rw-r--r--tests/purs/passing/2803.purs17
-rw-r--r--tests/purs/passing/2806.purs14
-rw-r--r--tests/purs/passing/2947.purs11
-rw-r--r--tests/purs/passing/2958.purs14
-rw-r--r--tests/purs/passing/2972.purs13
-rw-r--r--tests/purs/passing/3114.purs53
-rw-r--r--tests/purs/passing/3114/VendoredVariant.purs42
-rw-r--r--tests/purs/passing/3125.purs16
-rw-r--r--tests/purs/passing/3187-UnusedNameClash.purs12
-rw-r--r--tests/purs/passing/652.purs18
-rw-r--r--tests/purs/passing/810.purs14
-rw-r--r--tests/purs/passing/862.purs8
-rw-r--r--tests/purs/passing/922.purs20
-rw-r--r--tests/purs/passing/Ado.purs77
-rw-r--r--tests/purs/passing/AppendInReverse.purs38
-rw-r--r--tests/purs/passing/Applicative.purs16
-rw-r--r--tests/purs/passing/ArrayType.purs12
-rw-r--r--tests/purs/passing/Auto.purs16
-rw-r--r--tests/purs/passing/AutoPrelude.purs11
-rw-r--r--tests/purs/passing/AutoPrelude2.purs10
-rw-r--r--tests/purs/passing/BindersInFunctions.purs16
-rw-r--r--tests/purs/passing/BindingGroups.purs11
-rw-r--r--tests/purs/passing/BlockString.purs9
-rw-r--r--tests/purs/passing/CaseInDo.purs21
-rw-r--r--tests/purs/passing/CaseInputWildcard.purs18
-rw-r--r--tests/purs/passing/CaseMultipleExpressions.purs21
-rw-r--r--tests/purs/passing/CaseStatement.purs22
-rw-r--r--tests/purs/passing/CheckFunction.purs8
-rw-r--r--tests/purs/passing/CheckSynonymBug.purs13
-rw-r--r--tests/purs/passing/CheckTypeClass.purs18
-rw-r--r--tests/purs/passing/Church.purs18
-rw-r--r--tests/purs/passing/ClassRefSyntax.purs9
-rw-r--r--tests/purs/passing/ClassRefSyntax/Lib.purs (renamed from examples/passing/ClassRefSyntax/Lib.purs)0
-rw-r--r--tests/purs/passing/Collatz.purs21
-rw-r--r--tests/purs/passing/Comparisons.purs15
-rw-r--r--tests/purs/passing/Conditional.purs9
-rw-r--r--tests/purs/passing/Console.purs15
-rw-r--r--tests/purs/passing/ConstraintInference.purs10
-rw-r--r--tests/purs/passing/ConstraintParens.purs12
-rw-r--r--tests/purs/passing/ConstraintParsingIssue.purs9
-rw-r--r--tests/purs/passing/ContextSimplification.purs15
-rw-r--r--tests/purs/passing/DataAndType.purs10
-rw-r--r--tests/purs/passing/DataConsClassConsOverlapOk.purs8
-rw-r--r--tests/purs/passing/DctorName.purs33
-rw-r--r--tests/purs/passing/DctorOperatorAlias.purs34
-rw-r--r--tests/purs/passing/DctorOperatorAlias/List.purs (renamed from examples/passing/DctorOperatorAlias/List.purs)0
-rw-r--r--tests/purs/passing/DeepArrayBinder.purs17
-rw-r--r--tests/purs/passing/DeepCase.purs15
-rw-r--r--tests/purs/passing/DeriveNewtype.purs29
-rw-r--r--tests/purs/passing/DeriveWithNestedSynonyms.purs29
-rw-r--r--tests/purs/passing/Deriving.purs36
-rw-r--r--tests/purs/passing/DerivingFunctor.purs36
-rw-r--r--tests/purs/passing/Do.purs68
-rw-r--r--tests/purs/passing/Dollar.purs16
-rw-r--r--tests/purs/passing/DuplicateProperties.purs27
-rw-r--r--tests/purs/passing/EffFn.js1
-rw-r--r--tests/purs/passing/EffFn.purs22
-rw-r--r--tests/purs/passing/EmptyDataDecls.purs20
-rw-r--r--tests/purs/passing/EmptyRow.purs11
-rw-r--r--tests/purs/passing/EmptyTypeClass.purs11
-rw-r--r--tests/purs/passing/EntailsKindedType.purs11
-rw-r--r--tests/purs/passing/Eq1Deriving.purs12
-rw-r--r--tests/purs/passing/Eq1InEqDeriving.purs11
-rw-r--r--tests/purs/passing/EqOrd.purs18
-rw-r--r--tests/purs/passing/ExplicitImportReExport.purs11
-rw-r--r--tests/purs/passing/ExplicitImportReExport/Bar.purs3
-rw-r--r--tests/purs/passing/ExplicitImportReExport/Foo.purs4
-rw-r--r--tests/purs/passing/ExplicitOperatorSections.purs15
-rw-r--r--tests/purs/passing/ExportExplicit.purs10
-rw-r--r--tests/purs/passing/ExportExplicit/M1.purs10
-rw-r--r--tests/purs/passing/ExportExplicit2.purs8
-rw-r--r--tests/purs/passing/ExportExplicit2/M1.purs7
-rw-r--r--tests/purs/passing/ExportedInstanceDeclarations.purs45
-rw-r--r--tests/purs/passing/ExtendedInfixOperators.purs17
-rw-r--r--tests/purs/passing/Fib.purs20
-rw-r--r--tests/purs/passing/FieldConsPuns.purs13
-rw-r--r--tests/purs/passing/FieldPuns.purs10
-rw-r--r--tests/purs/passing/FinalTagless.purs25
-rw-r--r--tests/purs/passing/ForeignKind.purs10
-rw-r--r--tests/purs/passing/ForeignKind/Lib.purs (renamed from examples/passing/ForeignKind/Lib.purs)0
-rw-r--r--tests/purs/passing/FunWithFunDeps.js (renamed from examples/passing/FunWithFunDeps.js)0
-rw-r--r--tests/purs/passing/FunWithFunDeps.purs41
-rw-r--r--tests/purs/passing/FunctionScope.purs13
-rw-r--r--tests/purs/passing/FunctionalDependencies.purs21
-rw-r--r--tests/purs/passing/Functions.purs12
-rw-r--r--tests/purs/passing/Functions2.purs13
-rw-r--r--tests/purs/passing/Generalization1.purs11
-rw-r--r--tests/purs/passing/GenericsRep.purs43
-rw-r--r--tests/purs/passing/Guards.purs64
-rw-r--r--tests/purs/passing/HasOwnProperty.purs5
-rw-r--r--tests/purs/passing/HoistError.purs12
-rw-r--r--tests/purs/passing/IfThenElseMaybe.purs12
-rw-r--r--tests/purs/passing/IfWildcard.purs19
-rw-r--r--tests/purs/passing/ImplicitEmptyImport.purs9
-rw-r--r--tests/purs/passing/Import.purs6
-rw-r--r--tests/purs/passing/Import/M1.purs8
-rw-r--r--tests/purs/passing/Import/M2.purs6
-rw-r--r--tests/purs/passing/ImportExplicit.purs10
-rw-r--r--tests/purs/passing/ImportExplicit/M1.purs4
-rw-r--r--tests/purs/passing/ImportHiding.purs19
-rw-r--r--tests/purs/passing/ImportQualified.purs8
-rw-r--r--tests/purs/passing/ImportQualified/M1.purs3
-rw-r--r--tests/purs/passing/InferRecFunWithConstrainedArgument.purs11
-rw-r--r--tests/purs/passing/InstanceBeforeClass.purs12
-rw-r--r--tests/purs/passing/InstanceChain.purs71
-rw-r--r--tests/purs/passing/InstanceSigs.purs12
-rw-r--r--tests/purs/passing/InstanceSigsGeneral.purs12
-rw-r--r--tests/purs/passing/IntAndChar.purs19
-rw-r--r--tests/purs/passing/JSReserved.purs13
-rw-r--r--tests/purs/passing/KindedType.purs34
-rw-r--r--tests/purs/passing/LargeSumType.purs35
-rw-r--r--tests/purs/passing/Let.purs58
-rw-r--r--tests/purs/passing/Let2.purs20
-rw-r--r--tests/purs/passing/LetInInstance.purs15
-rw-r--r--tests/purs/passing/LetPattern.purs196
-rw-r--r--tests/purs/passing/LiberalTypeSynonyms.purs22
-rw-r--r--tests/purs/passing/MPTCs.purs21
-rw-r--r--tests/purs/passing/Match.purs10
-rw-r--r--tests/purs/passing/Module.purs7
-rw-r--r--tests/purs/passing/Module/M1.purs (renamed from examples/passing/Module/M1.purs)0
-rw-r--r--tests/purs/passing/Module/M2.purs (renamed from examples/passing/Module/M2.purs)0
-rw-r--r--tests/purs/passing/ModuleDeps.purs6
-rw-r--r--tests/purs/passing/ModuleDeps/M1.purs5
-rw-r--r--tests/purs/passing/ModuleDeps/M2.purs5
-rw-r--r--tests/purs/passing/ModuleDeps/M3.purs3
-rw-r--r--tests/purs/passing/ModuleExport.purs8
-rw-r--r--tests/purs/passing/ModuleExport/A.purs (renamed from examples/passing/ModuleExportQualified/A.purs)0
-rw-r--r--tests/purs/passing/ModuleExportDupes.purs11
-rw-r--r--tests/purs/passing/ModuleExportDupes/A.purs (renamed from examples/passing/ModuleExportDupes/A.purs)0
-rw-r--r--tests/purs/passing/ModuleExportDupes/B.purs (renamed from examples/passing/ModuleExportDupes/B.purs)0
-rw-r--r--tests/purs/passing/ModuleExportDupes/C.purs (renamed from examples/passing/ModuleExportDupes/C.purs)0
-rw-r--r--tests/purs/passing/ModuleExportExcluded.purs11
-rw-r--r--tests/purs/passing/ModuleExportExcluded/A.purs (renamed from examples/passing/ModuleExportExcluded/A.purs)0
-rw-r--r--tests/purs/passing/ModuleExportQualified.purs9
-rw-r--r--tests/purs/passing/ModuleExportQualified/A.purs (renamed from examples/passing/ModuleExport/A.purs)0
-rw-r--r--tests/purs/passing/ModuleExportSelf.purs11
-rw-r--r--tests/purs/passing/ModuleExportSelf/A.purs5
-rw-r--r--tests/purs/passing/Monad.purs32
-rw-r--r--tests/purs/passing/MonadState.purs63
-rw-r--r--tests/purs/passing/MultiArgFunctions.purs27
-rw-r--r--tests/purs/passing/MutRec.purs20
-rw-r--r--tests/purs/passing/MutRec2.purs20
-rw-r--r--tests/purs/passing/MutRec3.purs20
-rw-r--r--tests/purs/passing/NakedConstraint.purs10
-rw-r--r--tests/purs/passing/NamedPatterns.purs10
-rw-r--r--tests/purs/passing/NegativeBinder.purs10
-rw-r--r--tests/purs/passing/NegativeIntInRange.purs9
-rw-r--r--tests/purs/passing/Nested.purs10
-rw-r--r--tests/purs/passing/NestedRecordUpdate.purs24
-rw-r--r--tests/purs/passing/NestedRecordUpdateWildcards.purs20
-rw-r--r--tests/purs/passing/NestedTypeSynonyms.purs12
-rw-r--r--tests/purs/passing/NestedWhere.purs13
-rw-r--r--tests/purs/passing/NewConsClass.purs12
-rw-r--r--tests/purs/passing/Newtype.purs23
-rw-r--r--tests/purs/passing/NewtypeClass.purs40
-rw-r--r--tests/purs/passing/NewtypeEff.purs29
-rw-r--r--tests/purs/passing/NewtypeInstance.purs61
-rw-r--r--tests/purs/passing/NewtypeWithRecordUpdate.purs16
-rw-r--r--tests/purs/passing/NonConflictingExports.purs10
-rw-r--r--tests/purs/passing/NonConflictingExports/A.purs (renamed from examples/failing/ConflictingQualifiedImports2/A.purs)0
-rw-r--r--tests/purs/passing/NonOrphanInstanceFunDepExtra.purs8
-rw-r--r--tests/purs/passing/NonOrphanInstanceFunDepExtra/Lib.purs (renamed from examples/passing/NonOrphanInstanceFunDepExtra/Lib.purs)0
-rw-r--r--tests/purs/passing/NonOrphanInstanceMulti.purs7
-rw-r--r--tests/purs/passing/NonOrphanInstanceMulti/Lib.purs (renamed from examples/passing/NonOrphanInstanceMulti/Lib.purs)0
-rw-r--r--tests/purs/passing/NumberLiterals.purs39
-rw-r--r--tests/purs/passing/ObjectGetter.purs14
-rw-r--r--tests/purs/passing/ObjectSynonym.purs16
-rw-r--r--tests/purs/passing/ObjectUpdate.purs23
-rw-r--r--tests/purs/passing/ObjectUpdate2.purs18
-rw-r--r--tests/purs/passing/ObjectUpdater.purs26
-rw-r--r--tests/purs/passing/ObjectWildcards.purs20
-rw-r--r--tests/purs/passing/Objects.purs36
-rw-r--r--tests/purs/passing/OneConstructor.purs10
-rw-r--r--tests/purs/passing/OperatorAlias.purs11
-rw-r--r--tests/purs/passing/OperatorAliasElsewhere.purs9
-rw-r--r--tests/purs/passing/OperatorAliasElsewhere/Def.purs4
-rw-r--r--tests/purs/passing/OperatorAssociativity.purs25
-rw-r--r--tests/purs/passing/OperatorInlining.purs48
-rw-r--r--tests/purs/passing/OperatorSections.purs18
-rw-r--r--tests/purs/passing/Operators.purs91
-rw-r--r--tests/purs/passing/Operators/Other.purs (renamed from examples/passing/Operators/Other.purs)0
-rw-r--r--tests/purs/passing/OptimizerBug.purs10
-rw-r--r--tests/purs/passing/OptionalQualified.purs12
-rw-r--r--tests/purs/passing/Ord1Deriving.purs16
-rw-r--r--tests/purs/passing/Ord1InOrdDeriving.purs13
-rw-r--r--tests/purs/passing/ParensInType.purs14
-rw-r--r--tests/purs/passing/ParensInTypedBinder.purs14
-rw-r--r--tests/purs/passing/PartialFunction.purs11
-rw-r--r--tests/purs/passing/Patterns.purs23
-rw-r--r--tests/purs/passing/PendingConflictingImports.purs8
-rw-r--r--tests/purs/passing/PendingConflictingImports/A.purs (renamed from examples/failing/ConflictingQualifiedImports/A.purs)0
-rw-r--r--tests/purs/passing/PendingConflictingImports/B.purs (renamed from examples/failing/ConflictingExports/B.purs)0
-rw-r--r--tests/purs/passing/PendingConflictingImports2.purs10
-rw-r--r--tests/purs/passing/PendingConflictingImports2/A.purs (renamed from examples/failing/ConflictingImports2/A.purs)0
-rw-r--r--tests/purs/passing/Person.purs12
-rw-r--r--tests/purs/passing/PolyLabels.js (renamed from examples/passing/PolyLabels.js)0
-rw-r--r--tests/purs/passing/PolyLabels.purs66
-rw-r--r--tests/purs/passing/PrimedTypeName.purs20
-rw-r--r--tests/purs/passing/QualifiedNames.purs11
-rw-r--r--tests/purs/passing/QualifiedNames/Either.purs5
-rw-r--r--tests/purs/passing/QualifiedQualifiedImports.purs6
-rw-r--r--tests/purs/passing/Rank2Data.purs30
-rw-r--r--tests/purs/passing/Rank2Object.purs11
-rw-r--r--tests/purs/passing/Rank2TypeSynonym.purs17
-rw-r--r--tests/purs/passing/Rank2Types.purs12
-rw-r--r--tests/purs/passing/ReExportQualified.purs7
-rw-r--r--tests/purs/passing/ReExportQualified/A.purs (renamed from examples/passing/ReExportQualified/A.purs)0
-rw-r--r--tests/purs/passing/ReExportQualified/B.purs (renamed from examples/passing/ReExportQualified/B.purs)0
-rw-r--r--tests/purs/passing/ReExportQualified/C.purs (renamed from examples/passing/ReExportQualified/C.purs)0
-rw-r--r--tests/purs/passing/RebindableSyntax.purs43
-rw-r--r--tests/purs/passing/Recursion.purs11
-rw-r--r--tests/purs/passing/RedefinedFixity.purs6
-rw-r--r--tests/purs/passing/RedefinedFixity/M1.purs6
-rw-r--r--tests/purs/passing/RedefinedFixity/M2.purs5
-rw-r--r--tests/purs/passing/RedefinedFixity/M3.purs6
-rw-r--r--tests/purs/passing/ReservedWords.purs19
-rw-r--r--tests/purs/passing/ResolvableScopeConflict.purs13
-rw-r--r--tests/purs/passing/ResolvableScopeConflict/A.purs (renamed from examples/failing/ConflictingImports/A.purs)0
-rw-r--r--tests/purs/passing/ResolvableScopeConflict/B.purs (renamed from examples/passing/ResolvableScopeConflict/B.purs)0
-rw-r--r--tests/purs/passing/ResolvableScopeConflict2.purs15
-rw-r--r--tests/purs/passing/ResolvableScopeConflict2/A.purs (renamed from examples/passing/ResolvableScopeConflict2/A.purs)0
-rw-r--r--tests/purs/passing/ResolvableScopeConflict3.purs9
-rw-r--r--tests/purs/passing/ResolvableScopeConflict3/A.purs (renamed from examples/failing/ConflictingExports/A.purs)0
-rw-r--r--tests/purs/passing/RowConstructors.purs43
-rw-r--r--tests/purs/passing/RowInInstanceHeadDetermined.purs40
-rw-r--r--tests/purs/passing/RowLacks.purs23
-rw-r--r--tests/purs/passing/RowNub.purs23
-rw-r--r--tests/purs/passing/RowPolyInstanceContext.purs23
-rw-r--r--tests/purs/passing/RowUnion.js (renamed from examples/passing/RowUnion.js)0
-rw-r--r--tests/purs/passing/RowUnion.purs69
-rw-r--r--tests/purs/passing/RowsInInstanceContext.purs25
-rw-r--r--tests/purs/passing/RunFnInline.purs11
-rw-r--r--tests/purs/passing/RuntimeScopeIssue.purs22
-rw-r--r--tests/purs/passing/ScopedTypeVariables.purs37
-rw-r--r--tests/purs/passing/Sequence.purs16
-rw-r--r--tests/purs/passing/SequenceDesugared.purs38
-rw-r--r--tests/purs/passing/ShadowedModuleName.purs8
-rw-r--r--tests/purs/passing/ShadowedModuleName/Test.purs (renamed from examples/passing/ShadowedModuleName/Test.purs)0
-rw-r--r--tests/purs/passing/ShadowedName.purs11
-rw-r--r--tests/purs/passing/ShadowedRename.purs14
-rw-r--r--tests/purs/passing/ShadowedTCO.purs21
-rw-r--r--tests/purs/passing/ShadowedTCOLet.purs15
-rw-r--r--tests/purs/passing/SignedNumericLiterals.purs18
-rw-r--r--tests/purs/passing/SolvingAppendSymbol.purs34
-rw-r--r--tests/purs/passing/SolvingCompareSymbol.purs33
-rw-r--r--tests/purs/passing/SolvingIsSymbol.purs13
-rw-r--r--tests/purs/passing/SolvingIsSymbol/Lib.purs (renamed from examples/passing/SolvingIsSymbol/Lib.purs)0
-rw-r--r--tests/purs/passing/Stream.purs26
-rw-r--r--tests/purs/passing/StringEdgeCases.purs (renamed from examples/passing/StringEdgeCases.purs)0
-rw-r--r--tests/purs/passing/StringEdgeCases/Records.purs39
-rw-r--r--tests/purs/passing/StringEdgeCases/Symbols.purs32
-rw-r--r--tests/purs/passing/StringEscapes.purs26
-rw-r--r--tests/purs/passing/Superclasses1.purs23
-rw-r--r--tests/purs/passing/Superclasses3.purs41
-rw-r--r--tests/purs/passing/TCO.purs28
-rw-r--r--tests/purs/passing/TCOCase.purs13
-rw-r--r--tests/purs/passing/TailCall.purs20
-rw-r--r--tests/purs/passing/Tick.purs8
-rw-r--r--tests/purs/passing/TopLevelCase.purs19
-rw-r--r--tests/purs/passing/TransitiveImport.purs9
-rw-r--r--tests/purs/passing/TransitiveImport/Middle.purs (renamed from examples/passing/TransitiveImport/Middle.purs)0
-rw-r--r--tests/purs/passing/TransitiveImport/Test.purs (renamed from examples/passing/TransitiveImport/Test.purs)0
-rw-r--r--tests/purs/passing/TypeClassMemberOrderChange.purs16
-rw-r--r--tests/purs/passing/TypeClasses.purs71
-rw-r--r--tests/purs/passing/TypeClassesInOrder.purs12
-rw-r--r--tests/purs/passing/TypeClassesWithOverlappingTypeVariables.purs12
-rw-r--r--tests/purs/passing/TypeDecl.purs13
-rw-r--r--tests/purs/passing/TypeOperators.purs20
-rw-r--r--tests/purs/passing/TypeOperators/A.purs (renamed from examples/passing/TypeOperators/A.purs)0
-rw-r--r--tests/purs/passing/TypeSynonymInData.purs12
-rw-r--r--tests/purs/passing/TypeSynonyms.purs28
-rw-r--r--tests/purs/passing/TypeWildcards.purs16
-rw-r--r--tests/purs/passing/TypeWildcardsRecordExtension.purs9
-rw-r--r--tests/purs/passing/TypeWithoutParens.purs12
-rw-r--r--tests/purs/passing/TypeWithoutParens/Lib.purs (renamed from examples/passing/TypeWithoutParens/Lib.purs)0
-rw-r--r--tests/purs/passing/TypedBinders.purs68
-rw-r--r--tests/purs/passing/TypedWhere.purs18
-rw-r--r--tests/purs/passing/UTF8Sourcefile.purs8
-rw-r--r--tests/purs/passing/UnderscoreIdent.purs13
-rw-r--r--tests/purs/passing/UnicodeIdentifier.purs7
-rw-r--r--tests/purs/passing/UnicodeOperators.purs22
-rw-r--r--tests/purs/passing/UnicodeType.purs22
-rw-r--r--tests/purs/passing/UnifyInTypeInstanceLookup.purs25
-rw-r--r--tests/purs/passing/Unit.purs8
-rw-r--r--tests/purs/passing/UnknownInTypeClassLookup.purs15
-rw-r--r--tests/purs/passing/UnsafeCoerce.purs16
-rw-r--r--tests/purs/passing/UntupledConstraints.purs17
-rw-r--r--tests/purs/passing/UsableTypeClassMethods.purs35
-rw-r--r--tests/purs/passing/Where.purs49
-rw-r--r--tests/purs/passing/WildcardInInstance.purs21
-rw-r--r--tests/purs/passing/WildcardType.purs12
-rw-r--r--tests/purs/passing/iota.purs11
-rw-r--r--tests/purs/passing/s.purs8
-rw-r--r--tests/purs/psci/BasicEval.purs (renamed from examples/psci/BasicEval.purs)0
-rw-r--r--tests/purs/psci/Multiline.purs (renamed from examples/psci/Multiline.purs)0
-rw-r--r--tests/purs/warning/2140.purs (renamed from examples/warning/2140.purs)0
-rw-r--r--tests/purs/warning/2383.purs12
-rw-r--r--tests/purs/warning/2411.purs15
-rw-r--r--tests/purs/warning/2542.purs16
-rw-r--r--tests/purs/warning/CustomWarning.purs11
-rw-r--r--tests/purs/warning/CustomWarning2.purs13
-rw-r--r--tests/purs/warning/CustomWarning3.purs15
-rw-r--r--tests/purs/warning/DuplicateExportRef.purs (renamed from examples/warning/DuplicateExportRef.purs)0
-rw-r--r--tests/purs/warning/DuplicateImport.purs10
-rw-r--r--tests/purs/warning/DuplicateImportRef.purs (renamed from examples/warning/DuplicateImportRef.purs)0
-rw-r--r--tests/purs/warning/DuplicateSelectiveImport.purs10
-rw-r--r--tests/purs/warning/HidingImport.purs9
-rw-r--r--tests/purs/warning/ImplicitImport.purs9
-rw-r--r--tests/purs/warning/ImplicitQualifiedImport.purs11
-rw-r--r--tests/purs/warning/ImplicitQualifiedImportReExport.purs13
-rw-r--r--tests/purs/warning/MissingTypeDeclaration.purs (renamed from examples/warning/MissingTypeDeclaration.purs)0
-rw-r--r--tests/purs/warning/NewtypeInstance.purs (renamed from examples/warning/NewtypeInstance.purs)0
-rw-r--r--tests/purs/warning/NewtypeInstance2.purs15
-rw-r--r--tests/purs/warning/NewtypeInstance3.purs21
-rw-r--r--tests/purs/warning/NewtypeInstance4.purs23
-rw-r--r--tests/purs/warning/OverlappingPattern.purs (renamed from examples/warning/OverlappingPattern.purs)0
-rw-r--r--tests/purs/warning/ScopeShadowing.purs (renamed from examples/warning/ScopeShadowing.purs)0
-rw-r--r--tests/purs/warning/ScopeShadowing2.purs10
-rw-r--r--tests/purs/warning/ShadowedBinderPatternGuard.purs (renamed from examples/warning/ShadowedBinderPatternGuard.purs)0
-rw-r--r--tests/purs/warning/ShadowedNameParens.purs (renamed from examples/warning/ShadowedNameParens.purs)0
-rw-r--r--tests/purs/warning/ShadowedTypeVar.purs (renamed from examples/warning/ShadowedTypeVar.purs)0
-rw-r--r--tests/purs/warning/UnnecessaryFFIModule.js (renamed from examples/warning/UnnecessaryFFIModule.js)0
-rw-r--r--tests/purs/warning/UnnecessaryFFIModule.purs (renamed from examples/warning/UnnecessaryFFIModule.purs)0
-rw-r--r--tests/purs/warning/UnusedDctorExplicitImport.purs (renamed from examples/warning/UnusedDctorExplicitImport.purs)0
-rw-r--r--tests/purs/warning/UnusedDctorImportAll.purs (renamed from examples/warning/UnusedDctorImportAll.purs)0
-rw-r--r--tests/purs/warning/UnusedDctorImportExplicit.purs (renamed from examples/warning/UnusedDctorImportExplicit.purs)0
-rw-r--r--tests/purs/warning/UnusedExplicitImport.purs8
-rw-r--r--tests/purs/warning/UnusedExplicitImportTypeOp.purs9
-rw-r--r--tests/purs/warning/UnusedExplicitImportTypeOp/Lib.purs (renamed from examples/warning/UnusedExplicitImportTypeOp/Lib.purs)0
-rw-r--r--tests/purs/warning/UnusedExplicitImportValOp.purs8
-rw-r--r--tests/purs/warning/UnusedFFIImplementations.js (renamed from examples/warning/UnusedFFIImplementations.js)0
-rw-r--r--tests/purs/warning/UnusedFFIImplementations.purs (renamed from examples/warning/UnusedFFIImplementations.purs)0
-rw-r--r--tests/purs/warning/UnusedImport.purs14
-rw-r--r--tests/purs/warning/UnusedTypeVar.purs (renamed from examples/warning/UnusedTypeVar.purs)0
-rw-r--r--tests/purs/warning/WildcardInferredType.purs (renamed from examples/warning/WildcardInferredType.purs)0
-rw-r--r--tests/support/bower.json109
-rw-r--r--tests/support/package-lock.json171
-rw-r--r--tests/support/pscide/src/FindUsage.purs12
-rw-r--r--tests/support/pscide/src/FindUsage/Definition.purs13
-rw-r--r--tests/support/pscide/src/FindUsage/Recursive.purs8
-rw-r--r--tests/support/pscide/src/FindUsage/RecursiveShadowed.purs10
-rw-r--r--tests/support/pscide/src/FindUsage/Reexport.purs3
-rwxr-xr-x[-rw-r--r--]tests/support/setup-win.cmd0
1128 files changed, 12462 insertions, 9016 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ef683c0..0cb15ff 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -8,7 +8,7 @@ If you would like to contribute, please consider the issues in the current miles
Please follow the following guidelines:
-- Add at least a test to `examples/passing/` and possibly to `examples/failing/`.
+- Add at least a test to `tests/purs/passing/` and possibly to `tests/purs/failing/`.
- Build the binaries and libs with `stack build`
- Make sure that all test suites are passing. Run the test suites with `stack test`.
- Build the core libraries by running the script in `core-tests`.
@@ -17,15 +17,15 @@ Please follow the following guidelines:
Run all test suites with `stack test`. You will need `npm`, `bower` and `node` on your PATH to run the tests.
-To build and run a specific test in `examples/passing/` or `examples/failing/`, execute the following commands.
+You can run individual test suites using `stack test --test-arguments="-p
+PATTERN"` where `PATTERN` is one of `compiler`, `repl`, `ide`, `docs`, `corefn`,
+or `hierarchy`.
-``` bash
-# Build
-stack exec purs -- compile 'tests/support/bower_components/purescript-*/src/**/*.purs' examples/blah/Blah.purs
+To build and run a specific test in `tests/purs/passing/` or `tests/purs/failing/`, add test arguments like so:
-# Run
-node -e "require('./output/Main/').main()"
-```
+`stack test --fast --test-arguments="-p compiler/**1110.purs*"`
+
+This will run whatever test uses the example file `1110.purs`.
## Code Review
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 30ae2b4..78a5abc 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -26,11 +26,13 @@ If you would prefer to use different terms, please use the section below instead
| [@balajirrao](https://github.com/balajirrao) | Balaji Rao | MIT license |
| [@bbqbaron](https://github.com/bbqbaron) | Eric Loren | [MIT license](http://opensource.org/licenses/MIT) |
| [@bergmark](https://github.com/bergmark) | Adam Bergmark | MIT license |
+| [@bitemyapp](https://github.com/bitemyapp) | Chris Allen | [MIT license](http://opensource.org/licenses/MIT) |
| [@bmjames](https://github.com/bmjames) | Ben James | [MIT license](http://opensource.org/licenses/MIT) |
| [@Bogdanp](https://github.com/Bogdanp) | Bogdan Paul Popa | [MIT license](http://opensource.org/licenses/MIT) |
| [@brandonhamilton](https://github.com/brandonhamilton) | Brandon Hamilton | [MIT license](http://opensource.org/licenses/MIT) |
| [@bsermons](https://github.com/bsermons) | Brian Sermons | [MIT license](http://opensource.org/licenses/MIT) |
| [@cdepillabout](https://github.com/cdepillabout) | Dennis Gosnell | [MIT license](http://opensource.org/licenses/MIT) |
+| [@chexxor](https://github.com/chexxor) | Alex Berg | [MIT license](http://opensource.org/licenses/MIT) |
| [@chrisdone](https://github.com/chrisdone) | Chris Done | MIT license |
| [@cmdv](https://github.com/cmdv) | Vincent Orr | MIT license |
| [@codedmart](https://github.com/codedmart) | Brandon Martin | [MIT license](http://opensource.org/licenses/MIT) |
@@ -44,6 +46,7 @@ If you would prefer to use different terms, please use the section below instead
| [@erdeszt](https://github.com/erdeszt) | Tibor Erdesz | [MIT license](http://opensource.org/licenses/MIT) |
| [@etrepum](https://github.com/etrepum) | Bob Ippolito | [MIT license](http://opensource.org/licenses/MIT) |
| [@faineance](https://github.com/faineance) | faineance | [MIT license](http://opensource.org/licenses/MIT) |
+| [@fehrenbach](https://github.com/fehrenbach) | Stefan Fehrenbach | [MIT license](http://opensource.org/licenses/MIT) |
| [@felixSchl](https://github.com/felixSchl) | Felix Schlitter | [MIT license](http://opensource.org/licenses/MIT) |
| [@FrigoEU](https://github.com/FrigoEU) | Simon Van Casteren | [MIT license](http://opensource.org/licenses/MIT) |
| [@garyb](https://github.com/garyb) | Gary Burgess | [MIT license](http://opensource.org/licenses/MIT) |
@@ -65,6 +68,7 @@ If you would prefer to use different terms, please use the section below instead
| [@lukerandall](https://github.com/lukerandall) | Luke Randall | [MIT license](http://opensource.org/licenses/MIT) |
| [@matthewleon](https://github.com/matthewleon) | Matthew Leon | [MIT license](http://opensource.org/licenses/MIT) |
| [@mcoffin](https://github.com/mcoffin) | Matt Coffin | [MIT license](http://opensource.org/licenses/MIT) |
+| [@MiracleBlue](https://github.com/MiracleBlue) | Nicholas Kircher | [MIT license](http://opensource.org/licenses/MIT) |
| [@mrkgnao](https://github.com/mrkgnao) | Soham Chowdhury | [MIT license](http://opensource.org/licenses/MIT) |
| [@mgmeier](https://github.com/mgmeier) | Michael Gilliland | [MIT license](http://opensource.org/licenses/MIT) |
| [@michaelficarra](https://github.com/michaelficarra) | Michael Ficarra | [MIT license](http://opensource.org/licenses/MIT) |
@@ -79,6 +83,7 @@ If you would prefer to use different terms, please use the section below instead
| [@nwolverson](https://github.com/nwolverson) | Nicholas Wolverson | [MIT license](http://opensource.org/licenses/MIT) |
| [@osa1](https://github.com/osa1) | Γ–mer Sinan Ağacan | MIT license |
| [@paf31](https://github.com/paf31) | Phil Freeman | [MIT license](http://opensource.org/licenses/MIT) |
+| [@parsonsmatt](https://github.com/parsonsmatt) | Matt Parsons | [MIT license](http://opensource.org/licenses/MIT) |
| [@passy](https://github.com/passy) | Pascal Hartig | [MIT license](http://opensource.org/licenses/MIT) |
| [@paulyoung](https://github.com/paulyoung) | Paul Young | [MIT license](http://opensource.org/licenses/MIT) |
| [@pelotom](https://github.com/pelotom) | Thomas Crockett | [MIT license](http://opensource.org/licenses/MIT) |
@@ -86,7 +91,9 @@ If you would prefer to use different terms, please use the section below instead
| [@phiggins](https://github.com/phiggins) | Pete Higgins | [MIT license](http://opensource.org/licenses/MIT) |
| [@philopon](https://github.com/philopon) | Hirotomo Moriwaki | [MIT license](http://opensource.org/licenses/MIT) |
| [@pseudonom](https://github.com/pseudonom) | Eric Easley | [MIT license](http://opensource.org/licenses/MIT) |
+| [@quesebifurcan](https://github.com/quesebifurcan) | Fredrik Wallberg | [MIT license](http://opensource.org/licenses/MIT) |
| [@rightfold](https://github.com/rightfold) | rightfold | [MIT license](https://opensource.org/licenses/MIT) |
+| [@rndnoise](https://github.com/rndnoise) | rndnoise | [MIT license](http://opensource.org/licenses/MIT) |
| [@robdaemon](https://github.com/robdaemon) | Robert Roland | [MIT license](http://opensource.org/licenses/MIT) |
| [@RossMeikleham](https://github.com/RossMeikleham) | Ross Meikleham | [MIT license](http://opensource.org/licenses/MIT) |
| [@Rufflewind](https://github.com/Rufflewind) | Phil Ruffwind | [MIT license](https://opensource.org/licenses/MIT) |
@@ -109,11 +116,16 @@ If you would prefer to use different terms, please use the section below instead
| [@trofi](https://github.com/trofi) | Sergei Trofimovich | [MIT license](http://opensource.org/licenses/MIT) |
| [@utkarshkukreti](https://github.com/utkarshkukreti) | Utkarsh Kukreti | [MIT license](http://opensource.org/licenses/MIT) |
| [@vkorablin](https://github.com/vkorablin) | Vladimir Korablin | MIT license |
+| [@vladciobanu](https://github.com/vladciobanu) | Vladimir Ciobanu | [MIT license](http://opensource.org/licenses/MIT) |
| [@zudov](https://github.com/zudov) | Konstantin Zudov | [MIT license](http://opensource.org/licenses/MIT) |
| [@b123400](https://github.com/b123400) | b123400 | [MIT license](https://opensource.org/licenses/MIT) |
+| [@kcsongor](https://github.com/kcsongor) | Csongor Kiss | [MIT license](http://opensource.org/licenses/MIT) |
| [@drets](https://github.com/drets) | Dmytro Rets | [MIT license](http://opensource.org/licenses/MIT) |
| [@bjornmelgaaard](https://github.com/BjornMelgaard) | Sergey Homa | [MIT license](http://opensource.org/licenses/MIT) |
| [@thimoteus](https://github.com/Thimoteus) | thimoteus | [MIT license](http://opensource.org/licenses/MIT) |
+| [@sloosch](https://github.com/sloosch) | Simon Looschen | [MIT license](http://opensource.org/licenses/MIT) |
+| [@rgrinberg](https://github.com/rgrinberg) | Rudi Grinberg | [MIT license](http://opensource.org/licenses/MIT) |
+| [@gabejohnson](https://github.com/gabejohnson) | Gabe Johnson | [MIT license](http://opensource.org/licenses/MIT) |
### Contributors using Modified Terms
diff --git a/INSTALL.md b/INSTALL.md
index 27f170a..9d729f9 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,25 +1,34 @@
# Installation information
If you are having difficulty installing the PureScript compiler, feel free to
-ask for help! A good place is the #purescript IRC channel on Freenode, or
+ask for help! A good place is the #purescript IRC channel on Freenode, the #purescript channel on [FPChat Slack](https://fpchat-invite.herokuapp.com/), or
alternatively Stack Overflow.
## Using prebuilt binaries
-The prebuilt binaries are compiled with GHC 8.0.2 and therefore they should
-run on any operating system supported by GHC 8.0.2, such as:
+The prebuilt binaries are compiled with GHC 8.2.2 and therefore they should
+run on any operating system supported by GHC 8.2.2, such as:
* Windows Vista or later,
* OS X 10.7 or later,
-* Linux ??? (we're not sure what the minimum version is).
+* Linux ??? (we're not sure what the minimum version is)
-This list is not exhaustive. If your OS is too old or not listed, or if the
-binaries fail to run, you may be able to install the compiler by building it
-from source; see below.
+This list is not exhaustive. If your OS is too old or not listed, or if the binaries fail to run, you may be able to install the compiler by building it from source; see below. See also <https://www.haskell.org/ghc/download_ghc_8_2_2.html> for more details about the operating systems which GHC 8.2.2 supports.
Other prebuilt distributions (eg, Homebrew, AUR, npm) will probably have the
same requirements.
+## Installing a pre-built distribution
+
+There are several options available for aquiring a pre-built binary of the PureScript compiler. This is by no means an exhaustive list, and is presented in no particular order. Each example is expected to install the latest available compiler version at the time of running the command. Many of these are provided and maintained by the community, and may not be immediately up to date.
+
+* NPM: `npm install -g purescript`
+* Homebrew (for OS X): `brew install purescript`
+* [PSVM](https://github.com/ThomasCrevoisier/psvm-js) (PS Version Manager):
+ 1) `psvm install-latest` will install the latest version available
+ 2) `psvm latest` will print the latest version number available
+ 3) `psvm use <latest version number>` will enable the version we just installed. For example, if the version is `v0.11.7`, you'd run `psvm use v0.11.7`
+
## Compiling from source
The easiest way is to use stack:
diff --git a/README.md b/README.md
index 3ac5df9..f5db507 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,7 @@ A small strongly typed programming language with expressive types that compiles
## Help!
- [#purescript @ FP Slack](https://functionalprogramming.slack.com/)
+- [PureScript Language Forum](https://purescript-users.ml/)
- [PureScript on StackOverflow](http://stackoverflow.com/questions/tagged/purescript)
- [Google Group](https://groups.google.com/forum/#!forum/purescript)
- [Gitter Channel](https://gitter.im/purescript/purescript?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
diff --git a/app/Command/Compile.hs b/app/Command/Compile.hs
index b5baa59..cb91b61 100644
--- a/app/Command/Compile.hs
+++ b/app/Command/Compile.hs
@@ -13,8 +13,12 @@ import qualified Data.Aeson as A
import Data.Bool (bool)
import qualified Data.ByteString.Lazy as B
import qualified Data.ByteString.UTF8 as BU8
+import Data.List (intercalate)
import qualified Data.Map as M
+import qualified Data.Set as S
import Data.Text (Text)
+import qualified Data.Text as T
+import Data.Traversable (for)
import qualified Language.PureScript as P
import Language.PureScript.Errors.JSON
import Language.PureScript.Make
@@ -89,7 +93,7 @@ readInput inputFiles = forM inputFiles $ \inFile -> (inFile, ) <$> readUTF8FileT
inputFile :: Opts.Parser FilePath
inputFile = Opts.strArgument $
Opts.metavar "FILE"
- <> Opts.help "The input .purs file(s)"
+ <> Opts.help "The input .purs file(s)."
outputDirectory :: Opts.Parser FilePath
outputDirectory = Opts.strOption $
@@ -122,21 +126,46 @@ jsonErrors = Opts.switch $
Opts.long "json-errors"
<> Opts.help "Print errors to stderr as JSON"
-sourceMaps :: Opts.Parser Bool
-sourceMaps = Opts.switch $
- Opts.long "source-maps"
- <> Opts.help "Generate source maps"
-
-dumpCoreFn :: Opts.Parser Bool
-dumpCoreFn = Opts.switch $
- Opts.long "dump-corefn"
- <> Opts.help "Dump the (functional) core representation of the compiled code at output/*/corefn.json"
+codegenTargets :: Opts.Parser [P.CodegenTarget]
+codegenTargets = Opts.option targetParser $
+ Opts.short 'g'
+ <> Opts.long "codegen"
+ <> Opts.value [P.JS]
+ <> Opts.help
+ ( "Specifies comma-separated codegen targets to include. "
+ <> targetsMessage
+ <> " The default target is 'js', but if this option is used only the targets specified will be used."
+ )
+
+targets :: M.Map String P.CodegenTarget
+targets = M.fromList
+ [ ("js", P.JS)
+ , ("sourcemaps", P.JSSourceMap)
+ , ("corefn", P.CoreFn)
+ ]
+
+targetsMessage :: String
+targetsMessage = "Accepted codegen targets are '" <> intercalate "', '" (M.keys targets) <> "'."
+
+targetParser :: Opts.ReadM [P.CodegenTarget]
+targetParser =
+ Opts.str >>= \s ->
+ for (T.split (== ',') s)
+ $ maybe (Opts.readerError targetsMessage) pure
+ . flip M.lookup targets
+ . T.unpack
+ . T.strip
options :: Opts.Parser P.Options
-options = P.Options <$> verboseErrors
- <*> (not <$> comments)
- <*> sourceMaps
- <*> dumpCoreFn
+options =
+ P.Options
+ <$> verboseErrors
+ <*> (not <$> comments)
+ <*> (handleTargets <$> codegenTargets)
+ where
+ -- Ensure that the JS target is included if sourcemaps are
+ handleTargets :: [P.CodegenTarget] -> S.Set P.CodegenTarget
+ handleTargets ts = S.fromList (if elem P.JSSourceMap ts then P.JS : ts else ts)
pscMakeOptions :: Opts.Parser PSCMakeOptions
pscMakeOptions = PSCMakeOptions <$> many inputFile
diff --git a/app/Command/Docs.hs b/app/Command/Docs.hs
index 8e728eb..048cb64 100644
--- a/app/Command/Docs.hs
+++ b/app/Command/Docs.hs
@@ -2,34 +2,29 @@
module Command.Docs (command, infoModList) where
-import Protolude (ordNub)
-
-import Command.Docs.Etags
-import Command.Docs.Ctags
import Command.Docs.Html
import Control.Applicative
import Control.Arrow (first, second)
import Control.Category ((>>>))
import Control.Monad.Writer
import Control.Monad.Trans.Except (runExceptT)
-import Data.Text (Text)
import qualified Data.Text as T
import qualified Data.Text.IO as T
import Data.Function (on)
import Data.List
-import Data.Maybe (fromMaybe)
import Data.Tuple (swap)
import qualified Language.PureScript as P
import qualified Language.PureScript.Docs as D
import qualified Language.PureScript.Docs.AsMarkdown as D
+import Language.PureScript.Docs.Tags (dumpCtags, dumpEtags)
import qualified Options.Applicative as Opts
import qualified Text.PrettyPrint.ANSI.Leijen as PP
import System.Directory (createDirectoryIfMissing)
import System.Exit (exitFailure)
import System.FilePath (takeDirectory)
import System.FilePath.Glob (glob)
-import System.IO (hPutStrLn, hPrint, stderr)
-import System.IO.UTF8 (readUTF8FileT, writeUTF8FileT)
+import System.IO (hPutStrLn, stderr)
+import System.IO.UTF8 (writeUTF8FileT)
-- | Available output formats
data Format
@@ -60,19 +55,18 @@ docgen (PSCDocsOptions fmt inputGlob output) = do
hPutStrLn stderr "purs docs: no input files."
exitFailure
+ fileMs <- parseAndConvert input
+ let ms = map snd fileMs
case fmt of
- Etags -> dumpTags input dumpEtags
- Ctags -> dumpTags input dumpCtags
+ Etags -> mapM_ putStrLn $ dumpEtags fileMs
+ Ctags -> mapM_ putStrLn $ dumpCtags fileMs
Html -> do
let outputDir = "./generated-docs" -- TODO: make this configurable
- ms <- parseAndConvert input
- let msHtml = map asHtml (D.primDocsModule : ms)
+ let msHtml = map asHtml (D.primModules ++ ms)
createDirectoryIfMissing False outputDir
writeHtmlModules outputDir msHtml
- Markdown -> do
- ms <- parseAndConvert input
-
+ Markdown ->
case output of
EverythingToStdOut ->
T.putStrLn (D.runDocs (D.modulesAsMarkdown ms))
@@ -115,7 +109,7 @@ docgen (PSCDocsOptions fmt inputGlob output) = do
parseAndConvert input =
runExceptT (D.parseFilesInPackages input []
- >>= uncurry D.convertModulesInPackage)
+ >>= uncurry D.convertTaggedModulesInPackage)
>>= successOrExit
-- |
@@ -139,26 +133,6 @@ takeModulesByName' getModuleName modules = foldl go ([], [])
Just m -> ((m, x) : ms, missing)
Nothing -> (ms, name : missing)
-dumpTags :: [FilePath] -> ([(String, P.Module)] -> [String]) -> IO ()
-dumpTags input renderTags = do
- e <- P.parseModulesFromFiles (fromMaybe "") <$> mapM (fmap (first Just) . parseFile) (ordNub input)
- case e of
- Left err -> do
- hPrint stderr err
- exitFailure
- Right ms ->
- ldump (renderTags (pairs ms))
-
- where
- pairs :: [(Maybe String, m)] -> [(String, m)]
- pairs = map (first (fromMaybe ""))
-
- ldump :: [String] -> IO ()
- ldump = mapM_ putStrLn
-
-parseFile :: FilePath -> IO (FilePath, Text)
-parseFile input = (,) input <$> readUTF8FileT input
-
inputFile :: Opts.Parser FilePath
inputFile = Opts.strArgument $
Opts.metavar "FILE"
diff --git a/app/Command/Docs/Ctags.hs b/app/Command/Docs/Ctags.hs
deleted file mode 100644
index 9cfd714..0000000
--- a/app/Command/Docs/Ctags.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Command.Docs.Ctags (dumpCtags) where
-
-import Command.Docs.Tags
-import Data.List (sort)
-import qualified Language.PureScript as P
-
-dumpCtags :: [(String, P.Module)] -> [String]
-dumpCtags = sort . concatMap renderModCtags
-
-renderModCtags :: (String, P.Module) -> [String]
-renderModCtags (path, mdl) = sort tagLines
- where tagLines = map tagLine $ tags mdl
- tagLine (name, line) = name ++ "\t" ++ path ++ "\t" ++ show line
diff --git a/app/Command/Docs/Etags.hs b/app/Command/Docs/Etags.hs
deleted file mode 100644
index c6e4319..0000000
--- a/app/Command/Docs/Etags.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Command.Docs.Etags (dumpEtags) where
-
-import Command.Docs.Tags
-import qualified Language.PureScript as P
-
-dumpEtags :: [(String, P.Module)] -> [String]
-dumpEtags = concatMap renderModEtags
-
-renderModEtags :: (String, P.Module) -> [String]
-renderModEtags (path, mdl) = ["\x0c", path ++ "," ++ show tagsLen] ++ tagLines
- where tagsLen = sum $ map length tagLines
- tagLines = map tagLine $ tags mdl
- tagLine (name, line) = "\x7f" ++ name ++ "\x01" ++ show line ++ ","
diff --git a/app/Command/Docs/Tags.hs b/app/Command/Docs/Tags.hs
deleted file mode 100644
index ecdbdbc..0000000
--- a/app/Command/Docs/Tags.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Command.Docs.Tags where
-
-import Control.Arrow (first)
-import qualified Data.Text as T
-import qualified Language.PureScript as P
-
-tags :: P.Module -> [(String, Int)]
-tags = map (first T.unpack) . concatMap dtags . P.exportedDeclarations
- where
- dtags :: P.Declaration -> [(P.Text, Int)]
- dtags (P.DataDeclaration (ss, _) _ name _ dcons) = (P.runProperName name, pos ss) : consNames
- where consNames = map (\(cname, _) -> (P.runProperName cname, pos ss)) dcons
- dtags (P.TypeDeclaration (P.TypeDeclarationData (ss, _) ident _)) = [(P.showIdent ident, pos ss)]
- dtags (P.ExternDeclaration (ss, _) ident _) = [(P.showIdent ident, pos ss)]
- dtags (P.TypeSynonymDeclaration (ss, _) name _ _) = [(P.runProperName name, pos ss)]
- dtags (P.TypeClassDeclaration (ss, _) name _ _ _ _) = [(P.runProperName name, pos ss)]
- dtags (P.TypeInstanceDeclaration (ss, _) name _ _ _ _) = [(P.showIdent name, pos ss)]
- dtags (P.ExternKindDeclaration (ss, _) name) = [(P.runProperName name, pos ss)]
- dtags _ = []
- pos :: P.SourceSpan -> Int
- pos = P.sourcePosLine . P.spanStart
diff --git a/app/Command/REPL.hs b/app/Command/REPL.hs
index 1b81994..04033b5 100644
--- a/app/Command/REPL.hs
+++ b/app/Command/REPL.hs
@@ -330,7 +330,7 @@ command = loop <$> options
Right (modules, externs, env) -> do
historyFilename <- getHistoryFilename
let settings = defaultSettings { historyFile = Just historyFilename }
- initialState = PSCiState [] [] (zip (map snd modules) externs)
+ initialState = updateLoadedExterns (const (zip (map snd modules) externs)) initialPSCiState
config = PSCiConfig psciInputGlob env
runner = flip runReaderT config
. flip evalStateT initialState
@@ -360,13 +360,10 @@ command = loop <$> options
configFile <- (</> ".purs-repl") <$> liftIO getCurrentDirectory
exists <- liftIO $ doesFileExist configFile
when exists $ do
- ls <- lines <$> liftIO (readUTF8File configFile)
- for_ ls $ \l -> do
- liftIO (putStrLn l)
- case parseCommand l of
- Left err -> liftIO (putStrLn err >> exitFailure)
- Right cmd@Import{} -> handleCommand' state cmd
- Right _ -> liftIO (putStrLn "The .purs-repl file only supports import declarations")
+ cf <- liftIO (readUTF8File configFile)
+ case parseDotFile configFile cf of
+ Left err -> liftIO (putStrLn err >> exitFailure)
+ Right cmds -> liftIO (putStrLn cf) >> for_ cmds (handleCommand' state)
handleCommandWithInterrupts
:: state
diff --git a/app/Main.hs b/app/Main.hs
index dcc4a5e..1f5ec06 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -19,6 +19,7 @@ import Data.Monoid ((<>))
import qualified Options.Applicative as Opts
import System.Environment (getArgs)
import qualified System.IO as IO
+import qualified Text.PrettyPrint.ANSI.Leijen as Doc
import Version (versionString)
@@ -32,7 +33,20 @@ main = do
opts = Opts.info (versionInfo <*> Opts.helper <*> commands) infoModList
infoModList = Opts.fullDesc <> headerInfo <> footerInfo
headerInfo = Opts.progDesc "The PureScript compiler and tools"
- footerInfo = Opts.footer $ "purs " ++ versionString
+ footerInfo = Opts.footerDoc (Just footer)
+
+ footer =
+ mconcat
+ [ para $
+ "For help using each individual command, run `purs COMMAND --help`. " ++
+ "For example, `purs compile --help` displays options specific to the `compile` command."
+ , Doc.hardline
+ , Doc.hardline
+ , Doc.text $ "purs " ++ versionString
+ ]
+
+ para :: String -> Doc.Doc
+ para = foldr (Doc.</>) Doc.empty . map Doc.text . words
-- | Displays full command help when invoked with no arguments.
execParserPure :: Opts.ParserInfo a -> [String] -> Opts.ParserResult a
@@ -55,7 +69,7 @@ main = do
(Opts.progDesc "Compile PureScript source files"))
, Opts.command "docs"
(Opts.info Docs.command
- (Opts.progDesc "Generate Markdown documentation from PureScript source files" <> Docs.infoModList))
+ (Opts.progDesc "Generate documentation from PureScript source files in a variety of formats, including Markdown and HTML" <> Docs.infoModList))
, Opts.command "hierarchy"
(Opts.info Hierarchy.command
(Opts.progDesc "Generate a GraphViz directed graph of PureScript type classes"))
diff --git a/examples/docs/src/TypeLevelString.purs b/examples/docs/src/TypeLevelString.purs
deleted file mode 100644
index 34d4f03..0000000
--- a/examples/docs/src/TypeLevelString.purs
+++ /dev/null
@@ -1,7 +0,0 @@
-module TypeLevelString where
-
-data Foo
-
-class Bar a
-
-instance fooBar :: Fail "oops" => Bar Foo
diff --git a/examples/failing/1310.purs b/examples/failing/1310.purs
deleted file mode 100644
index 02fde55..0000000
--- a/examples/failing/1310.purs
+++ /dev/null
@@ -1,18 +0,0 @@
--- @shouldFailWith NoInstanceFound
-
-module Issue1310 where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-class Inject f g where
- inj :: forall a. f a -> g a
-
-instance inject :: Inject f f where
- inj x = x
-
-foreign import data Oops :: Effect
-
-main :: forall eff. Eff (oops :: Oops | eff) Unit
-main = inj (log "Oops")
diff --git a/examples/failing/2567.purs b/examples/failing/2567.purs
deleted file mode 100644
index 00f8ea8..0000000
--- a/examples/failing/2567.purs
+++ /dev/null
@@ -1,5 +0,0 @@
--- @shouldFailWith NoInstanceFound
-module Main where
-
-foo :: Int
-foo = (0 :: Fail "This constraint should be checked" => Int)
diff --git a/examples/failing/ArgLengthMismatch.purs b/examples/failing/ArgLengthMismatch.purs
deleted file mode 100644
index 847e293..0000000
--- a/examples/failing/ArgLengthMismatch.purs
+++ /dev/null
@@ -1,7 +0,0 @@
--- @shouldFailWith ArgListLengthsDiffer
-module ArgLengthMismatch where
-
-import Prelude
-
-f x y = true
-f = false
diff --git a/examples/failing/ArrayType.purs b/examples/failing/ArrayType.purs
deleted file mode 100644
index a93731c..0000000
--- a/examples/failing/ArrayType.purs
+++ /dev/null
@@ -1,14 +0,0 @@
--- @shouldFailWith TypesDoNotUnify
-
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-bar :: Number -> Number -> Number
-bar n m = n + m
-
-foo = x `bar` y
- where
- x = 1
- y = []
diff --git a/examples/failing/Eff.purs b/examples/failing/Eff.purs
deleted file mode 100644
index e41e085..0000000
--- a/examples/failing/Eff.purs
+++ /dev/null
@@ -1,13 +0,0 @@
--- @shouldFailWith TypesDoNotUnify
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.ST
-import Control.Monad.Eff.Console
-
-test = pureST (do
- ref <- newSTRef 0
- log "ST"
- modifySTRef ref $ \n -> n + 1
- readSTRef ref)
diff --git a/examples/failing/ExportExplicit.purs b/examples/failing/ExportExplicit.purs
deleted file mode 100644
index 20bdf00..0000000
--- a/examples/failing/ExportExplicit.purs
+++ /dev/null
@@ -1,8 +0,0 @@
--- @shouldFailWith UnknownExport
--- should fail as z does not exist in the module
-module M1 (x, y, z) where
-
-import Prelude
-
-x = 1
-y = 2
diff --git a/examples/failing/ExportExplicit1.purs b/examples/failing/ExportExplicit1.purs
deleted file mode 100644
index f99e824..0000000
--- a/examples/failing/ExportExplicit1.purs
+++ /dev/null
@@ -1,12 +0,0 @@
--- @shouldFailWith UnknownName
-module Main where
-
-import M1
-import Control.Monad.Eff.Console (log)
-
-testX = X
-
--- should fail as Y constructor is not exported from M1
-testY = Y
-
-main = log "Done"
diff --git a/examples/failing/ExportExplicit1/M1.purs b/examples/failing/ExportExplicit1/M1.purs
deleted file mode 100644
index 9bc4f16..0000000
--- a/examples/failing/ExportExplicit1/M1.purs
+++ /dev/null
@@ -1,3 +0,0 @@
-module M1 (X(X)) where
-
-data X = X | Y
diff --git a/examples/failing/ExportExplicit2.purs b/examples/failing/ExportExplicit2.purs
deleted file mode 100644
index e105bff..0000000
--- a/examples/failing/ExportExplicit2.purs
+++ /dev/null
@@ -1,8 +0,0 @@
--- @shouldFailWith UnknownExportDataConstructor
--- should fail as Y is not a data constructor for X
-module M1 (X(Y)) where
-
-import Prelude
-
-data X = X
-data Y = Y
diff --git a/examples/failing/ExportExplicit3.purs b/examples/failing/ExportExplicit3.purs
deleted file mode 100644
index e4cbe54..0000000
--- a/examples/failing/ExportExplicit3.purs
+++ /dev/null
@@ -1,10 +0,0 @@
--- @shouldFailWith UnknownName
-module Main where
-
-import M1 as M
-import Control.Monad.Eff.Console (log)
-
--- should fail as Z is not exported from M1
-testZ = M.Z
-
-main = log "Done"
diff --git a/examples/failing/ExportExplicit3/M1.purs b/examples/failing/ExportExplicit3/M1.purs
deleted file mode 100644
index 32dd667..0000000
--- a/examples/failing/ExportExplicit3/M1.purs
+++ /dev/null
@@ -1,4 +0,0 @@
-module M1 (X(..)) where
-
-data X = X | Y
-data Z = Z
diff --git a/examples/failing/ImportExplicit.purs b/examples/failing/ImportExplicit.purs
deleted file mode 100644
index d42df77..0000000
--- a/examples/failing/ImportExplicit.purs
+++ /dev/null
@@ -1,4 +0,0 @@
--- @shouldFailWith UnknownImport
-module Main where
-
-import M1 (X(..))
diff --git a/examples/failing/ImportExplicit/M1.purs b/examples/failing/ImportExplicit/M1.purs
deleted file mode 100644
index f3155b8..0000000
--- a/examples/failing/ImportExplicit/M1.purs
+++ /dev/null
@@ -1,3 +0,0 @@
-module M1 where
-
-foo = "foo"
diff --git a/examples/failing/ImportExplicit2.purs b/examples/failing/ImportExplicit2.purs
deleted file mode 100644
index e1b43c6..0000000
--- a/examples/failing/ImportExplicit2.purs
+++ /dev/null
@@ -1,4 +0,0 @@
--- @shouldFailWith UnknownImportDataConstructor
-module Main where
-
-import M1 (X(Z, Q))
diff --git a/examples/failing/ImportExplicit2/M1.purs b/examples/failing/ImportExplicit2/M1.purs
deleted file mode 100644
index 35fd17c..0000000
--- a/examples/failing/ImportExplicit2/M1.purs
+++ /dev/null
@@ -1,3 +0,0 @@
-module M1 where
-
-data X = Y
diff --git a/examples/failing/ImportHidingModule.purs b/examples/failing/ImportHidingModule.purs
deleted file mode 100644
index 5fa1025..0000000
--- a/examples/failing/ImportHidingModule.purs
+++ /dev/null
@@ -1,4 +0,0 @@
--- @shouldFailWith ImportHidingModule
-module Main where
-
-import B hiding (module A)
diff --git a/examples/failing/ImportHidingModule/A.purs b/examples/failing/ImportHidingModule/A.purs
deleted file mode 100644
index e741925..0000000
--- a/examples/failing/ImportHidingModule/A.purs
+++ /dev/null
@@ -1,2 +0,0 @@
-module A where
-x = 1
diff --git a/examples/failing/ImportHidingModule/B.purs b/examples/failing/ImportHidingModule/B.purs
deleted file mode 100644
index e714878..0000000
--- a/examples/failing/ImportHidingModule/B.purs
+++ /dev/null
@@ -1,3 +0,0 @@
-module B (module B, module A) where
-import A
-y = 1
diff --git a/examples/failing/ImportModule.purs b/examples/failing/ImportModule.purs
deleted file mode 100644
index a996fbc..0000000
--- a/examples/failing/ImportModule.purs
+++ /dev/null
@@ -1,4 +0,0 @@
--- @shouldFailWith ModuleNotFound
-module Main where
-
-import M1
diff --git a/examples/failing/ImportModule/M2.purs b/examples/failing/ImportModule/M2.purs
deleted file mode 100644
index c1a472f..0000000
--- a/examples/failing/ImportModule/M2.purs
+++ /dev/null
@@ -1,3 +0,0 @@
-module M2 where
-
-data X = X
diff --git a/examples/failing/InstanceExport.purs b/examples/failing/InstanceExport.purs
deleted file mode 100644
index a87b881..0000000
--- a/examples/failing/InstanceExport.purs
+++ /dev/null
@@ -1,7 +0,0 @@
--- @shouldFailWith TransitiveExportError
-module Test where
-
-import InstanceExport
-import Prelude
-
-test = f $ S "Test"
diff --git a/examples/failing/InstanceExport/InstanceExport.purs b/examples/failing/InstanceExport/InstanceExport.purs
deleted file mode 100644
index 4770857..0000000
--- a/examples/failing/InstanceExport/InstanceExport.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module InstanceExport (S(..), f) where
-
-import Prelude
-
-newtype S = S String
-
-class F a where
- f :: a -> String
-
-instance fs :: F S where
- f (S s) = s
diff --git a/examples/failing/MultipleTypeOpFixities.purs b/examples/failing/MultipleTypeOpFixities.purs
deleted file mode 100644
index b231e54..0000000
--- a/examples/failing/MultipleTypeOpFixities.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith MultipleTypeOpFixities
-module MultipleTypeOpFixities where
-
-import Prelude
-
-type Op x y = Op x y
-
-infix 2 type Op as !?
-infix 2 type Op as !?
diff --git a/examples/failing/MultipleValueOpFixities.purs b/examples/failing/MultipleValueOpFixities.purs
deleted file mode 100644
index ac8bfa9..0000000
--- a/examples/failing/MultipleValueOpFixities.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith MultipleValueOpFixities
-module MultipleValueOpFixities where
-
-import Prelude
-
-add x y = x + y
-
-infix 2 add as !?
-infix 2 add as !?
diff --git a/examples/failing/NonWildcardNewtypeInstance.purs b/examples/failing/NonWildcardNewtypeInstance.purs
deleted file mode 100644
index 3c1ac5d..0000000
--- a/examples/failing/NonWildcardNewtypeInstance.purs
+++ /dev/null
@@ -1,8 +0,0 @@
--- @shouldFailWith ExpectedWildcard
-module NonWildcardNewtypeInstance where
-
-import Data.Newtype
-
-data Test = Test String
-
-derive instance newtypeTest :: Newtype Test String
diff --git a/examples/failing/OrphanInstance.purs b/examples/failing/OrphanInstance.purs
deleted file mode 100644
index fa7703d..0000000
--- a/examples/failing/OrphanInstance.purs
+++ /dev/null
@@ -1,7 +0,0 @@
--- @shouldFailWith OrphanInstance
-module Test where
-
-import Class
-
-instance cBoolean :: C Boolean where
- op a = a
diff --git a/examples/failing/OrphanInstance/Class.purs b/examples/failing/OrphanInstance/Class.purs
deleted file mode 100644
index 6f7d61f..0000000
--- a/examples/failing/OrphanInstance/Class.purs
+++ /dev/null
@@ -1,4 +0,0 @@
-module Class where
-
-class C a where
- op :: a -> a
diff --git a/examples/failing/OrphanInstanceNullary.purs b/examples/failing/OrphanInstanceNullary.purs
deleted file mode 100644
index cd2e6af..0000000
--- a/examples/failing/OrphanInstanceNullary.purs
+++ /dev/null
@@ -1,4 +0,0 @@
--- @shouldFailWith OrphanInstance
-module Test where
-import Lib
-instance c :: C
diff --git a/examples/failing/OrphanInstanceNullary/Lib.purs b/examples/failing/OrphanInstanceNullary/Lib.purs
deleted file mode 100644
index b96dc89..0000000
--- a/examples/failing/OrphanInstanceNullary/Lib.purs
+++ /dev/null
@@ -1,2 +0,0 @@
-module Lib where
-class C
diff --git a/examples/failing/OrphanTypeDecl.purs b/examples/failing/OrphanTypeDecl.purs
deleted file mode 100644
index b5f1531..0000000
--- a/examples/failing/OrphanTypeDecl.purs
+++ /dev/null
@@ -1,4 +0,0 @@
--- @shouldFailWith OrphanTypeDeclaration
-module OrphanTypeDecl where
-
-fn :: Number -> Boolean
diff --git a/examples/failing/ProgrammableTypeErrors.purs b/examples/failing/ProgrammableTypeErrors.purs
deleted file mode 100644
index 72d51ef..0000000
--- a/examples/failing/ProgrammableTypeErrors.purs
+++ /dev/null
@@ -1,16 +0,0 @@
--- @shouldFailWith NoInstanceFound
-
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (log)
-
-class MyShow a where
- myShow :: a -> String
-
-instance cannotShowFunctions :: Fail "Cannot show functions" => MyShow (a -> b) where
- myShow _ = "unreachable"
-
-main :: Eff _ _
-main = log (myShow (_ + 1))
diff --git a/examples/failing/ProgrammableTypeErrorsTypeString.purs b/examples/failing/ProgrammableTypeErrorsTypeString.purs
deleted file mode 100644
index b0b7c0f..0000000
--- a/examples/failing/ProgrammableTypeErrorsTypeString.purs
+++ /dev/null
@@ -1,18 +0,0 @@
--- @shouldFailWith NoInstanceFound
-
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (log)
-
-newtype MyType a = MyType a
-
-instance cannotShowFunctions :: Fail ("Don't want to show " <> TypeString (MyType a) <> " because.") => Show (MyType a) where
- show _ = "unreachable"
-
-infixl 6 type TypeConcat as <>
-
-main :: Eff _ _
-main = do
- log $ show (MyType 2)
diff --git a/examples/failing/RequiredHiddenType.purs b/examples/failing/RequiredHiddenType.purs
deleted file mode 100644
index a849ab0..0000000
--- a/examples/failing/RequiredHiddenType.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith TransitiveExportError
--- exporting `a` should fail as `A` is hidden
-module Foo (B(..), a, b) where
-
-data A = A
-data B = B
-
-a = A
-b = B
diff --git a/examples/failing/RowConstructors1.purs b/examples/failing/RowConstructors1.purs
deleted file mode 100644
index 533773c..0000000
--- a/examples/failing/RowConstructors1.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith KindsDoNotUnify
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-data Foo = Bar
-type Baz = { | Foo }
-
-main = log "Done"
diff --git a/examples/failing/RowConstructors2.purs b/examples/failing/RowConstructors2.purs
deleted file mode 100644
index 1ab8236..0000000
--- a/examples/failing/RowConstructors2.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith KindsDoNotUnify
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-type Foo r = (x :: Number | r)
-type Bar = { | Foo }
-
-main = log "Done"
diff --git a/examples/failing/RowConstructors3.purs b/examples/failing/RowConstructors3.purs
deleted file mode 100644
index 60e3950..0000000
--- a/examples/failing/RowConstructors3.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith KindsDoNotUnify
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-type Foo = { x :: Number }
-type Bar = { | Foo }
-
-main = log "Done"
diff --git a/examples/failing/SkolemEscape2.purs b/examples/failing/SkolemEscape2.purs
deleted file mode 100644
index 38d64cc..0000000
--- a/examples/failing/SkolemEscape2.purs
+++ /dev/null
@@ -1,10 +0,0 @@
--- @shouldFailWith EscapedSkolem
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.ST
-
-test _ = do
- r <- runST (newSTRef 0)
- pure 0
diff --git a/examples/failing/Superclasses5.purs b/examples/failing/Superclasses5.purs
deleted file mode 100644
index 486f4e8..0000000
--- a/examples/failing/Superclasses5.purs
+++ /dev/null
@@ -1,26 +0,0 @@
--- @shouldFailWith NoInstanceFound
-
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (logShow)
-
-class Su a where
- su :: a -> a
-
-class Su (Array a) <= Cl a where
- cl :: a -> a -> a
-
-instance suNumber :: Su Number where
- su n = n + 1.0
-
-instance suArray :: Su a => Su (Array a) where
- su [x] = [su x]
-
-instance clNumber :: Cl Number where
- cl n m = n + m
-
-test :: forall a. Cl a => a -> Array a
-test x = su [cl x x]
-
-main = logShow $ test 10.0
diff --git a/examples/failing/TypedBinders.purs b/examples/failing/TypedBinders.purs
deleted file mode 100644
index 756f275..0000000
--- a/examples/failing/TypedBinders.purs
+++ /dev/null
@@ -1,10 +0,0 @@
--- @shouldFailWith ErrorParsingModule
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-test = (\f :: Int -> Int -> f 10) id
-
-main = do
- let t1 = test
- log "Done"
diff --git a/examples/failing/TypedBinders2.purs b/examples/failing/TypedBinders2.purs
deleted file mode 100644
index f23c1a1..0000000
--- a/examples/failing/TypedBinders2.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith TypesDoNotUnify
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-main = do
- s :: String <- log "Foo"
- log "Done"
diff --git a/examples/failing/TypedBinders3.purs b/examples/failing/TypedBinders3.purs
deleted file mode 100644
index 8a25264..0000000
--- a/examples/failing/TypedBinders3.purs
+++ /dev/null
@@ -1,13 +0,0 @@
--- @shouldFailWith TypesDoNotUnify
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test = case 1 of
- (0 :: String) -> true
- _ -> false
-
-main = do
- let t = test
- log "Done"
diff --git a/examples/failing/TypedHole.purs b/examples/failing/TypedHole.purs
deleted file mode 100644
index c371e67..0000000
--- a/examples/failing/TypedHole.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldFailWith HoleInferredType
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-
-main :: forall e. Eff (console :: CONSOLE | e) Unit
-main = ?ummm
diff --git a/examples/failing/UnderscoreModuleName.purs b/examples/failing/UnderscoreModuleName.purs
deleted file mode 100644
index a7d3f04..0000000
--- a/examples/failing/UnderscoreModuleName.purs
+++ /dev/null
@@ -1,6 +0,0 @@
--- @shouldFailWith ErrorParsingModule
-module Bad_Module where
-
-import Control.Monad.Eff.Console (log)
-
-main = log "Done"
diff --git a/examples/passing/1110.purs b/examples/passing/1110.purs
deleted file mode 100644
index f475fc0..0000000
--- a/examples/passing/1110.purs
+++ /dev/null
@@ -1,26 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data X a = X
-
-x :: forall a. X a
-x = X
-
-type Y = { x :: X Int }
-
-test :: forall m. Monad m => m Y
-test = pure { x: x }
-
-type Z t = forall x. t x -> (forall a. t a) -> t x
-
-class C t where c :: Z t
-
-instance cA :: C Array where
- c x _ = x
-
-test2 :: forall m. Monad m => m { ccc :: Z Array }
-test2 = pure { ccc: (c :: Z Array) }
-
-main = log "Done"
diff --git a/examples/passing/1185.purs b/examples/passing/1185.purs
deleted file mode 100644
index f4ba728..0000000
--- a/examples/passing/1185.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-data Person = Person String Boolean
-
-getName :: Person -> String
-getName p = case p of
- Person name true -> name
- _ -> "Unknown"
-
-name :: String
-name = getName (Person "John Smith" true)
-
-main = log "Done"
diff --git a/examples/passing/1335.purs b/examples/passing/1335.purs
deleted file mode 100644
index 3a0bb6b..0000000
--- a/examples/passing/1335.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-x :: forall a. a -> String
-x a = y "Test"
- where
- y :: forall a. Show a => a -> String
- y a = show (a :: a)
-
-main = do
- log (x 0)
- log "Done"
diff --git a/examples/passing/1570.purs b/examples/passing/1570.purs
deleted file mode 100644
index 1bd0172..0000000
--- a/examples/passing/1570.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-test :: forall a. a -> a
-test = \(x :: a) -> x
-
-main = log "Done"
diff --git a/examples/passing/1664.purs b/examples/passing/1664.purs
deleted file mode 100644
index 35a17ed..0000000
--- a/examples/passing/1664.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-data Identity a = Identity a
-
-newtype IdentityEff e a = IdentityEff (Eff e (Identity a))
-
-test :: forall e a. IdentityEff e a -> IdentityEff e Unit
-test (IdentityEff action) = IdentityEff $ do
- (Identity x :: Identity _) <- action
- pure $ Identity unit
-
-main = log "Done"
diff --git a/examples/passing/1697.purs b/examples/passing/1697.purs
deleted file mode 100644
index 83e87eb..0000000
--- a/examples/passing/1697.purs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-_2 :: forall a. a -> a
-_2 a = a
-
-x :: forall m. Monad m => m Unit
-x = do
- _ <- pure unit
- pure unit
-
-y :: forall m. Monad m => m Unit
-y = do
- _ <- pure unit
- pure unit
-
-wtf :: forall m. Monad m => m Unit
-wtf = do
- _ <- pure unit
- let tmp = _2 1
- pure unit
-
-main = log "Done"
diff --git a/examples/passing/1807.purs b/examples/passing/1807.purs
deleted file mode 100644
index 7b221b3..0000000
--- a/examples/passing/1807.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-fn = _.b.c.d
-a = {b:{c:{d:2}}}
-
-d :: Int
-d = fn a + a.b.c.d
-
-main = if fn a + a.b.c.d == 4
- then log "Done"
- else log "Fail"
diff --git a/examples/passing/1881.purs b/examples/passing/1881.purs
deleted file mode 100644
index b4351cb..0000000
--- a/examples/passing/1881.purs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-foo =
- 1
-
-bar
- = 2
-
-baz
- =
- 3
-
-qux
- =
- 3
-
-main = log "Done"
diff --git a/examples/passing/1991.purs b/examples/passing/1991.purs
deleted file mode 100644
index f7d10b6..0000000
--- a/examples/passing/1991.purs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-singleton :: forall a. a -> Array a
-singleton x = [x]
-
-empty :: forall a. Array a
-empty = []
-
-foldMap :: forall a m. Semigroup m => (a -> m) -> Array a -> m
-foldMap f [a, b, c, d, e] = f a <> f b <> f c <> f d <> f e
-foldMap f xs = foldMap f xs -- spin, not used
-
-regression :: Array Int
-regression =
- let as = [1,2,3,4,5]
- as' = foldMap (\x -> if 1 < x && x < 4 then singleton x else empty) as
- in as'
-
-main = log "Done"
diff --git a/examples/passing/2018.purs b/examples/passing/2018.purs
deleted file mode 100644
index e09f482..0000000
--- a/examples/passing/2018.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import A (foo)
-import B (Foo(..))
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-
-main :: forall e. Eff (console :: CONSOLE | e) Unit
-main = do
- let tmp = foo X
- log "Done"
diff --git a/examples/passing/2049.purs b/examples/passing/2049.purs
deleted file mode 100644
index 2e44907..0000000
--- a/examples/passing/2049.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data List a = Cons a (List a) | Nil
-
-infixr 6 Cons as :
-
-f :: List { x :: Int, y :: Int } -> Int
-f ( r@{ x } : _) = x + r.y
-f _ = 0
-
-main = log "Done"
diff --git a/examples/passing/2136.purs b/examples/passing/2136.purs
deleted file mode 100644
index 98c3972..0000000
--- a/examples/passing/2136.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-main =
- if (negate (bottom :: Int) > top)
- then log "Fail"
- else log "Done"
diff --git a/examples/passing/2138.purs b/examples/passing/2138.purs
deleted file mode 100644
index 1c05373..0000000
--- a/examples/passing/2138.purs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-import Lib (A(B,C))
-
-main = log "Done"
diff --git a/examples/passing/2172.purs b/examples/passing/2172.purs
deleted file mode 100644
index 087301e..0000000
--- a/examples/passing/2172.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-foreign import a' :: Number
-foreign import b' :: Number
-foreign import c' :: Number
-foreign import d' :: Number
-
-main = log "Done"
diff --git a/examples/passing/2197-1.purs b/examples/passing/2197-1.purs
deleted file mode 100644
index a0c808f..0000000
--- a/examples/passing/2197-1.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console
-import Prim as P
-
-type Number = P.Number
-type Test = {}
-
-z :: Number
-z = 0.0
-
-main = log "Done"
diff --git a/examples/passing/2197-2.purs b/examples/passing/2197-2.purs
deleted file mode 100644
index 94354e9..0000000
--- a/examples/passing/2197-2.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console
-import Prim (Int)
-
-type Number = Int
-
-z :: Number
-z = 0
-
-main = log "Done"
diff --git a/examples/passing/2252.purs b/examples/passing/2252.purs
deleted file mode 100644
index a69c517..0000000
--- a/examples/passing/2252.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-data T a = T
-
-ti :: T Int
-ti = T
-
-t :: forall a. T a
-t = T
-
-xs = [ti, t, t]
-
-main = log "Done"
diff --git a/examples/passing/2288.purs b/examples/passing/2288.purs
deleted file mode 100644
index 78c8ab4..0000000
--- a/examples/passing/2288.purs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Data.Array
-import Data.Array.Partial as P
-import Partial.Unsafe
-
-length :: forall a. Array a -> Int
-length = go 0 where
- go acc arr =
- if null arr
- then acc
- else go (acc + 1) (unsafePartial P.tail arr)
-
-main = do
- logShow (length (1 .. 10000))
- log "Done"
diff --git a/examples/passing/2378.purs b/examples/passing/2378.purs
deleted file mode 100644
index 75ada8c..0000000
--- a/examples/passing/2378.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-class Foo (a :: Symbol)
-
-instance fooX :: Foo "x"
-
-main = log "Done"
diff --git a/examples/passing/2438.purs b/examples/passing/2438.purs
deleted file mode 100644
index 75bd83c..0000000
--- a/examples/passing/2438.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-done :: String
-done = {"πŒ†": "Done"}."πŒ†"
-
-main = log done
diff --git a/examples/passing/2609.purs b/examples/passing/2609.purs
deleted file mode 100644
index eb54bb8..0000000
--- a/examples/passing/2609.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Eg (Foo'(Bar'), (:->))
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-
-bar' :: Foo'
-bar' = 4 :-> 5
-
-main :: forall e. Eff (console :: CONSOLE | e) Unit
-main = case bar' of Bar' l r -> log "Done"
diff --git a/examples/passing/2616.purs b/examples/passing/2616.purs
deleted file mode 100644
index d48e99d..0000000
--- a/examples/passing/2616.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-newtype F r a = F { x :: a | r }
-
-unF :: forall r a. F r a -> { x :: a | r }
-unF (F x) = x
-
-derive instance functorF :: Functor (F r)
-
-main = log (unF (map id (F { x: "Done", y: 42 }))).x
diff --git a/examples/passing/2626.purs b/examples/passing/2626.purs
deleted file mode 100644
index cee8514..0000000
--- a/examples/passing/2626.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-f = \(x :: forall a. a -> a) -> x x
-
-test1 = (f \x -> x) 1
-
-g = \(x :: (forall a. a -> a) -> Int) -> x (\y -> y)
-
-test2 = g \f -> if f true then f 0 else f 1
-
-main = log "Done"
diff --git a/examples/passing/2663.purs b/examples/passing/2663.purs
deleted file mode 100644
index 1bd70dc..0000000
--- a/examples/passing/2663.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-foo :: forall t. Warn "Example" => t -> t
-foo x = x
-
-main = when (foo 42 == 42) $ log "Done"
diff --git a/examples/passing/2689.purs b/examples/passing/2689.purs
deleted file mode 100644
index ab0afd8..0000000
--- a/examples/passing/2689.purs
+++ /dev/null
@@ -1,36 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-import Data.Array.Partial
-import Partial.Unsafe
-
-sumTCObug = go id where
- go f 0 = f
- go f n =
- let
- f' a = n + a
- in
- go f' 0
-
-sumTCObug' = go id where
- go f 0 = f
- go f n = go (\a -> n + a) 0
-
-count :: forall a. (a -> Boolean) -> Array a -> Int
-count p = count' 0 where
- count' acc [] = acc
- count' acc xs =
- let h = unsafePartial head xs
- in count' (acc + if p h then 1 else 0) (unsafePartial tail xs)
-
-main = do
- let x = sumTCObug 7 3
- y = sumTCObug' 7 3
- z = count (_ > 0) [-1, 0, 1]
- logShow x
- logShow y
- logShow z
- if x == 10 && y == 10 && z == 1
- then log "Done"
- else log "Fail"
diff --git a/examples/passing/2695.purs b/examples/passing/2695.purs
deleted file mode 100644
index 1957342..0000000
--- a/examples/passing/2695.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Data.Generic
-import Control.Monad.Eff.Console (log)
-
-type Foo = { foo :: Int }
-
-newtype Foo' = Foo' Foo
-
-derive instance genericFoo :: Generic Foo'
-
-main = log "Done"
diff --git a/examples/passing/2756.purs b/examples/passing/2756.purs
deleted file mode 100644
index 81e5660..0000000
--- a/examples/passing/2756.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (log)
-import Prelude
-
-pu :: forall eff. Eff eff Unit
-pu = pure unit
-
-type C eff = { pu :: Eff eff Unit }
-
-sampleC :: C ()
-sampleC = { pu: pu }
-
-newtype Identity a = Id a
-
-sampleIdC :: Identity (C ())
-sampleIdC = Id { pu : pu }
-
-main = log "Done"
diff --git a/examples/passing/2787.purs b/examples/passing/2787.purs
deleted file mode 100644
index d7e957a..0000000
--- a/examples/passing/2787.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-main
- | between 0 1 2 = log "Fail"
- | otherwise = log "Done"
diff --git a/examples/passing/2795.purs b/examples/passing/2795.purs
deleted file mode 100644
index a291a7d..0000000
--- a/examples/passing/2795.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data X = X Int | Y
-
-x :: X -> Int
-x = case _ of
- Y -> 0
- X n | 1 <- n -> 1
- | otherwise -> 2
-
-main = log "Done"
diff --git a/examples/passing/2806.purs b/examples/passing/2806.purs
deleted file mode 100644
index 848b3a3..0000000
--- a/examples/passing/2806.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Stream a = Cons a (Stream a)
-
-step :: forall a. Stream a -> Stream a
-step (Cons _ xs) = xs
-
-head :: forall a. Stream a -> a
-head xs | Cons x _ <- step xs = x
-
-main = log "Done"
diff --git a/examples/passing/2958.purs b/examples/passing/2958.purs
deleted file mode 100644
index 462bcaa..0000000
--- a/examples/passing/2958.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console
-
-data Nil
-data Snoc xs x
-
-infixl 1 type Snoc as :>
-
-type One = Nil :> Int
-type Two = Nil :> Int :> Int
-type Three = Nil :> Int :> Int :> Int
-
-main = log "Done"
diff --git a/examples/passing/2972.purs b/examples/passing/2972.purs
deleted file mode 100644
index fbf961e..0000000
--- a/examples/passing/2972.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-import Prelude (class Show, show)
-
-type I t = t
-
-newtype Id t = Id t
-
-instance foo :: Show (I t) => Show (Id t) where
- show (Id t) = "Done"
-
-main = log (show (Id "other"))
diff --git a/examples/passing/3125.purs b/examples/passing/3125.purs
deleted file mode 100644
index d427fd4..0000000
--- a/examples/passing/3125.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude
-import Data.Monoid (class Monoid, mempty)
-import Control.Monad.Eff.Console (log, logShow)
-
-data B a = B a a
-
-memptyB :: forall a b. Monoid b => B (a -> b)
-memptyB = B l r where
- l _ = mempty
- r _ = mempty
-
-main = do
- logShow $ case (memptyB :: B (Int -> Array Unit)) of B l r -> l 0 == r 0
- log "Done"
diff --git a/examples/passing/652.purs b/examples/passing/652.purs
deleted file mode 100644
index 79995a7..0000000
--- a/examples/passing/652.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class Foo a b
-
-class Bar a c
-
-class (Foo a b, Bar a c) <= Baz a b c
-
-instance foo :: Foo (a -> b) a
-
-instance bar :: Bar (a -> b) b
-
-instance baz :: (Eq a) => Baz (a -> b) a b
-
-main = log "Done"
diff --git a/examples/passing/810.purs b/examples/passing/810.purs
deleted file mode 100644
index 4e32d10..0000000
--- a/examples/passing/810.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Maybe a = Nothing | Just a
-
-test :: forall a. Maybe a -> Maybe a
-test m = o.x
- where
- o = case m of Nothing -> { x : Nothing }
- Just a -> { x : Just a }
-
-main = log "Done"
diff --git a/examples/passing/862.purs b/examples/passing/862.purs
deleted file mode 100644
index 97c664d..0000000
--- a/examples/passing/862.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-id' = (\x -> x) <$> \y -> y
-
-main = log (id' "Done")
diff --git a/examples/passing/922.purs b/examples/passing/922.purs
deleted file mode 100644
index 07a7ad1..0000000
--- a/examples/passing/922.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-
-import Control.Monad.Eff.Console
-
-class Default a where
- def :: a
-
-instance defaultString :: Default String where
- def = "Done"
-
-data I a = I a
-
-instance defaultI :: (Default a) => Default (I a) where
- def = I def
-
-main = do
- case def of
- I s -> log s
diff --git a/examples/passing/Applicative.purs b/examples/passing/Applicative.purs
deleted file mode 100644
index d78e2aa..0000000
--- a/examples/passing/Applicative.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-class Applicative f where
- pure :: forall a. a -> f a
- apply :: forall a b. f (a -> b) -> f a -> f b
-
-data Maybe a = Nothing | Just a
-
-instance applicativeMaybe :: Applicative Maybe where
- pure = Just
- apply (Just f) (Just a) = Just (f a)
- apply _ _ = Nothing
-
-main = log "Done"
diff --git a/examples/passing/ArrayType.purs b/examples/passing/ArrayType.purs
deleted file mode 100644
index a3530a5..0000000
--- a/examples/passing/ArrayType.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class Pointed p where
- point :: forall a. a -> p a
-
-instance pointedArray :: Pointed Array where
- point a = [a]
-
-main = log "Done"
diff --git a/examples/passing/Auto.purs b/examples/passing/Auto.purs
deleted file mode 100644
index 34b7858..0000000
--- a/examples/passing/Auto.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Auto s i o = Auto { state :: s, step :: s -> i -> o }
-
-type SomeAuto i o = forall r. (forall s. Auto s i o -> r) -> r
-
-exists :: forall s i o. s -> (s -> i -> o) -> SomeAuto i o
-exists = \state step f -> f (Auto { state: state, step: step })
-
-run :: forall i o. SomeAuto i o -> i -> o
-run = \s i -> s (\a -> case a of Auto a -> a.step a.state i)
-
-main = log "Done"
diff --git a/examples/passing/AutoPrelude.purs b/examples/passing/AutoPrelude.purs
deleted file mode 100644
index 27fa41c..0000000
--- a/examples/passing/AutoPrelude.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-f x = x * 10.0
-g y = y - 10.0
-
-main = do
- log $ show $ (f <<< g) 100.0
- log "Done"
diff --git a/examples/passing/AutoPrelude2.purs b/examples/passing/AutoPrelude2.purs
deleted file mode 100644
index 4db3aaf..0000000
--- a/examples/passing/AutoPrelude2.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Prelude as P
-import Control.Monad.Eff.Console
-
-f :: forall a. a -> a
-f = P.id
-
-main = P.($) log ((f P.<<< f) "Done")
diff --git a/examples/passing/BindersInFunctions.purs b/examples/passing/BindersInFunctions.purs
deleted file mode 100644
index ee9c5dd..0000000
--- a/examples/passing/BindersInFunctions.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude
-import Partial.Unsafe (unsafePartial)
-import Test.Assert (assert')
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (log)
-
-snd :: forall a. Partial => Array a -> a
-snd = \[_, y] -> y
-
-main :: Eff _ _
-main = do
- let ts = unsafePartial (snd [1.0, 2.0])
- assert' "Incorrect result from 'snd'." (ts == 2.0)
- log "Done"
diff --git a/examples/passing/BindingGroups.purs b/examples/passing/BindingGroups.purs
deleted file mode 100644
index 0e112d2..0000000
--- a/examples/passing/BindingGroups.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-foo = bar
- where bar r = r + 1.0
-
-r = foo 2.0
-
-main = log "Done"
diff --git a/examples/passing/BlockString.purs b/examples/passing/BlockString.purs
deleted file mode 100644
index 2ffa526..0000000
--- a/examples/passing/BlockString.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-foo :: String
-foo = """foo"""
-
-main = log "Done"
diff --git a/examples/passing/CaseInDo.purs b/examples/passing/CaseInDo.purs
deleted file mode 100644
index 48716f4..0000000
--- a/examples/passing/CaseInDo.purs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Main where
-
-import Prelude
-import Partial.Unsafe (unsafeCrashWith)
-import Control.Monad.Eff.Console
-import Control.Monad.Eff
-
-doIt :: forall eff. Eff eff Boolean
-doIt = pure true
-
-set = do
- log "Testing..."
- case 0 of
- 0 -> doIt
- _ -> pure false
-
-main = do
- b <- set
- case b of
- true -> log "Done"
- false -> unsafeCrashWith "Failed"
diff --git a/examples/passing/CaseInputWildcard.purs b/examples/passing/CaseInputWildcard.purs
deleted file mode 100644
index 6448939..0000000
--- a/examples/passing/CaseInputWildcard.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (log, CONSOLE)
-
-data Foo = X | Y
-
-what ∷ Foo β†’ Int β†’ Boolean β†’ Foo
-what x = case _, x, _ of
- 0, X, true β†’ X
- 0, Y, true β†’ X
- _, _, _ β†’ Y
-
-main :: forall e. Eff (console :: CONSOLE | e) Unit
-main = do
- let tmp = what Y 0 true
- log "Done"
diff --git a/examples/passing/CaseMultipleExpressions.purs b/examples/passing/CaseMultipleExpressions.purs
deleted file mode 100644
index d434e56..0000000
--- a/examples/passing/CaseMultipleExpressions.purs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Main where
-
-import Prelude
-import Partial.Unsafe (unsafeCrashWith)
-import Control.Monad.Eff.Console
-import Control.Monad.Eff
-
-doIt :: forall eff. Eff eff Boolean
-doIt = pure true
-
-set = do
- log "Testing..."
- case 42, 10 of
- 42, 10 -> doIt
- _ , _ -> pure false
-
-main = do
- b <- set
- case b of
- true -> log "Done"
- false -> unsafeCrashWith "Failed"
diff --git a/examples/passing/CaseStatement.purs b/examples/passing/CaseStatement.purs
deleted file mode 100644
index 324282d..0000000
--- a/examples/passing/CaseStatement.purs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data A = A | B | C
-
-f a _ A = a
-f _ a B = a
-f _ _ C = "Done"
-
-g a _ A = a
-g _ b B = b
-g _ _ C = C
-
-data M a = N | J a
-
-h f N a = a
-h f a N = a
-h f (J a) (J b) = J (f a b)
-
-main = log $ f "Done" "Failed" A
diff --git a/examples/passing/CheckFunction.purs b/examples/passing/CheckFunction.purs
deleted file mode 100644
index cde7d4b..0000000
--- a/examples/passing/CheckFunction.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test = ((\x -> x+1.0) >>> (\x -> x*2.0)) 4.0
-
-main = log "Done"
diff --git a/examples/passing/CheckSynonymBug.purs b/examples/passing/CheckSynonymBug.purs
deleted file mode 100644
index cd06f63..0000000
--- a/examples/passing/CheckSynonymBug.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-length :: forall a. Array a -> Int
-length _ = 0
-
-type Foo a = Array a
-
-foo _ = length ([] :: Foo Number)
-
-main = log "Done"
diff --git a/examples/passing/CheckTypeClass.purs b/examples/passing/CheckTypeClass.purs
deleted file mode 100644
index 50f2d3e..0000000
--- a/examples/passing/CheckTypeClass.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Bar a = Bar
-data Baz
-
-class Foo a where
- foo :: Bar a -> Baz
-
-foo_ :: forall a. Foo a => a -> Baz
-foo_ x = foo ((mkBar :: forall a. Foo a => a -> Bar a) x)
-
-mkBar :: forall a. a -> Bar a
-mkBar _ = Bar
-
-main = log "Done"
diff --git a/examples/passing/Church.purs b/examples/passing/Church.purs
deleted file mode 100644
index 3745805..0000000
--- a/examples/passing/Church.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-type List a = forall r. r -> (a -> r -> r) -> r
-
-empty :: forall a. List a
-empty = \r f -> r
-
-cons :: forall a. a -> List a -> List a
-cons = \a l r f -> f a (l r f)
-
-append :: forall a. List a -> List a -> List a
-append = \l1 l2 r f -> l2 (l1 r f) f
-
-test = append (cons 1 empty) (cons 2 empty)
-
-main = log "Done"
diff --git a/examples/passing/ClassRefSyntax.purs b/examples/passing/ClassRefSyntax.purs
deleted file mode 100644
index 13e4e64..0000000
--- a/examples/passing/ClassRefSyntax.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Lib (class X, go)
-import Control.Monad.Eff.Console (log)
-
-go' :: forall a. X a => a -> a
-go' = go
-
-main = log "Done"
diff --git a/examples/passing/Collatz.purs b/examples/passing/Collatz.purs
deleted file mode 100644
index 0fda815..0000000
--- a/examples/passing/Collatz.purs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.ST
-import Control.Monad.Eff.Console (log, logShow)
-
-collatz :: Int -> Int
-collatz n = runPure (runST (do
- r <- newSTRef n
- count <- newSTRef 0
- untilE $ do
- _ <- modifySTRef count $ (+) 1
- m <- readSTRef r
- _ <- writeSTRef r $ if m `mod` 2 == 0 then m / 2 else 3 * m + 1
- pure $ m == 1
- readSTRef count))
-
-main = do
- logShow $ collatz 1000
- log "Done"
diff --git a/examples/passing/Comparisons.purs b/examples/passing/Comparisons.purs
deleted file mode 100644
index 375098d..0000000
--- a/examples/passing/Comparisons.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Test.Assert
-
-main = do
- assert (1.0 < 2.0)
- assert (2.0 == 2.0)
- assert (3.0 > 1.0)
- assert ("a" < "b")
- assert ("a" == "a")
- assert ("z" > "a")
- log "Done"
diff --git a/examples/passing/Conditional.purs b/examples/passing/Conditional.purs
deleted file mode 100644
index a3d2052..0000000
--- a/examples/passing/Conditional.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-fns = \f -> if f true then f else \x -> x
-
-not = \x -> if x then false else true
-
-main = log "Done"
diff --git a/examples/passing/Console.purs b/examples/passing/Console.purs
deleted file mode 100644
index a12d699..0000000
--- a/examples/passing/Console.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-replicateM_ :: forall m a. Monad m => Number -> m a -> m Unit
-replicateM_ 0.0 _ = pure unit
-replicateM_ n act = do
- _ <- act
- replicateM_ (n - 1.0) act
-
-main = do
- replicateM_ 10.0 (log "Hello World!")
- log "Done"
diff --git a/examples/passing/ConstraintInference.purs b/examples/passing/ConstraintInference.purs
deleted file mode 100644
index 05f9a21..0000000
--- a/examples/passing/ConstraintInference.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-shout = log <<< (_ <> "!") <<< show
-
-main = do
- shout "Test"
- log "Done"
diff --git a/examples/passing/ConstraintParens.purs b/examples/passing/ConstraintParens.purs
deleted file mode 100644
index 5545332..0000000
--- a/examples/passing/ConstraintParens.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class Foo a where
- foo ∷ a β†’ a
-
-test ∷ βˆ€ a. (Foo a) β‡’ a β†’ a
-test = foo
-
-main = log "Done"
diff --git a/examples/passing/ConstraintParsingIssue.purs b/examples/passing/ConstraintParsingIssue.purs
deleted file mode 100644
index b16f684..0000000
--- a/examples/passing/ConstraintParsingIssue.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console
-
-class X a
-
-instance x :: X (Array (Array a)) => X (Array a)
-
-main = log "Done"
diff --git a/examples/passing/ContextSimplification.purs b/examples/passing/ContextSimplification.purs
deleted file mode 100644
index 349dcfb..0000000
--- a/examples/passing/ContextSimplification.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-shout = log <<< (_ <> "!") <<< show
-
--- Here, we should simplify the context so that only one Show
--- constraint is added.
-usesShowTwice true = shout
-usesShowTwice false = logShow
-
-main = do
- usesShowTwice true "Test"
- log "Done"
diff --git a/examples/passing/DataAndType.purs b/examples/passing/DataAndType.purs
deleted file mode 100644
index 3d35ce1..0000000
--- a/examples/passing/DataAndType.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data A = A B
-
-type B = A
-
-main = log "Done"
diff --git a/examples/passing/DctorName.purs b/examples/passing/DctorName.purs
deleted file mode 100644
index 05d4f8d..0000000
--- a/examples/passing/DctorName.purs
+++ /dev/null
@@ -1,33 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-newtype Bar' = Bar' Int
-
-data Foo' = Foo' Bar'
-
-data Baz'' = Baz'' | Baz'
-
-f ∷ Foo' β†’ Boolean
-f a = case a of Foo' b β†’ true
-
-f' ∷ Boolean
-f' = f $ Foo' $ Bar' 0
-
-g ∷ Baz'' β†’ Int
-g Baz'' = 0
-g Baz' = 1
-
-g' ∷ Int
-g' = g Baz''
-
-h ∷ Bar' β†’ Int
-h (Bar' x)
- | x <= 10 = x * 2
- | otherwise = 10
-
-h' ∷ Int
-h' = h $ Bar' 4
-
-main = log "Done" \ No newline at end of file
diff --git a/examples/passing/DctorOperatorAlias.purs b/examples/passing/DctorOperatorAlias.purs
deleted file mode 100644
index 0a12c8f..0000000
--- a/examples/passing/DctorOperatorAlias.purs
+++ /dev/null
@@ -1,34 +0,0 @@
-module Main where
-
- import Prelude (Unit, bind, discard, (==))
- import Control.Monad.Eff (Eff)
- import Control.Monad.Eff.Console (CONSOLE, log)
- import Test.Assert (ASSERT, assert')
- import List (List(..), (:))
- import List as L
-
- -- unqualified
- infixl 6 Cons as !
-
- -- qualified
- infixl 6 L.Cons as !!
-
- get1 ∷ βˆ€ a. a β†’ List a β†’ a
- get1 y xs = case xs of
- _ : x : _ β†’ x
- _ β†’ y
-
- get2 ∷ βˆ€ a. a β†’ List a β†’ a
- get2 _ (_ : x : _) = x
- get2 y _ = y
-
- get3 ∷ βˆ€ a. a β†’ List a β†’ a
- get3 _ (_ ! (x ! _)) = x
- get3 y _ = y
-
- main ∷ Eff (assert ∷ ASSERT, console ∷ CONSOLE) Unit
- main = do
- assert' "Incorrect result!" (get1 0 (1 : 2 : 3 : Nil) == 2)
- assert' "Incorrect result!" (get2 0 (1 ! (2 ! (3 ! Nil))) == 2)
- assert' "Incorrect result!" (get3 0.0 (1.0 : 2.0 : (3.0 ! Nil)) == 2.0)
- log "Done"
diff --git a/examples/passing/DeepArrayBinder.purs b/examples/passing/DeepArrayBinder.purs
deleted file mode 100644
index 399b2a4..0000000
--- a/examples/passing/DeepArrayBinder.purs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console (log)
-import Test.Assert
-
-data List a = Cons a (List a) | Nil
-
-match2 :: List Number -> Number
-match2 (Cons x (Cons y xs)) = x * y + match2 xs
-match2 _ = 0.0
-
-main = do
- let result = match2 (Cons 1.0 (Cons 2.0 (Cons 3.0 (Cons 4.0 (Cons 5.0 (Cons 6.0 (Cons 7.0 (Cons 8.0 (Cons 9.0 Nil)))))))))
- assert' "Incorrect result!" (result == 100.0)
- log "Done"
diff --git a/examples/passing/DeepCase.purs b/examples/passing/DeepCase.purs
deleted file mode 100644
index e19f0e8..0000000
--- a/examples/passing/DeepCase.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-f x y =
- let
- g = case y of
- 0.0 -> x
- x -> 1.0 + x * x
- in g + x + y
-
-main = do
- logShow $ f 1.0 10.0
- log "Done"
diff --git a/examples/passing/DeriveNewtype.purs b/examples/passing/DeriveNewtype.purs
deleted file mode 100644
index 3f0648c..0000000
--- a/examples/passing/DeriveNewtype.purs
+++ /dev/null
@@ -1,29 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-import Data.Newtype
-
-type MyString = String
-
-newtype Test = Test MyString
-
-derive instance newtypeTest :: Newtype Test _
-
-t :: Test
-t = wrap "hello"
-
-a :: String
-a = unwrap t
-
-newtype First a = First a
-
-derive instance newtypeFirst :: Newtype (First b) _
-
-f :: First Int
-f = wrap 1
-
-i :: Int
-i = unwrap f
-
-main = log "Done"
diff --git a/examples/passing/DeriveWithNestedSynonyms.purs b/examples/passing/DeriveWithNestedSynonyms.purs
deleted file mode 100644
index c23c8e3..0000000
--- a/examples/passing/DeriveWithNestedSynonyms.purs
+++ /dev/null
@@ -1,29 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type L = {}
-data X = X L
-derive instance eqX :: Eq X
-
-type M = {}
-data Y = Y {foo :: M}
-derive instance eqY :: Eq Y
-
-type N = {}
-data Z = Z N
-derive instance eqZ :: Eq Z
-
-type Foo = String
-
-type Bar = { foo :: Foo }
-
-type Baz = { baz :: Bar }
-
-newtype T = T Baz
-
-derive instance eqT :: Eq T
-derive instance ordT :: Ord T
-
-main = log "Done"
diff --git a/examples/passing/Deriving.purs b/examples/passing/Deriving.purs
deleted file mode 100644
index 9630699..0000000
--- a/examples/passing/Deriving.purs
+++ /dev/null
@@ -1,36 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Test.Assert
-
-data V
-
-derive instance eqV :: Eq V
-
-derive instance ordV :: Ord V
-
-type MyString = String
-
-data X = X Int | Y MyString
-
-derive instance eqX :: Eq X
-
-derive instance ordX :: Ord X
-
-newtype Z = Z { left :: X, right :: X }
-
-derive instance eqZ :: Eq Z
-
-main = do
- assert $ X 0 == X 0
- assert $ X 0 /= X 1
- assert $ Y "Foo" == Y "Foo"
- assert $ Y "Foo" /= Y "Bar"
- assert $ X 0 < X 1
- assert $ X 0 < Y "Foo"
- assert $ Y "Bar" < Y "Baz"
- assert $ z == z
- log "Done"
- where
- z = Z { left: X 0, right: Y "Foo" }
diff --git a/examples/passing/DerivingFunctor.purs b/examples/passing/DerivingFunctor.purs
deleted file mode 100644
index bd40cac..0000000
--- a/examples/passing/DerivingFunctor.purs
+++ /dev/null
@@ -1,28 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Test.Assert
-
-type MyRecord a = { myField :: a }
-
-data M f a
- = M0 a (Array a)
- | M1 Int
- | M2 (f a)
- | M3 { foo :: Int, bar :: a, baz :: f a }
- | M4 (MyRecord a)
-
-derive instance eqM :: (Eq (f a), Eq a) => Eq (M f a)
-
-derive instance functorM :: Functor f => Functor (M f)
-
-type MA = M Array
-
-main = do
- assert $ map show (M0 0 [1, 2] :: MA Int) == M0 "0" ["1", "2"]
- assert $ map show (M1 0 :: MA Int) == M1 0
- assert $ map show (M2 [0, 1] :: MA Int) == M2 ["0", "1"]
- assert $ map show (M3 {foo: 0, bar: 1, baz: [2, 3]} :: MA Int) == M3 {foo: 0, bar: "1", baz: ["2", "3"]}
- assert $ map show (M4 { myField: 42 }) == M4 { myField: "42" } :: MA String
- log "Done"
diff --git a/examples/passing/Do.purs b/examples/passing/Do.purs
deleted file mode 100644
index 0dd00c6..0000000
--- a/examples/passing/Do.purs
+++ /dev/null
@@ -1,68 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Maybe a = Nothing | Just a
-
-instance functorMaybe :: Functor Maybe where
- map f Nothing = Nothing
- map f (Just x) = Just (f x)
-
-instance applyMaybe :: Apply Maybe where
- apply (Just f) (Just x) = Just (f x)
- apply _ _ = Nothing
-
-instance applicativeMaybe :: Applicative Maybe where
- pure = Just
-
-instance bindMaybe :: Bind Maybe where
- bind Nothing _ = Nothing
- bind (Just a) f = f a
-
-instance monadMaybe :: Monad Maybe
-
-test1 = \_ -> do
- Just "abc"
-
-test2 = \_ -> do
- x <- Just 1.0
- y <- Just 2.0
- Just (x + y)
-
-test3 = \_ -> do
- _ <- Just 1.0
- _ <- Nothing :: Maybe Number
- Just 2.0
-
-test4 mx my = do
- x <- mx
- y <- my
- Just (x + y + 1.0)
-
-test5 mx my mz = do
- x <- mx
- y <- my
- let sum = x + y
- z <- mz
- Just (z + sum + 1.0)
-
-test6 mx = \_ -> do
- let
- f :: forall a. Maybe a -> a
- f (Just x) = x
- Just (f mx)
-
-test8 = \_ -> do
- Just (do
- Just 1.0)
-
-test9 = \_ -> (+) <$> Just 1.0 <*> Just 2.0
-
-test10 _ = do
- let
- f x = g x * 3.0
- g x = f x / 2.0
- Just (f 10.0)
-
-main = log "Done"
diff --git a/examples/passing/Dollar.purs b/examples/passing/Dollar.purs
deleted file mode 100644
index 3c0d4d4..0000000
--- a/examples/passing/Dollar.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-applyFn :: forall a b. (a -> b) -> a -> b
-applyFn f x = f x
-
-infixr 1000 applyFn as $
-
-id x = x
-
-test1 x = id $ id $ id $ id $ x
-
-test2 x = id id $ id x
-
-main = log "Done"
diff --git a/examples/passing/DuplicateProperties.purs b/examples/passing/DuplicateProperties.purs
deleted file mode 100644
index d91f6bd..0000000
--- a/examples/passing/DuplicateProperties.purs
+++ /dev/null
@@ -1,27 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data RProxy (r :: # Type) = RProxy
-
-data Proxy (a :: Type) = Proxy
-
-subtractX :: forall r a. RProxy (x :: a | r) -> RProxy r
-subtractX RProxy = RProxy
-
-extractX :: forall r a. RProxy (x :: a | r) -> Proxy a
-extractX RProxy = Proxy
-
-hasX :: forall r a b. RProxy (x :: a, y :: b | r)
-hasX = RProxy
-
-test1 = subtractX (subtractX hasX)
-
-test2
- :: forall r a b
- . RProxy (x :: a, x :: b, x :: Int | r)
- -> Proxy Int
-test2 x = extractX (subtractX (subtractX x))
-
-main = log "Done"
diff --git a/examples/passing/Eff.purs b/examples/passing/Eff.purs
deleted file mode 100644
index 4c74c25..0000000
--- a/examples/passing/Eff.purs
+++ /dev/null
@@ -1,26 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.ST
-import Control.Monad.Eff.Console (log, logShow)
-
-test1 = do
- log "Line 1"
- log "Line 2"
-
-test2 = runPure (runST (do
- ref <- newSTRef 0.0
- _ <- modifySTRef ref $ \n -> n + 1.0
- readSTRef ref))
-
-test3 = pureST (do
- ref <- newSTRef 0.0
- _ <- modifySTRef ref $ \n -> n + 1.0
- readSTRef ref)
-
-main = do
- test1
- logShow test2
- logShow test3
- log "Done"
diff --git a/examples/passing/EmptyDataDecls.purs b/examples/passing/EmptyDataDecls.purs
deleted file mode 100644
index 6c143cd..0000000
--- a/examples/passing/EmptyDataDecls.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Test.Assert
-import Control.Monad.Eff.Console (log)
-
-data Z
-data S n
-
-data ArrayBox n a = ArrayBox (Array a)
-
-nil :: forall a. ArrayBox Z a
-nil = ArrayBox []
-
-cons' :: forall a n. a -> ArrayBox n a -> ArrayBox (S n) a
-cons' x (ArrayBox xs) = ArrayBox $ append [x] xs
-
-main = case cons' 1 $ cons' 2 $ cons' 3 nil of
- ArrayBox [1, 2, 3] -> log "Done"
- _ -> assert' "Failed" false
diff --git a/examples/passing/EmptyRow.purs b/examples/passing/EmptyRow.purs
deleted file mode 100644
index b6c0fc2..0000000
--- a/examples/passing/EmptyRow.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Foo r = Foo { | r }
-
-test :: Foo ()
-test = Foo {}
-
-main = log "Done"
diff --git a/examples/passing/EmptyTypeClass.purs b/examples/passing/EmptyTypeClass.purs
deleted file mode 100644
index 8818049..0000000
--- a/examples/passing/EmptyTypeClass.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-head :: forall a. Partial => Array a -> a
-head [x] = x
-
-main :: Eff _ _
-main = log "Done"
diff --git a/examples/passing/EntailsKindedType.purs b/examples/passing/EntailsKindedType.purs
deleted file mode 100644
index 5d345b5..0000000
--- a/examples/passing/EntailsKindedType.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-test x = show (x :: _ :: Type)
-
-main = do
- when (show (unit :: Unit :: Type) == "unit") (log "Done")
- when (test unit == "unit") (log "Done")
diff --git a/examples/passing/EqOrd.purs b/examples/passing/EqOrd.purs
deleted file mode 100644
index 3d214a5..0000000
--- a/examples/passing/EqOrd.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-data Pair a b = Pair a b
-
-instance ordPair :: (Ord a, Ord b) => Ord (Pair a b) where
- compare (Pair a1 b1) (Pair a2 b2) = case compare a1 a2 of
- EQ -> compare b1 b2
- r -> r
-
-instance eqPair :: (Eq a, Eq b) => Eq (Pair a b) where
- eq (Pair a1 b1) (Pair a2 b2) = a1 == a2 && b1 == b2
-
-main = do
- logShow $ Pair 1.0 2.0 == Pair 1.0 2.0
- log "Done"
diff --git a/examples/passing/ExplicitImportReExport.purs b/examples/passing/ExplicitImportReExport.purs
deleted file mode 100644
index 3c01ca8..0000000
--- a/examples/passing/ExplicitImportReExport.purs
+++ /dev/null
@@ -1,11 +0,0 @@
--- from #1244
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Bar (foo)
-
-baz :: Int
-baz = foo
-
-main = log "Done"
diff --git a/examples/passing/ExplicitImportReExport/Bar.purs b/examples/passing/ExplicitImportReExport/Bar.purs
deleted file mode 100644
index 4b1d3d6..0000000
--- a/examples/passing/ExplicitImportReExport/Bar.purs
+++ /dev/null
@@ -1,3 +0,0 @@
-module Bar (module Foo) where
-
-import Foo
diff --git a/examples/passing/ExplicitImportReExport/Foo.purs b/examples/passing/ExplicitImportReExport/Foo.purs
deleted file mode 100644
index 69ccbb1..0000000
--- a/examples/passing/ExplicitImportReExport/Foo.purs
+++ /dev/null
@@ -1,4 +0,0 @@
-module Foo where
-
-foo :: Int
-foo = 3
diff --git a/examples/passing/ExplicitOperatorSections.purs b/examples/passing/ExplicitOperatorSections.purs
deleted file mode 100644
index 2f3f0be..0000000
--- a/examples/passing/ExplicitOperatorSections.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-subtractOne :: Int -> Int
-subtractOne = (_ - 1)
-
-addOne :: Int -> Int
-addOne = (1 + _)
-
-named :: Int -> Int
-named = (_ `sub` 1)
-
-main = log "Done"
diff --git a/examples/passing/ExportExplicit.purs b/examples/passing/ExportExplicit.purs
deleted file mode 100644
index 8443d4f..0000000
--- a/examples/passing/ExportExplicit.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import M1
-import Control.Monad.Eff.Console (log)
-
-testX = X
-testZ = Z
-testFoo = foo
-
-main = log "Done"
diff --git a/examples/passing/ExportExplicit/M1.purs b/examples/passing/ExportExplicit/M1.purs
deleted file mode 100644
index 09d8b4b..0000000
--- a/examples/passing/ExportExplicit/M1.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module M1 (X(X), Z(..), foo) where
-
-data X = X | Y
-data Z = Z
-
-foo :: Int
-foo = 0
-
-bar :: Int
-bar = 1
diff --git a/examples/passing/ExportExplicit2.purs b/examples/passing/ExportExplicit2.purs
deleted file mode 100644
index a8803e5..0000000
--- a/examples/passing/ExportExplicit2.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import M1
-import Control.Monad.Eff.Console (log)
-
-testBar = bar
-
-main = log "Done"
diff --git a/examples/passing/ExportExplicit2/M1.purs b/examples/passing/ExportExplicit2/M1.purs
deleted file mode 100644
index 16c27e1..0000000
--- a/examples/passing/ExportExplicit2/M1.purs
+++ /dev/null
@@ -1,7 +0,0 @@
-module M1 (bar) where
-
-foo :: Int
-foo = 0
-
-bar :: Int
-bar = foo
diff --git a/examples/passing/ExportedInstanceDeclarations.purs b/examples/passing/ExportedInstanceDeclarations.purs
deleted file mode 100644
index ee3dd92..0000000
--- a/examples/passing/ExportedInstanceDeclarations.purs
+++ /dev/null
@@ -1,45 +0,0 @@
--- Tests that instances for non-exported classes / types do not appear in the
--- result of `exportedDeclarations`.
-module Main
- ( Const(..)
- , class Foo
- , foo
- , main
- ) where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Const a b = Const a
-
-class Foo a where
- foo :: a
-
-data NonexportedType = NonexportedType
-
-class NonexportedClass a where
- notExported :: a
-
--- There are three places that a nonexported type or type class can occur,
--- leading an instance to count as non-exported:
--- * Constraints
--- * The type class itself
--- * The instance types
-
--- Case 1: constraints
-instance nonExportedFoo :: (NonexportedClass a) => Foo a where
- foo = notExported
-
--- Another instance of case 1:
-instance nonExportedFoo2 :: (Foo NonexportedType) => Foo (a -> a) where
- foo = id
-
--- Case 2: type class
-instance nonExportedNonexportedType :: NonexportedClass (Const Int a) where
- notExported = Const 0
-
--- Case 3: instance types
-instance constFoo :: Foo (Const NonexportedType b) where
- foo = Const NonexportedType
-
-main = log "Done"
diff --git a/examples/passing/ExtendedInfixOperators.purs b/examples/passing/ExtendedInfixOperators.purs
deleted file mode 100644
index 5e12f60..0000000
--- a/examples/passing/ExtendedInfixOperators.purs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-import Data.Function (on)
-
-comparing :: forall a b. Ord b => (a -> b) -> a -> a -> Ordering
-comparing f = compare `on` f
-
-null [] = true
-null _ = false
-
-test = [1.0, 2.0, 3.0] `comparing null` [4.0, 5.0, 6.0]
-
-main = do
- logShow test
- log "Done"
diff --git a/examples/passing/Fib.purs b/examples/passing/Fib.purs
deleted file mode 100644
index c9729c7..0000000
--- a/examples/passing/Fib.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff (whileE)
-import Control.Monad.Eff.Console (log, logShow)
-import Control.Monad.ST (runST, newSTRef, readSTRef, writeSTRef)
-
-main = do
- runST do
- n1 <- newSTRef 1.0
- n2 <- newSTRef 1.0
- whileE ((>) 1000.0 <$> readSTRef n1) $ do
- n1' <- readSTRef n1
- n2' <- readSTRef n2
- _ <- writeSTRef n2 $ n1' + n2'
- _ <- writeSTRef n1 n2'
- logShow n2'
- log "Done"
diff --git a/examples/passing/FieldConsPuns.purs b/examples/passing/FieldConsPuns.purs
deleted file mode 100644
index 1449ad8..0000000
--- a/examples/passing/FieldConsPuns.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-greet { greeting, name } = log $ greeting <> ", " <> name <> "."
-
-main = do
- greet { greeting, name }
- log "Done"
- where
- greeting = "Hello"
- name = "World"
diff --git a/examples/passing/FieldPuns.purs b/examples/passing/FieldPuns.purs
deleted file mode 100644
index 5bd00fc..0000000
--- a/examples/passing/FieldPuns.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-greet { greeting, name } = log $ greeting <> ", " <> name <> "."
-
-main = do
- greet { greeting: "Hello", name: "World" }
- log "Done"
diff --git a/examples/passing/FinalTagless.purs b/examples/passing/FinalTagless.purs
deleted file mode 100644
index b7cd4d8..0000000
--- a/examples/passing/FinalTagless.purs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Main where
-
-import Prelude hiding (add)
-import Control.Monad.Eff.Console (log, logShow)
-
-class E e where
- num :: Number -> e Number
- add :: e Number -> e Number -> e Number
-
-type Expr a = forall e. E e => e a
-
-data Id a = Id a
-
-instance exprId :: E Id where
- num = Id
- add (Id n) (Id m) = Id (n + m)
-
-runId (Id a) = a
-
-three :: Expr Number
-three = add (num 1.0) (num 2.0)
-
-main = do
- logShow $ runId three
- log "Done"
diff --git a/examples/passing/ForeignKind.purs b/examples/passing/ForeignKind.purs
deleted file mode 100644
index 0b91f7d..0000000
--- a/examples/passing/ForeignKind.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import ForeignKinds.Lib (kind Nat, Zero, Succ, N3, NatProxy, class AddNat, addNat, proxy1, proxy2)
-import Control.Monad.Eff.Console (log)
-
-proxy1Add2Is3 :: NatProxy N3
-proxy1Add2Is3 = addNat proxy1 proxy2
-
-main = log "Done"
diff --git a/examples/passing/FunWithFunDeps.purs b/examples/passing/FunWithFunDeps.purs
deleted file mode 100644
index d69aa33..0000000
--- a/examples/passing/FunWithFunDeps.purs
+++ /dev/null
@@ -1,41 +0,0 @@
--- Taken from https://github.com/LiamGoodacre/purescript-fun-with-fundeps
-
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
--- Nat : Type
-data Z
-data S n
-
-type S2 n = S (S n)
-type S3 n = S (S2 n)
-type S4 n = S (S3 n)
-type S5 n = S (S4 n)
-type S15 n = S5 (S5 (S5 n))
-
-class NatPlus l r o | l r -> o
-instance natPlusZ :: NatPlus Z r r
-instance natPlusS :: (NatPlus l r o) => NatPlus (S l) r (S o)
-
-class NatMult l r o | l r -> o
-instance natMultZ :: NatMult Z n Z
-instance natMultS :: (NatMult m n r, NatPlus n r s) => NatMult (S m) n s
-
--- Foreign Vect
-foreign import data FVect :: Type -> Type -> Type
-foreign import fnil :: forall e. FVect Z e
-foreign import fcons :: forall n e. e -> FVect n e -> FVect (S n) e
-foreign import fappend :: forall l r o e. NatPlus l r o => FVect l e -> FVect r e -> FVect o e
-foreign import fflatten :: forall f s t o. NatMult f s o => FVect f (FVect s t) -> FVect o t
-foreign import ftoArray :: forall n e. FVect n e -> Array e
-
--- should be able to figure these out
-fsingleton x = fcons x fnil
-fexample = fcons 1 (fsingleton 2) `fappend` fsingleton 3 `fappend` fcons 4 (fsingleton 5)
-fexample2 = fexample `fappend` fexample `fappend` fexample
-fexample3 = fsingleton fexample `fappend` fsingleton fexample `fappend` fsingleton fexample
-
-fexample4 = fflatten fexample3
-
-main = log "Done"
diff --git a/examples/passing/FunctionScope.purs b/examples/passing/FunctionScope.purs
deleted file mode 100644
index 3212d44..0000000
--- a/examples/passing/FunctionScope.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Test.Assert
-import Control.Monad.Eff.Console (log)
-
-mkValue :: Number -> Number
-mkValue id = id
-
-main = do
- let value = mkValue 1.0
- assert $ value == 1.0
- log "Done"
diff --git a/examples/passing/FunctionalDependencies.purs b/examples/passing/FunctionalDependencies.purs
deleted file mode 100644
index cb8026e..0000000
--- a/examples/passing/FunctionalDependencies.purs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-data Nil
-data Cons x xs
-
-class Append a b c | a b -> c
-
-instance appendNil :: Append Nil b b
-
-instance appendCons :: Append xs b c => Append (Cons x xs) b (Cons x c)
-
-data Proxy a = Proxy
-
-appendProxy :: forall a b c. Append a b c => Proxy a -> Proxy b -> Proxy c
-appendProxy Proxy Proxy = Proxy
-
-test = appendProxy (Proxy :: Proxy (Cons Int Nil)) (Proxy :: Proxy (Cons String Nil))
-
-main = log "Done"
diff --git a/examples/passing/Functions.purs b/examples/passing/Functions.purs
deleted file mode 100644
index b6da679..0000000
--- a/examples/passing/Functions.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test1 = \_ -> 0.0
-
-test2 = \a b -> a + b + 1.0
-
-test3 = \a -> a
-
-main = log "Done"
diff --git a/examples/passing/Functions2.purs b/examples/passing/Functions2.purs
deleted file mode 100644
index 1a658ab..0000000
--- a/examples/passing/Functions2.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Test.Assert
-import Control.Monad.Eff.Console (log)
-
-test :: forall a b. a -> b -> a
-test = \const _ -> const
-
-main = do
- let value = test "Done" {}
- assert' "Not done" $ value == "Done"
- log "Done"
diff --git a/examples/passing/Generalization1.purs b/examples/passing/Generalization1.purs
deleted file mode 100644
index e168268..0000000
--- a/examples/passing/Generalization1.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (logShow, log)
-
-main = do
- logShow (sum 1.0 2.0)
- logShow (sum 1 2)
- log "Done"
-
-sum x y = x + y
diff --git a/examples/passing/GenericsRep.purs b/examples/passing/GenericsRep.purs
deleted file mode 100644
index b83537e..0000000
--- a/examples/passing/GenericsRep.purs
+++ /dev/null
@@ -1,63 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log, logShow)
-import Data.Generic.Rep (class Generic)
-import Data.Generic.Rep.Eq (genericEq)
-
-data X a = X a
-
-derive instance genericX :: Generic (X a) _
-
-instance eqX :: Eq a => Eq (X a) where
- eq xs ys = genericEq xs ys
-
-data Y a = Y | Z a (Y a)
-
-derive instance genericY :: Generic (Y a) _
-
-instance eqY :: Eq a => Eq (Y a) where
- eq xs ys = genericEq xs ys
-
-data Z
-
-derive instance genericZ :: Generic Z _
-
-instance eqZ :: Eq Z where
- eq x y = genericEq x y
-
-type MyString = String
-
-newtype W = W { x :: Int, y :: MyString }
-
-derive instance genericW :: Generic W _
-
-instance eqW :: Eq W where
- eq x y = genericEq x y
-
-data V = V { x :: Int } { x :: Int }
-
-derive instance genericV :: Generic V _
-
-instance eqV :: Eq V where
- eq x y = genericEq x y
-
-newtype U = U {}
-
-derive instance genericU :: Generic U _
-
-instance eqU :: Eq U where
- eq x y = genericEq x y
-
-main :: Eff (console :: CONSOLE) Unit
-main = do
- logShow (X 0 == X 1)
- logShow (X 1 == X 1)
- logShow (Z 1 Y == Z 1 Y)
- logShow (Z 1 Y == Y)
- logShow (Y == Y :: Y Z)
- logShow (W { x: 0, y: "A" } == W { x: 0, y: "A" })
- logShow (V { x: 0 } { x: 0 } == V { x: 0 } { x: 0 })
- logShow (U {} == U {})
- log "Done"
diff --git a/examples/passing/Guards.purs b/examples/passing/Guards.purs
deleted file mode 100644
index 6f86d59..0000000
--- a/examples/passing/Guards.purs
+++ /dev/null
@@ -1,64 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-collatz = \x -> case x of
- y | y `mod` 2.0 == 0.0 -> y / 2.0
- y -> y * 3.0 + 1.0
-
--- Guards have access to current scope
-collatz2 = \x y -> case x of
- z | y > 0.0 -> z / 2.0
- z -> z * 3.0 + 1.0
-
-min :: forall a. Ord a => a -> a -> a
-min n m | n < m = n
- | otherwise = m
-
-max :: forall a. Ord a => a -> a -> a
-max n m = case unit of
- _ | m < n -> n
- | otherwise -> m
-
-testIndentation :: Number -> Number -> Number
-testIndentation x y | x > 0.0
- = x + y
- | otherwise
- = y - x
-
--- pattern guard example with two clauses
-clunky1 :: Int -> Int -> Int
-clunky1 a b | x <- max a b
- , x > 5
- = x
-clunky1 a _ = a
-
-clunky2 :: Int -> Int -> Int
-clunky2 a b | x <- max a b
- , x > 5
- = x
- | otherwise
- = a + b
-
--- pattern guards on case epxressions
-clunky_case1 :: Int -> Int -> Int
-clunky_case1 a b =
- case unit of
- unit | x <- max a b
- , x > 5
- -> x
- | otherwise -> a + b
-
--- test indentation
-clunky_case2 :: Int -> Int -> Int
-clunky_case2 a b =
- case unit of
- unit
- | x <- max a b
- , x > 5
- -> x
- | otherwise
- -> a + b
-
-main = log $ min "Done" "ZZZZ"
diff --git a/examples/passing/HasOwnProperty.purs b/examples/passing/HasOwnProperty.purs
deleted file mode 100644
index 6a70fb7..0000000
--- a/examples/passing/HasOwnProperty.purs
+++ /dev/null
@@ -1,5 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-main = log ({hasOwnProperty: "Hi"} {hasOwnProperty = "Done"}).hasOwnProperty
diff --git a/examples/passing/HoistError.purs b/examples/passing/HoistError.purs
deleted file mode 100644
index 5128a75..0000000
--- a/examples/passing/HoistError.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Test.Assert
-
-main = do
- let x = 0.0
- assert $ x == 0.0
- let x = 1.0 + 1.0
- log "Done"
diff --git a/examples/passing/IfThenElseMaybe.purs b/examples/passing/IfThenElseMaybe.purs
deleted file mode 100644
index 80c83cc..0000000
--- a/examples/passing/IfThenElseMaybe.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Maybe a = Nothing | Just a
-
-test1 = if true then Just 10 else Nothing
-
-test2 = if true then Nothing else Just 10
-
-main = log "Done"
diff --git a/examples/passing/IfWildcard.purs b/examples/passing/IfWildcard.purs
deleted file mode 100644
index dd7d154..0000000
--- a/examples/passing/IfWildcard.purs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (log, CONSOLE)
-
-data Foo = X | Y
-
-cond ∷ βˆ€ a. Boolean β†’ a β†’ a β†’ a
-cond = if _ then _ else _
-
-what ∷ Boolean β†’ Foo
-what = if _ then X else Y
-
-main :: forall e. Eff (console :: CONSOLE | e) Unit
-main = do
- let tmp1 = what true
- tmp2 = cond true 0 1
- log "Done"
diff --git a/examples/passing/ImplicitEmptyImport.purs b/examples/passing/ImplicitEmptyImport.purs
deleted file mode 100644
index 6265490..0000000
--- a/examples/passing/ImplicitEmptyImport.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-main = do
- log "Hello"
- log "Goodbye"
- log "Done"
diff --git a/examples/passing/Import.purs b/examples/passing/Import.purs
deleted file mode 100644
index 75c2d14..0000000
--- a/examples/passing/Import.purs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Main where
-
-import M2
-import Control.Monad.Eff.Console (log)
-
-main = log "Done"
diff --git a/examples/passing/Import/M1.purs b/examples/passing/Import/M1.purs
deleted file mode 100644
index 144ecdb..0000000
--- a/examples/passing/Import/M1.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module M1 where
-
-import Prelude ()
-
-id :: forall a. a -> a
-id = \x -> x
-
-foo = id
diff --git a/examples/passing/Import/M2.purs b/examples/passing/Import/M2.purs
deleted file mode 100644
index eba01c6..0000000
--- a/examples/passing/Import/M2.purs
+++ /dev/null
@@ -1,6 +0,0 @@
-module M2 where
-
-import Prelude ()
-import M1
-
-main = \_ -> foo 42
diff --git a/examples/passing/ImportExplicit.purs b/examples/passing/ImportExplicit.purs
deleted file mode 100644
index 92d5ee6..0000000
--- a/examples/passing/ImportExplicit.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import M1 (X(..))
-import Control.Monad.Eff.Console (log)
-
-testX :: X
-testX = X
-testY = Y
-
-main = log "Done"
diff --git a/examples/passing/ImportExplicit/M1.purs b/examples/passing/ImportExplicit/M1.purs
deleted file mode 100644
index 189ba7c..0000000
--- a/examples/passing/ImportExplicit/M1.purs
+++ /dev/null
@@ -1,4 +0,0 @@
-module M1 where
-
-data X = X | Y
-data Z = Z
diff --git a/examples/passing/ImportHiding.purs b/examples/passing/ImportHiding.purs
deleted file mode 100644
index 8808ea3..0000000
--- a/examples/passing/ImportHiding.purs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console
-import Prelude hiding (
- show, -- a value
- class Show, -- a type class
- Unit(..) -- a constructor
- )
-
-show = 1.0
-
-class Show a where
- noshow :: a -> a
-
-data Unit = X | Y
-
-main = do
- logShow show
- log "Done"
diff --git a/examples/passing/ImportQualified.purs b/examples/passing/ImportQualified.purs
deleted file mode 100644
index 303f6e1..0000000
--- a/examples/passing/ImportQualified.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import M1
-import Control.Monad.Eff.Console as C
-
-main = C.log (log "Done")
diff --git a/examples/passing/ImportQualified/M1.purs b/examples/passing/ImportQualified/M1.purs
deleted file mode 100644
index 6c423fb..0000000
--- a/examples/passing/ImportQualified/M1.purs
+++ /dev/null
@@ -1,3 +0,0 @@
-module M1 where
-
-log x = x
diff --git a/examples/passing/InferRecFunWithConstrainedArgument.purs b/examples/passing/InferRecFunWithConstrainedArgument.purs
deleted file mode 100644
index cd78e9b..0000000
--- a/examples/passing/InferRecFunWithConstrainedArgument.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-test 100 = 100
-test n = test(1 + n)
-
-main = do
- logShow (test 0)
- log "Done"
diff --git a/examples/passing/InstanceBeforeClass.purs b/examples/passing/InstanceBeforeClass.purs
deleted file mode 100644
index d187655..0000000
--- a/examples/passing/InstanceBeforeClass.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-instance fooNumber :: Foo Number where
- foo = 0.0
-
-class Foo a where
- foo :: a
-
-main = log "Done"
diff --git a/examples/passing/InstanceSigs.purs b/examples/passing/InstanceSigs.purs
deleted file mode 100644
index b3975a2..0000000
--- a/examples/passing/InstanceSigs.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-class Foo a where
- foo :: a
-
-instance fooNumber :: Foo Number where
- foo :: Number
- foo = 0.0
-
-main = log "Done"
diff --git a/examples/passing/InstanceSigsGeneral.purs b/examples/passing/InstanceSigsGeneral.purs
deleted file mode 100644
index 05901ad..0000000
--- a/examples/passing/InstanceSigsGeneral.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-class Eq a where
- eq :: a -> a -> Boolean
-
-instance eqNumber :: Eq Number where
- eq :: forall x y. x -> y -> Boolean
- eq _ _ = true
-
-main = log "Done"
diff --git a/examples/passing/IntAndChar.purs b/examples/passing/IntAndChar.purs
deleted file mode 100644
index 366cfcd..0000000
--- a/examples/passing/IntAndChar.purs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console (log)
-import Test.Assert
-
-f 1 = 1
-f _ = 0
-
-g 'a' = 'a'
-g _ = 'b'
-
-main = do
- assert $ f 1 == 1
- assert $ f 0 == 0
- assert $ g 'a' == 'a'
- assert $ g 'b' == 'b'
- log "Done"
diff --git a/examples/passing/JSReserved.purs b/examples/passing/JSReserved.purs
deleted file mode 100644
index 26bde69..0000000
--- a/examples/passing/JSReserved.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-yield = 0
-member = 1
-
-public = \return -> return
-
-this catch = catch
-
-main = log "Done"
diff --git a/examples/passing/KindedType.purs b/examples/passing/KindedType.purs
deleted file mode 100644
index 3abe512..0000000
--- a/examples/passing/KindedType.purs
+++ /dev/null
@@ -1,34 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type Star2Star f = f :: Type -> Type
-
-type Star t = t :: Type
-
-test1 :: Star2Star Array String
-test1 = ["test"]
-
-f :: Star (String -> String)
-f s = s
-
-test2 = f "test"
-
-data Proxy (f :: Type -> Type) = Proxy
-
-test3 :: Proxy Array
-test3 = Proxy
-
-type Test (f :: Type -> Type) = f String
-
-test4 :: Test Array
-test4 = ["test"]
-
-class Clazz (a :: Type) where
- def :: a
-
-instance clazzString :: Clazz String where
- def = "test"
-
-main = log "Done"
diff --git a/examples/passing/LargeSumType.purs b/examples/passing/LargeSumType.purs
deleted file mode 100644
index d833e8a..0000000
--- a/examples/passing/LargeSumType.purs
+++ /dev/null
@@ -1,35 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-data Large = A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
-
-explode A A = "A"
-explode B B = "B"
-explode C C = "C"
-explode D D = "D"
-explode E E = "E"
-explode F F = "F"
-explode G G = "G"
-explode H H = "H"
-explode I I = "I"
-explode J J = "J"
-explode K K = "K"
-explode L L = "L"
-explode M M = "M"
-explode N N = "N"
-explode O O = "O"
-explode P P = "P"
-explode Q Q = "Q"
-explode R R = "R"
-explode S S = "S"
-explode T T = "T"
-explode U U = "U"
-explode V V = "V"
-explode W W = "W"
-explode X X = "X"
-explode Y Y = "Y"
-explode Z Z = "Z"
-explode _ _ = ""
-
-main = log "Done"
diff --git a/examples/passing/Let.purs b/examples/passing/Let.purs
deleted file mode 100644
index 793dac0..0000000
--- a/examples/passing/Let.purs
+++ /dev/null
@@ -1,58 +0,0 @@
-module Main where
-
-import Prelude
-import Partial.Unsafe (unsafePartial)
-import Control.Monad.Eff
-import Control.Monad.Eff.Console (log, logShow)
-import Control.Monad.ST
-
-test1 x = let
- y :: Number
- y = x + 1.0
- in y
-
-test2 x y =
- let x' = x + 1.0 in
- let y' = y + 1.0 in
- x' + y'
-
-test3 = let f x y z = x + y + z in
- f 1.0 2.0 3.0
-
-test4 = let
- f x [y, z] = x y z
- in f (+) [1.0, 2.0]
-
-test5 = let
- f x | x > 0.0 = g (x / 2.0) + 1.0
- f x = 0.0
- g x = f (x - 1.0) + 1.0
- in f 10.0
-
-test7 = let
- f :: forall a. a -> a
- f x = x
- in if f true then f 1.0 else f 2.0
-
-test8 :: Number -> Number
-test8 x = let
- go y | (x - 0.1 < y * y) && (y * y < x + 0.1) = y
- go y = go $ (y + x / y) / 2.0
- in go x
-
-test10 _ =
- let
- f x = g x * 3.0
- g x = f x / 2.0
- in f 10.0
-
-main :: Eff _ _
-main = do
- logShow (test1 1.0)
- logShow (test2 1.0 2.0)
- logShow test3
- unsafePartial (logShow test4)
- logShow test5
- logShow test7
- logShow (test8 100.0)
- log "Done"
diff --git a/examples/passing/Let2.purs b/examples/passing/Let2.purs
deleted file mode 100644
index 51fc251..0000000
--- a/examples/passing/Let2.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-test =
- let f :: Number -> Boolean
- f 0.0 = false
- f n = g (n - 1.0)
-
- g :: Number -> Boolean
- g 0.0 = true
- g n = f (n - 1.0)
-
- x = f 1.0
- in not x
-
-main = do
- logShow test
- log "Done"
diff --git a/examples/passing/LetInInstance.purs b/examples/passing/LetInInstance.purs
deleted file mode 100644
index 9915485..0000000
--- a/examples/passing/LetInInstance.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class Foo a where
- foo :: a -> String
-
-instance fooString :: Foo String where
- foo = go
- where
- go :: String -> String
- go s = s
-
-main = log "Done"
diff --git a/examples/passing/LetPattern.purs b/examples/passing/LetPattern.purs
deleted file mode 100644
index e823120..0000000
--- a/examples/passing/LetPattern.purs
+++ /dev/null
@@ -1,196 +0,0 @@
-module Main where
-
-import Prelude
-import Partial.Unsafe (unsafePartial)
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-import Test.Assert (ASSERT, assert')
-
-patternSimple :: Boolean
-patternSimple =
- let x = 25252
- in
- x == 25252
-
-patternDoSimple :: forall e. Eff e Boolean
-patternDoSimple = do
- let x = 25252
- pure $ x == 25252
-
-newtype X = X Int
-
-patternNewtype :: Boolean
-patternNewtype =
- let X a = X 123
- in
- a == 123
-
-patternDoNewtype :: forall e. Eff e Boolean
-patternDoNewtype = do
- let X a = X 123
- pure $ a == 123
-
-data Y = Y Int String Boolean
-
-patternData :: Boolean
-patternData =
- let Y a b c = Y 456 "hello, world" false
- in
- a == 456 && b == "hello, world" && not c
-
-patternDataIgnored :: Boolean
-patternDataIgnored =
- let Y _ x _ = Y 789 "world, hello" true
- in
- x == "world, hello"
-
-patternDoData :: forall e. Eff e Boolean
-patternDoData = do
- let Y a b c = Y 456 "hello, world" false
- pure $ a == 456 && b == "hello, world" && not c
-
-patternDoDataIgnored :: forall e. Eff e Boolean
-patternDoDataIgnored = do
- let Y _ x _ = Y 789 "world, hello" true
- pure $ x == "world, hello"
-
-patternArray :: Boolean
-patternArray = unsafePartial $
- let [a, b] = [1, 2]
- in
- a == 1 && b == 2
-
-patternDoArray :: forall e. Eff e Boolean
-patternDoArray = unsafePartial do
- let [a, b] = [1, 2]
- pure $ a == 1 && b == 2
-
-patternMultiple :: Boolean
-patternMultiple = unsafePartial $
- let
- x = 25252
- X a = X x
- Y b c d = Y x "hello, world" false
- Y _ e _ = Y 789 "world, hello" true
- [f, g] = [1, 2]
- in
- x == 25252 && a == 25252 && b == 25252 && c == "hello, world" &&
- not d && e == "world, hello" && f == 1 && g == 2
-
-patternDoMultiple :: forall e. Eff e Boolean
-patternDoMultiple = unsafePartial do
- let
- x = 25252
- X a = X x
- Y b c d = Y x "hello, world" false
- Y _ e _ = Y 789 "world, hello" true
- [f, g] = [1, 2]
- pure $ x == 25252 && a == 25252 && b == 25252 && c == "hello, world" &&
- not d && e == "world, hello" && f == 1 && g == 2
-
-patternMultipleWithNormal :: Boolean
-patternMultipleWithNormal = unsafePartial $
- let
- x = 25252
- X a = X x
- y = 2525
- Y b c d = Y y "hello, world" false
- in
- x == 25252 && y == 2525 &&
- a == 25252 && b == 2525 && c == "hello, world" && not d
-
-patternDoMultipleWithNormal :: forall e. Eff e Boolean
-patternDoMultipleWithNormal = unsafePartial do
- let
- x = 25252
- X a = X x
- y = 2525
- Y b c d = Y y "hello, world" false
- pure $ x == 25252 && y == 2525 &&
- a == 25252 && b == 2525 && c == "hello, world" && not d
-
-patternWithParens :: Boolean
-patternWithParens = unsafePartial $
- let
- (x) = 25252
- (X a) = X x
- (Y b c d) = Y x "hello, world" false
- (Y _ e _) = Y 789 "world, hello" true
- ([f, g]) = [1, 2]
- in
- x == 25252 && a == 25252 && b == 25252 && c == "hello, world" &&
- not d && e == "world, hello" && f == 1 && g == 2
-
-patternDoWithParens :: forall e. Eff e Boolean
-patternDoWithParens = unsafePartial do
- let
- (x) = 25252
- (X a) = X x
- (Y b c d) = Y x "hello, world" false
- (Y _ e _) = Y 789 "world, hello" true
- ([f, g]) = [1, 2]
- pure $ x == 25252 && a == 25252 && b == 25252 && c == "hello, world" &&
- not d && e == "world, hello" && f == 1 && g == 2
-
-patternWithNamedBinder :: Boolean
-patternWithNamedBinder = unsafePartial $
- let
- a@{x, y} = {x: 10, y: 20}
- in
- a.x == 10 && x == 10 && a.y == 20 && y == 20
-
-patternDoWithNamedBinder :: forall e. Eff e Boolean
-patternDoWithNamedBinder = unsafePartial do
- let
- a@{x, y} = {x: 10, y: 20}
- pure $
- a.x == 10 && x == 10 && a.y == 20 && y == 20
-
-data List a = Nil | Cons a (List a)
-infixr 6 Cons as :
-
-instance eqList :: Eq a => Eq (List a) where
- eq xs ys = go xs ys true
- where
- go _ _ false = false
- go Nil Nil acc = acc
- go (x : xs') (y : ys') acc = go xs' ys' $ acc && (y == x)
- go _ _ _ = false
-
-patternWithInfixOp :: Boolean
-patternWithInfixOp = unsafePartial $
- let
- x : xs = 1 : 2 : 3 : 4 : Nil
- in
- x == 1 && xs == 2 : 3 : 4 : Nil
-
-patternDoWithInfixOp :: forall e. Eff e Boolean
-patternDoWithInfixOp = unsafePartial do
- let
- x : xs = 1 : 2 : 3 : 4 : Nil
- pure $
- x == 1 && xs == 2 : 3 : 4 : Nil
-
-main :: Eff (assert :: ASSERT, console :: CONSOLE) Unit
-main = do
- assert' "simple variable pattern" patternSimple
- assert' "simple variable pattern with do" =<< patternDoSimple
- assert' "constructor pattern (newtype)" patternNewtype
- assert' "constructor pattern (newtype) with do" =<< patternDoNewtype
- assert' "constructor pattern (data)" patternData
- assert' "constructor pattern with ignorances" patternDataIgnored
- assert' "constructor pattern (data) with do" =<< patternDoData
- assert' "constructor pattern with ignorances and do" =<< patternDoDataIgnored
- assert' "array pattern" patternArray
- assert' "array pattern with do" =<< patternDoArray
- assert' "multiple patterns" patternMultiple
- assert' "multiple patterns with do" =<< patternDoMultiple
- assert' "multiple patterns with normal let's" patternMultipleWithNormal
- assert' "multiple patterns with normal let's and do" =<< patternDoMultipleWithNormal
- assert' "multiple patterns with parens" patternWithParens
- assert' "multiple patterns with parens and do" =<< patternDoWithParens
- assert' "multiple patterns with named binder" patternWithNamedBinder
- assert' "multiple patterns with named binder and do" =<< patternDoWithNamedBinder
- assert' "pattern with infix operator" patternWithInfixOp
- assert' "pattern with infix operator and do" =<< patternDoWithInfixOp
- log "Done"
diff --git a/examples/passing/LiberalTypeSynonyms.purs b/examples/passing/LiberalTypeSynonyms.purs
deleted file mode 100644
index b388af6..0000000
--- a/examples/passing/LiberalTypeSynonyms.purs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type Reader = (->) String
-
-foo :: Reader String
-foo s = s
-
-type AndFoo r = (foo :: String | r)
-
-getFoo :: forall r. Prim.Record (AndFoo r) -> String
-getFoo o = o.foo
-
-type F r = { | r } -> { | r }
-
-f :: (forall r. F r) -> String
-f g = case g { x: "Hello" } of
- { x: x } -> x
-
-main = log "Done"
diff --git a/examples/passing/MPTCs.purs b/examples/passing/MPTCs.purs
deleted file mode 100644
index 195d3dc..0000000
--- a/examples/passing/MPTCs.purs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class NullaryTypeClass where
- greeting :: String
-
-instance nullaryTypeClass :: NullaryTypeClass where
- greeting = "Hello, World!"
-
-class Coerce a b where
- coerce :: a -> b
-
-instance coerceRefl :: Coerce a a where
- coerce a = a
-
-instance coerceShow :: Show a => Coerce a String where
- coerce = show
-
-main = log "Done"
diff --git a/examples/passing/Match.purs b/examples/passing/Match.purs
deleted file mode 100644
index 50244bb..0000000
--- a/examples/passing/Match.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Foo a = Foo
-
-foo = \f -> case f of Foo -> "foo"
-
-main = log "Done"
diff --git a/examples/passing/Module.purs b/examples/passing/Module.purs
deleted file mode 100644
index e8d5f06..0000000
--- a/examples/passing/Module.purs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Main where
-
-import M1
-import M2
-import Control.Monad.Eff.Console (log)
-
-main = log "Done"
diff --git a/examples/passing/ModuleDeps.purs b/examples/passing/ModuleDeps.purs
deleted file mode 100644
index 5736a97..0000000
--- a/examples/passing/ModuleDeps.purs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Main where
-
-import M1
-import Control.Monad.Eff.Console (log)
-
-main = log "Done"
diff --git a/examples/passing/ModuleDeps/M1.purs b/examples/passing/ModuleDeps/M1.purs
deleted file mode 100644
index 5618b41..0000000
--- a/examples/passing/ModuleDeps/M1.purs
+++ /dev/null
@@ -1,5 +0,0 @@
-module M1 where
-
-import M2 as M2
-
-foo = M2.bar
diff --git a/examples/passing/ModuleDeps/M2.purs b/examples/passing/ModuleDeps/M2.purs
deleted file mode 100644
index c6cc008..0000000
--- a/examples/passing/ModuleDeps/M2.purs
+++ /dev/null
@@ -1,5 +0,0 @@
-module M2 where
-
-import M3 as M3
-
-bar = M3.baz
diff --git a/examples/passing/ModuleDeps/M3.purs b/examples/passing/ModuleDeps/M3.purs
deleted file mode 100644
index d9b7633..0000000
--- a/examples/passing/ModuleDeps/M3.purs
+++ /dev/null
@@ -1,3 +0,0 @@
-module M3 where
-
-baz = 1
diff --git a/examples/passing/ModuleExport.purs b/examples/passing/ModuleExport.purs
deleted file mode 100644
index 0ce2e51..0000000
--- a/examples/passing/ModuleExport.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log, logShow)
-import A
-
-main = do
- logShow (show 1.0)
- log "Done"
diff --git a/examples/passing/ModuleExportDupes.purs b/examples/passing/ModuleExportDupes.purs
deleted file mode 100644
index 6a354a7..0000000
--- a/examples/passing/ModuleExportDupes.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
- import Control.Monad.Eff.Console
- import A
- import B
- import C
- import Prelude
-
- main = do
- logShow (show 1.0)
- log "Done"
diff --git a/examples/passing/ModuleExportExcluded.purs b/examples/passing/ModuleExportExcluded.purs
deleted file mode 100644
index c5b425d..0000000
--- a/examples/passing/ModuleExportExcluded.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-import A (foo)
-
-otherwise = false
-
-main = do
- logShow "1.0"
- log "Done"
diff --git a/examples/passing/ModuleExportQualified.purs b/examples/passing/ModuleExportQualified.purs
deleted file mode 100644
index a8e8c6e..0000000
--- a/examples/passing/ModuleExportQualified.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-import A as B
-
-main = do
- logShow (B.show 1.0)
- log "Done"
diff --git a/examples/passing/ModuleExportSelf.purs b/examples/passing/ModuleExportSelf.purs
deleted file mode 100644
index 5063d2b..0000000
--- a/examples/passing/ModuleExportSelf.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console
-import A
-
-bar :: Foo
-bar = true
-
-main = do
- logShow (show bar)
- log "Done"
diff --git a/examples/passing/ModuleExportSelf/A.purs b/examples/passing/ModuleExportSelf/A.purs
deleted file mode 100644
index f6c2ecf..0000000
--- a/examples/passing/ModuleExportSelf/A.purs
+++ /dev/null
@@ -1,5 +0,0 @@
-module A (module A, module Prelude) where
-
-import Prelude
-
-type Foo = Boolean
diff --git a/examples/passing/Monad.purs b/examples/passing/Monad.purs
deleted file mode 100644
index a1f5120..0000000
--- a/examples/passing/Monad.purs
+++ /dev/null
@@ -1,32 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-type Monad m = { return :: forall a. a -> m a
- , bind :: forall a b. m a -> (a -> m b) -> m b }
-
-data Id a = Id a
-
-id :: Monad Id
-id = { return : Id
- , bind : \ma f -> case ma of Id a -> f a }
-
-data Maybe a = Nothing | Just a
-
-maybe :: Monad Maybe
-maybe = { return : Just
- , bind : \ma f -> case ma of
- Nothing -> Nothing
- Just a -> f a
- }
-
-test :: forall m. Monad m -> m Number
-test = \m -> m.bind (m.return 1.0) (\n1 ->
- m.bind (m.return "Test") (\n2 ->
- m.return n1))
-
-test1 = test id
-
-test2 = test maybe
-
-main = log "Done"
diff --git a/examples/passing/MonadState.purs b/examples/passing/MonadState.purs
deleted file mode 100644
index 46b2aaa..0000000
--- a/examples/passing/MonadState.purs
+++ /dev/null
@@ -1,63 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-data Tuple a b = Tuple a b
-
-instance showTuple :: (Show a, Show b) => Show (Tuple a b) where
- show (Tuple a b) = "(" <> show a <> ", " <> show b <> ")"
-
-class Monad m <= MonadState s m where
- get :: m s
- put :: s -> m Unit
-
-data State s a = State (s -> Tuple s a)
-
-runState s (State f) = f s
-
-instance functorState :: Functor (State s) where
- map = liftM1
-
-instance applyState :: Apply (State s) where
- apply = ap
-
-instance applicativeState :: Applicative (State s) where
- pure a = State $ \s -> Tuple s a
-
-instance bindState :: Bind (State s) where
- bind f g = State $ \s -> case runState s f of
- Tuple s1 a -> runState s1 (g a)
-
-instance monadState :: Monad (State s)
-
-instance monadStateState :: MonadState s (State s) where
- get = State (\s -> Tuple s s)
- put s = State (\_ -> Tuple s unit)
-
--- Without the call to same, the following strange (but correct, in the absence of
--- functional dependencies) type:
---
--- forall m t1 t2.
--- ( Bind m
--- , MonadState t1 m
--- , MonadState t2 m
--- ) => (t1 -> t2) -> m Unit
---
--- With the type hint, the inferred type is more sensible:
---
--- forall m t.
--- ( Bind m
--- , MonadState t m
--- ) => (t -> t) -> m Unit
-modify f =
- do
- s <- get
- put (same f s)
- where
- same :: forall a. (a -> a) -> (a -> a)
- same = id
-
-main = do
- logShow $ runState 0 (modify (_ + 1))
- log "Done"
diff --git a/examples/passing/MultiArgFunctions.purs b/examples/passing/MultiArgFunctions.purs
deleted file mode 100644
index ed92392..0000000
--- a/examples/passing/MultiArgFunctions.purs
+++ /dev/null
@@ -1,27 +0,0 @@
-module Main where
-
-import Prelude
-import Data.Function.Uncurried
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-f = mkFn2 $ \a b -> runFn2 g a b + runFn2 g b a
-
-g = mkFn2 $ \a b -> case {} of
- _ | a <= 0.0 || b <= 0.0 -> b
- _ -> runFn2 f (a - 0.0) (b - 0.0)
-
-main = do
- runFn0 (mkFn0 $ \_ -> log $ show 0.0)
- runFn1 (mkFn1 $ \a -> log $ show a) 0.0
- runFn2 (mkFn2 $ \a b -> log $ show [a, b]) 0.0 0.0
- runFn3 (mkFn3 $ \a b c -> log $ show [a, b, c]) 0.0 0.0 0.0
- runFn4 (mkFn4 $ \a b c d -> log $ show [a, b, c, d]) 0.0 0.0 0.0 0.0
- runFn5 (mkFn5 $ \a b c d e -> log $ show [a, b, c, d, e]) 0.0 0.0 0.0 0.0 0.0
- runFn6 (mkFn6 $ \a b c d e f -> log $ show [a, b, c, d, e, f]) 0.0 0.0 0.0 0.0 0.0 0.0
- runFn7 (mkFn7 $ \a b c d e f g -> log $ show [a, b, c, d, e, f, g]) 0.0 0.0 0.0 0.0 0.0 0.0 0.0
- runFn8 (mkFn8 $ \a b c d e f g h -> log $ show [a, b, c, d, e, f, g, h]) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
- runFn9 (mkFn9 $ \a b c d e f g h i -> log $ show [a, b, c, d, e, f, g, h, i]) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
- runFn10 (mkFn10 $ \a b c d e f g h i j-> log $ show [a, b, c, d, e, f, g, h, i, j]) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
- logShow $ runFn2 g 0.0 0.0
- log "Done"
diff --git a/examples/passing/MutRec.purs b/examples/passing/MutRec.purs
deleted file mode 100644
index c800b4c..0000000
--- a/examples/passing/MutRec.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-f 0.0 = 0.0
-f x = g x + 0.0
-
-g x = f (x / 0.0)
-
-data Even = Zero | Even Odd
-
-data Odd = Odd Even
-
-evenToNumber Zero = 0.0
-evenToNumber (Even n) = oddToNumber n + 0.0
-
-oddToNumber (Odd n) = evenToNumber n + 0.0
-
-main = log "Done"
diff --git a/examples/passing/MutRec2.purs b/examples/passing/MutRec2.purs
deleted file mode 100644
index bac1237..0000000
--- a/examples/passing/MutRec2.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data A = A B
-
-data B = B A
-
-foreign import data S :: Type
-
-f :: A -> S
-f a = case a of A b -> g b
-
-g b = case b of B a -> f a
-
-showN :: A -> S
-showN a = f a
-
-main = log "Done"
diff --git a/examples/passing/MutRec3.purs b/examples/passing/MutRec3.purs
deleted file mode 100644
index ac22c69..0000000
--- a/examples/passing/MutRec3.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data A = A B
-
-data B = B A
-
-foreign import data S :: Type
-
-f a = case a of A b -> g b
-
-g :: B -> S
-g b = case b of B a -> f a
-
-showN :: A -> S
-showN a = f a
-
-main = log "Done"
diff --git a/examples/passing/NakedConstraint.purs b/examples/passing/NakedConstraint.purs
deleted file mode 100644
index 8ec2099..0000000
--- a/examples/passing/NakedConstraint.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console
-
-data List a = Nil | Cons a (List a)
-
-head :: Partial => List Int -> Int
-head (Cons x _) = x
-
-main = log "Done"
diff --git a/examples/passing/NamedPatterns.purs b/examples/passing/NamedPatterns.purs
deleted file mode 100644
index d6f4377..0000000
--- a/examples/passing/NamedPatterns.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-foo = \x -> case x of
- y@{ foo: "Foo" } -> y
- y -> y
-
-main = log "Done"
diff --git a/examples/passing/NegativeBinder.purs b/examples/passing/NegativeBinder.purs
deleted file mode 100644
index 1c73e70..0000000
--- a/examples/passing/NegativeBinder.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test :: Number -> Boolean
-test -1.0 = false
-test _ = true
-
-main = log "Done"
diff --git a/examples/passing/NegativeIntInRange.purs b/examples/passing/NegativeIntInRange.purs
deleted file mode 100644
index 57a60d0..0000000
--- a/examples/passing/NegativeIntInRange.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-n :: Int
-n = -2147483648
-
-main = log "Done"
diff --git a/examples/passing/Nested.purs b/examples/passing/Nested.purs
deleted file mode 100644
index b29554a..0000000
--- a/examples/passing/Nested.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Extend r a = Extend { prev :: r a, next :: a }
-
-data Matrix r a = Square (r (r a)) | Bigger (Matrix (Extend r) a)
-
-main = log "Done"
diff --git a/examples/passing/NestedRecordUpdate.purs b/examples/passing/NestedRecordUpdate.purs
deleted file mode 100644
index 60eef8f..0000000
--- a/examples/passing/NestedRecordUpdate.purs
+++ /dev/null
@@ -1,24 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-type T = { foo :: Int, bar :: { baz :: Int, qux :: { lhs :: Int, rhs :: Int } } }
-
-init :: T
-init = { foo: 1, bar: { baz: 2, qux: { lhs: 3, rhs: 4 } } }
-
-updated :: T
-updated = init { foo = 10, bar { baz = 20, qux { lhs = 30, rhs = 40 } } }
-
-expected :: T
-expected = { foo: 10, bar: { baz: 20, qux: { lhs: 30, rhs: 40 } } }
-
-check l r =
- l.foo == r.foo &&
- l.bar.baz == r.bar.baz &&
- l.bar.qux.lhs == r.bar.qux.lhs &&
- l.bar.qux.rhs == r.bar.qux.rhs
-
-main = do
- when (check updated expected) $ log "Done"
diff --git a/examples/passing/NestedRecordUpdateWildcards.purs b/examples/passing/NestedRecordUpdateWildcards.purs
deleted file mode 100644
index 7c99276..0000000
--- a/examples/passing/NestedRecordUpdateWildcards.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-update = _ { foo = _, bar { baz = _, qux = _ } }
-
-init = { foo: 1, bar: { baz: 2, qux: 3 } }
-
-after = update init 10 20 30
-
-expected = { foo: 10, bar: { baz: 20, qux: 30 } }
-
-check l r =
- l.foo == r.foo &&
- l.bar.baz == r.bar.baz &&
- l.bar.qux == r.bar.qux
-
-main = do
- when (check after expected) $ log "Done"
diff --git a/examples/passing/NestedTypeSynonyms.purs b/examples/passing/NestedTypeSynonyms.purs
deleted file mode 100644
index 3ae9327..0000000
--- a/examples/passing/NestedTypeSynonyms.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type X = String
-type Y = X -> X
-
-fn :: Y
-fn a = a
-
-main = log (fn "Done")
diff --git a/examples/passing/NestedWhere.purs b/examples/passing/NestedWhere.purs
deleted file mode 100644
index 3f098a5..0000000
--- a/examples/passing/NestedWhere.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-f x = g x
- where
- g x = go x
- where
- go x = go1 (x - 1.0)
- go1 x = go x
-
-main = log "Done"
diff --git a/examples/passing/Newtype.purs b/examples/passing/Newtype.purs
deleted file mode 100644
index 43016b2..0000000
--- a/examples/passing/Newtype.purs
+++ /dev/null
@@ -1,23 +0,0 @@
-module Main where
-
-import Prelude hiding (apply)
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-newtype Thing = Thing String
-
-instance showThing :: Show Thing where
- show (Thing x) = "Thing " <> show x
-
-newtype Box a = Box a
-
-instance showBox :: (Show a) => Show (Box a) where
- show (Box x) = "Box " <> show x
-
-apply f x = f x
-
-main = do
- logShow $ Thing "hello"
- logShow $ Box 42.0
- logShow $ apply Box 9000.0
- log "Done"
diff --git a/examples/passing/NewtypeClass.purs b/examples/passing/NewtypeClass.purs
deleted file mode 100644
index 0e7c8a8..0000000
--- a/examples/passing/NewtypeClass.purs
+++ /dev/null
@@ -1,40 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-class Newtype t a | t -> a where
- wrap :: a -> t
- unwrap :: t -> a
-
-instance newtypeMultiplicative :: Newtype (Multiplicative a) a where
- wrap = Multiplicative
- unwrap (Multiplicative a) = a
-
-data Multiplicative a = Multiplicative a
-
-instance semiringMultiplicative :: Semiring a => Semigroup (Multiplicative a) where
- append (Multiplicative a) (Multiplicative b) = Multiplicative (a * b)
-
-data Pair a = Pair a a
-
-foldPair :: forall a s. Semigroup s => (a -> s) -> Pair a -> s
-foldPair f (Pair a b) = f a <> f b
-
-ala
- :: forall f t a
- . Functor f
- => Newtype t a
- => (a -> t)
- -> ((a -> t) -> f t)
- -> f a
-ala _ f = map unwrap (f wrap)
-
-test = ala Multiplicative foldPair
-
-test1 = ala Multiplicative foldPair (Pair 2 3)
-
-main = do
- logShow (test (Pair 2 3))
- log "Done"
diff --git a/examples/passing/NewtypeEff.purs b/examples/passing/NewtypeEff.purs
deleted file mode 100644
index ad9fdbf..0000000
--- a/examples/passing/NewtypeEff.purs
+++ /dev/null
@@ -1,29 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-import Control.Monad.Eff
-
-newtype T a = T (Eff (console :: CONSOLE) a)
-
-runT :: forall a. T a -> Eff (console :: CONSOLE) a
-runT (T t) = t
-
-instance functorT :: Functor T where
- map f (T t) = T (f <$> t)
-
-instance applyT :: Apply T where
- apply (T f) (T x) = T (f <*> x)
-
-instance applicativeT :: Applicative T where
- pure t = T (pure t)
-
-instance bindT :: Bind T where
- bind (T t) f = T (t >>= \x -> runT (f x))
-
-instance monadT :: Monad T
-
-main = runT do
- T $ log "Done"
- T $ log "Done"
- T $ log "Done"
diff --git a/examples/passing/NewtypeInstance.purs b/examples/passing/NewtypeInstance.purs
deleted file mode 100644
index 1e01f71..0000000
--- a/examples/passing/NewtypeInstance.purs
+++ /dev/null
@@ -1,57 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Data.Monoid
-import Data.Tuple
-
-type MyString = String
-
-newtype X = X MyString
-
-derive newtype instance showX :: Show X
-derive newtype instance eqX :: Eq X
-derive newtype instance ordX :: Ord X
-
-newtype Y a = Y (Array a)
-
-derive newtype instance showY :: Show (Y String)
-
-class Singleton a b where
- singleton :: a -> b
-
-instance singletonArray :: Singleton a (Array a) where
- singleton x = [x]
-
-derive newtype instance singletonY :: Singleton a (Y a)
-
-newtype MyArray a = MyArray (Array a)
-
-derive newtype instance showMyArray :: Show a => Show (MyArray a)
-derive newtype instance functorMyArray :: Functor MyArray
-
-newtype ProxyArray x a = ProxyArray (Array a)
-
-derive newtype instance functorProxyArray :: Functor (ProxyArray x)
-
-class (Monad m, Monoid w) <= MonadWriter w m | m -> w where
- tell :: w -> m Unit
-
-instance monadWriterTuple :: Monoid w => MonadWriter w (Tuple w) where
- tell w = Tuple w unit
-
-newtype MyWriter w a = MyWriter (Tuple w a)
-
-derive newtype instance functorMyWriter :: Functor (MyWriter w)
-derive newtype instance applyMyWriter :: Semigroup w => Apply (MyWriter w)
-derive newtype instance applicativeMyWriter :: Monoid w => Applicative (MyWriter w)
-derive newtype instance bindMyWriter :: Semigroup w => Bind (MyWriter w)
-derive newtype instance monadMyWriter :: Monoid w => Monad (MyWriter w)
-derive newtype instance monadWriterMyWriter :: Monoid w => MonadWriter w (MyWriter w)
-
-main = do
- logShow (X "test")
- logShow (singleton "test" :: Y String)
- logShow (map show (MyArray [1, 2, 3]))
- log "Done"
diff --git a/examples/passing/NewtypeWithRecordUpdate.purs b/examples/passing/NewtypeWithRecordUpdate.purs
deleted file mode 100644
index 83bb139..0000000
--- a/examples/passing/NewtypeWithRecordUpdate.purs
+++ /dev/null
@@ -1,16 +0,0 @@
--- https://github.com/purescript/purescript/issues/812.0
-
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-newtype NewType a = NewType (Record a)
-
-rec1 :: Record (a :: Number, b :: Number, c:: Number)
-rec1 = { a: 0.0, b: 0.0, c: 0.0 }
-
-rec2 :: NewType (a :: Number, b :: Number, c :: Number)
-rec2 = NewType (rec1 { a = 1.0 })
-
-main = log "Done"
diff --git a/examples/passing/NonConflictingExports.purs b/examples/passing/NonConflictingExports.purs
deleted file mode 100644
index 157d996..0000000
--- a/examples/passing/NonConflictingExports.purs
+++ /dev/null
@@ -1,10 +0,0 @@
--- No failure here as the export `thing` only refers to Main.thing
-module Main (thing, main) where
-
-import A
-import Control.Monad.Eff.Console (log)
-
-thing :: Int
-thing = 2
-
-main = log "Done"
diff --git a/examples/passing/NonOrphanInstanceFunDepExtra.purs b/examples/passing/NonOrphanInstanceFunDepExtra.purs
deleted file mode 100644
index eb86ead..0000000
--- a/examples/passing/NonOrphanInstanceFunDepExtra.purs
+++ /dev/null
@@ -1,8 +0,0 @@
--- Both f and l must be known, thus can be in separate modules
-module Main where
-import Control.Monad.Eff.Console (log)
-import Lib
-data F
-data R
-instance cflr :: C F L R
-main = log "Done"
diff --git a/examples/passing/NonOrphanInstanceMulti.purs b/examples/passing/NonOrphanInstanceMulti.purs
deleted file mode 100644
index 71d5634..0000000
--- a/examples/passing/NonOrphanInstanceMulti.purs
+++ /dev/null
@@ -1,7 +0,0 @@
--- Both l and r must be known, thus can be in separate modules
-module Main where
-import Control.Monad.Eff.Console (log)
-import Lib
-data L
-instance clr :: C L R
-main = log "Done"
diff --git a/examples/passing/NumberLiterals.purs b/examples/passing/NumberLiterals.purs
deleted file mode 100644
index b827179..0000000
--- a/examples/passing/NumberLiterals.purs
+++ /dev/null
@@ -1,39 +0,0 @@
-module Main where
-
--- See issue #2115.
-
-import Prelude
-import Test.Assert (assert')
-import Control.Monad.Eff.Console (log)
-
-main = do
- test "0.17" 0.17
- test "0.25996181067141905" 0.25996181067141905
- test "0.3572019862807257" 0.3572019862807257
- test "0.46817723004874223" 0.46817723004874223
- test "0.9640035681058178" 0.9640035681058178
- test "4.23808622486133" 4.23808622486133
- test "4.540362294799751" 4.540362294799751
- test "5.212384849884261" 5.212384849884261
- test "13.958257048123212" 13.958257048123212
- test "32.96176575630599" 32.96176575630599
- test "38.47735512322269" 38.47735512322269
-
- test "10000000000.0" 1e10
- test "10000000000.0" 1.0e10
- test "0.00001" 1e-5
- test "0.00001" 1.0e-5
- test "1.5339794352098402e-118" 1.5339794352098402e-118
- test "2.108934760892056e-59" 2.108934760892056e-59
- test "2.250634744599241e-19" 2.250634744599241e-19
- test "5.960464477539063e-8" 5.960464477539063e-8
- test "5e-324" 5e-324
- test "5e-324" 5.0e-324
-
- log "Done"
-
-test str num =
- if (show num == str)
- then pure unit
- else flip assert' false $
- "Expected " <> show str <> ", got " <> show (show num) <> "."
diff --git a/examples/passing/ObjectGetter.purs b/examples/passing/ObjectGetter.purs
deleted file mode 100644
index d2a50c7..0000000
--- a/examples/passing/ObjectGetter.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-getX = _.x
-
-point = { x: 1.0, y: 0.0 }
-
-main = do
- logShow $ getX point
- log $ _." 123 string Prop Name " { " 123 string Prop Name ": "OK" }
- log $ (_.x >>> _.y) { x: { y: "Nested" } }
- log $ _.value { value: "Done" }
diff --git a/examples/passing/ObjectSynonym.purs b/examples/passing/ObjectSynonym.purs
deleted file mode 100644
index 3b82ebf..0000000
--- a/examples/passing/ObjectSynonym.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type Inner = Number
-
-inner :: Inner
-inner = 0.0
-
-type Outer = { inner :: Inner }
-
-outer :: Outer
-outer = { inner: inner }
-
-main = log "Done"
diff --git a/examples/passing/ObjectUpdate.purs b/examples/passing/ObjectUpdate.purs
deleted file mode 100644
index f17f658..0000000
--- a/examples/passing/ObjectUpdate.purs
+++ /dev/null
@@ -1,23 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-update1 = \o -> o { foo = "Foo" }
-
-update2 :: forall r. { foo :: String | r } -> { foo :: String | r }
-update2 = \o -> o { foo = "Foo" }
-
-replace = \o -> case o of
- { foo: "Foo" } -> o { foo = "Bar" }
- { foo: "Bar" } -> o { bar = "Baz" }
- o -> o
-
-polyUpdate :: forall a r. { foo :: a | r } -> { foo :: String | r }
-polyUpdate = \o -> o { foo = "Foo" }
-
-inferPolyUpdate = \o -> o { foo = "Foo" }
-
-main = do
- log ((update1 {foo: ""}).foo)
- log "Done"
diff --git a/examples/passing/ObjectUpdate2.purs b/examples/passing/ObjectUpdate2.purs
deleted file mode 100644
index 6d10409..0000000
--- a/examples/passing/ObjectUpdate2.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type X r = { | r }
-
-x :: X (baz :: String)
-x = { baz: "baz" }
-
-blah :: forall r. X r -> X r
-blah x = x
-
-test = blah x
- { baz = "blah"
- }
-
-main = log "Done"
diff --git a/examples/passing/ObjectUpdater.purs b/examples/passing/ObjectUpdater.purs
deleted file mode 100644
index a09c42c..0000000
--- a/examples/passing/ObjectUpdater.purs
+++ /dev/null
@@ -1,26 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Test.Assert
-
-getValue :: forall e. Eff (| e) Boolean
-getValue = pure true
-
-main = do
- let record = { value: false }
- record' <- record { value = _ } <$> getValue
- assert $ record'.value == true
-
- let point = { x: 1.0, y: 1.0 }
- x = 10.0
- point' = (point { x = _, y = x }) 100.0
-
- assert $ point'.x == 100.0
- assert $ point'.y == 10.0
-
- let record2 = (_ { x = _ }) { x: 0.0 } 10.0
- assert $ record2.x == 10.0
-
- log "Done"
diff --git a/examples/passing/ObjectWildcards.purs b/examples/passing/ObjectWildcards.purs
deleted file mode 100644
index aae90ad..0000000
--- a/examples/passing/ObjectWildcards.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Test.Assert
-
-mkRecord = { foo: _, bar: _, baz: "baz" }
-
-getValue :: forall e. Eff (| e) Boolean
-getValue = pure true
-
-main = do
- obj <- { value: _ } <$> getValue
- logShow obj.value
- let x = 1.0
- point <- { x: _, y: x } <$> pure 2.0
- assert $ point.x == 2.0
- assert $ point.y == 1.0
- log (mkRecord 1.0 "Done").bar
diff --git a/examples/passing/Objects.purs b/examples/passing/Objects.purs
deleted file mode 100644
index f320372..0000000
--- a/examples/passing/Objects.purs
+++ /dev/null
@@ -1,36 +0,0 @@
-module Main where
-
-import Prelude hiding (append)
-import Control.Monad.Eff.Console (log)
-
-test = \x -> x.foo + x.bar + 1.0
-
-append = \o -> { foo: o.foo, bar: 1.0 }
-
-apTest = append({foo : "Foo", baz: "Baz"})
-
-f = (\a -> a.b.c) { b: { c: 1.0, d: "Hello" }, e: "World" }
-
-g = (\a -> a.f { x: 1.0, y: "y" }) { f: \o -> o.x + 1.0 }
-
-typed :: { foo :: Number }
-typed = { foo: 0.0 }
-
-test2 = \x -> x."!@#"
-
-test3 = typed."foo"
-
-test4 = test2 weirdObj
- where
- weirdObj :: { "!@#" :: Number }
- weirdObj = { "!@#": 1.0 }
-
-test5 = case { "***": 1.0 } of
- { "***": n } -> n
-
-test6 = case { "***": 1.0 } of
- { "***": n } -> n
-
-test7 {a: snoog , b : blah } = blah
-
-main = log "Done"
diff --git a/examples/passing/OneConstructor.purs b/examples/passing/OneConstructor.purs
deleted file mode 100644
index 8f3fcf2..0000000
--- a/examples/passing/OneConstructor.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data One a = One a
-
-one' (One a) = a
-
-main = log "Done"
diff --git a/examples/passing/OperatorAlias.purs b/examples/passing/OperatorAlias.purs
deleted file mode 100644
index d3615de..0000000
--- a/examples/passing/OperatorAlias.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-infixl 4 what as ?!
-
-what :: forall a b. a -> b -> a
-what a _ = a
-
-main = log $ "Done" ?! true
diff --git a/examples/passing/OperatorAliasElsewhere.purs b/examples/passing/OperatorAliasElsewhere.purs
deleted file mode 100644
index 34d294a..0000000
--- a/examples/passing/OperatorAliasElsewhere.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Prelude
-import Def (what)
-import Control.Monad.Eff.Console
-
-infixl 4 what as ?!
-
-main = log $ "Done" ?! true
diff --git a/examples/passing/OperatorAliasElsewhere/Def.purs b/examples/passing/OperatorAliasElsewhere/Def.purs
deleted file mode 100644
index 85194c6..0000000
--- a/examples/passing/OperatorAliasElsewhere/Def.purs
+++ /dev/null
@@ -1,4 +0,0 @@
-module Def where
-
-what :: forall a b. a -> b -> a
-what a _ = a
diff --git a/examples/passing/OperatorAssociativity.purs b/examples/passing/OperatorAssociativity.purs
deleted file mode 100644
index 137fb4d..0000000
--- a/examples/passing/OperatorAssociativity.purs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Test.Assert
-
-bug :: Number -> Number -> Number
-bug a b = 0.0 - (a - b)
-
-main = do
- assert (bug 0.0 2.0 == 2.0)
- assert (0.0 - (0.0 - 2.0) == 2.0)
- assert (0.0 - (0.0 + 2.0) == -2.0)
- assert (6.0 / (3.0 * 2.0) == 1.0)
- assert ((6.0 / 3.0) * 2.0 == 4.0)
- assert (not (1.0 < 0.0) == true)
- assert (not ((negate 1.0) < 0.0) == false)
- assert (negate (1.0 + 10.0) == -11.0)
- assert (2.0 * 3.0 / 4.0 == 1.5)
- assert (1.0 * 2.0 * 3.0 * 4.0 * 5.0 / 6.0 == 20.0)
- assert (1.0 + 10.0 - 5.0 == 6.0)
- assert (1.0 + 10.0 * 5.0 == 51.0)
- assert (10.0 * 5.0 - 1.0 == 49.0)
- log "Done"
diff --git a/examples/passing/OperatorInlining.purs b/examples/passing/OperatorInlining.purs
deleted file mode 100644
index d632cb1..0000000
--- a/examples/passing/OperatorInlining.purs
+++ /dev/null
@@ -1,48 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (logShow, log)
-
-main = do
-
- -- semiringNumber
- logShow (1.0 + 2.0)
- logShow (1.0 * 2.0)
-
- -- ringNumber
- logShow (1.0 - 2.0)
- logShow (negate 1.0)
-
- -- moduleSemiringNumber
- logShow (1.0 / 2.0)
-
- -- ordNumber
- logShow (1.0 > 2.0)
- logShow (1.0 < 2.0)
- logShow (1.0 <= 2.0)
- logShow (1.0 >= 2.0)
- logShow (1.0 == 2.0)
-
- -- eqNumber
- logShow (1.0 == 2.0)
- logShow (1.0 /= 2.0)
-
- -- eqString
- logShow ("foo" == "bar")
- logShow ("foo" /= "bar")
-
- -- eqBoolean
- logShow (true == false)
- logShow (true /= false)
-
- -- semigroupString
- logShow ("foo" <> "bar")
-
- -- latticeBoolean
- logShow (top && true)
- logShow (bottom || false)
-
- -- complementedLatticeBoolean
- logShow (not true)
-
- log "Done"
diff --git a/examples/passing/OperatorSections.purs b/examples/passing/OperatorSections.purs
deleted file mode 100644
index 8b032c5..0000000
--- a/examples/passing/OperatorSections.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Test.Assert
-
-main = do
- assert $ (_ / 2.0) 4.0 == 2.0
- assert $ (2.0 / _) 4.0 == 0.5
- assert $ (_ `const` 1.0) 2.0 == 2.0
- assert $ (1.0 `const` _) 2.0 == 1.0
- let foo = { x: 2.0 }
- assert $ (_ / foo.x) 4.0 == 2.0
- assert $ (foo.x / _) 4.0 == 0.5
- let div x y = x.x / y.x
- assert $ (_ `div` foo { x = 4.0 }) { x: 4.0 } == 1.0
- assert $ (foo { x = 4.0 } `div` _) { x: 4.0 } == 1.0
- log "Done"
diff --git a/examples/passing/Operators.purs b/examples/passing/Operators.purs
deleted file mode 100644
index aa6f24f..0000000
--- a/examples/passing/Operators.purs
+++ /dev/null
@@ -1,91 +0,0 @@
-module Main where
-
-import Prelude
-import Other (foo)
-import Other as Other
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-op1 :: forall a. a -> a -> a
-op1 x _ = x
-
-infix 4 op1 as ?!
-
-test1 :: forall n. Semiring n => n -> n -> (n -> n -> n) -> n
-test1 x y z = x * y + z x y
-
-test2 = (\x -> x.foo false) { foo : \_ -> 1.0 }
-
-test3 = (\x y -> x)(1.0 + 2.0 * (1.0 + 2.0)) (true && (false || false))
-
-k = \x -> \y -> x
-
-test4 = 1 `k` 2
-
-op2 :: Number -> Number -> Number
-op2 x y = x * y + y
-
-infixl 5 op2 as %%
-
-test5 = 1.0 %% 2.0 %% 3.0
-
-test6 = ((\x -> x) `k` 2.0) 3.0
-
-op3 :: String -> String -> String
-op3 = \s1 s2 -> s1 <> s2
-
-infix 4 op3 as <+>
-
-test7 = "Hello" <+> "World!"
-
-op4 :: forall a b. (a -> b) -> a -> b
-op4 = \f x -> f x
-
-infix 4 op4 as @@
-
-test8 = foo @@ "Hello World"
-
-test9 = Other.foo @@ "Hello World"
-
-test10 = "Hello" `Other.baz` "World"
-
-op5 :: forall a. Array a -> Array a -> Array a
-op5 = \as -> \bs -> as
-
-infix 4 op5 as ...
-
-test11 = [1.0, 2.0, 0.0] ... [4.0, 5.0, 6.0]
-
-test14 :: Number -> Number -> Boolean
-test14 a b = a < b
-
-test15 :: Number -> Number -> Boolean
-test15 a b = const false $ a `test14` b
-
-test17 :: Number
-test17 = negate (-1.0)
-
-test18 :: Number
-test18 = negate $ negate 1.0
-
-test19 :: Number
-test19 = negate $ negate (-1.0)
-
-main = do
- let t1 = test1 1.0 2.0 (\x y -> x + y)
- let t2 = test2
- let t3 = test3
- let t4 = test4
- let t5 = test5
- let t6 = test6
- let t7 = test7
- let t8 = test8
- let t9 = test9
- let t10 = test10
- let t11 = test11
- let t14 = test14 1.0 2.0
- let t15 = test15 1.0 2.0
- let t17 = test17
- let t18 = test18
- let t19 = test19
- log "Done"
diff --git a/examples/passing/OptimizerBug.purs b/examples/passing/OptimizerBug.purs
deleted file mode 100644
index 0e4c0f9..0000000
--- a/examples/passing/OptimizerBug.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-x a = 1.0 + y a
-
-y a = x a
-
-main = log "Done"
diff --git a/examples/passing/OptionalQualified.purs b/examples/passing/OptionalQualified.purs
deleted file mode 100644
index 76c5bea..0000000
--- a/examples/passing/OptionalQualified.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude as P
-
--- qualified import without the "qualified" keyword
-import Control.Monad.Eff.Console as Console
-
-bind = P.bind
-
-main = do
- message <- P.pure "Done"
- Console.log message
diff --git a/examples/passing/OverlappingInstances.purs b/examples/passing/OverlappingInstances.purs
deleted file mode 100644
index 9e981e0..0000000
--- a/examples/passing/OverlappingInstances.purs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Test.Assert (assert)
-
-data A = A
-
-instance showA1 :: Show A where
- show A = "Instance 1"
-
-instance showA2 :: Show A where
- show A = "Instance 2"
-
-main = do
- assert $ show A == "Instance 1"
- log "Done"
diff --git a/examples/passing/OverlappingInstances2.purs b/examples/passing/OverlappingInstances2.purs
deleted file mode 100644
index 6b6fb0a..0000000
--- a/examples/passing/OverlappingInstances2.purs
+++ /dev/null
@@ -1,27 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Test.Assert (assert)
-
-data A = A | B
-
-instance eqA1 :: Eq A where
- eq A A = true
- eq B B = true
- eq _ _ = false
-
-instance eqA2 :: Eq A where
- eq _ _ = true
-
-instance ordA :: Ord A where
- compare A B = LT
- compare B A = GT
- compare _ _ = EQ
-
-test :: forall a. Ord a => a -> a -> String
-test x y = show $ x == y
-
-main = do
- assert $ test A B == "false"
- log "Done"
diff --git a/examples/passing/OverlappingInstances3.purs b/examples/passing/OverlappingInstances3.purs
deleted file mode 100644
index 011c1f9..0000000
--- a/examples/passing/OverlappingInstances3.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Test.Assert (assert)
-
-class Foo a
-
-instance foo1 :: Foo Number
-
-instance foo2 :: Foo Number
-
-test :: forall a. Foo a => a -> a
-test a = a
-
-test1 = test 0.0
-
-main = do
- assert (test1 == 0.0)
- log "Done"
diff --git a/examples/passing/ParensInType.purs b/examples/passing/ParensInType.purs
deleted file mode 100644
index 75d0120..0000000
--- a/examples/passing/ParensInType.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-
-class Foo a where
- foo :: forall eff. (String -> a (( console :: CONSOLE | eff)) ((Unit)))
-
-instance fooLogEff :: Foo Eff where
- foo = log
-
-main ::
- forall eff.
- Eff
- ( console :: CONSOLE
- | eff
- )
- Unit
-main = foo "Done"
diff --git a/examples/passing/ParensInTypedBinder.purs b/examples/passing/ParensInTypedBinder.purs
deleted file mode 100644
index 468f3ec..0000000
--- a/examples/passing/ParensInTypedBinder.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-
-foo :: Array Int
-foo = do
- xss :: Array (Array Int) <- [[[1,2,3], [4, 5]], [[6]]]
- xs :: Array Int <- xss
- xs
-
-main ::
- forall eff.
- Eff
- ( console :: CONSOLE
- | eff
- )
- Unit
-main = log "Done"
diff --git a/examples/passing/PartialFunction.purs b/examples/passing/PartialFunction.purs
deleted file mode 100644
index 00a1f02..0000000
--- a/examples/passing/PartialFunction.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-fn :: Partial => Number -> Number
-fn 0.0 = 0.0
-fn 1.0 = 2.0
-
-main = log "Done"
diff --git a/examples/passing/Patterns.purs b/examples/passing/Patterns.purs
deleted file mode 100644
index b715ec9..0000000
--- a/examples/passing/Patterns.purs
+++ /dev/null
@@ -1,23 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test = \x -> case x of
- { str: "Foo", bool: true } -> true
- { str: "Bar", bool: b } -> b
- _ -> false
-
-f = \o -> case o of
- { foo: "Foo" } -> o.bar
- _ -> 0
-
-h = \o -> case o of
- a@[_,_,_] -> a
- _ -> []
-
-isDesc :: Array Number -> Boolean
-isDesc [x, y] | x > y = true
-isDesc _ = false
-
-main = log "Done"
diff --git a/examples/passing/PendingConflictingImports.purs b/examples/passing/PendingConflictingImports.purs
deleted file mode 100644
index 87c1ad8..0000000
--- a/examples/passing/PendingConflictingImports.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
--- No error as we never force `thing` to be resolved in `Main`
-import A
-import B
-import Control.Monad.Eff.Console (log)
-
-main = log "Done"
diff --git a/examples/passing/PendingConflictingImports2.purs b/examples/passing/PendingConflictingImports2.purs
deleted file mode 100644
index 0041adc..0000000
--- a/examples/passing/PendingConflictingImports2.purs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Main where
-
-import A
-import Control.Monad.Eff.Console (log)
-
--- No error as we never force `thing` to be resolved in `Main`
-thing :: Int
-thing = 2
-
-main = log "Done"
diff --git a/examples/passing/Person.purs b/examples/passing/Person.purs
deleted file mode 100644
index fd0e4f9..0000000
--- a/examples/passing/Person.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Person = Person { name :: String, age :: Number }
-
-showPerson :: Person -> String
-showPerson = \p -> case p of
- Person o -> o.name <> ", aged " <> show o.age
-
-main = log "Done"
diff --git a/examples/passing/PolyLabels.purs b/examples/passing/PolyLabels.purs
deleted file mode 100644
index c5a50cd..0000000
--- a/examples/passing/PolyLabels.purs
+++ /dev/null
@@ -1,65 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Data.Symbol (class IsSymbol, SProxy(..), reflectSymbol)
-
-foreign import unsafeGet
- :: forall r a
- . String
- -> Record r
- -> a
-
-foreign import unsafeSet
- :: forall r1 r2 a
- . String
- -> a
- -> Record r1
- -> Record r2
-
-get
- :: forall r r' l a
- . IsSymbol l
- => RowCons l a r' r
- => SProxy l
- -> Record r
- -> a
-get l = unsafeGet (reflectSymbol l)
-
-set
- :: forall r1 r2 r l a b
- . IsSymbol l
- => RowCons l a r r1
- => RowCons l b r r2
- => SProxy l
- -> b
- -> Record r1
- -> Record r2
-set l = unsafeSet (reflectSymbol l)
-
-lens
- :: forall l f r1 r2 r a b
- . IsSymbol l
- => RowCons l a r r1
- => RowCons l b r r2
- => Functor f
- => SProxy l
- -> (a -> f b)
- -> Record r1
- -> f (Record r2)
-lens l f r = flip (set l) r <$> f (get l r)
-
-getFoo :: forall a r. { foo :: a | r } -> a
-getFoo = get (SProxy :: SProxy "foo")
-
-setFoo :: forall a b r. b -> { foo :: a | r } -> { foo :: b | r }
-setFoo = set (SProxy :: SProxy "foo")
-
-fooLens :: forall f a b r. Functor f => (a -> f b) -> { foo :: a | r } -> f { foo :: b | r }
-fooLens = lens (SProxy :: SProxy "foo")
-
-main :: Eff (console :: CONSOLE) Unit
-main = do
- _ <- fooLens logShow { foo: 1 }
- log (getFoo (setFoo "Done" { foo: 1 }))
diff --git a/examples/passing/PrimedTypeName.purs b/examples/passing/PrimedTypeName.purs
deleted file mode 100644
index 7b59c0b..0000000
--- a/examples/passing/PrimedTypeName.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main (T, T', T'', T''', main) where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data T a = T
-type T' = T Unit
-
-data T'' = TP
-
-foreign import data T''' ∷ Type
-
-instance eqT ∷ Eq T'' where
- eq _ _ = true
-
-type A' a b = b β†’ a
-
-infixr 4 type A' as ↫
-
-main = log "Done"
diff --git a/examples/passing/QualifiedNames.purs b/examples/passing/QualifiedNames.purs
deleted file mode 100644
index 0dcda36..0000000
--- a/examples/passing/QualifiedNames.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Either as Either
-import Control.Monad.Eff.Console (log)
-
-either :: forall a b c. (a -> c) -> (b -> c) -> Either.Either a b -> c
-either f _ (Either.Left x) = f x
-either _ g (Either.Right y) = g y
-
-main = log (either id id (Either.Left "Done"))
diff --git a/examples/passing/QualifiedNames/Either.purs b/examples/passing/QualifiedNames/Either.purs
deleted file mode 100644
index 9fc8a3b..0000000
--- a/examples/passing/QualifiedNames/Either.purs
+++ /dev/null
@@ -1,5 +0,0 @@
-module Either where
-
-import Prelude
-
-data Either a b = Left a | Right b
diff --git a/examples/passing/QualifiedQualifiedImports.purs b/examples/passing/QualifiedQualifiedImports.purs
deleted file mode 100644
index 384bb7e..0000000
--- a/examples/passing/QualifiedQualifiedImports.purs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Main where
-
--- qualified import with qualified imported names
-import Control.Monad.Eff.Console (log) as Console
-
-main = Console.log "Done"
diff --git a/examples/passing/Rank2Data.purs b/examples/passing/Rank2Data.purs
deleted file mode 100644
index 8833a43..0000000
--- a/examples/passing/Rank2Data.purs
+++ /dev/null
@@ -1,30 +0,0 @@
-module Main where
-
-import Prelude hiding (add)
-import Control.Monad.Eff.Console (log)
-
-data Id = Id forall a. a -> a
-
-runId = \id a -> case id of
- Id f -> f a
-
-data Nat = Nat forall r. r -> (r -> r) -> r
-
-runNat = \nat -> case nat of
- Nat f -> f 0.0 (\n -> n + 1.0)
-
-zero' = Nat (\zero' _ -> zero')
-
-succ = \n -> case n of
- Nat f -> Nat (\zero' succ -> succ (f zero' succ))
-
-add = \n m -> case n of
- Nat f -> case m of
- Nat g -> Nat (\zero' succ -> g (f zero' succ) succ)
-
-one' = succ zero'
-two = succ zero'
-four = add two two
-fourNumber = runNat four
-
-main = log "Done"
diff --git a/examples/passing/Rank2Object.purs b/examples/passing/Rank2Object.purs
deleted file mode 100644
index 2460b4f..0000000
--- a/examples/passing/Rank2Object.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-
-data Foo = Foo { id :: forall a. a -> a }
-
-foo :: Foo -> Number
-foo (Foo { id: f }) = f 0.0
-
-main = log "Done"
diff --git a/examples/passing/Rank2TypeSynonym.purs b/examples/passing/Rank2TypeSynonym.purs
deleted file mode 100644
index 3db194d..0000000
--- a/examples/passing/Rank2TypeSynonym.purs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-type Foo a = forall f. Monad f => f a
-
-foo :: forall a. a -> Foo a
-foo x = pure x
-
-bar :: Foo Number
-bar = foo 3.0
-
-main = do
- x <- bar
- logShow x
- log "Done"
diff --git a/examples/passing/Rank2Types.purs b/examples/passing/Rank2Types.purs
deleted file mode 100644
index fccea0c..0000000
--- a/examples/passing/Rank2Types.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test1 :: (forall a. (a -> a)) -> Number
-test1 = \f -> f 0.0
-
-forever :: forall m a b. (forall a b. m a -> (a -> m b) -> m b) -> m a -> m b
-forever = \bind action -> bind action $ \_ -> forever bind action
-
-main = log "Done"
diff --git a/examples/passing/ReExportQualified.purs b/examples/passing/ReExportQualified.purs
deleted file mode 100644
index 98a1a57..0000000
--- a/examples/passing/ReExportQualified.purs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Main where
-
-import Prelude
-import C
-import Control.Monad.Eff.Console (log)
-
-main = log (x <> y)
diff --git a/examples/passing/RebindableSyntax.purs b/examples/passing/RebindableSyntax.purs
deleted file mode 100644
index b0a7cc3..0000000
--- a/examples/passing/RebindableSyntax.purs
+++ /dev/null
@@ -1,43 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-example1 :: String
-example1 = do
- "Do"
- " notation"
- " for"
- " Semigroup"
- where
- discard x f = x <> f unit
-
-applySecond :: forall f a b. Apply f => f a -> f b -> f b
-applySecond fa fb = const id <$> fa <*> fb
-
-infixl 4 applySecond as *>
-
-newtype Const a b = Const a
-
-runConst :: forall a b. Const a b -> a
-runConst (Const a) = a
-
-instance functorConst :: Functor (Const a) where
- map _ (Const a) = Const a
-
-instance applyConst :: Semigroup a => Apply (Const a) where
- apply (Const a1) (Const a2) = Const (a1 <> a2)
-
-example2 :: Const String Unit
-example2 = do
- Const "Do"
- Const " notation"
- Const " for"
- Const " Apply"
- where
- discard x f = x *> f unit
-
-main = do
- log example1
- log $ runConst example2
- log "Done"
diff --git a/examples/passing/Recursion.purs b/examples/passing/Recursion.purs
deleted file mode 100644
index f9798f9..0000000
--- a/examples/passing/Recursion.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-fib = \n -> case n of
- 0.0 -> 1.0
- 1.0 -> 1.0
- n -> fib (n - 1.0) + fib (n - 2.0)
-
-main = log "Done"
diff --git a/examples/passing/RedefinedFixity.purs b/examples/passing/RedefinedFixity.purs
deleted file mode 100644
index 48f147b..0000000
--- a/examples/passing/RedefinedFixity.purs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Main where
-
-import M3
-import Control.Monad.Eff.Console (log)
-
-main = log "Done"
diff --git a/examples/passing/RedefinedFixity/M1.purs b/examples/passing/RedefinedFixity/M1.purs
deleted file mode 100644
index 13f7f11..0000000
--- a/examples/passing/RedefinedFixity/M1.purs
+++ /dev/null
@@ -1,6 +0,0 @@
-module M1 where
-
-applyFn :: forall a b. (forall c d. c -> d) -> a -> b
-applyFn f a = f a
-
-infixr 1000 applyFn as $
diff --git a/examples/passing/RedefinedFixity/M2.purs b/examples/passing/RedefinedFixity/M2.purs
deleted file mode 100644
index cc5c199..0000000
--- a/examples/passing/RedefinedFixity/M2.purs
+++ /dev/null
@@ -1,5 +0,0 @@
-module M2 where
-
-import Prelude ()
-
-import M1
diff --git a/examples/passing/RedefinedFixity/M3.purs b/examples/passing/RedefinedFixity/M3.purs
deleted file mode 100644
index a7b0f39..0000000
--- a/examples/passing/RedefinedFixity/M3.purs
+++ /dev/null
@@ -1,6 +0,0 @@
-module M3 where
-
-import Prelude ()
-
-import M1
-import M2
diff --git a/examples/passing/ReservedWords.purs b/examples/passing/ReservedWords.purs
deleted file mode 100644
index e96a643..0000000
--- a/examples/passing/ReservedWords.purs
+++ /dev/null
@@ -1,19 +0,0 @@
--- See https://github.com/purescript/purescript/issues/606
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console (log)
-
-o :: { type :: String }
-o = { type: "o" }
-
-p :: { type :: String }
-p = o { type = "p" }
-
-f :: forall r. { type :: String | r } -> String
-f { type: "p" } = "Done"
-f _ = "Fail"
-
-main :: Eff _ _
-main = log $ f { type: p.type, foo: "bar" }
diff --git a/examples/passing/ResolvableScopeConflict.purs b/examples/passing/ResolvableScopeConflict.purs
deleted file mode 100644
index 4f63802..0000000
--- a/examples/passing/ResolvableScopeConflict.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import A (thing)
-import B
-import Control.Monad.Eff.Console (log)
-
--- Not an error as although we have `thing` in scope from both A and B, it is
--- imported explicitly from A, giving it a resolvable solution.
-what :: Boolean -> Int
-what true = thing
-what false = zing
-
-main = log "Done"
diff --git a/examples/passing/ResolvableScopeConflict2.purs b/examples/passing/ResolvableScopeConflict2.purs
deleted file mode 100644
index 7101c95..0000000
--- a/examples/passing/ResolvableScopeConflict2.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import A
-import Control.Monad.Eff.Console (log)
-
-thing :: Int
-thing = 1
-
--- Not an error as although we have `thing` in scope from both Main and A,
--- as the local declaration takes precedence over the implicit import
-what :: Boolean -> Int
-what true = thing
-what false = zing
-
-main = log "Done"
diff --git a/examples/passing/ResolvableScopeConflict3.purs b/examples/passing/ResolvableScopeConflict3.purs
deleted file mode 100644
index 396b8cc..0000000
--- a/examples/passing/ResolvableScopeConflict3.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main (thing, main, module A) where
-
-import A
-import Control.Monad.Eff.Console (log)
-
-thing :: Int
-thing = 2
-
-main = log "Done"
diff --git a/examples/passing/RowConstructors.purs b/examples/passing/RowConstructors.purs
deleted file mode 100644
index 53e7b8e..0000000
--- a/examples/passing/RowConstructors.purs
+++ /dev/null
@@ -1,43 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type Foo = (x :: Number | (y :: Number | (z :: Number)))
-type Bar = (x :: Number, y :: Number, z :: Number)
-type Baz = { w :: Number | Bar }
-
-foo :: { | Foo }
-foo = { x: 0.0, y: 0.0, z: 0.0 }
-
-bar :: { | Bar }
-bar = { x: 0.0, y: 0.0, z: 0.0 }
-
-id' :: Record Foo -> Record Bar
-id' = id
-
-foo' :: { | Foo }
-foo' = id' foo
-
-bar' :: { | Bar }
-bar' = id' bar
-
-baz :: Baz
-baz = { x: 0.0, y: 0.0, z: 0.0, w: 0.0 }
-
-type Quux r = (q :: Number | r)
-type Norf r = (q' :: Number | Quux r)
-
-quux :: { f :: { | Foo } | Quux Bar }
-quux = { f: foo', x: 0.0, y: 0.0, z: 0.0, q: 0.0 }
-
-quux' :: { | Norf Bar }
-quux' = { x: 0.0, y: 0.0, z: 0.0, q: 0.0, q': 0.0 }
-
-wildcard :: { w :: Number | _ } -> Baz
-wildcard { w: w } = { x: w, y: w, z: w, w: w }
-
-wildcard' :: { | Quux _ } -> Number
-wildcard' { q: q } = q
-
-main = log "Done"
diff --git a/examples/passing/RowInInstanceHeadDetermined.purs b/examples/passing/RowInInstanceHeadDetermined.purs
deleted file mode 100644
index 73a89ba..0000000
--- a/examples/passing/RowInInstanceHeadDetermined.purs
+++ /dev/null
@@ -1,40 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Empty = Empty
-data Cons = Cons
-
-
--- simple case
-class Simple a b | a -> b where c :: a -> b
-instance simple0 :: Simple Empty {} where c _ = {}
-instance simple1 :: Simple Cons {foo :: Cons} where c cons = {foo: cons}
-
-
--- simple transitive example
-class Transitive a b c | a -> b, b -> c where d :: a -> c
-instance transitive :: Transitive Empty {} {} where d _ = {}
-
-
--- transitive example with cycles
-class Cyclic a b c d | a -> b, b -> a
- , a -> c
- , c -> d, d -> c
-instance cyclic :: Cyclic Empty Empty {} {}
-
-
--- Determined cycle
-class DeterminedCycle a b c | a -> b
- , b -> c, c -> b
-instance determinedCycle :: DeterminedCycle Empty {} {}
-
-
--- multiple determiners
-class MultipleDeterminers a b c d | a b -> c d
-instance multipleDeterminers :: MultipleDeterminers Empty Empty {} {}
-
-
-main = log "Done"
-
diff --git a/examples/passing/RowPolyInstanceContext.purs b/examples/passing/RowPolyInstanceContext.purs
deleted file mode 100644
index 796adef..0000000
--- a/examples/passing/RowPolyInstanceContext.purs
+++ /dev/null
@@ -1,23 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class T s m | m -> s where
- state :: (s -> s) -> m Unit
-
-data S s a = S (s -> { new :: s, ret :: a })
-
-instance st :: T s (S s) where
- state f = S $ \s -> { new: f s, ret: unit }
-
-test1 :: forall r . S { foo :: String | r } Unit
-test1 = state $ \o -> o { foo = o.foo <> "!" }
-
-test2 :: forall m r . T { foo :: String | r } m => m Unit
-test2 = state $ \o -> o { foo = o.foo <> "!" }
-
-main = do
- let t1 = test1
- let t2 = test2
- log "Done"
diff --git a/examples/passing/RowUnion.purs b/examples/passing/RowUnion.purs
deleted file mode 100644
index 57a47e6..0000000
--- a/examples/passing/RowUnion.purs
+++ /dev/null
@@ -1,68 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
-foreign import merge
- :: forall r1 r2 r3
- . Union r1 r2 r3
- => Record r1
- -> Record r2
- -> Record r3
-
-test1 = merge { x: 1 } { y: true }
-
-test2 = merge { x: 1 } { x: true }
-
-mergeWithExtras
- :: forall r1 r2 r3
- . Union r1 (y :: Boolean | r2) (y :: Boolean | r3)
- => { x :: Int | r1 }
- -> { y :: Boolean | r2 }
- -> { x :: Int, y :: Boolean | r3}
-mergeWithExtras = merge
-
-test3 x = merge { x: 1 } x
-test3' x = merge x { x: 1 }
-
-type Mandatory r = (x :: Int | r)
-type Optional r = (x :: Int, y :: Int, z :: Int | r)
-
-withDefaults
- :: forall r s
- . Union r (y :: Int, z :: Int) (y :: Int, z :: Int | s)
- => Record (Mandatory r)
- -> Record (Optional s)
-withDefaults p = merge p { y: 1, z: 1 }
-
-withDefaultsClosed
- :: forall r s
- . Union r (y :: Int, z :: Int) (y :: Int, z :: Int | s)
- => Subrow s (y :: Int, z :: Int)
- => Record (Mandatory r)
- -> Record (Optional s)
-withDefaultsClosed p = merge p { y: 1, z: 1 }
-
-test4 = withDefaults { x: 1, y: 2 }
-
--- r is a subrow of s if Union r t s for some t.
-class Subrow (r :: # Type) (s :: # Type)
-instance subrow :: Union r t s => Subrow r s
-
-main :: Eff (console :: CONSOLE) Unit
-main = do
- logShow test1.x
- logShow test1.y
- logShow (test1.x == 1)
- logShow (mergeWithExtras { x: 1 } { x: 0, y: true, z: 42.0 }).x
- logShow (withDefaults { x: 1 }).x
- logShow (withDefaults { x: 1 }).y
- logShow (withDefaults { x: 1 }).z
- logShow (withDefaults { x: 1, y: 2 }).x
- logShow (withDefaults { x: 1, y: 2 }).y
- logShow (withDefaults { x: 1, y: 2 }).z
- logShow (withDefaultsClosed { x: 1, y: 2 }).x
- logShow (withDefaultsClosed { x: 1, y: 2 }).y
- logShow (withDefaultsClosed { x: 1, y: 2 }).z
- log "Done"
diff --git a/examples/passing/RowsInInstanceContext.purs b/examples/passing/RowsInInstanceContext.purs
deleted file mode 100644
index 708d9d4..0000000
--- a/examples/passing/RowsInInstanceContext.purs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-import Data.Newtype (class Newtype, unwrap)
-
-class TypeEquals a b | a -> b, b -> a where
- coerce :: a -> b
- coerceBack :: b -> a
-
-instance refl :: TypeEquals a a where
- coerce = id
- coerceBack = id
-
-newtype RecordNewtype = RecordNewtype { x :: String }
-
-instance newtypeRecordNewtype ::
- TypeEquals inner { x :: String }
- => Newtype RecordNewtype inner where
- wrap = RecordNewtype <<< coerce
- unwrap (RecordNewtype rec) = coerceBack rec
-
-main :: Eff (console :: CONSOLE) Unit
-main = log (unwrap (RecordNewtype { x: "Done" })).x
diff --git a/examples/passing/RuntimeScopeIssue.purs b/examples/passing/RuntimeScopeIssue.purs
deleted file mode 100644
index 2b1b7f9..0000000
--- a/examples/passing/RuntimeScopeIssue.purs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-class A a where
- a :: a -> Boolean
-
-class B a where
- b :: a -> Boolean
-
-instance aNumber :: A Number where
- a 0.0 = true
- a n = b (n - 1.0)
-
-instance bNumber :: B Number where
- b 0.0 = false
- b n = a (n - 1.0)
-
-main = do
- logShow $ a 10.0
- log "Done"
diff --git a/examples/passing/ScopedTypeVariables.purs b/examples/passing/ScopedTypeVariables.purs
deleted file mode 100644
index 862d821..0000000
--- a/examples/passing/ScopedTypeVariables.purs
+++ /dev/null
@@ -1,37 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test1 :: forall a. (a -> a) -> a -> a
-test1 f x = g (g x)
- where
- g :: a -> a
- g y = f (f y)
-
-test2 :: forall a. (a -> a) -> a -> a
-test2 = h
- where
- h :: forall b. (b -> b) -> b -> b
- h f x = g (g x)
- where
- g :: b -> b
- g y = f (f y)
-
-test3 :: Number
-test3 = ((\b -> b :: b) :: forall b. b -> b) 0.0
-
-test4 :: forall a. (a -> a) -> a -> a
-test4 = h
- where
- h :: forall b. (b -> b) -> b -> b
- h f x = g (g x)
- where
- g :: b -> b
- g y = j (f (f y))
- where
- j :: forall b. b -> b
- j x = x
-
-
-main = log "Done"
diff --git a/examples/passing/Sequence.purs b/examples/passing/Sequence.purs
deleted file mode 100644
index 37febf1..0000000
--- a/examples/passing/Sequence.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console (log)
-
-data List a = Cons a (List a) | Nil
-
-class Sequence t where
- sequence :: forall m a. Monad m => t (m a) -> m (t a)
-
-instance sequenceList :: Sequence List where
- sequence Nil = pure Nil
- sequence (Cons x xs) = Cons <$> x <*> sequence xs
-
-main = sequence $ Cons (log "Done") Nil
diff --git a/examples/passing/SequenceDesugared.purs b/examples/passing/SequenceDesugared.purs
deleted file mode 100644
index 9268a27..0000000
--- a/examples/passing/SequenceDesugared.purs
+++ /dev/null
@@ -1,38 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console (log)
-
-data List a = Cons a (List a) | Nil
-
-data Sequence t = Sequence (forall m a. Monad m => t (m a) -> m (t a))
-
-sequence :: forall t. Sequence t -> (forall m a. Monad m => t (m a) -> m (t a))
-sequence (Sequence s) = s
-
-sequenceListSeq :: forall m a. Monad m => List (m a) -> m (List a)
-sequenceListSeq Nil = pure Nil
-sequenceListSeq (Cons x xs) = Cons <$> x <*> sequenceListSeq xs
-
-sequenceList :: Sequence List
-sequenceList = Sequence (sequenceListSeq)
-
-sequenceList' :: Sequence List
-sequenceList' = Sequence ((\val -> case val of
- Nil -> pure Nil
- Cons x xs -> Cons <$> x <*> sequence sequenceList' xs))
-
-sequenceList'' :: Sequence List
-sequenceList'' = Sequence (sequenceListSeq :: forall m a. Monad m => List (m a) -> m (List a))
-
-sequenceList''' :: Sequence List
-sequenceList''' = Sequence ((\val -> case val of
- Nil -> pure Nil
- Cons x xs -> Cons <$> x <*> sequence sequenceList''' xs) :: forall m a. Monad m => List (m a) -> m (List a))
-
-main = do
- void $ sequence sequenceList $ Cons (log "Done") Nil
- void $ sequence sequenceList' $ Cons (log "Done") Nil
- void $ sequence sequenceList'' $ Cons (log "Done") Nil
- void $ sequence sequenceList''' $ Cons (log "Done") Nil
diff --git a/examples/passing/ShadowedModuleName.purs b/examples/passing/ShadowedModuleName.purs
deleted file mode 100644
index 764b8c5..0000000
--- a/examples/passing/ShadowedModuleName.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Test
-import Control.Monad.Eff.Console
-
-data Test = Test
-
-main = log (runZ (Z "Done"))
diff --git a/examples/passing/ShadowedName.purs b/examples/passing/ShadowedName.purs
deleted file mode 100644
index 6098249..0000000
--- a/examples/passing/ShadowedName.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-import Control.Monad.Eff.Console (log)
-
-done :: String
-done = let str = "Not yet done" in
- let str = "Done" in str
-
-main = log done
diff --git a/examples/passing/ShadowedRename.purs b/examples/passing/ShadowedRename.purs
deleted file mode 100644
index 4b0c317..0000000
--- a/examples/passing/ShadowedRename.purs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-import Test.Assert
-
-foo foo = let foo_1 = \_ -> foo
- foo_2 = foo_1 unit + 1.0
- in foo_2
-
-main = do
- assert $ foo 1.0 == 2.0
- log "Done"
diff --git a/examples/passing/ShadowedTCO.purs b/examples/passing/ShadowedTCO.purs
deleted file mode 100644
index 47d222d..0000000
--- a/examples/passing/ShadowedTCO.purs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Main where
-
-import Prelude hiding (add)
-import Control.Monad.Eff.Console (log)
-
-runNat f = f 0.0 (\n -> n + 1.0)
-
-zero' z _ = z
-
-succ f zero' succ = succ (f zero' succ)
-
-add f g zero' succ = g (f zero' succ) succ
-
-one' = succ zero'
-two = succ one'
-four = add two two
-fourNumber = runNat four
-
-main = do
- log $ show fourNumber
- log "Done"
diff --git a/examples/passing/ShadowedTCOLet.purs b/examples/passing/ShadowedTCOLet.purs
deleted file mode 100644
index 3b04ec6..0000000
--- a/examples/passing/ShadowedTCOLet.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import Partial.Unsafe (unsafePartial)
-import Control.Monad.Eff
-import Control.Monad.Eff.Console (log)
-
-f x y z =
- let f 1.0 2.0 3.0 = 1.0
- in f x z y
-
-main :: Eff _ _
-main = do
- log $ show $ unsafePartial f 1.0 3.0 2.0
- log "Done"
diff --git a/examples/passing/SignedNumericLiterals.purs b/examples/passing/SignedNumericLiterals.purs
deleted file mode 100644
index 1ebcdb4..0000000
--- a/examples/passing/SignedNumericLiterals.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-p = 0.5
-q = 1.0
-x = -1.0
-y = -0.5
-z = 0.5
-w = 1.0
-
-f :: Number -> Number
-f x = -x
-
-test1 = 2.0 - 1.0
-
-main = log "Done"
diff --git a/examples/passing/SolvingAppendSymbol.purs b/examples/passing/SolvingAppendSymbol.purs
deleted file mode 100644
index 41fa545..0000000
--- a/examples/passing/SolvingAppendSymbol.purs
+++ /dev/null
@@ -1,32 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Type.Data.Symbol (SProxy(..), class AppendSymbol, appendSymbol, reflectSymbol)
-
-sym :: SProxy ""
-sym = SProxy
-
-symA :: SProxy "A"
-symA = SProxy
-
-symB :: SProxy "B"
-symB = SProxy
-
-egAB :: SProxy "AB"
-egAB = appendSymbol symA symB
-
-egBA :: SProxy "BA"
-egBA = appendSymbol symB symA
-
-egA' :: SProxy "A"
-egA' = appendSymbol sym (appendSymbol symA sym)
-
-main = do
- let gotAB = reflectSymbol egAB == "AB"
- gotBA = reflectSymbol egBA == "BA"
- gotA' = reflectSymbol egA' == "A"
- when (not gotAB) $ log "Did not get AB"
- when (not gotBA) $ log "Did not get BA"
- when (not gotA') $ log "Did not get A"
- when (gotAB && gotBA && gotA') $ log "Done"
diff --git a/examples/passing/SolvingCompareSymbol.purs b/examples/passing/SolvingCompareSymbol.purs
deleted file mode 100644
index 24ffece..0000000
--- a/examples/passing/SolvingCompareSymbol.purs
+++ /dev/null
@@ -1,30 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Type.Data.Symbol (SProxy(..), class CompareSymbol, compareSymbol)
-import Type.Data.Ordering (OProxy(..), kind Ordering, LT, EQ, GT, reflectOrdering)
-
-symA :: SProxy "A"
-symA = SProxy
-
-symB :: SProxy "B"
-symB = SProxy
-
-egLT :: OProxy LT
-egLT = compareSymbol symA symB
-
-egEQ :: OProxy EQ
-egEQ = compareSymbol symA symA
-
-egGT :: OProxy GT
-egGT = compareSymbol symB symA
-
-main = do
- let gotLT = reflectOrdering egLT == LT
- gotEQ = reflectOrdering egEQ == EQ
- gotGT = reflectOrdering egGT == GT
- when (not gotLT) $ log "Did not get LT"
- when (not gotEQ) $ log "Did not get EQ"
- when (not gotGT) $ log "Did not get GT"
- when (gotLT && gotEQ && gotGT) $ log "Done"
diff --git a/examples/passing/SolvingIsSymbol.purs b/examples/passing/SolvingIsSymbol.purs
deleted file mode 100644
index e14866a..0000000
--- a/examples/passing/SolvingIsSymbol.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
--- Here we import as alias of reflectSymbol without importing Data.Symbol. However,
--- Data.Symbol should be implicitly imported as we have an instance of IsSymbol solved.
-import SolvingIsSymbol.Lib (literalSymbol, libReflectSymbol)
-
-main = do
- let lit = libReflectSymbol literalSymbol
- when (lit == "literal") (log "Done")
diff --git a/examples/passing/Stream.purs b/examples/passing/Stream.purs
deleted file mode 100644
index cc62a39..0000000
--- a/examples/passing/Stream.purs
+++ /dev/null
@@ -1,26 +0,0 @@
-module Main where
-
-import Prelude
-
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-
-class IsStream el s | s -> el where
- cons :: el -> (Unit -> s) -> s
- uncons :: s -> { head :: el, tail :: s }
-
-data Stream a = Stream a (Unit -> Stream a)
-
-instance streamIsStream :: IsStream a (Stream a) where
- cons x xs = Stream x xs
- uncons (Stream x f) = { head: x, tail: f unit }
-
-test :: forall el s. IsStream el s => s -> s
-test s = case uncons s of
- { head, tail } -> cons head \_ -> tail
-
-main :: Eff (console :: CONSOLE) Unit
-main = do
- let dones :: Stream String
- dones = cons "Done" \_ -> dones
- log (uncons (test dones)).head
diff --git a/examples/passing/StringEdgeCases/Records.purs b/examples/passing/StringEdgeCases/Records.purs
deleted file mode 100644
index faa58c6..0000000
--- a/examples/passing/StringEdgeCases/Records.purs
+++ /dev/null
@@ -1,66 +0,0 @@
-module Records where
-
-import Prelude
-import Data.Generic (class Generic, toSpine, GenericSpine(..))
-import Control.Monad.Eff.Console (log)
-import Test.Assert (assert')
-
-newtype AstralKeys = AstralKeys { "πŸ’‘" :: Int, "πŸ’’" :: Int }
-newtype LoneSurrogateKeys = LoneSurrogateKeys { "\xdf06" :: Int, "\xd834" :: Int }
-
-derive instance genericAstralKeys :: Generic AstralKeys
-derive instance genericLoneSurrogateKeys :: Generic LoneSurrogateKeys
-
-spineOf :: forall a. Generic a => a -> Unit -> GenericSpine
-spineOf x _ = toSpine x
-
-testLoneSurrogateKeys =
- let
- expected = 5
- actual = (_."\xd801" <<< helper) { "\xd800": 5 }
- in
- assert' ("lone surrogate keys: " <> show actual) (expected == actual)
-
- where
- helper :: { "\xd800" :: Int } -> { "\xd801" :: Int }
- helper o =
- case o."\xd800" of
- x -> { "\xd801": x }
-
-testAstralKeys =
- let
- expected = 5
- actual = (_."πŸ’’" <<< helper) { "πŸ’‘": 5 }
- in
- assert' ("astral keys: " <> show actual) (expected == actual)
-
- where
- helper :: { "πŸ’‘" :: Int } -> { "πŸ’’" :: Int }
- helper o =
- case o."πŸ’‘" of
- x -> { "πŸ’’": x }
-
-testGenericLoneSurrogateKeys = do
- let expected = SProd "Records.LoneSurrogateKeys"
- [ \_ -> SRecord [ {recLabel: "\xd834", recValue: spineOf 1}
- , {recLabel: "\xdf06", recValue: spineOf 0}
- ]
- ]
- actual = toSpine (LoneSurrogateKeys { "\xdf06": 0, "\xd834": 1 })
- assert' ("generic lone surrogate keys: " <> show actual) (expected == actual)
-
-testGenericAstralKeys = do
- let expected = SProd "Records.AstralKeys"
- [ \_ -> SRecord [ {recLabel: "πŸ’‘", recValue: spineOf 0}
- , {recLabel: "πŸ’’", recValue: spineOf 1}
- ]
- ]
- actual = toSpine (AstralKeys { "πŸ’‘": 0, "πŸ’’": 1 })
- assert' ("generic astral keys: " <> show actual) (expected == actual)
-
-main = do
- testLoneSurrogateKeys
- testAstralKeys
- testGenericLoneSurrogateKeys
- testGenericAstralKeys
- log "Done"
diff --git a/examples/passing/StringEdgeCases/Symbols.purs b/examples/passing/StringEdgeCases/Symbols.purs
deleted file mode 100644
index 991563a..0000000
--- a/examples/passing/StringEdgeCases/Symbols.purs
+++ /dev/null
@@ -1,30 +0,0 @@
--- This is similar to StringEscapes except we are performing the same tests
--- with Symbols (at the type level).
-
-module Symbols where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-import Type.Data.Symbol (SProxy(..), class AppendSymbol, appendSymbol, reflectSymbol)
-import Test.Assert (assert')
-
-highS :: SProxy "\xd834"
-highS = SProxy
-
-lowS :: SProxy "\xdf06"
-lowS = SProxy
-
-loneSurrogates :: Boolean
-loneSurrogates = reflectSymbol (appendSymbol highS lowS) == "\x1d306"
-
-outOfOrderSurrogates :: Boolean
-outOfOrderSurrogates = reflectSymbol (appendSymbol lowS highS) == "\xdf06\xd834"
-
-notReplacing :: Boolean
-notReplacing = reflectSymbol lowS /= "\xfffd"
-
-main = do
- assert' "lone surrogates may be combined into a surrogate pair" loneSurrogates
- assert' "lone surrogates may be combined out of order to remain lone surrogates" outOfOrderSurrogates
- assert' "lone surrogates are not replaced with the Unicode replacement character U+FFFD" notReplacing
- log "Done"
diff --git a/examples/passing/StringEscapes.purs b/examples/passing/StringEscapes.purs
deleted file mode 100644
index 7d0732b..0000000
--- a/examples/passing/StringEscapes.purs
+++ /dev/null
@@ -1,26 +0,0 @@
-module Main where
-
-import Prelude ((==), (/=), (<>), discard)
-import Test.Assert (assert, assert')
-import Control.Monad.Eff.Console (log)
-
-singleCharacter = "\0\b\t\n\v\f\r\"\\" == "\x0\x8\x9\xA\xB\xC\xD\x22\x5C"
-hex = "\x1D306\x2603\x3C6\xE0\x0" == "πŒ†β˜ƒΟ†Γ \0"
-decimal = "\119558\9731\966\224\0" == "πŒ†β˜ƒΟ†Γ \0"
-surrogatePair = "\xD834\xDF06" == "\x1D306"
-highSurrogate = "\xD834"
-lowSurrogate = "\xDF06"
-loneSurrogates = (highSurrogate <> lowSurrogate) == "\x1D306"
-outOfOrderSurrogates = (lowSurrogate <> highSurrogate) == "\xDF06\xD834"
-replacement = "\xFFFD"
-notReplacing = replacement /= highSurrogate
-
-main = do
- assert' "single-character escape sequences" singleCharacter
- assert' "hex escape sequences" hex
- assert' "decimal escape sequences" decimal
- assert' "astral code points are represented as a UTF-16 surrogate pair" surrogatePair
- assert' "lone surrogates may be combined into a surrogate pair" loneSurrogates
- assert' "lone surrogates may be combined out of order to remain lone surrogates" outOfOrderSurrogates
- assert' "lone surrogates are not replaced with the Unicode replacement character U+FFFD" notReplacing
- log "Done"
diff --git a/examples/passing/Superclasses1.purs b/examples/passing/Superclasses1.purs
deleted file mode 100644
index 4f00c1f..0000000
--- a/examples/passing/Superclasses1.purs
+++ /dev/null
@@ -1,23 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-class Su a where
- su :: a -> a
-
-class (Su a) <= Cl a where
- cl :: a -> a -> a
-
-instance suNumber :: Su Number where
- su n = n + 1.0
-
-instance clNumber :: Cl Number where
- cl n m = n + m
-
-test :: forall a. Cl a => a -> a
-test a = su (cl a a)
-
-main = do
- logShow $ test 10.0
- log "Done"
diff --git a/examples/passing/Superclasses3.purs b/examples/passing/Superclasses3.purs
deleted file mode 100644
index 8115fb2..0000000
--- a/examples/passing/Superclasses3.purs
+++ /dev/null
@@ -1,41 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console
-import Control.Monad.Eff
-
-class Monad m <= MonadWriter w m where
- tell :: w -> m Unit
-
-testFunctor :: forall m. Monad m => m Number -> m Number
-testFunctor n = (+) 1.0 <$> n
-
-test :: forall w m. Monad m => MonadWriter w m => w -> m Unit
-test w = do
- tell w
- tell w
- tell w
-
-data MTrace a = MTrace (Eff (console :: CONSOLE) a)
-
-runMTrace :: forall a. MTrace a -> Eff (console :: CONSOLE) a
-runMTrace (MTrace a) = a
-
-instance functorMTrace :: Functor MTrace where
- map = liftM1
-
-instance applyMTrace :: Apply MTrace where
- apply = ap
-
-instance applicativeMTrace :: Applicative MTrace where
- pure = MTrace <<< pure
-
-instance bindMTrace :: Bind MTrace where
- bind m f = MTrace (runMTrace m >>= (runMTrace <<< f))
-
-instance monadMTrace :: Monad MTrace
-
-instance writerMTrace :: MonadWriter String MTrace where
- tell s = MTrace (log s)
-
-main = runMTrace $ test "Done"
diff --git a/examples/passing/TCO.purs b/examples/passing/TCO.purs
deleted file mode 100644
index fbd9951..0000000
--- a/examples/passing/TCO.purs
+++ /dev/null
@@ -1,28 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-import Control.Monad.Rec.Class
-import Data.Array ((..), span, length)
-
-main = do
- let f x = x + 1
- let v = 0
- logShow (applyN 0 f v)
- logShow (applyN 1 f v)
- logShow (applyN 2 f v)
- logShow (applyN 3 f v)
- logShow (applyN 4 f v)
-
- let largeArray = 1..10000
- logShow (length (span (\_ -> true) largeArray).init)
-
- logShow (tailRec (\n -> if n < 10000 then Loop (n + 1) else Done 42) 0)
-
- log "Done"
-
-applyN :: forall a. Int -> (a -> a) -> a -> a
-applyN = go id
- where
- go f n _ | n <= 0 = f
- go f n g = go (f >>> g) (n - 1) g
diff --git a/examples/passing/TCOCase.purs b/examples/passing/TCOCase.purs
deleted file mode 100644
index 45cde9f..0000000
--- a/examples/passing/TCOCase.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Data = One | More Data
-
-main = log (from (to 10000.0 One))
- where
- to 0.0 a = a
- to n a = to (n - 1.0) (More a)
- from One = "Done"
- from (More d) = from d
diff --git a/examples/passing/TailCall.purs b/examples/passing/TailCall.purs
deleted file mode 100644
index 83d199e..0000000
--- a/examples/passing/TailCall.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log, logShow)
-
-data L a = C a (L a) | N
-
-test :: Number -> L Number -> Number
-test n N = n
-test n (C x xs) = test (n + x) xs
-
-loop :: forall a. Number -> a
-loop x = loop (x + 1.0)
-
-notATailCall = \x ->
- (\notATailCall -> notATailCall x) (\x -> x)
-
-main = do
- logShow (test 0.0 (1.0 `C` (2.0 `C` (3.0 `C` N))))
- log "Done"
diff --git a/examples/passing/Tick.purs b/examples/passing/Tick.purs
deleted file mode 100644
index 4e655e6..0000000
--- a/examples/passing/Tick.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test' x = x
-
-main = log "Done"
diff --git a/examples/passing/TopLevelCase.purs b/examples/passing/TopLevelCase.purs
deleted file mode 100644
index c43bc65..0000000
--- a/examples/passing/TopLevelCase.purs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-gcd :: Number -> Number -> Number
-gcd 0.0 x = x
-gcd x 0.0 = x
-gcd x y | x > y = gcd (x `mod` y) y
-gcd x y = gcd (y `mod` x) x
-
-guardsTest [x] | x > 0.0 = []
-guardsTest xs = xs
-
-data A = A
-
-parseTest A 0.0 = 0.0
-
-main = log "Done"
diff --git a/examples/passing/TransitiveImport.purs b/examples/passing/TransitiveImport.purs
deleted file mode 100644
index 04e00d3..0000000
--- a/examples/passing/TransitiveImport.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
- import Prelude
- import Middle
- import Control.Monad.Eff.Console
-
- main = do
- logShow (middle unit)
- log "Done"
diff --git a/examples/passing/TypeClassMemberOrderChange.purs b/examples/passing/TypeClassMemberOrderChange.purs
deleted file mode 100644
index 5ad8dcb..0000000
--- a/examples/passing/TypeClassMemberOrderChange.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class Test a where
- fn :: a -> a -> a
- val :: a
-
-instance testBoolean :: Test Boolean where
- val = true
- fn x y = y
-
-main = do
- log (show (fn true val))
- log "Done"
diff --git a/examples/passing/TypeClasses.purs b/examples/passing/TypeClasses.purs
deleted file mode 100644
index 2a52bac..0000000
--- a/examples/passing/TypeClasses.purs
+++ /dev/null
@@ -1,71 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-test1 = \_ -> show "testing"
-
-f :: forall a. Show a => a -> String
-f x = show x
-
-test2 = \_ -> f "testing"
-
-test7 :: forall a. Show a => a -> String
-test7 = show
-
-test8 = \_ -> show $ "testing"
-
-data Data a = Data a
-
-instance showData :: Show a => Show (Data a) where
- show (Data a) = "Data (" <> show a <> ")"
-
-test3 = \_ -> show (Data "testing")
-
-instance functorData :: Functor Data where
- map = liftM1
-
-instance applyData :: Apply Data where
- apply = ap
-
-instance applicativeData :: Applicative Data where
- pure = Data
-
-instance bindData :: Bind Data where
- bind (Data a) f = f a
-
-instance monadData :: Monad Data
-
-data Maybe a = Nothing | Just a
-
-instance functorMaybe :: Functor Maybe where
- map = liftM1
-
-instance applyMaybe :: Apply Maybe where
- apply = ap
-
-instance applicativeMaybe :: Applicative Maybe where
- pure = Just
-
-instance bindMaybe :: Bind Maybe where
- bind Nothing _ = Nothing
- bind (Just a) f = f a
-
-instance monadMaybe :: Monad Maybe
-
-test4 :: forall a m. Monad m => a -> m Number
-test4 = \_ -> pure 1.0
-
-test5 = \_ -> Just 1.0 >>= \n -> pure (n + 1.0)
-
-ask r = r
-
-runReader r f = f r
-
-test9 _ = runReader 0.0 $ do
- n <- ask
- pure $ n + 1.0
-
-main = do
- log (test7 "Hello")
- log "Done"
diff --git a/examples/passing/TypeClassesInOrder.purs b/examples/passing/TypeClassesInOrder.purs
deleted file mode 100644
index f02c037..0000000
--- a/examples/passing/TypeClassesInOrder.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class Foo a where
- foo :: a -> String
-
-instance fooString :: Foo String where
- foo s = s
-
-main = log $ foo "Done"
diff --git a/examples/passing/TypeClassesWithOverlappingTypeVariables.purs b/examples/passing/TypeClassesWithOverlappingTypeVariables.purs
deleted file mode 100644
index 281e7af..0000000
--- a/examples/passing/TypeClassesWithOverlappingTypeVariables.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Either a b = Left a | Right b
-
-instance functorEither :: Functor (Either a) where
- map _ (Left x) = Left x
- map f (Right y) = Right (f y)
-
-main = log "Done"
diff --git a/examples/passing/TypeDecl.purs b/examples/passing/TypeDecl.purs
deleted file mode 100644
index 6cecb57..0000000
--- a/examples/passing/TypeDecl.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-k :: String -> Number -> String
-k x y = x
-
-iterate :: forall a. Number -> (a -> a) -> a -> a
-iterate 0.0 f a = a
-iterate n f a = iterate (n - 1.0) f (f a)
-
-main = log "Done"
diff --git a/examples/passing/TypeOperators.purs b/examples/passing/TypeOperators.purs
deleted file mode 100644
index fbbc723..0000000
--- a/examples/passing/TypeOperators.purs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Main where
-
-import A (type (~>), type (/\), (/\))
-import Control.Monad.Eff.Console (log)
-
-natty ∷ βˆ€ f. f ~> f
-natty x = x
-
-data Compose f g a = Compose (f (g a))
-
-testPrecedence1 ∷ βˆ€ f g. Compose f g ~> Compose f g
-testPrecedence1 x = x
-
-testPrecedence2 ∷ βˆ€ f g. f ~> g β†’ f ~> g
-testPrecedence2 nat fx = nat fx
-
-swap ∷ βˆ€ a b. a /\ b β†’ b /\ a
-swap (a /\ b) = b /\ a
-
-main = log "Done"
diff --git a/examples/passing/TypeSynonymInData.purs b/examples/passing/TypeSynonymInData.purs
deleted file mode 100644
index 198d6f7..0000000
--- a/examples/passing/TypeSynonymInData.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type A a = Array a
-
-data Foo a = Foo (A a) | Bar
-
-foo (Foo []) = Bar
-
-main = log "Done"
diff --git a/examples/passing/TypeSynonyms.purs b/examples/passing/TypeSynonyms.purs
deleted file mode 100644
index 0ca7984..0000000
--- a/examples/passing/TypeSynonyms.purs
+++ /dev/null
@@ -1,28 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-type Lens a b =
- { get :: a -> b
- , set :: a -> b -> a
- }
-
-composeLenses :: forall a b c. Lens a b -> Lens b c -> Lens a c
-composeLenses = \l1 -> \l2 ->
- { get: \a -> l2.get (l1.get a)
- , set: \a c -> l1.set a (l2.set (l1.get a) c)
- }
-
-type Pair a b = { fst :: a, snd :: b }
-
-fst :: forall a b. Lens (Pair a b) a
-fst =
- { get: \p -> p.fst
- , set: \p a -> { fst: a, snd: p.snd }
- }
-
-test1 :: forall a b c. Lens (Pair (Pair a b) c) a
-test1 = composeLenses fst fst
-
-main = log "Done"
diff --git a/examples/passing/TypeWildcards.purs b/examples/passing/TypeWildcards.purs
deleted file mode 100644
index 262cf2c..0000000
--- a/examples/passing/TypeWildcards.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-testTopLevel :: _ -> _
-testTopLevel n = n + 1.0
-
-test :: forall a. Eq a => (a -> a) -> a -> a
-test f a = go (f a) a
- where
- go :: _ -> _ -> _
- go a1 a2 | a1 == a2 = a1
- go a1 _ = go (f a1) a1
-
-main = log "Done"
diff --git a/examples/passing/TypeWildcardsRecordExtension.purs b/examples/passing/TypeWildcardsRecordExtension.purs
deleted file mode 100644
index fe21b47..0000000
--- a/examples/passing/TypeWildcardsRecordExtension.purs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-foo :: forall a. {b :: Number | a} -> {b :: Number | _}
-foo f = f
-
-main = log "Done"
diff --git a/examples/passing/TypeWithoutParens.purs b/examples/passing/TypeWithoutParens.purs
deleted file mode 100644
index 729016f..0000000
--- a/examples/passing/TypeWithoutParens.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Lib (X, Y)
-import Control.Monad.Eff.Console (log)
-
-idX :: X -> X
-idX x = x
-
-idY :: Y -> Y
-idY y = y
-
-main = log "Done"
diff --git a/examples/passing/TypedBinders.purs b/examples/passing/TypedBinders.purs
deleted file mode 100644
index 92e50b6..0000000
--- a/examples/passing/TypedBinders.purs
+++ /dev/null
@@ -1,68 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Tuple a b = Tuple a b
-
-class MonadState s m where
- get :: m s
- put :: s -> m Unit
-
-data State s a = State (s -> Tuple s a)
-
-runState s (State f) = f s
-
-instance functorState :: Functor (State s) where
- map = liftM1
-
-instance applyState :: Apply (State s) where
- apply = ap
-
-instance applicativeState :: Applicative (State s) where
- pure a = State $ \s -> Tuple s a
-
-instance bindState :: Bind (State s) where
- bind f g = State $ \s -> case runState s f of
- Tuple s1 a -> runState s1 (g a)
-
-instance monadState :: Monad (State s)
-
-instance monadStateState :: MonadState s (State s) where
- get = State (\s -> Tuple s s)
- put s = State (\_ -> Tuple s unit)
-
-modify :: forall m s. Monad m => MonadState s m => (s -> s) -> m Unit
-modify f = do
- s <- get
- put (f s)
-
-test :: Tuple String String
-test = runState "" $ do
- modify $ (<>) "World!"
- modify $ (<>) "Hello, "
- str :: String <- get
- pure str
-
-test2 :: (Int -> Int) -> Int
-test2 = (\(f :: Int -> Int) -> f 10)
-
-test3 :: Int -> Boolean
-test3 n = case n of
- (0 :: Int) -> true
- _ -> false
-
-test4 :: Tuple Int Int -> Tuple Int Int
-test4 = (\(Tuple a b :: Tuple Int Int) -> Tuple b a)
-
-type Int1 = Int
-
-test5 :: Int1 -> Int1
-test5 = \(x :: Int1) -> x
-
-main = do
- let t1 = test
- t2 = test2 id
- t3 = test3 1
- t4 = test4 (Tuple 1 0)
- log "Done"
diff --git a/examples/passing/TypedWhere.purs b/examples/passing/TypedWhere.purs
deleted file mode 100644
index d9c489a..0000000
--- a/examples/passing/TypedWhere.purs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data E a b = L a | R b
-
-data L a = C a (L a) | N
-
-lefts :: forall a b. L (E a b) -> L a
-lefts = go N
- where
- go :: forall a b. L a -> L (E a b) -> L a
- go ls N = ls
- go ls (C (L a) rest) = go (C a ls) rest
- go ls (C _ rest) = go ls rest
-
-main = log "Done"
diff --git a/examples/passing/UTF8Sourcefile.purs b/examples/passing/UTF8Sourcefile.purs
deleted file mode 100644
index 1dbc2cb..0000000
--- a/examples/passing/UTF8Sourcefile.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console
-
--- 'β†’' is multibyte sequence \u2192.
-utf8multibyte = "Hello Ξ»β†’ world!!"
-
-main = log "Done"
diff --git a/examples/passing/UnderscoreIdent.purs b/examples/passing/UnderscoreIdent.purs
deleted file mode 100644
index 0a02edc..0000000
--- a/examples/passing/UnderscoreIdent.purs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-data Data_type = Con_Structor | Con_2 String
-
-type Type_name = Data_type
-
-done (Con_2 s) = s
-done _ = "Failed"
-
-main = log (done (Con_2 "Done"))
diff --git a/examples/passing/UnicodeIdentifier.purs b/examples/passing/UnicodeIdentifier.purs
deleted file mode 100644
index 9041a4f..0000000
--- a/examples/passing/UnicodeIdentifier.purs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-f asgΓ₯rd = asgΓ₯rd
-
-main = log (f "Done")
diff --git a/examples/passing/UnicodeOperators.purs b/examples/passing/UnicodeOperators.purs
deleted file mode 100644
index f93584f..0000000
--- a/examples/passing/UnicodeOperators.purs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-compose :: forall a b c. (b -> c) -> (a -> b) -> a -> c
-compose f g a = f (g a)
-
-infixr 9 compose as ∘
-
-test1 = (\x -> x) ∘ \y -> y
-
-elem :: forall a b. a -> (a -> Boolean) -> Boolean
-elem x f = f x
-
-infixl 1 elem as ∈
-
-emptySet :: forall a. a -> Boolean
-emptySet _ = true
-
-test2 = 1 ∈ emptySet
-
-main = log "Done"
diff --git a/examples/passing/UnicodeType.purs b/examples/passing/UnicodeType.purs
deleted file mode 100644
index ea92525..0000000
--- a/examples/passing/UnicodeType.purs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class Monad m ⇐ Monad1 m where
- f1 :: m Int
-
-class Monad m <= Monad2 m where
- f2 :: m Int
-
-f ∷ βˆ€ m. Monad m β‡’ Int β†’ m Int
-f n = do
- n' ← pure n
- pure n'
-
-f' :: forall m. Monad m => Int -> m Int
-f' n = do
- n' <- pure n
- pure n'
-
-main = log "Done"
diff --git a/examples/passing/UnifyInTypeInstanceLookup.purs b/examples/passing/UnifyInTypeInstanceLookup.purs
deleted file mode 100644
index b235a83..0000000
--- a/examples/passing/UnifyInTypeInstanceLookup.purs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-data Z = Z
-data S n = S n
-
-data T
-data F
-
-class EQ x y b
-instance eqT :: EQ x x T
-instance eqF :: EQ x y F
-
-test :: forall a b. EQ a b T => a -> b -> a
-test a _ = a
-
-spin :: forall a b. a -> b
-spin a = spin a
-
--- Expected type:
--- forall t. (EQ t (S Z) T) => t
-test1 = test (spin 1) (S Z)
-
-main = log "Done"
diff --git a/examples/passing/Unit.purs b/examples/passing/Unit.purs
deleted file mode 100644
index 1449d72..0000000
--- a/examples/passing/Unit.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (logShow, log)
-
-main = do
- logShow (const unit $ "Hello world")
- log "Done"
diff --git a/examples/passing/UnknownInTypeClassLookup.purs b/examples/passing/UnknownInTypeClassLookup.purs
deleted file mode 100644
index 8b90b1f..0000000
--- a/examples/passing/UnknownInTypeClassLookup.purs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class EQ a b
-
-instance eqAA :: EQ a a
-
-test :: forall a b. EQ a b => a -> b -> String
-test _ _ = "Done"
-
-runTest a = test a a
-
-main = log $ runTest 0.0
diff --git a/examples/passing/UnsafeCoerce.purs b/examples/passing/UnsafeCoerce.purs
deleted file mode 100644
index 6b4dbb1..0000000
--- a/examples/passing/UnsafeCoerce.purs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Main where
-
-import Prelude (Unit)
-import Unsafe.Coerce (unsafeCoerce)
-import Control.Monad.Eff (Eff)
-import Control.Monad.Eff.Console (CONSOLE, log)
-
-x :: Number
-x = unsafeCoerce 1
-
-y :: Number
-y = case unsafeCoerce 1 of
- z -> unsafeCoerce z
-
-main :: Eff (console :: CONSOLE) Unit
-main = log "Done"
diff --git a/examples/passing/UntupledConstraints.purs b/examples/passing/UntupledConstraints.purs
deleted file mode 100644
index 4850794..0000000
--- a/examples/passing/UntupledConstraints.purs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-class Show a <= Nonsense a where
- method :: a -> a
-
-data Box a = Box a
-
-instance showBox :: Show a => Show (Box a) where
- show (Box a) = "Box " <> show a
-
-strangeThing :: forall m. Semigroup (m Unit) => m Unit -> m Unit -> m Unit
-strangeThing x y = x <> y
-
-main = log "Done"
diff --git a/examples/passing/UsableTypeClassMethods.purs b/examples/passing/UsableTypeClassMethods.purs
deleted file mode 100644
index 5545ded..0000000
--- a/examples/passing/UsableTypeClassMethods.purs
+++ /dev/null
@@ -1,35 +0,0 @@
--- this is testing that we don't see an `UnusableDeclaration` error for type
--- class methods that should be valid based on various configurations of fundeps
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
--- no fundeps
-class C0 a b where
- c0 :: a -> b
-
--- simple fundep
-class C1 a b | a -> b where
- c1 :: a
- c1' :: a -> b
-
--- transitive
-class C2 a b c | a -> b, b -> c where
- c2 :: a
- c2' :: a -> b
- c2'' :: a -> c
- c2''' :: a -> b -> c
-
--- with cycles
-class C3 a b c | a -> b, b -> a, b -> c where
- c3 :: a
- c3' :: b
- c3'' :: a -> c
- c3''' :: b -> c
- c3'''' :: a -> b -> c
-
--- nullary class
-class C4 where
- c4 :: forall a. a
-
-main = log "Done"
diff --git a/examples/passing/Where.purs b/examples/passing/Where.purs
deleted file mode 100644
index fa9169d..0000000
--- a/examples/passing/Where.purs
+++ /dev/null
@@ -1,49 +0,0 @@
-module Main where
-
-import Prelude
-import Partial.Unsafe (unsafePartial)
-import Control.Monad.Eff
-import Control.Monad.Eff.Console (logShow, log)
-
-test1 x = y
- where
- y :: Number
- y = x + 1.0
-
-test2 x y = x' + y'
- where
- x' = x + 1.0
- y' = y + 1.0
-
-test3 = f 1.0 2.0 3.0
- where f x y z = x + y + z
-
-test4 = f (+) [1.0, 2.0]
- where f x [y, z] = x y z
-
-test5 = g 10.0
- where
- f x | x > 0.0 = g (x / 2.0) + 1.0
- f x = 0.0
- g x = f (x - 1.0) + 1.0
-
-test6 = if f true then f 1.0 else f 2.0
- where f :: forall a. a -> a
- f x = x
-
-test7 :: Number -> Number
-test7 x = go x
- where
- go y | (x - 0.1 < y * y) && (y * y < x + 0.1) = y
- go y = go $ (y + x / y) / 2.0
-
-main :: Eff _ _
-main = do
- logShow (test1 1.0)
- logShow (test2 1.0 2.0)
- logShow test3
- unsafePartial (logShow test4)
- logShow test5
- logShow test6
- logShow (test7 100.0)
- log "Done"
diff --git a/examples/passing/WildcardInInstance.purs b/examples/passing/WildcardInInstance.purs
deleted file mode 100644
index 4b2d5ab..0000000
--- a/examples/passing/WildcardInInstance.purs
+++ /dev/null
@@ -1,23 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-import Control.Monad.Eff.Console
-
--- Until the functional dependency gets added to purescript-eff,
--- we need this here.
-class Monad m <= MonadEff eff m | m -> eff where
- liftEff :: forall a. Eff eff a -> m a
-
-instance monadEffEff :: MonadEff eff (Eff eff) where
- liftEff = id
-
--- This should generate a warning with the correct inferred type.
-test :: forall m. MonadEff _ m => m Unit
-test = liftEff $ log "Done"
-
-test1 :: Eff _ Unit
-test1 = liftEff $ log "Done"
-
-main :: forall eff. Eff (console :: CONSOLE | eff) Unit
-main = test
diff --git a/examples/passing/WildcardType.purs b/examples/passing/WildcardType.purs
deleted file mode 100644
index b661aca..0000000
--- a/examples/passing/WildcardType.purs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-f1 :: (_ -> _) -> _
-f1 g = g 1
-
-f2 :: _ -> _
-f2 _ = "Done"
-
-main = log $ f1 f2
diff --git a/examples/passing/iota.purs b/examples/passing/iota.purs
deleted file mode 100644
index a261eb5..0000000
--- a/examples/passing/iota.purs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Control.Monad.Eff.Console (log)
-
-s = \x -> \y -> \z -> x z (y z)
-
-k = \x -> \y -> x
-
-iota = \x -> x s k
-
-main = log "Done"
diff --git a/examples/passing/s.purs b/examples/passing/s.purs
deleted file mode 100644
index a161491..0000000
--- a/examples/passing/s.purs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Main where
-
-import Prelude
-import Control.Monad.Eff.Console (log)
-
-s = \x y z -> x z (y z)
-
-main = log "Done"
diff --git a/examples/warning/2383.purs b/examples/warning/2383.purs
deleted file mode 100644
index dfcb8eb..0000000
--- a/examples/warning/2383.purs
+++ /dev/null
@@ -1,12 +0,0 @@
--- | This specifically shouldn't warn about `x` being shadowed in `main`
--- | See https://github.com/purescript/purescript/issues/2383
-module Main where
-
-import Prelude
-
-import Control.Monad.Eff (Eff)
-
-main :: Eff () Unit
-main = do
- x <- let x = pure unit in x
- pure unit
diff --git a/examples/warning/2411.purs b/examples/warning/2411.purs
deleted file mode 100644
index c53ca23..0000000
--- a/examples/warning/2411.purs
+++ /dev/null
@@ -1,15 +0,0 @@
--- @shouldWarnWith ShadowedName
-module Main where
-
-import Prelude
-
-import Control.Monad.Eff (Eff)
-
-test :: forall m. Monad m => Int -> m Unit
-test x =
- let x = unit
- in pure x
-
-main :: Eff () Unit
-main = test 42
-
diff --git a/examples/warning/2542.purs b/examples/warning/2542.purs
deleted file mode 100644
index 8a13518..0000000
--- a/examples/warning/2542.purs
+++ /dev/null
@@ -1,16 +0,0 @@
--- @shouldWarnWith MissingTypeDeclaration
-module Main where
-
-import Control.Monad.Eff.Console
-
-type T = forall a. Array a
-
--- | Note: This should not raise a `ShadowedTypeVar` warning as the
--- | type `a` introduced in `T` should not be in scope
--- | in the definition of `bar`.
-foo :: T
-foo = bar where
- bar :: forall a. Array a
- bar = []
-
-main = log "Done"
diff --git a/examples/warning/CustomWarning.purs b/examples/warning/CustomWarning.purs
deleted file mode 100644
index 25540c6..0000000
--- a/examples/warning/CustomWarning.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldWarnWith UserDefinedWarning
-module Main where
-
-foo :: forall t. Warn (TypeConcat "Custom warning " (TypeString t)) => t -> t
-foo x = x
-
-bar :: Int
-bar = foo 42
-
diff --git a/examples/warning/CustomWarning2.purs b/examples/warning/CustomWarning2.purs
deleted file mode 100644
index 72afec3..0000000
--- a/examples/warning/CustomWarning2.purs
+++ /dev/null
@@ -1,11 +0,0 @@
--- @shouldWarnWith UserDefinedWarning
-module Main where
-
-foo :: Warn "foo" => Int -> Int
-foo x = x
-
-bar :: Warn "foo" => Int
-bar = foo 42
-
-baz :: Int
-baz = bar
diff --git a/examples/warning/CustomWarning3.purs b/examples/warning/CustomWarning3.purs
deleted file mode 100644
index e06f7f1..0000000
--- a/examples/warning/CustomWarning3.purs
+++ /dev/null
@@ -1,13 +0,0 @@
--- @shouldWarnWith UserDefinedWarning
--- @shouldWarnWith UserDefinedWarning
-module Main where
-
-foo :: Warn "foo" => Int -> Int
-foo x = x
-
--- Defer the "foo" warning and warn with "bar" as well
-bar :: Warn "foo" => Warn "bar" => Int
-bar = foo 42
-
-baz :: Int
-baz = bar
diff --git a/examples/warning/DuplicateImport.purs b/examples/warning/DuplicateImport.purs
deleted file mode 100644
index ff92cbe..0000000
--- a/examples/warning/DuplicateImport.purs
+++ /dev/null
@@ -1,10 +0,0 @@
--- @shouldWarnWith DuplicateImport
-module Main where
-
-import Prelude (Unit, unit, pure)
-import Prelude (Unit, unit, pure)
-
-import Control.Monad.Eff (Eff)
-
-main :: Eff () Unit
-main = pure unit
diff --git a/examples/warning/DuplicateSelectiveImport.purs b/examples/warning/DuplicateSelectiveImport.purs
deleted file mode 100644
index 848b21d..0000000
--- a/examples/warning/DuplicateSelectiveImport.purs
+++ /dev/null
@@ -1,10 +0,0 @@
--- @shouldWarnWith DuplicateSelectiveImport
-module Main where
-
-import Prelude (Unit, unit)
-import Prelude (pure)
-
-import Control.Monad.Eff (Eff)
-
-main :: Eff () Unit
-main = pure unit
diff --git a/examples/warning/HidingImport.purs b/examples/warning/HidingImport.purs
deleted file mode 100644
index a45bfb9..0000000
--- a/examples/warning/HidingImport.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldWarnWith HidingImport
--- @shouldWarnWith HidingImport
-module Main where
-
-import Prelude hiding (one)
-import Control.Monad.Eff hiding (runPure)
-
-main :: Eff () Unit
-main = pure unit
diff --git a/examples/warning/ImplicitImport.purs b/examples/warning/ImplicitImport.purs
deleted file mode 100644
index bca2996..0000000
--- a/examples/warning/ImplicitImport.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldWarnWith ImplicitImport
--- @shouldWarnWith ImplicitImport
-module Main where
-
-import Prelude
-import Control.Monad.Eff
-
-main :: Eff () Unit
-main = pure unit
diff --git a/examples/warning/ImplicitQualifiedImport.purs b/examples/warning/ImplicitQualifiedImport.purs
deleted file mode 100644
index 36f69d6..0000000
--- a/examples/warning/ImplicitQualifiedImport.purs
+++ /dev/null
@@ -1,11 +0,0 @@
--- @shouldWarnWith ImplicitQualifiedImport
--- @shouldWarnWith ImplicitQualifiedImport
-module Main where
-
-import Data.Unit
-
-import Control.Monad.Eff as E
-import Control.Monad.Eff.Console as E
-
-main :: E.Eff (console :: E.CONSOLE) Unit
-main = E.log "test"
diff --git a/examples/warning/NewtypeInstance2.purs b/examples/warning/NewtypeInstance2.purs
deleted file mode 100644
index de5f56b..0000000
--- a/examples/warning/NewtypeInstance2.purs
+++ /dev/null
@@ -1,16 +0,0 @@
--- @shouldWarnWith MissingNewtypeSuperclassInstance
-module Main where
-
-import Prelude
-import Data.Monoid (class Monoid)
-import Data.Tuple (Tuple(..))
-
-class (Monad m, Monoid w) <= MonadWriter w m | m -> w where
- tell :: w -> m Unit
-
-instance monadWriterTuple :: Monoid w => MonadWriter w (Tuple w) where
- tell w = Tuple w unit
-
-newtype MyWriter w a = MyWriter (Tuple w a)
-
-derive newtype instance monadWriterMyWriter :: Monoid w => MonadWriter w (MyWriter w)
diff --git a/examples/warning/NewtypeInstance3.purs b/examples/warning/NewtypeInstance3.purs
deleted file mode 100644
index 7357d5b..0000000
--- a/examples/warning/NewtypeInstance3.purs
+++ /dev/null
@@ -1,22 +0,0 @@
--- @shouldWarnWith MissingNewtypeSuperclassInstance
-module Main where
-
-import Prelude
-import Data.Monoid (class Monoid)
-import Data.Tuple (Tuple(..))
-
-class (Monad m, Monoid w) <= MonadTell w m | m -> w where
- tell :: w -> m Unit
-
-class (MonadTell w m) <= MonadWriter w m | m -> w where
- listen :: forall a. m a -> m (Tuple w a)
-
-instance monadTellTuple :: Monoid w => MonadTell w (Tuple w) where
- tell w = Tuple w unit
-
-instance monadWriterTuple :: Monoid w => MonadWriter w (Tuple w) where
- listen (Tuple w a) = Tuple w (Tuple w a)
-
-newtype MyWriter w a = MyWriter (Tuple w a)
-
-derive newtype instance monadWriterMyWriter :: Monoid w => MonadWriter w (MyWriter w)
diff --git a/examples/warning/NewtypeInstance4.purs b/examples/warning/NewtypeInstance4.purs
deleted file mode 100644
index 625d1d3..0000000
--- a/examples/warning/NewtypeInstance4.purs
+++ /dev/null
@@ -1,24 +0,0 @@
--- @shouldWarnWith UnverifiableSuperclassInstance
-module Main where
-
-import Prelude
-import Data.Monoid (class Monoid)
-import Data.Tuple (Tuple(..))
-
-class Monoid w <= MonadTell w m where
- tell :: w -> m Unit
-
-class (MonadTell w m) <= MonadWriter w m where
- listen :: forall a. m a -> m (Tuple w a)
-
-instance monadTellTuple :: Monoid w => MonadTell w (Tuple w) where
- tell w = Tuple w unit
-
-instance monadWriterTuple :: Monoid w => MonadWriter w (Tuple w) where
- listen (Tuple w a) = Tuple w (Tuple w a)
-
-newtype MyWriter w a = MyWriter (Tuple w a)
-
--- No fundep means this is unverifiable
-derive newtype instance monadTellMyWriter :: Monoid w => MonadTell w (MyWriter w)
-derive newtype instance monadWriterMyWriter :: Monoid w => MonadWriter w (MyWriter w)
diff --git a/examples/warning/OverlappingInstances.purs b/examples/warning/OverlappingInstances.purs
deleted file mode 100644
index b5d9323..0000000
--- a/examples/warning/OverlappingInstances.purs
+++ /dev/null
@@ -1,17 +0,0 @@
--- @shouldWarnWith OverlappingInstances
-module Main where
-
-class Test a where
- test :: a -> a
-
-instance testRefl :: Test a where
- test x = x
-
-instance testInt :: Test Int where
- test _ = 0
-
--- The OverlappingInstances instances warning only arises when there are two
--- choices for a dictionary, not when the instances are defined. So without
--- `value` this module would not raise a warning.
-value :: Int
-value = test 1
diff --git a/examples/warning/UnusedExplicitImport.purs b/examples/warning/UnusedExplicitImport.purs
deleted file mode 100644
index a6705e3..0000000
--- a/examples/warning/UnusedExplicitImport.purs
+++ /dev/null
@@ -1,8 +0,0 @@
--- @shouldWarnWith UnusedExplicitImport
-module Main where
-
-import Prelude (Unit, unit, pure, bind)
-import Control.Monad.Eff (Eff)
-
-main :: Eff () Unit
-main = pure unit
diff --git a/examples/warning/UnusedExplicitImportTypeOp.purs b/examples/warning/UnusedExplicitImportTypeOp.purs
deleted file mode 100644
index 41caf6b..0000000
--- a/examples/warning/UnusedExplicitImportTypeOp.purs
+++ /dev/null
@@ -1,9 +0,0 @@
--- @shouldWarnWith UnusedExplicitImport
-module Main where
-
-import Prelude (Unit, unit, pure)
-import Control.Monad.Eff (Eff)
-import Lib (type (~>), natId)
-
-main :: Eff () Unit
-main = natId (pure unit)
diff --git a/examples/warning/UnusedExplicitImportValOp.purs b/examples/warning/UnusedExplicitImportValOp.purs
deleted file mode 100644
index 26a7928..0000000
--- a/examples/warning/UnusedExplicitImportValOp.purs
+++ /dev/null
@@ -1,8 +0,0 @@
--- @shouldWarnWith UnusedExplicitImport
-module Main where
-
-import Prelude (Unit, unit, pure, (+))
-import Control.Monad.Eff (Eff)
-
-main :: Eff () Unit
-main = pure unit
diff --git a/examples/warning/UnusedImport.purs b/examples/warning/UnusedImport.purs
deleted file mode 100644
index d13840b..0000000
--- a/examples/warning/UnusedImport.purs
+++ /dev/null
@@ -1,14 +0,0 @@
--- @shouldWarnWith UnusedImport
--- @shouldWarnWith UnusedImport
--- @shouldWarnWith UnusedImport
-module Main where
-
-import Data.Unit (Unit, unit)
-
--- All of the below are unused
-import Control.Monad.Eff
-import Control.Monad.Eff.Console as Console
-import Test.Assert ()
-
-main :: Unit
-main = unit
diff --git a/purescript.cabal b/purescript.cabal
index 6fed6c9..e5bc04f 100644
--- a/purescript.cabal
+++ b/purescript.cabal
@@ -1,9 +1,11 @@
--- This file has been generated from package.yaml by hpack version 0.17.1.
+-- This file has been generated from package.yaml by hpack version 0.28.2.
--
-- see: https://github.com/sol/hpack
+--
+-- hash: ed9acbb7111e989600e6d412bddce7d96a240dabdfa42338b1d3a2434ac6c976
name: purescript
-version: 0.11.7
+version: 0.12.0
synopsis: PureScript Programming Language Compiler
description: A small strongly, statically typed programming language with expressive types, inspired by Haskell and compiling to JavaScript.
category: Language
@@ -18,7 +20,6 @@ license: BSD3
license-file: LICENSE
build-type: Simple
cabal-version: >= 1.10
-
extra-source-files:
app/static/index.html
app/static/index.js
@@ -27,633 +28,681 @@ extra-source-files:
app/static/pursuit.less
CONTRIBUTING.md
CONTRIBUTORS.md
- examples/docs/bower.json
- examples/docs/bower_components/purescript-prelude/src/Prelude.purs
- examples/docs/resolutions.json
- examples/docs/src/ChildDeclOrder.purs
- examples/docs/src/Clash.purs
- examples/docs/src/Clash1.purs
- examples/docs/src/Clash1a.purs
- examples/docs/src/Clash2.purs
- examples/docs/src/Clash2a.purs
- examples/docs/src/ConstrainedArgument.purs
- examples/docs/src/DeclOrder.purs
- examples/docs/src/DeclOrderNoExportList.purs
- examples/docs/src/Desugar.purs
- examples/docs/src/DocComments.purs
- examples/docs/src/DuplicateNames.purs
- examples/docs/src/Example.purs
- examples/docs/src/Example2.purs
- examples/docs/src/ExplicitTypeSignatures.purs
- examples/docs/src/ImportedTwice.purs
- examples/docs/src/ImportedTwiceA.purs
- examples/docs/src/ImportedTwiceB.purs
- examples/docs/src/MultiVirtual.purs
- examples/docs/src/MultiVirtual1.purs
- examples/docs/src/MultiVirtual2.purs
- examples/docs/src/MultiVirtual3.purs
- examples/docs/src/NewOperators.purs
- examples/docs/src/NewOperators2.purs
- examples/docs/src/NotAllCtors.purs
- examples/docs/src/ReExportedTypeClass.purs
- examples/docs/src/SolitaryTypeClassMember.purs
- examples/docs/src/SomeTypeClass.purs
- examples/docs/src/Transitive1.purs
- examples/docs/src/Transitive2.purs
- examples/docs/src/Transitive3.purs
- examples/docs/src/TypeClassWithFunDeps.purs
- examples/docs/src/TypeClassWithoutMembers.purs
- examples/docs/src/TypeClassWithoutMembersIntermediate.purs
- examples/docs/src/TypeLevelString.purs
- examples/docs/src/TypeOpAliases.purs
- examples/docs/src/UTF8.purs
- examples/docs/src/Virtual.purs
- examples/failing/1071.purs
- examples/failing/1169.purs
- examples/failing/1175.purs
- examples/failing/1310.purs
- examples/failing/1570.purs
- examples/failing/1733.purs
- examples/failing/1733/Thingy.purs
- examples/failing/1825.purs
- examples/failing/1881.purs
- examples/failing/2128-class.purs
- examples/failing/2128-instance.purs
- examples/failing/2197-shouldFail.purs
- examples/failing/2197-shouldFail2.purs
- examples/failing/2378.purs
- examples/failing/2378/Lib.purs
- examples/failing/2379.purs
- examples/failing/2379/Lib.purs
- examples/failing/2434.purs
- examples/failing/2534.purs
- examples/failing/2542.purs
- examples/failing/2567.purs
- examples/failing/2601.purs
- examples/failing/2616.purs
- examples/failing/2806.purs
- examples/failing/2874-forall.purs
- examples/failing/2874-forall2.purs
- examples/failing/2874-wildcard.purs
- examples/failing/365.purs
- examples/failing/438.purs
- examples/failing/881.purs
- examples/failing/AnonArgument1.purs
- examples/failing/AnonArgument2.purs
- examples/failing/AnonArgument3.purs
- examples/failing/ArgLengthMismatch.purs
- examples/failing/Arrays.purs
- examples/failing/ArrayType.purs
- examples/failing/BindInDo-2.purs
- examples/failing/BindInDo.purs
- examples/failing/CannotDeriveNewtypeForData.purs
- examples/failing/CaseBinderLengthsDiffer.purs
- examples/failing/CaseDoesNotMatchAllConstructorArgs.purs
- examples/failing/ConflictingExports.purs
- examples/failing/ConflictingExports/A.purs
- examples/failing/ConflictingExports/B.purs
- examples/failing/ConflictingImports.purs
- examples/failing/ConflictingImports/A.purs
- examples/failing/ConflictingImports/B.purs
- examples/failing/ConflictingImports2.purs
- examples/failing/ConflictingImports2/A.purs
- examples/failing/ConflictingImports2/B.purs
- examples/failing/ConflictingQualifiedImports.purs
- examples/failing/ConflictingQualifiedImports/A.purs
- examples/failing/ConflictingQualifiedImports/B.purs
- examples/failing/ConflictingQualifiedImports2.purs
- examples/failing/ConflictingQualifiedImports2/A.purs
- examples/failing/ConflictingQualifiedImports2/B.purs
- examples/failing/ConstraintFailure.purs
- examples/failing/ConstraintInference.purs
- examples/failing/DctorOperatorAliasExport.purs
- examples/failing/DeclConflictClassCtor.purs
- examples/failing/DeclConflictClassSynonym.purs
- examples/failing/DeclConflictClassType.purs
- examples/failing/DeclConflictCtorClass.purs
- examples/failing/DeclConflictCtorCtor.purs
- examples/failing/DeclConflictDuplicateCtor.purs
- examples/failing/DeclConflictSynonymClass.purs
- examples/failing/DeclConflictSynonymType.purs
- examples/failing/DeclConflictTypeClass.purs
- examples/failing/DeclConflictTypeSynonym.purs
- examples/failing/DeclConflictTypeType.purs
- examples/failing/DiffKindsSameName.purs
- examples/failing/DiffKindsSameName/LibA.purs
- examples/failing/DiffKindsSameName/LibB.purs
- examples/failing/Do.purs
- examples/failing/DoNotSuggestComposition.purs
- examples/failing/DoNotSuggestComposition2.purs
- examples/failing/DuplicateDeclarationsInLet.purs
- examples/failing/DuplicateInstance.purs
- examples/failing/DuplicateModule.purs
- examples/failing/DuplicateModule/M1.purs
- examples/failing/DuplicateProperties.purs
- examples/failing/DuplicateTypeClass.purs
- examples/failing/DuplicateTypeVars.purs
- examples/failing/Eff.purs
- examples/failing/EmptyCase.purs
- examples/failing/EmptyClass.purs
- examples/failing/EmptyDo.purs
- examples/failing/ExportConflictClass.purs
- examples/failing/ExportConflictClass/A.purs
- examples/failing/ExportConflictClass/B.purs
- examples/failing/ExportConflictCtor.purs
- examples/failing/ExportConflictCtor/A.purs
- examples/failing/ExportConflictCtor/B.purs
- examples/failing/ExportConflictType.purs
- examples/failing/ExportConflictType/A.purs
- examples/failing/ExportConflictType/B.purs
- examples/failing/ExportConflictTypeOp.purs
- examples/failing/ExportConflictTypeOp/A.purs
- examples/failing/ExportConflictTypeOp/B.purs
- examples/failing/ExportConflictValue.purs
- examples/failing/ExportConflictValue/A.purs
- examples/failing/ExportConflictValue/B.purs
- examples/failing/ExportConflictValueOp.purs
- examples/failing/ExportConflictValueOp/A.purs
- examples/failing/ExportConflictValueOp/B.purs
- examples/failing/ExportExplicit.purs
- examples/failing/ExportExplicit1.purs
- examples/failing/ExportExplicit1/M1.purs
- examples/failing/ExportExplicit2.purs
- examples/failing/ExportExplicit3.purs
- examples/failing/ExportExplicit3/M1.purs
- examples/failing/ExtraRecordField.purs
- examples/failing/Foldable.purs
- examples/failing/Generalization1.purs
- examples/failing/Generalization2.purs
- examples/failing/ImportExplicit.purs
- examples/failing/ImportExplicit/M1.purs
- examples/failing/ImportExplicit2.purs
- examples/failing/ImportExplicit2/M1.purs
- examples/failing/ImportHidingModule.purs
- examples/failing/ImportHidingModule/A.purs
- examples/failing/ImportHidingModule/B.purs
- examples/failing/ImportModule.purs
- examples/failing/ImportModule/M2.purs
- examples/failing/InfiniteKind.purs
- examples/failing/InfiniteKind2.purs
- examples/failing/InfiniteType.purs
- examples/failing/InstanceExport.purs
- examples/failing/InstanceExport/InstanceExport.purs
- examples/failing/InstanceSigsBodyIncorrect.purs
- examples/failing/InstanceSigsDifferentTypes.purs
- examples/failing/InstanceSigsIncorrectType.purs
- examples/failing/InstanceSigsOrphanTypeDeclaration.purs
- examples/failing/IntOutOfRange.purs
- examples/failing/InvalidDerivedInstance.purs
- examples/failing/InvalidDerivedInstance2.purs
- examples/failing/InvalidOperatorInBinder.purs
- examples/failing/KindError.purs
- examples/failing/KindStar.purs
- examples/failing/LeadingZeros1.purs
- examples/failing/LeadingZeros2.purs
- examples/failing/Let.purs
- examples/failing/LetPatterns1.purs
- examples/failing/LetPatterns2.purs
- examples/failing/LetPatterns3.purs
- examples/failing/LetPatterns4.purs
- examples/failing/MissingClassExport.purs
- examples/failing/MissingClassMemberExport.purs
- examples/failing/MissingRecordField.purs
- examples/failing/MPTCs.purs
- examples/failing/MultipleErrors.purs
- examples/failing/MultipleErrors2.purs
- examples/failing/MultipleTypeOpFixities.purs
- examples/failing/MultipleValueOpFixities.purs
- examples/failing/MutRec.purs
- examples/failing/MutRec2.purs
- examples/failing/NewtypeInstance.purs
- examples/failing/NewtypeInstance2.purs
- examples/failing/NewtypeInstance3.purs
- examples/failing/NewtypeInstance4.purs
- examples/failing/NewtypeInstance5.purs
- examples/failing/NewtypeInstance6.purs
- examples/failing/NewtypeMultiArgs.purs
- examples/failing/NewtypeMultiCtor.purs
- examples/failing/NonExhaustivePatGuard.purs
- examples/failing/NonWildcardNewtypeInstance.purs
- examples/failing/NullaryAbs.purs
- examples/failing/Object.purs
- examples/failing/OperatorAliasNoExport.purs
- examples/failing/OperatorSections.purs
- examples/failing/OrphanInstance.purs
- examples/failing/OrphanInstance/Class.purs
- examples/failing/OrphanInstanceFunDepCycle.purs
- examples/failing/OrphanInstanceFunDepCycle/Lib.purs
- examples/failing/OrphanInstanceNullary.purs
- examples/failing/OrphanInstanceNullary/Lib.purs
- examples/failing/OrphanInstanceWithDetermined.purs
- examples/failing/OrphanInstanceWithDetermined/Lib.purs
- examples/failing/OrphanTypeDecl.purs
- examples/failing/OverlappingArguments.purs
- examples/failing/OverlappingBinders.purs
- examples/failing/OverlappingVars.purs
- examples/failing/ProgrammableTypeErrors.purs
- examples/failing/ProgrammableTypeErrorsTypeString.purs
- examples/failing/Rank2Types.purs
- examples/failing/RequiredHiddenType.purs
- examples/failing/Reserved.purs
- examples/failing/RowConstructors1.purs
- examples/failing/RowConstructors2.purs
- examples/failing/RowConstructors3.purs
- examples/failing/RowInInstanceNotDetermined0.purs
- examples/failing/RowInInstanceNotDetermined1.purs
- examples/failing/RowInInstanceNotDetermined2.purs
- examples/failing/SkolemEscape.purs
- examples/failing/SkolemEscape2.purs
- examples/failing/SuggestComposition.purs
- examples/failing/Superclasses1.purs
- examples/failing/Superclasses2.purs
- examples/failing/Superclasses3.purs
- examples/failing/Superclasses5.purs
- examples/failing/TooFewClassInstanceArgs.purs
- examples/failing/TopLevelCaseNoArgs.purs
- examples/failing/TransitiveDctorExport.purs
- examples/failing/TransitiveSynonymExport.purs
- examples/failing/TypeClasses2.purs
- examples/failing/TypeClassInstances.purs
- examples/failing/TypedBinders.purs
- examples/failing/TypedBinders2.purs
- examples/failing/TypedBinders3.purs
- examples/failing/TypedHole.purs
- examples/failing/TypeError.purs
- examples/failing/TypeOperatorAliasNoExport.purs
- examples/failing/TypeSynonyms.purs
- examples/failing/TypeSynonyms2.purs
- examples/failing/TypeSynonyms3.purs
- examples/failing/TypeSynonyms4.purs
- examples/failing/TypeSynonyms5.purs
- examples/failing/TypeWildcards1.purs
- examples/failing/TypeWildcards2.purs
- examples/failing/TypeWildcards3.purs
- examples/failing/UnderscoreModuleName.purs
- examples/failing/UnknownType.purs
- examples/failing/UnusableTypeClassMethod.purs
- examples/failing/UnusableTypeClassMethodConflictingIdent.purs
- examples/failing/UnusableTypeClassMethodSynonym.purs
- examples/passing/1110.purs
- examples/passing/1185.purs
- examples/passing/1335.purs
- examples/passing/1570.purs
- examples/passing/1664.purs
- examples/passing/1697.purs
- examples/passing/1807.purs
- examples/passing/1881.purs
- examples/passing/1991.purs
- examples/passing/2018.purs
- examples/passing/2018/A.purs
- examples/passing/2018/B.purs
- examples/passing/2049.purs
- examples/passing/2136.purs
- examples/passing/2138.purs
- examples/passing/2138/Lib.purs
- examples/passing/2172.js
- examples/passing/2172.purs
- examples/passing/2197-1.purs
- examples/passing/2197-2.purs
- examples/passing/2252.purs
- examples/passing/2288.purs
- examples/passing/2378.purs
- examples/passing/2438.purs
- examples/passing/2609.purs
- examples/passing/2609/Eg.purs
- examples/passing/2616.purs
- examples/passing/2626.purs
- examples/passing/2663.purs
- examples/passing/2689.purs
- examples/passing/2695.purs
- examples/passing/2756.purs
- examples/passing/2787.purs
- examples/passing/2795.purs
- examples/passing/2806.purs
- examples/passing/2958.purs
- examples/passing/2972.purs
- examples/passing/3125.purs
- examples/passing/652.purs
- examples/passing/810.purs
- examples/passing/862.purs
- examples/passing/922.purs
- examples/passing/Applicative.purs
- examples/passing/ArrayType.purs
- examples/passing/Auto.purs
- examples/passing/AutoPrelude.purs
- examples/passing/AutoPrelude2.purs
- examples/passing/BindersInFunctions.purs
- examples/passing/BindingGroups.purs
- examples/passing/BlockString.purs
- examples/passing/CaseInDo.purs
- examples/passing/CaseInputWildcard.purs
- examples/passing/CaseMultipleExpressions.purs
- examples/passing/CaseStatement.purs
- examples/passing/CheckFunction.purs
- examples/passing/CheckSynonymBug.purs
- examples/passing/CheckTypeClass.purs
- examples/passing/Church.purs
- examples/passing/ClassRefSyntax.purs
- examples/passing/ClassRefSyntax/Lib.purs
- examples/passing/Collatz.purs
- examples/passing/Comparisons.purs
- examples/passing/Conditional.purs
- examples/passing/Console.purs
- examples/passing/ConstraintInference.purs
- examples/passing/ConstraintParens.purs
- examples/passing/ConstraintParsingIssue.purs
- examples/passing/ContextSimplification.purs
- examples/passing/DataAndType.purs
- examples/passing/DctorName.purs
- examples/passing/DctorOperatorAlias.purs
- examples/passing/DctorOperatorAlias/List.purs
- examples/passing/DeepArrayBinder.purs
- examples/passing/DeepCase.purs
- examples/passing/DeriveNewtype.purs
- examples/passing/DeriveWithNestedSynonyms.purs
- examples/passing/Deriving.purs
- examples/passing/DerivingFunctor.purs
- examples/passing/Do.purs
- examples/passing/Dollar.purs
- examples/passing/DuplicateProperties.purs
- examples/passing/Eff.purs
- examples/passing/EmptyDataDecls.purs
- examples/passing/EmptyRow.purs
- examples/passing/EmptyTypeClass.purs
- examples/passing/EntailsKindedType.purs
- examples/passing/EqOrd.purs
- examples/passing/ExplicitImportReExport.purs
- examples/passing/ExplicitImportReExport/Bar.purs
- examples/passing/ExplicitImportReExport/Foo.purs
- examples/passing/ExplicitOperatorSections.purs
- examples/passing/ExportedInstanceDeclarations.purs
- examples/passing/ExportExplicit.purs
- examples/passing/ExportExplicit/M1.purs
- examples/passing/ExportExplicit2.purs
- examples/passing/ExportExplicit2/M1.purs
- examples/passing/ExtendedInfixOperators.purs
- examples/passing/Fib.purs
- examples/passing/FieldConsPuns.purs
- examples/passing/FieldPuns.purs
- examples/passing/FinalTagless.purs
- examples/passing/ForeignKind.purs
- examples/passing/ForeignKind/Lib.purs
- examples/passing/FunctionalDependencies.purs
- examples/passing/Functions.purs
- examples/passing/Functions2.purs
- examples/passing/FunctionScope.purs
- examples/passing/FunWithFunDeps.js
- examples/passing/FunWithFunDeps.purs
- examples/passing/Generalization1.purs
- examples/passing/GenericsRep.purs
- examples/passing/Guards.purs
- examples/passing/HasOwnProperty.purs
- examples/passing/HoistError.purs
- examples/passing/IfThenElseMaybe.purs
- examples/passing/IfWildcard.purs
- examples/passing/ImplicitEmptyImport.purs
- examples/passing/Import.purs
- examples/passing/Import/M1.purs
- examples/passing/Import/M2.purs
- examples/passing/ImportExplicit.purs
- examples/passing/ImportExplicit/M1.purs
- examples/passing/ImportHiding.purs
- examples/passing/ImportQualified.purs
- examples/passing/ImportQualified/M1.purs
- examples/passing/InferRecFunWithConstrainedArgument.purs
- examples/passing/InstanceBeforeClass.purs
- examples/passing/InstanceSigs.purs
- examples/passing/InstanceSigsGeneral.purs
- examples/passing/IntAndChar.purs
- examples/passing/iota.purs
- examples/passing/JSReserved.purs
- examples/passing/KindedType.purs
- examples/passing/LargeSumType.purs
- examples/passing/Let.purs
- examples/passing/Let2.purs
- examples/passing/LetInInstance.purs
- examples/passing/LetPattern.purs
- examples/passing/LiberalTypeSynonyms.purs
- examples/passing/Match.purs
- examples/passing/Module.purs
- examples/passing/Module/M1.purs
- examples/passing/Module/M2.purs
- examples/passing/ModuleDeps.purs
- examples/passing/ModuleDeps/M1.purs
- examples/passing/ModuleDeps/M2.purs
- examples/passing/ModuleDeps/M3.purs
- examples/passing/ModuleExport.purs
- examples/passing/ModuleExport/A.purs
- examples/passing/ModuleExportDupes.purs
- examples/passing/ModuleExportDupes/A.purs
- examples/passing/ModuleExportDupes/B.purs
- examples/passing/ModuleExportDupes/C.purs
- examples/passing/ModuleExportExcluded.purs
- examples/passing/ModuleExportExcluded/A.purs
- examples/passing/ModuleExportQualified.purs
- examples/passing/ModuleExportQualified/A.purs
- examples/passing/ModuleExportSelf.purs
- examples/passing/ModuleExportSelf/A.purs
- examples/passing/Monad.purs
- examples/passing/MonadState.purs
- examples/passing/MPTCs.purs
- examples/passing/MultiArgFunctions.purs
- examples/passing/MutRec.purs
- examples/passing/MutRec2.purs
- examples/passing/MutRec3.purs
- examples/passing/NakedConstraint.purs
- examples/passing/NamedPatterns.purs
- examples/passing/NegativeBinder.purs
- examples/passing/NegativeIntInRange.purs
- examples/passing/Nested.purs
- examples/passing/NestedRecordUpdate.purs
- examples/passing/NestedRecordUpdateWildcards.purs
- examples/passing/NestedTypeSynonyms.purs
- examples/passing/NestedWhere.purs
- examples/passing/Newtype.purs
- examples/passing/NewtypeClass.purs
- examples/passing/NewtypeEff.purs
- examples/passing/NewtypeInstance.purs
- examples/passing/NewtypeWithRecordUpdate.purs
- examples/passing/NonConflictingExports.purs
- examples/passing/NonConflictingExports/A.purs
- examples/passing/NonOrphanInstanceFunDepExtra.purs
- examples/passing/NonOrphanInstanceFunDepExtra/Lib.purs
- examples/passing/NonOrphanInstanceMulti.purs
- examples/passing/NonOrphanInstanceMulti/Lib.purs
- examples/passing/NumberLiterals.purs
- examples/passing/ObjectGetter.purs
- examples/passing/Objects.purs
- examples/passing/ObjectSynonym.purs
- examples/passing/ObjectUpdate.purs
- examples/passing/ObjectUpdate2.purs
- examples/passing/ObjectUpdater.purs
- examples/passing/ObjectWildcards.purs
- examples/passing/OneConstructor.purs
- examples/passing/OperatorAlias.purs
- examples/passing/OperatorAliasElsewhere.purs
- examples/passing/OperatorAliasElsewhere/Def.purs
- examples/passing/OperatorAssociativity.purs
- examples/passing/OperatorInlining.purs
- examples/passing/Operators.purs
- examples/passing/Operators/Other.purs
- examples/passing/OperatorSections.purs
- examples/passing/OptimizerBug.purs
- examples/passing/OptionalQualified.purs
- examples/passing/OverlappingInstances.purs
- examples/passing/OverlappingInstances2.purs
- examples/passing/OverlappingInstances3.purs
- examples/passing/ParensInType.purs
- examples/passing/ParensInTypedBinder.purs
- examples/passing/PartialFunction.purs
- examples/passing/Patterns.purs
- examples/passing/PendingConflictingImports.purs
- examples/passing/PendingConflictingImports/A.purs
- examples/passing/PendingConflictingImports/B.purs
- examples/passing/PendingConflictingImports2.purs
- examples/passing/PendingConflictingImports2/A.purs
- examples/passing/Person.purs
- examples/passing/PolyLabels.js
- examples/passing/PolyLabels.purs
- examples/passing/PrimedTypeName.purs
- examples/passing/QualifiedNames.purs
- examples/passing/QualifiedNames/Either.purs
- examples/passing/QualifiedQualifiedImports.purs
- examples/passing/Rank2Data.purs
- examples/passing/Rank2Object.purs
- examples/passing/Rank2Types.purs
- examples/passing/Rank2TypeSynonym.purs
- examples/passing/RebindableSyntax.purs
- examples/passing/Recursion.purs
- examples/passing/RedefinedFixity.purs
- examples/passing/RedefinedFixity/M1.purs
- examples/passing/RedefinedFixity/M2.purs
- examples/passing/RedefinedFixity/M3.purs
- examples/passing/ReExportQualified.purs
- examples/passing/ReExportQualified/A.purs
- examples/passing/ReExportQualified/B.purs
- examples/passing/ReExportQualified/C.purs
- examples/passing/ReservedWords.purs
- examples/passing/ResolvableScopeConflict.purs
- examples/passing/ResolvableScopeConflict/A.purs
- examples/passing/ResolvableScopeConflict/B.purs
- examples/passing/ResolvableScopeConflict2.purs
- examples/passing/ResolvableScopeConflict2/A.purs
- examples/passing/ResolvableScopeConflict3.purs
- examples/passing/ResolvableScopeConflict3/A.purs
- examples/passing/RowConstructors.purs
- examples/passing/RowInInstanceHeadDetermined.purs
- examples/passing/RowPolyInstanceContext.purs
- examples/passing/RowsInInstanceContext.purs
- examples/passing/RowUnion.js
- examples/passing/RowUnion.purs
- examples/passing/RuntimeScopeIssue.purs
- examples/passing/s.purs
- examples/passing/ScopedTypeVariables.purs
- examples/passing/Sequence.purs
- examples/passing/SequenceDesugared.purs
- examples/passing/ShadowedModuleName.purs
- examples/passing/ShadowedModuleName/Test.purs
- examples/passing/ShadowedName.purs
- examples/passing/ShadowedRename.purs
- examples/passing/ShadowedTCO.purs
- examples/passing/ShadowedTCOLet.purs
- examples/passing/SignedNumericLiterals.purs
- examples/passing/SolvingAppendSymbol.purs
- examples/passing/SolvingCompareSymbol.purs
- examples/passing/SolvingIsSymbol.purs
- examples/passing/SolvingIsSymbol/Lib.purs
- examples/passing/Stream.purs
- examples/passing/StringEdgeCases.purs
- examples/passing/StringEdgeCases/Records.purs
- examples/passing/StringEdgeCases/Symbols.purs
- examples/passing/StringEscapes.purs
- examples/passing/Superclasses1.purs
- examples/passing/Superclasses3.purs
- examples/passing/TailCall.purs
- examples/passing/TCO.purs
- examples/passing/TCOCase.purs
- examples/passing/Tick.purs
- examples/passing/TopLevelCase.purs
- examples/passing/TransitiveImport.purs
- examples/passing/TransitiveImport/Middle.purs
- examples/passing/TransitiveImport/Test.purs
- examples/passing/TypeClasses.purs
- examples/passing/TypeClassesInOrder.purs
- examples/passing/TypeClassesWithOverlappingTypeVariables.purs
- examples/passing/TypeClassMemberOrderChange.purs
- examples/passing/TypedBinders.purs
- examples/passing/TypeDecl.purs
- examples/passing/TypedWhere.purs
- examples/passing/TypeOperators.purs
- examples/passing/TypeOperators/A.purs
- examples/passing/TypeSynonymInData.purs
- examples/passing/TypeSynonyms.purs
- examples/passing/TypeWildcards.purs
- examples/passing/TypeWildcardsRecordExtension.purs
- examples/passing/TypeWithoutParens.purs
- examples/passing/TypeWithoutParens/Lib.purs
- examples/passing/UnderscoreIdent.purs
- examples/passing/UnicodeIdentifier.purs
- examples/passing/UnicodeOperators.purs
- examples/passing/UnicodeType.purs
- examples/passing/UnifyInTypeInstanceLookup.purs
- examples/passing/Unit.purs
- examples/passing/UnknownInTypeClassLookup.purs
- examples/passing/UnsafeCoerce.purs
- examples/passing/UntupledConstraints.purs
- examples/passing/UsableTypeClassMethods.purs
- examples/passing/UTF8Sourcefile.purs
- examples/passing/Where.purs
- examples/passing/WildcardInInstance.purs
- examples/passing/WildcardType.purs
- examples/psci/BasicEval.purs
- examples/psci/Multiline.purs
- examples/warning/2140.purs
- examples/warning/2383.purs
- examples/warning/2411.purs
- examples/warning/2542.purs
- examples/warning/CustomWarning.purs
- examples/warning/CustomWarning2.purs
- examples/warning/CustomWarning3.purs
- examples/warning/DuplicateExportRef.purs
- examples/warning/DuplicateImport.purs
- examples/warning/DuplicateImportRef.purs
- examples/warning/DuplicateSelectiveImport.purs
- examples/warning/HidingImport.purs
- examples/warning/ImplicitImport.purs
- examples/warning/ImplicitQualifiedImport.purs
- examples/warning/MissingTypeDeclaration.purs
- examples/warning/NewtypeInstance.purs
- examples/warning/NewtypeInstance2.purs
- examples/warning/NewtypeInstance3.purs
- examples/warning/NewtypeInstance4.purs
- examples/warning/OverlappingInstances.purs
- examples/warning/OverlappingPattern.purs
- examples/warning/ScopeShadowing.purs
- examples/warning/ShadowedBinderPatternGuard.purs
- examples/warning/ShadowedNameParens.purs
- examples/warning/ShadowedTypeVar.purs
- examples/warning/UnnecessaryFFIModule.js
- examples/warning/UnnecessaryFFIModule.purs
- examples/warning/UnusedDctorExplicitImport.purs
- examples/warning/UnusedDctorImportAll.purs
- examples/warning/UnusedDctorImportExplicit.purs
- examples/warning/UnusedExplicitImport.purs
- examples/warning/UnusedExplicitImportTypeOp.purs
- examples/warning/UnusedExplicitImportTypeOp/Lib.purs
- examples/warning/UnusedExplicitImportValOp.purs
- examples/warning/UnusedFFIImplementations.js
- examples/warning/UnusedFFIImplementations.purs
- examples/warning/UnusedImport.purs
- examples/warning/UnusedTypeVar.purs
- examples/warning/WildcardInferredType.purs
INSTALL.md
README.md
stack.yaml
+ tests/purs/docs/bower.json
+ tests/purs/docs/bower_components/purescript-prelude/src/Prelude.purs
+ tests/purs/docs/output/ConstrainedArgument/externs.json
+ tests/purs/docs/output/ConstrainedArgument/index.js
+ tests/purs/docs/resolutions.json
+ tests/purs/docs/src/ChildDeclOrder.purs
+ tests/purs/docs/src/Clash.purs
+ tests/purs/docs/src/Clash1.purs
+ tests/purs/docs/src/Clash1a.purs
+ tests/purs/docs/src/Clash2.purs
+ tests/purs/docs/src/Clash2a.purs
+ tests/purs/docs/src/ConstrainedArgument.purs
+ tests/purs/docs/src/DeclOrder.purs
+ tests/purs/docs/src/DeclOrderNoExportList.purs
+ tests/purs/docs/src/Desugar.purs
+ tests/purs/docs/src/DocComments.purs
+ tests/purs/docs/src/DuplicateNames.purs
+ tests/purs/docs/src/Example.purs
+ tests/purs/docs/src/Example2.purs
+ tests/purs/docs/src/ExplicitExport.purs
+ tests/purs/docs/src/ExplicitTypeSignatures.purs
+ tests/purs/docs/src/ImportedTwice.purs
+ tests/purs/docs/src/ImportedTwiceA.purs
+ tests/purs/docs/src/ImportedTwiceB.purs
+ tests/purs/docs/src/MultiVirtual.purs
+ tests/purs/docs/src/MultiVirtual1.purs
+ tests/purs/docs/src/MultiVirtual2.purs
+ tests/purs/docs/src/MultiVirtual3.purs
+ tests/purs/docs/src/NewOperators.purs
+ tests/purs/docs/src/NewOperators2.purs
+ tests/purs/docs/src/NotAllCtors.purs
+ tests/purs/docs/src/PrimSubmodules.purs
+ tests/purs/docs/src/ReExportedTypeClass.purs
+ tests/purs/docs/src/SolitaryTypeClassMember.purs
+ tests/purs/docs/src/SomeTypeClass.purs
+ tests/purs/docs/src/Transitive1.purs
+ tests/purs/docs/src/Transitive2.purs
+ tests/purs/docs/src/Transitive3.purs
+ tests/purs/docs/src/TypeClassWithFunDeps.purs
+ tests/purs/docs/src/TypeClassWithoutMembers.purs
+ tests/purs/docs/src/TypeClassWithoutMembersIntermediate.purs
+ tests/purs/docs/src/TypeLevelString.purs
+ tests/purs/docs/src/TypeOpAliases.purs
+ tests/purs/docs/src/UTF8.purs
+ tests/purs/docs/src/Virtual.purs
+ tests/purs/failing/1071.purs
+ tests/purs/failing/1169.purs
+ tests/purs/failing/1175.purs
+ tests/purs/failing/1310.purs
+ tests/purs/failing/1570.purs
+ tests/purs/failing/1733.purs
+ tests/purs/failing/1733/Thingy.purs
+ tests/purs/failing/1825.purs
+ tests/purs/failing/1881.purs
+ tests/purs/failing/2128-class.purs
+ tests/purs/failing/2128-instance.purs
+ tests/purs/failing/2197-shouldFail.purs
+ tests/purs/failing/2197-shouldFail2.purs
+ tests/purs/failing/2378.purs
+ tests/purs/failing/2378/Lib.purs
+ tests/purs/failing/2379.purs
+ tests/purs/failing/2379/Lib.purs
+ tests/purs/failing/2434.purs
+ tests/purs/failing/2534.purs
+ tests/purs/failing/2542.purs
+ tests/purs/failing/2567.purs
+ tests/purs/failing/2601.purs
+ tests/purs/failing/2616.purs
+ tests/purs/failing/2806.purs
+ tests/purs/failing/2874-forall.purs
+ tests/purs/failing/2874-forall2.purs
+ tests/purs/failing/2874-wildcard.purs
+ tests/purs/failing/2947.purs
+ tests/purs/failing/3132.purs
+ tests/purs/failing/3275-BindingGroupErrorPos.purs
+ tests/purs/failing/3275-DataBindingGroupErrorPos.purs
+ tests/purs/failing/3335-TypeOpAssociativityError.purs
+ tests/purs/failing/365.purs
+ tests/purs/failing/438.purs
+ tests/purs/failing/881.purs
+ tests/purs/failing/AnonArgument1.purs
+ tests/purs/failing/AnonArgument2.purs
+ tests/purs/failing/AnonArgument3.purs
+ tests/purs/failing/ArgLengthMismatch.purs
+ tests/purs/failing/Arrays.purs
+ tests/purs/failing/ArrayType.purs
+ tests/purs/failing/BindInDo-2.purs
+ tests/purs/failing/BindInDo.purs
+ tests/purs/failing/CannotDeriveNewtypeForData.purs
+ tests/purs/failing/CaseBinderLengthsDiffer.purs
+ tests/purs/failing/CaseDoesNotMatchAllConstructorArgs.purs
+ tests/purs/failing/ConflictingExports.purs
+ tests/purs/failing/ConflictingExports/A.purs
+ tests/purs/failing/ConflictingExports/B.purs
+ tests/purs/failing/ConflictingImports.purs
+ tests/purs/failing/ConflictingImports/A.purs
+ tests/purs/failing/ConflictingImports/B.purs
+ tests/purs/failing/ConflictingImports2.purs
+ tests/purs/failing/ConflictingImports2/A.purs
+ tests/purs/failing/ConflictingImports2/B.purs
+ tests/purs/failing/ConflictingQualifiedImports.purs
+ tests/purs/failing/ConflictingQualifiedImports/A.purs
+ tests/purs/failing/ConflictingQualifiedImports/B.purs
+ tests/purs/failing/ConflictingQualifiedImports2.purs
+ tests/purs/failing/ConflictingQualifiedImports2/A.purs
+ tests/purs/failing/ConflictingQualifiedImports2/B.purs
+ tests/purs/failing/ConstraintFailure.purs
+ tests/purs/failing/ConstraintInference.purs
+ tests/purs/failing/DctorOperatorAliasExport.purs
+ tests/purs/failing/DeclConflictClassCtor.purs
+ tests/purs/failing/DeclConflictClassSynonym.purs
+ tests/purs/failing/DeclConflictClassType.purs
+ tests/purs/failing/DeclConflictCtorClass.purs
+ tests/purs/failing/DeclConflictCtorCtor.purs
+ tests/purs/failing/DeclConflictDuplicateCtor.purs
+ tests/purs/failing/DeclConflictSynonymClass.purs
+ tests/purs/failing/DeclConflictSynonymType.purs
+ tests/purs/failing/DeclConflictTypeClass.purs
+ tests/purs/failing/DeclConflictTypeSynonym.purs
+ tests/purs/failing/DeclConflictTypeType.purs
+ tests/purs/failing/DiffKindsSameName.purs
+ tests/purs/failing/DiffKindsSameName/LibA.purs
+ tests/purs/failing/DiffKindsSameName/LibB.purs
+ tests/purs/failing/Do.purs
+ tests/purs/failing/DoNotSuggestComposition.purs
+ tests/purs/failing/DoNotSuggestComposition2.purs
+ tests/purs/failing/DuplicateDeclarationsInLet.purs
+ tests/purs/failing/DuplicateInstance.purs
+ tests/purs/failing/DuplicateModule.purs
+ tests/purs/failing/DuplicateModule/M1.purs
+ tests/purs/failing/DuplicateProperties.purs
+ tests/purs/failing/DuplicateTypeClass.purs
+ tests/purs/failing/DuplicateTypeVars.purs
+ tests/purs/failing/EmptyCase.purs
+ tests/purs/failing/EmptyClass.purs
+ tests/purs/failing/EmptyDo.purs
+ tests/purs/failing/ExpectedWildcard.purs
+ tests/purs/failing/ExportConflictClass.purs
+ tests/purs/failing/ExportConflictClass/A.purs
+ tests/purs/failing/ExportConflictClass/B.purs
+ tests/purs/failing/ExportConflictCtor.purs
+ tests/purs/failing/ExportConflictCtor/A.purs
+ tests/purs/failing/ExportConflictCtor/B.purs
+ tests/purs/failing/ExportConflictType.purs
+ tests/purs/failing/ExportConflictType/A.purs
+ tests/purs/failing/ExportConflictType/B.purs
+ tests/purs/failing/ExportConflictTypeOp.purs
+ tests/purs/failing/ExportConflictTypeOp/A.purs
+ tests/purs/failing/ExportConflictTypeOp/B.purs
+ tests/purs/failing/ExportConflictValue.purs
+ tests/purs/failing/ExportConflictValue/A.purs
+ tests/purs/failing/ExportConflictValue/B.purs
+ tests/purs/failing/ExportConflictValueOp.purs
+ tests/purs/failing/ExportConflictValueOp/A.purs
+ tests/purs/failing/ExportConflictValueOp/B.purs
+ tests/purs/failing/ExportExplicit.purs
+ tests/purs/failing/ExportExplicit1.purs
+ tests/purs/failing/ExportExplicit1/M1.purs
+ tests/purs/failing/ExportExplicit2.purs
+ tests/purs/failing/ExportExplicit3.purs
+ tests/purs/failing/ExportExplicit3/M1.purs
+ tests/purs/failing/ExtraneousClassMember.purs
+ tests/purs/failing/ExtraRecordField.purs
+ tests/purs/failing/Foldable.purs
+ tests/purs/failing/Generalization1.purs
+ tests/purs/failing/Generalization2.purs
+ tests/purs/failing/ImportExplicit.purs
+ tests/purs/failing/ImportExplicit/M1.purs
+ tests/purs/failing/ImportExplicit2.purs
+ tests/purs/failing/ImportExplicit2/M1.purs
+ tests/purs/failing/ImportHidingModule.purs
+ tests/purs/failing/ImportHidingModule/A.purs
+ tests/purs/failing/ImportHidingModule/B.purs
+ tests/purs/failing/ImportModule.purs
+ tests/purs/failing/ImportModule/M2.purs
+ tests/purs/failing/InfiniteKind.purs
+ tests/purs/failing/InfiniteKind2.purs
+ tests/purs/failing/InfiniteType.purs
+ tests/purs/failing/InstanceChainBothUnknownAndMatch.purs
+ tests/purs/failing/InstanceChainSkolemUnknownMatch.purs
+ tests/purs/failing/InstanceExport.purs
+ tests/purs/failing/InstanceExport/InstanceExport.purs
+ tests/purs/failing/InstanceSigsBodyIncorrect.purs
+ tests/purs/failing/InstanceSigsDifferentTypes.purs
+ tests/purs/failing/InstanceSigsIncorrectType.purs
+ tests/purs/failing/InstanceSigsOrphanTypeDeclaration.purs
+ tests/purs/failing/IntOutOfRange.purs
+ tests/purs/failing/InvalidDerivedInstance.purs
+ tests/purs/failing/InvalidDerivedInstance2.purs
+ tests/purs/failing/InvalidOperatorInBinder.purs
+ tests/purs/failing/KindError.purs
+ tests/purs/failing/KindStar.purs
+ tests/purs/failing/LacksWithSubGoal.purs
+ tests/purs/failing/LeadingZeros1.purs
+ tests/purs/failing/LeadingZeros2.purs
+ tests/purs/failing/Let.purs
+ tests/purs/failing/LetPatterns1.purs
+ tests/purs/failing/LetPatterns2.purs
+ tests/purs/failing/LetPatterns3.purs
+ tests/purs/failing/LetPatterns4.purs
+ tests/purs/failing/MissingClassExport.purs
+ tests/purs/failing/MissingClassMember.purs
+ tests/purs/failing/MissingClassMemberExport.purs
+ tests/purs/failing/MissingFFIImplementations.js
+ tests/purs/failing/MissingFFIImplementations.purs
+ tests/purs/failing/MissingRecordField.purs
+ tests/purs/failing/MixedAssociativityError.purs
+ tests/purs/failing/MPTCs.purs
+ tests/purs/failing/MultipleErrors.purs
+ tests/purs/failing/MultipleErrors2.purs
+ tests/purs/failing/MultipleTypeOpFixities.purs
+ tests/purs/failing/MultipleValueOpFixities.purs
+ tests/purs/failing/MutRec.purs
+ tests/purs/failing/MutRec2.purs
+ tests/purs/failing/NewtypeInstance.purs
+ tests/purs/failing/NewtypeInstance2.purs
+ tests/purs/failing/NewtypeInstance3.purs
+ tests/purs/failing/NewtypeInstance4.purs
+ tests/purs/failing/NewtypeInstance5.purs
+ tests/purs/failing/NewtypeInstance6.purs
+ tests/purs/failing/NewtypeMultiArgs.purs
+ tests/purs/failing/NewtypeMultiCtor.purs
+ tests/purs/failing/NonAssociativeError.purs
+ tests/purs/failing/NonExhaustivePatGuard.purs
+ tests/purs/failing/NullaryAbs.purs
+ tests/purs/failing/Object.purs
+ tests/purs/failing/OperatorAliasNoExport.purs
+ tests/purs/failing/OperatorSections.purs
+ tests/purs/failing/OrphanInstance.purs
+ tests/purs/failing/OrphanInstance/Class.purs
+ tests/purs/failing/OrphanInstanceFunDepCycle.purs
+ tests/purs/failing/OrphanInstanceFunDepCycle/Lib.purs
+ tests/purs/failing/OrphanInstanceNullary.purs
+ tests/purs/failing/OrphanInstanceNullary/Lib.purs
+ tests/purs/failing/OrphanInstanceWithDetermined.purs
+ tests/purs/failing/OrphanInstanceWithDetermined/Lib.purs
+ tests/purs/failing/OrphanTypeDecl.purs
+ tests/purs/failing/OverlapAcrossModules.purs
+ tests/purs/failing/OverlapAcrossModules/Class.purs
+ tests/purs/failing/OverlapAcrossModules/X.purs
+ tests/purs/failing/OverlappingArguments.purs
+ tests/purs/failing/OverlappingBinders.purs
+ tests/purs/failing/OverlappingInstances.purs
+ tests/purs/failing/OverlappingVars.purs
+ tests/purs/failing/PrimModuleReserved.purs
+ tests/purs/failing/PrimModuleReserved/Prim.purs
+ tests/purs/failing/PrimRow.purs
+ tests/purs/failing/PrimSubModuleReserved.purs
+ tests/purs/failing/PrimSubModuleReserved/Prim_Foobar.purs
+ tests/purs/failing/ProgrammableTypeErrors.purs
+ tests/purs/failing/ProgrammableTypeErrorsTypeString.purs
+ tests/purs/failing/Rank2Types.purs
+ tests/purs/failing/RequiredHiddenType.purs
+ tests/purs/failing/Reserved.purs
+ tests/purs/failing/RowConstructors1.purs
+ tests/purs/failing/RowConstructors2.purs
+ tests/purs/failing/RowConstructors3.purs
+ tests/purs/failing/RowInInstanceNotDetermined0.purs
+ tests/purs/failing/RowInInstanceNotDetermined1.purs
+ tests/purs/failing/RowInInstanceNotDetermined2.purs
+ tests/purs/failing/RowLacks.purs
+ tests/purs/failing/SkolemEscape.purs
+ tests/purs/failing/SkolemEscape2.purs
+ tests/purs/failing/SuggestComposition.purs
+ tests/purs/failing/Superclasses1.purs
+ tests/purs/failing/Superclasses2.purs
+ tests/purs/failing/Superclasses3.purs
+ tests/purs/failing/Superclasses5.purs
+ tests/purs/failing/TooFewClassInstanceArgs.purs
+ tests/purs/failing/TopLevelCaseNoArgs.purs
+ tests/purs/failing/TransitiveDctorExport.purs
+ tests/purs/failing/TransitiveKindExport.purs
+ tests/purs/failing/TransitiveSynonymExport.purs
+ tests/purs/failing/TypeClasses2.purs
+ tests/purs/failing/TypedBinders.purs
+ tests/purs/failing/TypedBinders2.purs
+ tests/purs/failing/TypedBinders3.purs
+ tests/purs/failing/TypedHole.purs
+ tests/purs/failing/TypeError.purs
+ tests/purs/failing/TypeOperatorAliasNoExport.purs
+ tests/purs/failing/TypeSynonyms.purs
+ tests/purs/failing/TypeSynonyms2.purs
+ tests/purs/failing/TypeSynonyms3.purs
+ tests/purs/failing/TypeSynonyms4.purs
+ tests/purs/failing/TypeSynonyms5.purs
+ tests/purs/failing/TypeWildcards1.purs
+ tests/purs/failing/TypeWildcards2.purs
+ tests/purs/failing/TypeWildcards3.purs
+ tests/purs/failing/UnderscoreModuleName.purs
+ tests/purs/failing/UnknownType.purs
+ tests/purs/failing/UnusableTypeClassMethod.purs
+ tests/purs/failing/UnusableTypeClassMethodConflictingIdent.purs
+ tests/purs/failing/UnusableTypeClassMethodSynonym.purs
+ tests/purs/passing/1110.purs
+ tests/purs/passing/1185.purs
+ tests/purs/passing/1335.purs
+ tests/purs/passing/1570.purs
+ tests/purs/passing/1664.purs
+ tests/purs/passing/1697.purs
+ tests/purs/passing/1807.purs
+ tests/purs/passing/1881.purs
+ tests/purs/passing/1991.purs
+ tests/purs/passing/2018.purs
+ tests/purs/passing/2018/A.purs
+ tests/purs/passing/2018/B.purs
+ tests/purs/passing/2049.purs
+ tests/purs/passing/2136.purs
+ tests/purs/passing/2138.purs
+ tests/purs/passing/2138/Lib.purs
+ tests/purs/passing/2172.js
+ tests/purs/passing/2172.purs
+ tests/purs/passing/2197-1.purs
+ tests/purs/passing/2197-2.purs
+ tests/purs/passing/2252.purs
+ tests/purs/passing/2288.purs
+ tests/purs/passing/2378.purs
+ tests/purs/passing/2438.purs
+ tests/purs/passing/2609.purs
+ tests/purs/passing/2609/Eg.purs
+ tests/purs/passing/2616.purs
+ tests/purs/passing/2626.purs
+ tests/purs/passing/2663.purs
+ tests/purs/passing/2689.purs
+ tests/purs/passing/2756.purs
+ tests/purs/passing/2787.purs
+ tests/purs/passing/2795.purs
+ tests/purs/passing/2803.purs
+ tests/purs/passing/2806.purs
+ tests/purs/passing/2947.purs
+ tests/purs/passing/2958.purs
+ tests/purs/passing/2972.purs
+ tests/purs/passing/3114.purs
+ tests/purs/passing/3114/VendoredVariant.purs
+ tests/purs/passing/3125.purs
+ tests/purs/passing/3187-UnusedNameClash.purs
+ tests/purs/passing/652.purs
+ tests/purs/passing/810.purs
+ tests/purs/passing/862.purs
+ tests/purs/passing/922.purs
+ tests/purs/passing/Ado.purs
+ tests/purs/passing/AppendInReverse.purs
+ tests/purs/passing/Applicative.purs
+ tests/purs/passing/ArrayType.purs
+ tests/purs/passing/Auto.purs
+ tests/purs/passing/AutoPrelude.purs
+ tests/purs/passing/AutoPrelude2.purs
+ tests/purs/passing/BindersInFunctions.purs
+ tests/purs/passing/BindingGroups.purs
+ tests/purs/passing/BlockString.purs
+ tests/purs/passing/CaseInDo.purs
+ tests/purs/passing/CaseInputWildcard.purs
+ tests/purs/passing/CaseMultipleExpressions.purs
+ tests/purs/passing/CaseStatement.purs
+ tests/purs/passing/CheckFunction.purs
+ tests/purs/passing/CheckSynonymBug.purs
+ tests/purs/passing/CheckTypeClass.purs
+ tests/purs/passing/Church.purs
+ tests/purs/passing/ClassRefSyntax.purs
+ tests/purs/passing/ClassRefSyntax/Lib.purs
+ tests/purs/passing/Collatz.purs
+ tests/purs/passing/Comparisons.purs
+ tests/purs/passing/Conditional.purs
+ tests/purs/passing/Console.purs
+ tests/purs/passing/ConstraintInference.purs
+ tests/purs/passing/ConstraintParens.purs
+ tests/purs/passing/ConstraintParsingIssue.purs
+ tests/purs/passing/ContextSimplification.purs
+ tests/purs/passing/DataAndType.purs
+ tests/purs/passing/DataConsClassConsOverlapOk.purs
+ tests/purs/passing/DctorName.purs
+ tests/purs/passing/DctorOperatorAlias.purs
+ tests/purs/passing/DctorOperatorAlias/List.purs
+ tests/purs/passing/DeepArrayBinder.purs
+ tests/purs/passing/DeepCase.purs
+ tests/purs/passing/DeriveNewtype.purs
+ tests/purs/passing/DeriveWithNestedSynonyms.purs
+ tests/purs/passing/Deriving.purs
+ tests/purs/passing/DerivingFunctor.purs
+ tests/purs/passing/Do.purs
+ tests/purs/passing/Dollar.purs
+ tests/purs/passing/DuplicateProperties.purs
+ tests/purs/passing/EffFn.js
+ tests/purs/passing/EffFn.purs
+ tests/purs/passing/EmptyDataDecls.purs
+ tests/purs/passing/EmptyRow.purs
+ tests/purs/passing/EmptyTypeClass.purs
+ tests/purs/passing/EntailsKindedType.purs
+ tests/purs/passing/Eq1Deriving.purs
+ tests/purs/passing/Eq1InEqDeriving.purs
+ tests/purs/passing/EqOrd.purs
+ tests/purs/passing/ExplicitImportReExport.purs
+ tests/purs/passing/ExplicitImportReExport/Bar.purs
+ tests/purs/passing/ExplicitImportReExport/Foo.purs
+ tests/purs/passing/ExplicitOperatorSections.purs
+ tests/purs/passing/ExportedInstanceDeclarations.purs
+ tests/purs/passing/ExportExplicit.purs
+ tests/purs/passing/ExportExplicit/M1.purs
+ tests/purs/passing/ExportExplicit2.purs
+ tests/purs/passing/ExportExplicit2/M1.purs
+ tests/purs/passing/ExtendedInfixOperators.purs
+ tests/purs/passing/Fib.purs
+ tests/purs/passing/FieldConsPuns.purs
+ tests/purs/passing/FieldPuns.purs
+ tests/purs/passing/FinalTagless.purs
+ tests/purs/passing/ForeignKind.purs
+ tests/purs/passing/ForeignKind/Lib.purs
+ tests/purs/passing/FunctionalDependencies.purs
+ tests/purs/passing/Functions.purs
+ tests/purs/passing/Functions2.purs
+ tests/purs/passing/FunctionScope.purs
+ tests/purs/passing/FunWithFunDeps.js
+ tests/purs/passing/FunWithFunDeps.purs
+ tests/purs/passing/Generalization1.purs
+ tests/purs/passing/GenericsRep.purs
+ tests/purs/passing/Guards.purs
+ tests/purs/passing/HasOwnProperty.purs
+ tests/purs/passing/HoistError.purs
+ tests/purs/passing/IfThenElseMaybe.purs
+ tests/purs/passing/IfWildcard.purs
+ tests/purs/passing/ImplicitEmptyImport.purs
+ tests/purs/passing/Import.purs
+ tests/purs/passing/Import/M1.purs
+ tests/purs/passing/Import/M2.purs
+ tests/purs/passing/ImportExplicit.purs
+ tests/purs/passing/ImportExplicit/M1.purs
+ tests/purs/passing/ImportHiding.purs
+ tests/purs/passing/ImportQualified.purs
+ tests/purs/passing/ImportQualified/M1.purs
+ tests/purs/passing/InferRecFunWithConstrainedArgument.purs
+ tests/purs/passing/InstanceBeforeClass.purs
+ tests/purs/passing/InstanceChain.purs
+ tests/purs/passing/InstanceSigs.purs
+ tests/purs/passing/InstanceSigsGeneral.purs
+ tests/purs/passing/IntAndChar.purs
+ tests/purs/passing/iota.purs
+ tests/purs/passing/JSReserved.purs
+ tests/purs/passing/KindedType.purs
+ tests/purs/passing/LargeSumType.purs
+ tests/purs/passing/Let.purs
+ tests/purs/passing/Let2.purs
+ tests/purs/passing/LetInInstance.purs
+ tests/purs/passing/LetPattern.purs
+ tests/purs/passing/LiberalTypeSynonyms.purs
+ tests/purs/passing/Match.purs
+ tests/purs/passing/Module.purs
+ tests/purs/passing/Module/M1.purs
+ tests/purs/passing/Module/M2.purs
+ tests/purs/passing/ModuleDeps.purs
+ tests/purs/passing/ModuleDeps/M1.purs
+ tests/purs/passing/ModuleDeps/M2.purs
+ tests/purs/passing/ModuleDeps/M3.purs
+ tests/purs/passing/ModuleExport.purs
+ tests/purs/passing/ModuleExport/A.purs
+ tests/purs/passing/ModuleExportDupes.purs
+ tests/purs/passing/ModuleExportDupes/A.purs
+ tests/purs/passing/ModuleExportDupes/B.purs
+ tests/purs/passing/ModuleExportDupes/C.purs
+ tests/purs/passing/ModuleExportExcluded.purs
+ tests/purs/passing/ModuleExportExcluded/A.purs
+ tests/purs/passing/ModuleExportQualified.purs
+ tests/purs/passing/ModuleExportQualified/A.purs
+ tests/purs/passing/ModuleExportSelf.purs
+ tests/purs/passing/ModuleExportSelf/A.purs
+ tests/purs/passing/Monad.purs
+ tests/purs/passing/MonadState.purs
+ tests/purs/passing/MPTCs.purs
+ tests/purs/passing/MultiArgFunctions.purs
+ tests/purs/passing/MutRec.purs
+ tests/purs/passing/MutRec2.purs
+ tests/purs/passing/MutRec3.purs
+ tests/purs/passing/NakedConstraint.purs
+ tests/purs/passing/NamedPatterns.purs
+ tests/purs/passing/NegativeBinder.purs
+ tests/purs/passing/NegativeIntInRange.purs
+ tests/purs/passing/Nested.purs
+ tests/purs/passing/NestedRecordUpdate.purs
+ tests/purs/passing/NestedRecordUpdateWildcards.purs
+ tests/purs/passing/NestedTypeSynonyms.purs
+ tests/purs/passing/NestedWhere.purs
+ tests/purs/passing/NewConsClass.purs
+ tests/purs/passing/Newtype.purs
+ tests/purs/passing/NewtypeClass.purs
+ tests/purs/passing/NewtypeEff.purs
+ tests/purs/passing/NewtypeInstance.purs
+ tests/purs/passing/NewtypeWithRecordUpdate.purs
+ tests/purs/passing/NonConflictingExports.purs
+ tests/purs/passing/NonConflictingExports/A.purs
+ tests/purs/passing/NonOrphanInstanceFunDepExtra.purs
+ tests/purs/passing/NonOrphanInstanceFunDepExtra/Lib.purs
+ tests/purs/passing/NonOrphanInstanceMulti.purs
+ tests/purs/passing/NonOrphanInstanceMulti/Lib.purs
+ tests/purs/passing/NumberLiterals.purs
+ tests/purs/passing/ObjectGetter.purs
+ tests/purs/passing/Objects.purs
+ tests/purs/passing/ObjectSynonym.purs
+ tests/purs/passing/ObjectUpdate.purs
+ tests/purs/passing/ObjectUpdate2.purs
+ tests/purs/passing/ObjectUpdater.purs
+ tests/purs/passing/ObjectWildcards.purs
+ tests/purs/passing/OneConstructor.purs
+ tests/purs/passing/OperatorAlias.purs
+ tests/purs/passing/OperatorAliasElsewhere.purs
+ tests/purs/passing/OperatorAliasElsewhere/Def.purs
+ tests/purs/passing/OperatorAssociativity.purs
+ tests/purs/passing/OperatorInlining.purs
+ tests/purs/passing/Operators.purs
+ tests/purs/passing/Operators/Other.purs
+ tests/purs/passing/OperatorSections.purs
+ tests/purs/passing/OptimizerBug.purs
+ tests/purs/passing/OptionalQualified.purs
+ tests/purs/passing/Ord1Deriving.purs
+ tests/purs/passing/Ord1InOrdDeriving.purs
+ tests/purs/passing/ParensInType.purs
+ tests/purs/passing/ParensInTypedBinder.purs
+ tests/purs/passing/PartialFunction.purs
+ tests/purs/passing/Patterns.purs
+ tests/purs/passing/PendingConflictingImports.purs
+ tests/purs/passing/PendingConflictingImports/A.purs
+ tests/purs/passing/PendingConflictingImports/B.purs
+ tests/purs/passing/PendingConflictingImports2.purs
+ tests/purs/passing/PendingConflictingImports2/A.purs
+ tests/purs/passing/Person.purs
+ tests/purs/passing/PolyLabels.js
+ tests/purs/passing/PolyLabels.purs
+ tests/purs/passing/PrimedTypeName.purs
+ tests/purs/passing/QualifiedNames.purs
+ tests/purs/passing/QualifiedNames/Either.purs
+ tests/purs/passing/QualifiedQualifiedImports.purs
+ tests/purs/passing/Rank2Data.purs
+ tests/purs/passing/Rank2Object.purs
+ tests/purs/passing/Rank2Types.purs
+ tests/purs/passing/Rank2TypeSynonym.purs
+ tests/purs/passing/RebindableSyntax.purs
+ tests/purs/passing/Recursion.purs
+ tests/purs/passing/RedefinedFixity.purs
+ tests/purs/passing/RedefinedFixity/M1.purs
+ tests/purs/passing/RedefinedFixity/M2.purs
+ tests/purs/passing/RedefinedFixity/M3.purs
+ tests/purs/passing/ReExportQualified.purs
+ tests/purs/passing/ReExportQualified/A.purs
+ tests/purs/passing/ReExportQualified/B.purs
+ tests/purs/passing/ReExportQualified/C.purs
+ tests/purs/passing/ReservedWords.purs
+ tests/purs/passing/ResolvableScopeConflict.purs
+ tests/purs/passing/ResolvableScopeConflict/A.purs
+ tests/purs/passing/ResolvableScopeConflict/B.purs
+ tests/purs/passing/ResolvableScopeConflict2.purs
+ tests/purs/passing/ResolvableScopeConflict2/A.purs
+ tests/purs/passing/ResolvableScopeConflict3.purs
+ tests/purs/passing/ResolvableScopeConflict3/A.purs
+ tests/purs/passing/RowConstructors.purs
+ tests/purs/passing/RowInInstanceHeadDetermined.purs
+ tests/purs/passing/RowLacks.purs
+ tests/purs/passing/RowNub.purs
+ tests/purs/passing/RowPolyInstanceContext.purs
+ tests/purs/passing/RowsInInstanceContext.purs
+ tests/purs/passing/RowUnion.js
+ tests/purs/passing/RowUnion.purs
+ tests/purs/passing/RunFnInline.purs
+ tests/purs/passing/RuntimeScopeIssue.purs
+ tests/purs/passing/s.purs
+ tests/purs/passing/ScopedTypeVariables.purs
+ tests/purs/passing/Sequence.purs
+ tests/purs/passing/SequenceDesugared.purs
+ tests/purs/passing/ShadowedModuleName.purs
+ tests/purs/passing/ShadowedModuleName/Test.purs
+ tests/purs/passing/ShadowedName.purs
+ tests/purs/passing/ShadowedRename.purs
+ tests/purs/passing/ShadowedTCO.purs
+ tests/purs/passing/ShadowedTCOLet.purs
+ tests/purs/passing/SignedNumericLiterals.purs
+ tests/purs/passing/SolvingAppendSymbol.purs
+ tests/purs/passing/SolvingCompareSymbol.purs
+ tests/purs/passing/SolvingIsSymbol.purs
+ tests/purs/passing/SolvingIsSymbol/Lib.purs
+ tests/purs/passing/Stream.purs
+ tests/purs/passing/StringEdgeCases.purs
+ tests/purs/passing/StringEdgeCases/Records.purs
+ tests/purs/passing/StringEdgeCases/Symbols.purs
+ tests/purs/passing/StringEscapes.purs
+ tests/purs/passing/Superclasses1.purs
+ tests/purs/passing/Superclasses3.purs
+ tests/purs/passing/TailCall.purs
+ tests/purs/passing/TCO.purs
+ tests/purs/passing/TCOCase.purs
+ tests/purs/passing/Tick.purs
+ tests/purs/passing/TopLevelCase.purs
+ tests/purs/passing/TransitiveImport.purs
+ tests/purs/passing/TransitiveImport/Middle.purs
+ tests/purs/passing/TransitiveImport/Test.purs
+ tests/purs/passing/TypeClasses.purs
+ tests/purs/passing/TypeClassesInOrder.purs
+ tests/purs/passing/TypeClassesWithOverlappingTypeVariables.purs
+ tests/purs/passing/TypeClassMemberOrderChange.purs
+ tests/purs/passing/TypedBinders.purs
+ tests/purs/passing/TypeDecl.purs
+ tests/purs/passing/TypedWhere.purs
+ tests/purs/passing/TypeOperators.purs
+ tests/purs/passing/TypeOperators/A.purs
+ tests/purs/passing/TypeSynonymInData.purs
+ tests/purs/passing/TypeSynonyms.purs
+ tests/purs/passing/TypeWildcards.purs
+ tests/purs/passing/TypeWildcardsRecordExtension.purs
+ tests/purs/passing/TypeWithoutParens.purs
+ tests/purs/passing/TypeWithoutParens/Lib.purs
+ tests/purs/passing/UnderscoreIdent.purs
+ tests/purs/passing/UnicodeIdentifier.purs
+ tests/purs/passing/UnicodeOperators.purs
+ tests/purs/passing/UnicodeType.purs
+ tests/purs/passing/UnifyInTypeInstanceLookup.purs
+ tests/purs/passing/Unit.purs
+ tests/purs/passing/UnknownInTypeClassLookup.purs
+ tests/purs/passing/UnsafeCoerce.purs
+ tests/purs/passing/UntupledConstraints.purs
+ tests/purs/passing/UsableTypeClassMethods.purs
+ tests/purs/passing/UTF8Sourcefile.purs
+ tests/purs/passing/Where.purs
+ tests/purs/passing/WildcardInInstance.purs
+ tests/purs/passing/WildcardType.purs
+ tests/purs/psci/BasicEval.purs
+ tests/purs/psci/Multiline.purs
+ tests/purs/warning/2140.purs
+ tests/purs/warning/2383.purs
+ tests/purs/warning/2411.purs
+ tests/purs/warning/2542.purs
+ tests/purs/warning/CustomWarning.purs
+ tests/purs/warning/CustomWarning2.purs
+ tests/purs/warning/CustomWarning3.purs
+ tests/purs/warning/DuplicateExportRef.purs
+ tests/purs/warning/DuplicateImport.purs
+ tests/purs/warning/DuplicateImportRef.purs
+ tests/purs/warning/DuplicateSelectiveImport.purs
+ tests/purs/warning/HidingImport.purs
+ tests/purs/warning/ImplicitImport.purs
+ tests/purs/warning/ImplicitQualifiedImport.purs
+ tests/purs/warning/ImplicitQualifiedImportReExport.purs
+ tests/purs/warning/MissingTypeDeclaration.purs
+ tests/purs/warning/NewtypeInstance.purs
+ tests/purs/warning/NewtypeInstance2.purs
+ tests/purs/warning/NewtypeInstance3.purs
+ tests/purs/warning/NewtypeInstance4.purs
+ tests/purs/warning/OverlappingPattern.purs
+ tests/purs/warning/ScopeShadowing.purs
+ tests/purs/warning/ScopeShadowing2.purs
+ tests/purs/warning/ShadowedBinderPatternGuard.purs
+ tests/purs/warning/ShadowedNameParens.purs
+ tests/purs/warning/ShadowedTypeVar.purs
+ tests/purs/warning/UnnecessaryFFIModule.js
+ tests/purs/warning/UnnecessaryFFIModule.purs
+ tests/purs/warning/UnusedDctorExplicitImport.purs
+ tests/purs/warning/UnusedDctorImportAll.purs
+ tests/purs/warning/UnusedDctorImportExplicit.purs
+ tests/purs/warning/UnusedExplicitImport.purs
+ tests/purs/warning/UnusedExplicitImportTypeOp.purs
+ tests/purs/warning/UnusedExplicitImportTypeOp/Lib.purs
+ tests/purs/warning/UnusedExplicitImportValOp.purs
+ tests/purs/warning/UnusedFFIImplementations.js
+ tests/purs/warning/UnusedFFIImplementations.purs
+ tests/purs/warning/UnusedImport.purs
+ tests/purs/warning/UnusedTypeVar.purs
+ tests/purs/warning/WildcardInferredType.purs
tests/support/bower.json
+ tests/support/package-lock.json
tests/support/package.json
tests/support/prelude-resolutions.json
tests/support/psci/Sample.purs
tests/support/pscide/src/CompletionSpecDocs.purs
+ tests/support/pscide/src/FindUsage.purs
+ tests/support/pscide/src/FindUsage/Definition.purs
+ tests/support/pscide/src/FindUsage/Recursive.purs
+ tests/support/pscide/src/FindUsage/RecursiveShadowed.purs
+ tests/support/pscide/src/FindUsage/Reexport.purs
tests/support/pscide/src/ImportsSpec.purs
tests/support/pscide/src/ImportsSpec1.purs
tests/support/pscide/src/MatcherSpec.purs
@@ -683,10 +732,11 @@ library
default-extensions: ConstraintKinds DataKinds DeriveFunctor EmptyDataDecls FlexibleContexts KindSignatures LambdaCase MultiParamTypeClasses NoImplicitPrelude PatternGuards PatternSynonyms RankNTypes RecordWildCards OverloadedStrings ScopedTypeVariables TupleSections ViewPatterns
ghc-options: -Wall -O2
build-depends:
- aeson >=1.0 && <1.3
+ Glob >=0.9 && <0.10
+ , aeson >=1.0 && <1.3
, aeson-better-errors >=0.8
- , ansi-terminal >=0.6.2 && <0.7
- , base >=4.8 && <5
+ , ansi-terminal >=0.7.1 && <0.9
+ , base >=4.8 && <4.11
, base-compat >=0.6.0
, blaze-html >=0.8.1 && <0.10
, bower-json >=1.0.0.1 && <1.1
@@ -703,10 +753,7 @@ library
, file-embed
, filepath
, fsnotify >=0.2.1
- , Glob >=0.7 && <0.9
, haskeline >=0.7.0.0
- , http-client >=0.4.30 && <0.6.0
- , http-types
, language-javascript >=0.6.0.9 && <0.7
, lens ==4.*
, lifted-base >=0.2.3 && <0.2.4
@@ -716,8 +763,6 @@ library
, parallel >=3.2 && <3.3
, parsec >=3.1.10
, pattern-arrows >=0.0.2 && <0.1
- , pipes >=4.0.0 && <4.4.0
- , pipes-http
, process >=1.2.0 && <1.7
, protolude >=0.1.6
, regex-tdfa
@@ -763,8 +808,10 @@ library
Language.PureScript.CoreFn.Binders
Language.PureScript.CoreFn.Desugar
Language.PureScript.CoreFn.Expr
+ Language.PureScript.CoreFn.FromJSON
Language.PureScript.CoreFn.Meta
Language.PureScript.CoreFn.Module
+ Language.PureScript.CoreFn.Optimizer
Language.PureScript.CoreFn.ToJSON
Language.PureScript.CoreFn.Traversals
Language.PureScript.CoreImp
@@ -791,6 +838,7 @@ library
Language.PureScript.Docs.RenderedCode.RenderKind
Language.PureScript.Docs.RenderedCode.RenderType
Language.PureScript.Docs.RenderedCode.Types
+ Language.PureScript.Docs.Tags
Language.PureScript.Docs.Types
Language.PureScript.Docs.Utils.MonoidExtras
Language.PureScript.Environment
@@ -810,12 +858,12 @@ library
Language.PureScript.Ide.Logging
Language.PureScript.Ide.Matcher
Language.PureScript.Ide.Prim
- Language.PureScript.Ide.Pursuit
Language.PureScript.Ide.Rebuild
Language.PureScript.Ide.Reexports
Language.PureScript.Ide.SourceFile
Language.PureScript.Ide.State
Language.PureScript.Ide.Types
+ Language.PureScript.Ide.Usage
Language.PureScript.Ide.Util
Language.PureScript.Ide.Watcher
Language.PureScript.Interactive
@@ -833,6 +881,9 @@ library
Language.PureScript.Linter.Exhaustive
Language.PureScript.Linter.Imports
Language.PureScript.Make
+ Language.PureScript.Make.Actions
+ Language.PureScript.Make.BuildPlan
+ Language.PureScript.Make.Monad
Language.PureScript.ModuleDependencies
Language.PureScript.Names
Language.PureScript.Options
@@ -855,6 +906,7 @@ library
Language.PureScript.Publish.Utils
Language.PureScript.Renamer
Language.PureScript.Sugar
+ Language.PureScript.Sugar.AdoNotation
Language.PureScript.Sugar.BindingGroups
Language.PureScript.Sugar.CaseDeclarations
Language.PureScript.Sugar.DoNotation
@@ -897,10 +949,12 @@ executable purs
app
ghc-options: -Wall -O2 -fno-warn-unused-do-bind -threaded -rtsopts -with-rtsopts=-N
build-depends:
- aeson >=1.0 && <1.3
+ Glob >=0.9 && <0.10
+ , aeson >=1.0 && <1.3
, aeson-better-errors >=0.8
- , ansi-terminal >=0.6.2 && <0.7
- , base >=4.8 && <5
+ , ansi-terminal >=0.7.1 && <0.9
+ , ansi-wl-pprint
+ , base >=4.8 && <4.11
, base-compat >=0.6.0
, blaze-html >=0.8.1 && <0.10
, bower-json >=1.0.0.1 && <1.1
@@ -917,9 +971,7 @@ executable purs
, file-embed
, filepath
, fsnotify >=0.2.1
- , Glob >=0.7 && <0.9
, haskeline >=0.7.0.0
- , http-client >=0.4.30 && <0.6.0
, http-types
, language-javascript >=0.6.0.9 && <0.7
, lens ==4.*
@@ -927,13 +979,14 @@ executable purs
, monad-control >=1.0.0.0 && <1.1
, monad-logger >=0.3 && <0.4
, mtl >=2.1.0 && <2.3.0
+ , network
+ , optparse-applicative >=0.13.0
, parallel >=3.2 && <3.3
, parsec >=3.1.10
, pattern-arrows >=0.0.2 && <0.1
- , pipes >=4.0.0 && <4.4.0
- , pipes-http
, process >=1.2.0 && <1.7
, protolude >=0.1.6
+ , purescript
, regex-tdfa
, safe >=0.3.9 && <0.4
, scientific >=0.3.4.9 && <0.4
@@ -952,11 +1005,6 @@ executable purs
, unordered-containers
, utf8-string >=1 && <2
, vector
- , ansi-wl-pprint
- , file-embed
- , network
- , optparse-applicative >=0.13.0
- , purescript
, wai ==3.*
, wai-websockets ==3.*
, warp ==3.*
@@ -970,10 +1018,7 @@ executable purs
Command.Bundle
Command.Compile
Command.Docs
- Command.Docs.Ctags
- Command.Docs.Etags
Command.Docs.Html
- Command.Docs.Tags
Command.Hierarchy
Command.Ide
Command.Publish
@@ -987,12 +1032,15 @@ test-suite tests
main-is: Main.hs
hs-source-dirs:
tests
+ default-extensions: NoImplicitPrelude
ghc-options: -Wall
build-depends:
- aeson >=1.0 && <1.3
+ Glob >=0.9 && <0.10
+ , HUnit
+ , aeson >=1.0 && <1.3
, aeson-better-errors >=0.8
- , ansi-terminal >=0.6.2 && <0.7
- , base >=4.8 && <5
+ , ansi-terminal >=0.7.1 && <0.9
+ , base >=4.8 && <4.11
, base-compat >=0.6.0
, blaze-html >=0.8.1 && <0.10
, bower-json >=1.0.0.1 && <1.1
@@ -1009,10 +1057,9 @@ test-suite tests
, file-embed
, filepath
, fsnotify >=0.2.1
- , Glob >=0.7 && <0.9
, haskeline >=0.7.0.0
- , http-client >=0.4.30 && <0.6.0
- , http-types
+ , hspec
+ , hspec-discover
, language-javascript >=0.6.0.9 && <0.7
, lens ==4.*
, lifted-base >=0.2.3 && <0.2.4
@@ -1022,10 +1069,9 @@ test-suite tests
, parallel >=3.2 && <3.3
, parsec >=3.1.10
, pattern-arrows >=0.0.2 && <0.1
- , pipes >=4.0.0 && <4.4.0
- , pipes-http
, process >=1.2.0 && <1.7
, protolude >=0.1.6
+ , purescript
, regex-tdfa
, safe >=0.3.9 && <0.4
, scientific >=0.3.4.9 && <0.4
@@ -1036,6 +1082,8 @@ test-suite tests
, stm >=0.2.4.0
, stringsearch
, syb
+ , tasty
+ , tasty-hspec
, text
, time
, transformers >=0.3.0 && <0.6
@@ -1044,11 +1092,6 @@ test-suite tests
, unordered-containers
, utf8-string >=1 && <2
, vector
- , purescript
- , hspec
- , hspec-discover
- , HUnit
- , silently
other-modules:
Language.PureScript.Ide.CompletionSpec
Language.PureScript.Ide.FilterSpec
@@ -1059,17 +1102,20 @@ test-suite tests
Language.PureScript.Ide.SourceFileSpec
Language.PureScript.Ide.StateSpec
Language.PureScript.Ide.Test
+ Language.PureScript.Ide.UsageSpec
PscIdeSpec
TestCompiler
+ TestCoreFn
TestDocs
TestHierarchy
+ TestIde
TestPrimDocs
TestPsci
TestPsci.CommandTest
TestPsci.CompletionTest
TestPsci.EvalTest
TestPsci.TestEnv
- TestPscIde
TestPscPublish
TestUtils
+ Paths_purescript
default-language: Haskell2010
diff --git a/src/Language/PureScript/AST/Binders.hs b/src/Language/PureScript/AST/Binders.hs
index 834b4be..82d23e0 100644
--- a/src/Language/PureScript/AST/Binders.hs
+++ b/src/Language/PureScript/AST/Binders.hs
@@ -5,6 +5,8 @@ module Language.PureScript.AST.Binders where
import Prelude.Compat
+import Data.Semigroup
+
import Language.PureScript.AST.SourcePos
import Language.PureScript.AST.Literals
import Language.PureScript.Names
@@ -22,20 +24,20 @@ data Binder
-- |
-- A binder which matches a literal
--
- | LiteralBinder (Literal Binder)
+ | LiteralBinder SourceSpan (Literal Binder)
-- |
-- A binder which binds an identifier
--
- | VarBinder Ident
+ | VarBinder SourceSpan Ident
-- |
-- A binder which matches a data constructor
--
- | ConstructorBinder (Qualified (ProperName 'ConstructorName)) [Binder]
+ | ConstructorBinder SourceSpan (Qualified (ProperName 'ConstructorName)) [Binder]
-- |
-- A operator alias binder. During the rebracketing phase of desugaring,
-- this data constructor will be removed.
--
- | OpBinder (Qualified (OpName 'ValueOpName))
+ | OpBinder SourceSpan (Qualified (OpName 'ValueOpName))
-- |
-- Binary operator application. During the rebracketing phase of desugaring,
-- this data constructor will be removed.
@@ -52,7 +54,7 @@ data Binder
-- |
-- A binder which binds its input to an identifier
--
- | NamedBinder Ident Binder
+ | NamedBinder SourceSpan Ident Binder
-- |
-- A binder with source position information
--
@@ -61,7 +63,110 @@ data Binder
-- A binder with a type annotation
--
| TypedBinder Type Binder
- deriving (Show, Eq, Ord)
+ deriving (Show)
+
+-- Manual Eq and Ord instances for `Binder` were added on 2018-03-05. Comparing
+-- the `SourceSpan` values embedded in some of the data constructors of `Binder`
+-- was expensive. This made exhaustiveness checking observably slow for code
+-- such as the `explode` function in `test/purs/passing/LargeSumTypes.purs`.
+-- Custom instances were written to skip comparing the `SourceSpan` values. Only
+-- the `Ord` instance was needed for the speed-up, but I did not want the `Eq`
+-- to have mismatched behavior.
+instance Eq Binder where
+ (==) NullBinder NullBinder = True</