-
Notifications
You must be signed in to change notification settings - Fork 85
Open
Labels
styleNitpicking and things related to purely visual aspect for formatting.Nitpicking and things related to purely visual aspect for formatting.
Description
Here's an example of an import block formatted with Ormolu:
module MyPackage where
import qualified Data.Primitive.ByteArray as ByteArray
import qualified Data.Text.Array as Array
import MyPackage.Classes (SomeClass(..))
import MyPackage.Prelude
import qualified MyPackage.TextCompat.Array as Array
data SomeType
ImportQualifiedPost version
module MyPackage where
import Data.Primitive.ByteArray qualified as ByteArray
import Data.Text.Array qualified as Array
import MyPackage.Classes (SomeClass(..))
import MyPackage.Prelude
import MyPackage.TextCompat.Array qualified as Array
data SomeType
I suggest to visually separate the imports into qualified and unqualified blocks:
module MyPackage where
import MyPackage.Classes (SomeClass(..))
import MyPackage.Prelude
import qualified Data.Primitive.ByteArray as ByteArray
import qualified Data.Text.Array as Array
import qualified MyPackage.TextCompat.Array as Array
data SomeType
ImportQualifiedPost version
module MyPackage where
import MyPackage.Classes (SomeClass(..))
import MyPackage.Prelude
import Data.Primitive.ByteArray qualified as ByteArray
import Data.Text.Array qualified as Array
import MyPackage.TextCompat.Array qualified as Array
data SomeType
Why?
- It removes the annoying chaotic jumps before module names, caused by the
qualified
keyword. - It clearly separates qualified and unqualified imports, which is especially useful in case of
ImportQualifiedPost
, because the type of import is no longer immediately distinguishable.
Metadata
Metadata
Assignees
Labels
styleNitpicking and things related to purely visual aspect for formatting.Nitpicking and things related to purely visual aspect for formatting.