Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make GHC2021 extensions default #520

Merged
merged 9 commits into from
Jul 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/haskell-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ jobs:
cabal-docspec $ARG_COMPILER
- name: hlint
run: |
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XStrictData src) ; fi
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 app) ; fi
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src) ; fi
if [ $((HCNUMVER < 90000)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XImportQualifiedPost app) ; fi
- name: cabal check
run: |
cd ${PKGDIR_swarm} || false
Expand Down
1 change: 0 additions & 1 deletion .hlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#
# - arguments: [--color, --cpp-simple, -XQuasiQuotes]


# Control which extensions/flags/modules/functions can be used
#
# - extensions:
Expand Down
16 changes: 15 additions & 1 deletion .restyled.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
restylers_version: dev
restylers:
- fourmolu
- fourmolu:
arguments:
[ '--ghc-opt=-XBangPatterns'
, '--ghc-opt=-XFlexibleContexts'
, '--ghc-opt=-XFlexibleInstances'
, '--ghc-opt=-XGADTSyntax'
, '--ghc-opt=-XMultiParamTypeClasses'
, '--ghc-opt=-XNumericUnderscores'
, '--ghc-opt=-XRankNTypes'
, '--ghc-opt=-XTupleSections'
, '--ghc-opt=-XTypeApplications'
, '--ghc-opt=-XTypeOperators'
, '--ghc-opt=-XImportQualifiedPost'
, '--ghc-opt=-XLambdaCase'
]
2 changes: 1 addition & 1 deletion app/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import Data.Text (
Text,
pack,
)
import qualified Data.Text.IO as Text
import Data.Text.IO qualified as Text
import GitHash
import Options.Applicative
import Swarm.App (appMain)
Expand Down
4 changes: 2 additions & 2 deletions bench/Benchmark.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import Control.Monad.Except (runExceptT)
import Control.Monad.State (evalStateT, execStateT)
import Criterion.Main (Benchmark, bench, bgroup, defaultConfig, defaultMainWith, whnfAppIO)
import Criterion.Types (Config (timeLimit))
import qualified Data.Functor.Const as F
import Data.Functor.Const qualified as F
import Data.Int (Int64)
import Linear.V2 (V2 (V2))
import Swarm.Game.CESK (emptyStore, initMachine)
Expand All @@ -19,7 +19,7 @@ import Swarm.Game.State (GameState, addURobot, classicGame0, creativeMode, world
import Swarm.Game.Step (gameTick)
import Swarm.Game.Terrain (TerrainType (DirtT))
import Swarm.Game.World (newWorld)
import qualified Swarm.Language.Context as Context
import Swarm.Language.Context qualified as Context
import Swarm.Language.Pipeline (ProcessedTerm)
import Swarm.Language.Pipeline.QQ (tmQ)
import Swarm.Language.Syntax (north)
Expand Down
6 changes: 2 additions & 4 deletions src/Swarm/App.hs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{-# LANGUAGE NumericUnderscores #-}

-- |
-- Module : Swarm.App
-- Copyright : Brent Yorgey
Expand All @@ -14,10 +12,10 @@ import Control.Concurrent (forkIO, threadDelay)

import Brick
import Brick.BChan
import qualified Graphics.Vty as V
import Graphics.Vty qualified as V

import Control.Monad.Except
import qualified Data.Text.IO as T
import Data.Text.IO qualified as T
import Swarm.TUI.Attr
import Swarm.TUI.Controller
import Swarm.TUI.Model
Expand Down
6 changes: 0 additions & 6 deletions src/Swarm/DocGen.hs
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTSyntax #-}
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TupleSections #-}

module Swarm.DocGen (
generateDocs,
Expand Down
2 changes: 1 addition & 1 deletion src/Swarm/Game/CESK.hs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ module Swarm.Game.CESK (

import Control.Lens.Combinators (pattern Empty)
import Data.IntMap.Strict (IntMap)
import qualified Data.IntMap.Strict as IM
import Data.IntMap.Strict qualified as IM
import Data.List (intercalate)
import Witch (from)

Expand Down
4 changes: 1 addition & 3 deletions src/Swarm/Game/Display.hs
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
Expand Down Expand Up @@ -41,7 +39,7 @@ import Brick (AttrName, Widget, str, withAttr)
import Control.Lens hiding (Const, from, (.=))
import Data.Hashable
import Data.Map (Map)
import qualified Data.Map as M
import Data.Map qualified as M

import Data.Yaml
import GHC.Generics (Generic)
Expand Down
15 changes: 4 additions & 11 deletions src/Swarm/Game/Entity.hs
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}

-- |
Expand Down Expand Up @@ -94,15 +87,15 @@ import Data.Function (on)
import Data.Hashable
import Data.Int (Int64)
import Data.IntMap (IntMap)
import qualified Data.IntMap as IM
import Data.IntMap qualified as IM
import Data.IntSet (IntSet)
import qualified Data.IntSet as IS
import Data.IntSet qualified as IS
import Data.List (foldl')
import Data.Map (Map)
import qualified Data.Map as M
import Data.Map qualified as M
import Data.Maybe (fromMaybe, isJust, listToMaybe)
import Data.Text (Text)
import qualified Data.Text as T
import Data.Text qualified as T
import GHC.Generics (Generic)
import Linear (V2)
import Text.Read (readMaybe)
Expand Down
5 changes: 2 additions & 3 deletions src/Swarm/Game/Exception.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}

-- |
Expand All @@ -21,10 +20,10 @@ module Swarm.Game.Exception (

import Data.Set (Set)
import Data.Text (Text)
import qualified Data.Text as T
import Data.Text qualified as T

import Control.Lens ((^.))
import qualified Data.Set as S
import Data.Set qualified as S
import Swarm.Game.Entity (EntityMap, deviceForCap, entityName)
import Swarm.Language.Capability (Capability (CGod), capabilityName)
import Swarm.Language.Pretty (prettyText)
Expand Down
9 changes: 2 additions & 7 deletions src/Swarm/Game/Recipe.hs
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}

-- |
-- Module : Swarm.Game.Recipe
Expand Down Expand Up @@ -45,11 +40,11 @@ import Control.Lens hiding (from, (.=))
import Data.Bifunctor (second)
import Data.Either.Validation
import Data.IntMap (IntMap)
import qualified Data.IntMap as IM
import Data.IntMap qualified as IM
import Data.List (foldl')
import Data.Maybe (fromMaybe)
import Data.Text (Text)
import qualified Data.Text as T
import Data.Text qualified as T
import Witch

import Data.Yaml
Expand Down
6 changes: 1 addition & 5 deletions src/Swarm/Game/Robot.hs
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ViewPatterns #-}

Expand Down Expand Up @@ -75,7 +71,7 @@ import Data.Hashable (hashWithSalt)
import Data.Int (Int64)
import Data.Maybe (isNothing)
import Data.Sequence (Seq)
import qualified Data.Sequence as Seq
import Data.Sequence qualified as Seq
import Data.Set (Set)
import Data.Set.Lens (setOf)
import Data.Text (Text)
Expand Down
6 changes: 0 additions & 6 deletions src/Swarm/Game/Scenario.hs
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeApplications #-}

-- |
-- Module : Swarm.Game.Scenario
Expand Down
21 changes: 9 additions & 12 deletions src/Swarm/Game/State.hs
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ViewPatterns #-}

-- |
Expand Down Expand Up @@ -93,20 +90,20 @@ import Control.Monad.Except
import Data.Array (Array, listArray)
import Data.Int (Int64)
import Data.IntMap (IntMap)
import qualified Data.IntMap as IM
import Data.IntMap qualified as IM
import Data.IntSet (IntSet)
import qualified Data.IntSet as IS
import Data.IntSet qualified as IS
import Data.IntSet.Lens (setOf)
import Data.List (partition)
import Data.Map (Map)
import qualified Data.Map as M
import Data.Map qualified as M
import Data.Maybe (fromMaybe)
import qualified Data.Set as S
import Data.Set qualified as S
import Data.Text (Text)
import qualified Data.Text as T (lines)
import qualified Data.Text.IO as T (readFile)
import Data.Text qualified as T (lines)
import Data.Text.IO qualified as T (readFile)
import Linear
import qualified System.Clock
import System.Clock qualified
import System.Random (StdGen, mkStdGen, randomRIO)
import Witch (into)

Expand All @@ -121,10 +118,10 @@ import Swarm.Game.Recipe
import Swarm.Game.Robot
import Swarm.Game.Scenario
import Swarm.Game.Value
import qualified Swarm.Game.World as W
import Swarm.Game.World qualified as W
import Swarm.Game.WorldGen (Seed)
import Swarm.Language.Capability (constCaps)
import qualified Swarm.Language.Context as Ctx
import Swarm.Language.Context qualified as Ctx
import Swarm.Language.Pipeline (ProcessedTerm)
import Swarm.Language.Pipeline.QQ (tmQ)
import Swarm.Language.Syntax (Const, Term (TString), allConst)
Expand Down
29 changes: 11 additions & 18 deletions src/Swarm/Game/Step.hs
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}

-- |
-- Module : Swarm.Game.Step
Expand All @@ -26,35 +19,35 @@ import Data.Array (bounds, (!))
import Data.Bool (bool)
import Data.Either (partitionEithers, rights)
import Data.Foldable (traverse_)
import qualified Data.Functor.Const as F
import Data.Functor.Const qualified as F
import Data.Int (Int64)
import qualified Data.IntMap as IM
import qualified Data.IntSet as IS
import Data.IntMap qualified as IM
import Data.IntSet qualified as IS
import Data.List (find)
import qualified Data.List as L
import qualified Data.Map as M
import Data.List qualified as L
import Data.Map qualified as M
import Data.Maybe (fromMaybe, isNothing, listToMaybe, mapMaybe)
import qualified Data.Sequence as Seq
import qualified Data.Set as S
import Data.Sequence qualified as Seq
import Data.Set qualified as S
import Data.Text (Text)
import qualified Data.Text as T
import Data.Text qualified as T
import Linear (V2 (..), zero, (^+^))
import System.Clock (TimeSpec)
import qualified System.Clock
import System.Clock qualified
import System.Random (UniformRange, uniformR)
import Witch (From (from), into)
import Prelude hiding (lookup)

import Swarm.Game.CESK
import Swarm.Game.Display
import Swarm.Game.Entity hiding (empty, lookup, singleton, union)
import qualified Swarm.Game.Entity as E
import Swarm.Game.Entity qualified as E
import Swarm.Game.Exception
import Swarm.Game.Recipe
import Swarm.Game.Robot
import Swarm.Game.State
import Swarm.Game.Value
import qualified Swarm.Game.World as W
import Swarm.Game.World qualified as W
import Swarm.Language.Capability
import Swarm.Language.Context hiding (delete)
import Swarm.Language.Pipeline
Expand Down
7 changes: 2 additions & 5 deletions src/Swarm/Game/Terrain.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeApplications #-}

-- |
-- Module : Swarm.Game.Terrain
-- Copyright : Brent Yorgey
Expand All @@ -19,8 +16,8 @@ module Swarm.Game.Terrain (
import Brick (Widget)
import Data.Aeson (FromJSON (..), withText)
import Data.Map (Map, (!))
import qualified Data.Map as M
import qualified Data.Text as T
import Data.Map qualified as M
import Data.Text qualified as T
import Text.Read (readMaybe)
import Witch (into)

Expand Down
4 changes: 2 additions & 2 deletions src/Swarm/Game/Value.hs
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ module Swarm.Game.Value (

import Data.Bool (bool)
import Data.List (foldl')
import qualified Data.Map as M
import qualified Data.Set as S
import Data.Map qualified as M
import Data.Set qualified as S
import Data.Set.Lens (setOf)
import Data.Text (Text)
import Prelude
Expand Down
Loading