servant/.hlint.yaml

52 lines
1.3 KiB
YAML

# Control which extensions/flags/modules/functions can be used
#
- extensions:
- default: false # all extension are banned by default
- name:
- CPP
- DataKinds
- DeriveDataTypeable
- DeriveFoldable
- DeriveFunctor
- DeriveGeneric
- DeriveTraversable
- FlexibleContexts
- FlexibleInstances
- FunctionalDependencies
- GADTs
- KindSignatures
- MultiParamTypeClasses
- OverloadedStrings
- PolyKinds
- RankNTypes
- ScopedTypeVariables
- TypeFamilies
- TypeOperators
- UndecidableInstances
- modules:
- {name: [Data.Set], as: Set}
- {name: Control.Arrow, within: []} # Certain modules are banned entirely
- functions:
- {name: unsafePerformIO, within: []} # unsafePerformIO can only appear in no modules
# Turn on hints that are off by default
#
# Ban "module X(module X) where", to require a real export list
- warn: {name: Use explicit module export list}
# Ignore some builtin hints
- ignore: {name: Redundant do}
- ignore: {name: Parse error}
- ignore: {name: Use fmap}
- ignore: {name: "Use <$>"}
- ignore: {name: Use list comprehension}
- ignore: {name: Use lambda-case}
- ignore: {name: Eta reduce}
# Add custom hints for this project
#
# Will suggest replacing "wibbleMany [myvar]" with "wibbleOne myvar"
# - error: {lhs: "wibbleMany [x]", rhs: wibbleOne x}