@@ -10,93 +10,93 @@ import Data.Newtype (unwrap)
1010import Data.Traversable (traverse)
1111import Effect (Effect)
1212import Effect.Class.Console (log)
13−import Purelint.Fix (applyAllFixes)
14−import Purelint.Tidy (formatExpr, formatModule)
15−import Purelint.Rules.MapIdentity (mapIdentityRule)
16−import Purelint.Rules.MapFusion (mapFusionRule)
17−import Purelint.Rules.UseTraverse (useTraverseRule)
18−import Purelint.Rules.ConcatMap (concatMapRule)
19−import Purelint.Rules.NotEqual (notEqualRule)
20−import Purelint.Rules.UseGuard (useGuardRule)
21−import Purelint.Rules.EtaReduce (etaReduceRule)
22−import Purelint.Rules.EtaReduceDecl (etaReduceDeclRule)
23−import Purelint.Rules.RedundantBind (redundantBindRule)
24−import Purelint.Rules.LetToWhere (letToWhereRule)
25−import Purelint.Rules.LetToDo (letToDoRule)
26−import Purelint.Rules.RedundantIf (redundantIfRule)
27−import Purelint.Rules.FunctorLaw (functorLawRule)
28−import Purelint.Rules.UseVoid (useVoidRule)
29−import Purelint.Rules.UseJoin (useJoinRule)
30−import Purelint.Rules.UseAny (useAnyRule)
31−import Purelint.Rules.UseAll (useAllRule)
32−import Purelint.Rules.BooleanSimplify (booleanSimplifyRule)
33−import Purelint.Rules.CollapseLambdas (collapseLambdasRule)
34−import Purelint.Rules.UseConst (useConstRule)
35−import Purelint.Rules.UseDollar (useDollarRule)
36−import Purelint.Rules.UseNull (useNullRule)
37−import Purelint.Rules.UseFromMaybe (useFromMaybeRule)
38−import Purelint.Rules.UseIsJust (useIsJustRule)
39−import Purelint.Rules.UseIsNothing (useIsNothingRule)
40−import Purelint.Rules.UseWhen (useWhenRule)
41−import Purelint.Rules.UseUnless (useUnlessRule)
42−import Purelint.Rules.RedundantFlip (redundantFlipRule)
43−import Purelint.Rules.UseNotElem (useNotElemRule)
44−import Purelint.Rules.UseMinMax (useMinMaxRule)
45−import Purelint.Rules.MonoidIdentity (monoidIdentityRule)
46−import Purelint.Rules.UseFold (useFoldRule)
47−import Purelint.Rules.UseSequence (useSequenceRule)
48−import Purelint.Rules.UseTraverseSequence (useTraverseSequenceRule)
49−import Purelint.Rules.RedundantNot (redundantNotRule)
50−import Purelint.Rules.UseFstSnd (useFstSndRule)
51−import Purelint.Rules.UseMapMaybe (useMapMaybeRule)
52−import Purelint.Rules.UseGuardMaybe (useGuardMaybeRule)
53−import Purelint.Rules.UseMaybeMap (useMaybeMapRule)
54−import Purelint.Rules.UseApplicative (useApplicativeRule)
55−import Purelint.Rules.UseBindFlip (useBindFlipRule)
56−import Purelint.Rules.UseFor (useForRule)
57−import Purelint.Rules.UseUnwrap (useUnwrapRule)
58−import Purelint.Rules.RedundantGuard (redundantGuardRule)
59−import Purelint.Rules.UseComparing (useComparingRule)
60−import Purelint.Rules.UseOn (useOnRule)
61−import Purelint.Rules.UseFindMap (useFindMapRule)
62−import Purelint.Rules.UseLastReverse (useLastReverseRule)
63−import Purelint.Rules.RedundantReverse (redundantReverseRule)
64−import Purelint.Rules.UseBreak (useBreakRule)
65−import Purelint.Rules.UseSpan (useSpanRule)
66−import Purelint.Rules.UseMinimumSort (useMinimumSortRule)
67−import Purelint.Rules.UseBimap (useBimapRule)
68−import Purelint.Rules.UseEitherMap (useEitherMapRule)
69−import Purelint.Rules.EvaluateFst (evaluateFstRule)
70−import Purelint.Rules.EvaluateConst (evaluateConstRule)
71−import Purelint.Rules.UseOr (useOrRule)
72−import Purelint.Rules.UseAnd (useAndRule)
73−import Purelint.Rules.UseFoldMap (useFoldMapRule)
74−import Purelint.Rules.UseFoldMapId (useFoldMapIdRule)
75−import Purelint.Rules.UseApplyFlipped (useApplyFlippedRule)
76−import Purelint.Rules.WhenNot (whenNotRule)
77−import Purelint.Rules.UnlessNot (unlessNotRule)
78−import Purelint.Rules.UseZip (useZipRule)
79−import Purelint.Rules.UseReplicate (useReplicateRule)
80−import Purelint.Rules.UseUncurry (useUncurryRule)
81−import Purelint.Rules.RedundantNegate (redundantNegateRule)
82−import Purelint.Rules.UseFromJust (useFromJustRule)
83−import Purelint.Rules.UseHead (useHeadRule)
84−import Purelint.Rules.RedundantId (redundantIdRule)
85−import Purelint.Rules.NothingBind (nothingBindRule)
86−import Purelint.Rules.UseElemIndex (useElemIndexRule)
87−import Purelint.Rules.MonadLaw (monadLawRule)
88−import Purelint.Rules.EvaluateBool (evaluateBoolRule)
89−import Purelint.Rules.UseFoldBool (useFoldBoolRule)
90−import Purelint.Rules.AlternativeLaw (alternativeLawRule)
91−import Purelint.Rules.EvaluateEither (evaluateEitherRule)
92−import Purelint.Rules.UseCaseOf (useCaseOfRule)
93−import Purelint.Rules.FlattenCase (flattenCaseRule)
94−import Purelint.Rules.UsePatternGuards (usePatternGuardsRule)
95−import Purelint.Rules.RedundantParens (redundantParensRule)
96−import Purelint.Rule (Rule)
97−import Purelint.Runner (runRules, getImportsFromSource, getModuleNames)
98−import Purelint.Imports (hasValue, isPreludeModule)
99−import Purelint.Types (LintResult(..), LintWarning(..), RuleId(..), SourceCode(..), Suggestion(..))
13+import Purslint.Fix (applyAllFixes)
14+import Purslint.Tidy (formatExpr, formatModule)
15+import Purslint.Rules.MapIdentity (mapIdentityRule)
16+import Purslint.Rules.MapFusion (mapFusionRule)
17+import Purslint.Rules.UseTraverse (useTraverseRule)
18+import Purslint.Rules.ConcatMap (concatMapRule)
19+import Purslint.Rules.NotEqual (notEqualRule)
20+import Purslint.Rules.UseGuard (useGuardRule)
21+import Purslint.Rules.EtaReduce (etaReduceRule)
22+import Purslint.Rules.EtaReduceDecl (etaReduceDeclRule)
23+import Purslint.Rules.RedundantBind (redundantBindRule)
24+import Purslint.Rules.LetToWhere (letToWhereRule)
25+import Purslint.Rules.LetToDo (letToDoRule)
26+import Purslint.Rules.RedundantIf (redundantIfRule)
27+import Purslint.Rules.FunctorLaw (functorLawRule)
28+import Purslint.Rules.UseVoid (useVoidRule)
29+import Purslint.Rules.UseJoin (useJoinRule)
30+import Purslint.Rules.UseAny (useAnyRule)
31+import Purslint.Rules.UseAll (useAllRule)
32+import Purslint.Rules.BooleanSimplify (booleanSimplifyRule)
33+import Purslint.Rules.CollapseLambdas (collapseLambdasRule)
34+import Purslint.Rules.UseConst (useConstRule)
35+import Purslint.Rules.UseDollar (useDollarRule)
36+import Purslint.Rules.UseNull (useNullRule)
37+import Purslint.Rules.UseFromMaybe (useFromMaybeRule)
38+import Purslint.Rules.UseIsJust (useIsJustRule)
39+import Purslint.Rules.UseIsNothing (useIsNothingRule)
40+import Purslint.Rules.UseWhen (useWhenRule)
41+import Purslint.Rules.UseUnless (useUnlessRule)
42+import Purslint.Rules.RedundantFlip (redundantFlipRule)
43+import Purslint.Rules.UseNotElem (useNotElemRule)
44+import Purslint.Rules.UseMinMax (useMinMaxRule)
45+import Purslint.Rules.MonoidIdentity (monoidIdentityRule)
46+import Purslint.Rules.UseFold (useFoldRule)
47+import Purslint.Rules.UseSequence (useSequenceRule)
48+import Purslint.Rules.UseTraverseSequence (useTraverseSequenceRule)
49+import Purslint.Rules.RedundantNot (redundantNotRule)
50+import Purslint.Rules.UseFstSnd (useFstSndRule)
51+import Purslint.Rules.UseMapMaybe (useMapMaybeRule)
52+import Purslint.Rules.UseGuardMaybe (useGuardMaybeRule)
53+import Purslint.Rules.UseMaybeMap (useMaybeMapRule)
54+import Purslint.Rules.UseApplicative (useApplicativeRule)
55+import Purslint.Rules.UseBindFlip (useBindFlipRule)
56+import Purslint.Rules.UseFor (useForRule)
57+import Purslint.Rules.UseUnwrap (useUnwrapRule)
58+import Purslint.Rules.RedundantGuard (redundantGuardRule)
59+import Purslint.Rules.UseComparing (useComparingRule)
60+import Purslint.Rules.UseOn (useOnRule)
61+import Purslint.Rules.UseFindMap (useFindMapRule)
62+import Purslint.Rules.UseLastReverse (useLastReverseRule)
63+import Purslint.Rules.RedundantReverse (redundantReverseRule)
64+import Purslint.Rules.UseBreak (useBreakRule)
65+import Purslint.Rules.UseSpan (useSpanRule)
66+import Purslint.Rules.UseMinimumSort (useMinimumSortRule)
67+import Purslint.Rules.UseBimap (useBimapRule)
68+import Purslint.Rules.UseEitherMap (useEitherMapRule)
69+import Purslint.Rules.EvaluateFst (evaluateFstRule)
70+import Purslint.Rules.EvaluateConst (evaluateConstRule)
71+import Purslint.Rules.UseOr (useOrRule)
72+import Purslint.Rules.UseAnd (useAndRule)
73+import Purslint.Rules.UseFoldMap (useFoldMapRule)
74+import Purslint.Rules.UseFoldMapId (useFoldMapIdRule)
75+import Purslint.Rules.UseApplyFlipped (useApplyFlippedRule)
76+import Purslint.Rules.WhenNot (whenNotRule)
77+import Purslint.Rules.UnlessNot (unlessNotRule)
78+import Purslint.Rules.UseZip (useZipRule)
79+import Purslint.Rules.UseReplicate (useReplicateRule)
80+import Purslint.Rules.UseUncurry (useUncurryRule)
81+import Purslint.Rules.RedundantNegate (redundantNegateRule)
82+import Purslint.Rules.UseFromJust (useFromJustRule)
83+import Purslint.Rules.UseHead (useHeadRule)
84+import Purslint.Rules.RedundantId (redundantIdRule)
85+import Purslint.Rules.NothingBind (nothingBindRule)
86+import Purslint.Rules.UseElemIndex (useElemIndexRule)
87+import Purslint.Rules.MonadLaw (monadLawRule)
88+import Purslint.Rules.EvaluateBool (evaluateBoolRule)
89+import Purslint.Rules.UseFoldBool (useFoldBoolRule)
90+import Purslint.Rules.AlternativeLaw (alternativeLawRule)
91+import Purslint.Rules.EvaluateEither (evaluateEitherRule)
92+import Purslint.Rules.UseCaseOf (useCaseOfRule)
93+import Purslint.Rules.FlattenCase (flattenCaseRule)
94+import Purslint.Rules.UsePatternGuards (usePatternGuardsRule)
95+import Purslint.Rules.RedundantParens (redundantParensRule)
96+import Purslint.Rule (Rule)
97+import Purslint.Runner (runRules, getImportsFromSource, getModuleNames)
98+import Purslint.Imports (hasValue, isPreludeModule)
99+import Purslint.Types (LintResult(..), LintWarning(..), RuleId(..), SourceCode(..), Suggestion(..))
100100
101101-- | Simple test framework
102102type TestResult = { passed :: Boolean, name :: String, message :: String }