From 270a287f88a272ff63c47c6dc507dd9b7804f7dc Mon Sep 17 00:00:00 2001 From: Jan Mas Rovira Date: Wed, 3 Jul 2024 00:48:08 +0200 Subject: [PATCH] get a bigger lens --- package.yaml | 2 +- .../Concrete/Data/Highlight/Properties.hs | 3 +- src/Juvix/Compiler/Pipeline/Lockfile.hs | 3 +- src/Juvix/Compiler/Pipeline/Package/Base.hs | 3 +- .../Compiler/Pipeline/Package/Dependency.hs | 3 +- src/Juvix/Prelude/Base/Foundation.hs | 41 ++++++++++++++++++- 6 files changed, 44 insertions(+), 11 deletions(-) diff --git a/package.yaml b/package.yaml index 3cafa2b66..3bf57433d 100644 --- a/package.yaml +++ b/package.yaml @@ -78,7 +78,7 @@ dependencies: - megaparsec == 9.6.* - commonmark == 0.2.* - parsec == 3.1.* - - microlens-platform == 0.4.* + - lens == 5.2.* - parser-combinators == 1.3.* - path == 0.9.* - path-io == 1.8.* diff --git a/src/Juvix/Compiler/Concrete/Data/Highlight/Properties.hs b/src/Juvix/Compiler/Concrete/Data/Highlight/Properties.hs index 91b6539dc..b5d88a980 100644 --- a/src/Juvix/Compiler/Concrete/Data/Highlight/Properties.hs +++ b/src/Juvix/Compiler/Concrete/Data/Highlight/Properties.hs @@ -6,7 +6,6 @@ import Data.Aeson.TH import Juvix.Data.Emacs import Juvix.Extra.Strings qualified as Str import Juvix.Prelude -import Lens.Micro.Platform qualified as Lens data GenericProperty = GenericProperty { _gpropProperty :: Text, @@ -111,7 +110,7 @@ type RawType = Text $( deriveToJSON defaultOptions - { fieldLabelModifier = over Lens._head toLower . dropPrefix "_rawProperties", + { fieldLabelModifier = over _head toLower . dropPrefix "_rawProperties", constructorTagModifier = map toLower } ''RawProperties diff --git a/src/Juvix/Compiler/Pipeline/Lockfile.hs b/src/Juvix/Compiler/Pipeline/Lockfile.hs index c7223cce0..f97bb3483 100644 --- a/src/Juvix/Compiler/Pipeline/Lockfile.hs +++ b/src/Juvix/Compiler/Pipeline/Lockfile.hs @@ -15,7 +15,6 @@ import Juvix.Extra.Strings qualified as Str import Juvix.Extra.Version import Juvix.Prelude hiding ((.=)) import Juvix.Prelude.Aeson -import Lens.Micro.Platform qualified as Lens data LockfileDependency = LockfileDependency { _lockfileDependencyDependency :: Dependency, @@ -110,7 +109,7 @@ instance FromJSON LockfileDependency where lockfileV2Options :: Options lockfileV2Options = defaultOptions - { fieldLabelModifier = over Lens._head toLower . dropPrefix "_lockfileV2", + { fieldLabelModifier = over _head toLower . dropPrefix "_lockfileV2", rejectUnknownFields = True, omitNothingFields = True } diff --git a/src/Juvix/Compiler/Pipeline/Package/Base.hs b/src/Juvix/Compiler/Pipeline/Package/Base.hs index 59b3a6456..215935593 100644 --- a/src/Juvix/Compiler/Pipeline/Package/Base.hs +++ b/src/Juvix/Compiler/Pipeline/Package/Base.hs @@ -12,7 +12,6 @@ import Juvix.Compiler.Pipeline.Lockfile import Juvix.Compiler.Pipeline.Package.Dependency import Juvix.Extra.Paths import Juvix.Prelude -import Lens.Micro.Platform qualified as Lens data BuildDir = DefaultBuildDir @@ -72,7 +71,7 @@ deriving stock instance Show Package rawPackageOptions :: Options rawPackageOptions = defaultOptions - { fieldLabelModifier = over Lens._head toLower . dropPrefix "_package", + { fieldLabelModifier = over _head toLower . dropPrefix "_package", rejectUnknownFields = True, omitNothingFields = True } diff --git a/src/Juvix/Compiler/Pipeline/Package/Dependency.hs b/src/Juvix/Compiler/Pipeline/Package/Dependency.hs index 447765ffc..397ebe8c3 100644 --- a/src/Juvix/Compiler/Pipeline/Package/Dependency.hs +++ b/src/Juvix/Compiler/Pipeline/Package/Dependency.hs @@ -10,7 +10,6 @@ import Data.Yaml hiding ((.=)) import Juvix.Extra.Strings qualified as Str import Juvix.Prelude hiding ((.=)) import Juvix.Prelude.Pretty -import Lens.Micro.Platform qualified as Lens data Dependency = DependencyPath PathDependency @@ -90,7 +89,7 @@ instance FromJSON PathDependency where gitDependencyOptions :: Options gitDependencyOptions = defaultOptions - { fieldLabelModifier = over Lens._head toLower . dropPrefix "_gitDependency", + { fieldLabelModifier = over _head toLower . dropPrefix "_gitDependency", rejectUnknownFields = True, omitNothingFields = True } diff --git a/src/Juvix/Prelude/Base/Foundation.hs b/src/Juvix/Prelude/Base/Foundation.hs index ff335aa17..e3bc48e5c 100644 --- a/src/Juvix/Prelude/Base/Foundation.hs +++ b/src/Juvix/Prelude/Base/Foundation.hs @@ -50,7 +50,7 @@ module Juvix.Prelude.Base.Foundation module GHC.Generics, module GHC.Num, module GHC.Real, - module Lens.Micro.Platform, + module Control.Lens, module Language.Haskell.TH.Syntax, module Prettyprinter, module Numeric, @@ -80,6 +80,40 @@ where import Control.Applicative import Control.DeepSeq +import Control.Lens hiding + ( Context, + Index, + Indexed, + Level, + List, + argument, + au, + below, + children, + cons, + cosmos, + enum, + from, + holes, + ignored, + imapM, + indexed, + indices, + inside, + op, + para, + parts, + pre, + re, + repeated, + rmap, + snoc, + uncons, + universe, + unsnoc, + (#), + (<.>), + ) import Control.Monad.Catch (ExitCase (..), MonadMask, MonadThrow, generalBracket, throwM) import Control.Monad.Extra hiding (fail, forM, mconcatMapM, whileJustM) import Control.Monad.Extra qualified as Monad @@ -161,7 +195,6 @@ import GHC.Num import GHC.Real import GHC.Stack.Types import Language.Haskell.TH.Syntax (Exp, Lift, Q) -import Lens.Micro.Platform import Numeric hiding (exp, log, pi) import Path (Abs, Dir, File, Path, Rel, SomeBase (..)) import Path qualified as PPath @@ -206,6 +239,10 @@ type GHCConstraint = GHC.Constraint type LazyHashMap = LazyHashMap.HashMap +type SimpleFold s a = forall r. (Monoid r) => Getting r s a + +type SimpleGetter s a = forall r. Getting r s a + type ImpliesK :: Bool -> GHCConstraint -> GHCConstraint type family ImpliesK cond k = res where ImpliesK 'True k = k