exon 1.7.1.0 → 1.7.2.0
raw patch · 2 files changed
+18/−10 lines, 2 filesdep ~basedep ~ghcdep ~hedgehogPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, ghc, hedgehog, template-haskell
API changes (from Hackage documentation)
- Exon: Empty :: Result a
- Exon: Expression :: a -> Segment a
- Exon: Result :: a -> Result a
- Exon: String :: String -> Segment a
- Exon: Whitespace :: String -> Segment a
- Exon: data Result a
- Exon: data Segment a
- Exon: intercalate :: Exon a => Monoid a => Foldable t => a -> t a -> a
- Exon: intercalate1 :: Exon a => a -> NonEmpty a -> a
- Exon: intercalateMay :: Exon a => Foldable t => a -> t a -> Maybe a
+ Exon: ($dmexonAppend) :: (ExonAppend result builder, Semigroup builder) => builder -> builder -> Result builder
+ Exon: ($dmexonBuilder) :: (ExonBuilder inner builder, inner ~ builder) => inner -> builder
+ Exon: ($dmexonBuilderExtract) :: (ExonBuilder inner builder, Monoid builder, inner ~ builder) => Result builder -> inner
+ Exon: ($dmexonString) :: (ExonString result builder, IsString builder) => String -> Result builder
+ Exon: ($dmexonWhitespace) :: ExonString result builder => String -> Result builder
+ Exon.Class.Exon: ($dmexonAppend) :: (ExonAppend result builder, Semigroup builder) => builder -> builder -> Result builder
+ Exon.Class.Exon: ($dmexonBuilder) :: (ExonBuilder inner builder, inner ~ builder) => inner -> builder
+ Exon.Class.Exon: ($dmexonBuilderExtract) :: (ExonBuilder inner builder, Monoid builder, inner ~ builder) => Result builder -> inner
+ Exon.Class.Exon: ($dmexonString) :: (ExonString result builder, IsString builder) => String -> Result builder
+ Exon.Class.Exon: ($dmexonWhitespace) :: ExonString result builder => String -> Result builder
- Exon: class Exon (result :: Type)
+ Exon: class Exon result
- Exon: class ExonAppend (result :: Type) (builder :: Type)
+ Exon: class ExonAppend result builder
- Exon: class ExonBuild (result :: Type) (inner :: Type)
+ Exon: class ExonBuild result inner
- Exon: class ExonBuilder (inner :: Type) (builder :: Type) | inner -> builder
+ Exon: class ExonBuilder inner builder | inner -> builder
- Exon: class ExonExpression (result :: Type) (inner :: Type) (builder :: Type)
+ Exon: class ExonExpression result inner builder
- Exon: class ExonSegment (result :: Type) (inner :: Type) (builder :: Type)
+ Exon: class ExonSegment result inner builder
- Exon: class ExonString (result :: Type) (builder :: Type)
+ Exon: class ExonString result builder
- Exon: exonAppend :: (ExonAppend result builder, Semigroup builder) => builder -> builder -> Result builder
+ Exon: exonAppend :: ExonAppend result builder => builder -> builder -> Result builder
- Exon: exonBuilder :: (ExonBuilder inner builder, inner ~ builder) => inner -> builder
+ Exon: exonBuilder :: ExonBuilder inner builder => inner -> builder
- Exon: exonBuilderExtract :: (ExonBuilder inner builder, Monoid builder) => inner ~ builder => Result builder -> inner
+ Exon: exonBuilderExtract :: ExonBuilder inner builder => Result builder -> inner
- Exon: exonString :: (ExonString result builder, IsString builder) => String -> Result builder
+ Exon: exonString :: ExonString result builder => String -> Result builder
- Exon.Class.Exon: class Exon (result :: Type)
+ Exon.Class.Exon: class Exon result
- Exon.Class.Exon: class ExonAppend (result :: Type) (builder :: Type)
+ Exon.Class.Exon: class ExonAppend result builder
- Exon.Class.Exon: class ExonBuild (result :: Type) (inner :: Type)
+ Exon.Class.Exon: class ExonBuild result inner
- Exon.Class.Exon: class ExonBuilder (inner :: Type) (builder :: Type) | inner -> builder
+ Exon.Class.Exon: class ExonBuilder inner builder | inner -> builder
- Exon.Class.Exon: class ExonExpression (result :: Type) (inner :: Type) (builder :: Type)
+ Exon.Class.Exon: class ExonExpression result inner builder
- Exon.Class.Exon: class ExonSegment (result :: Type) (inner :: Type) (builder :: Type)
+ Exon.Class.Exon: class ExonSegment result inner builder
- Exon.Class.Exon: class ExonString (result :: Type) (builder :: Type)
+ Exon.Class.Exon: class ExonString result builder
- Exon.Class.Exon: exonAppend :: (ExonAppend result builder, Semigroup builder) => builder -> builder -> Result builder
+ Exon.Class.Exon: exonAppend :: ExonAppend result builder => builder -> builder -> Result builder
- Exon.Class.Exon: exonBuilder :: (ExonBuilder inner builder, inner ~ builder) => inner -> builder
+ Exon.Class.Exon: exonBuilder :: ExonBuilder inner builder => inner -> builder
- Exon.Class.Exon: exonBuilderExtract :: (ExonBuilder inner builder, Monoid builder) => inner ~ builder => Result builder -> inner
+ Exon.Class.Exon: exonBuilderExtract :: ExonBuilder inner builder => Result builder -> inner
- Exon.Class.Exon: exonProcessWith :: forall wrapped result. Exon wrapped => (result -> wrapped) -> (wrapped -> result) -> NonEmpty (Segment result) -> result
+ Exon.Class.Exon: exonProcessWith :: Exon wrapped => (result -> wrapped) -> (wrapped -> result) -> NonEmpty (Segment result) -> result
- Exon.Class.Exon: exonString :: (ExonString result builder, IsString builder) => String -> Result builder
+ Exon.Class.Exon: exonString :: ExonString result builder => String -> Result builder
- Exon.Class.Newtype: class OverNewtype (current :: Type) (wrapped :: Maybe Type) (inner :: Type) | current -> inner
+ Exon.Class.Newtype: class OverNewtype current (wrapped :: Maybe Type) inner | current -> inner
- Exon.Class.Newtype: class OverNewtypes (result :: Type) (inner :: Type) | result -> inner
+ Exon.Class.Newtype: class OverNewtypes result inner | result -> inner
- Exon.Combinators: intercalate :: Exon a => Monoid a => Foldable t => a -> t a -> a
+ Exon.Combinators: intercalate :: (Exon a, Monoid a, Foldable t) => a -> t a -> a
- Exon.Combinators: intercalateMay :: Exon a => Foldable t => a -> t a -> Maybe a
+ Exon.Combinators: intercalateMay :: (Exon a, Foldable t) => a -> t a -> Maybe a
Files
- exon.cabal +8/−8
- lib/Exon/Haskell/Translate.hs +10/−2
exon.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: exon-version: 1.7.1.0+version: 1.7.2.0 synopsis: Customizable quasiquote interpolation description: See https://hackage.haskell.org/package/exon/docs/Exon.html category: String@@ -13,7 +13,7 @@ bug-reports: https://github.com/tek/exon/issues author: Torsten Schmits maintainer: hackage@tryp.io-copyright: 2023 Torsten Schmits+copyright: 2025 Torsten Schmits license: BSD-2-Clause-Patent license-file: LICENSE build-type: Simple@@ -82,11 +82,11 @@ NoFieldSelectors ghc-options: -Wall -Widentities -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-type-patterns -Wunused-packages build-depends:- base >=4.16.4.0 && <5- , ghc >=9.2.8 && <9.11+ base >=4.16.4.0 && <4.22+ , ghc >=9.2.8 && <9.13 , incipit-base >=0.5.0.0 && <0.7 , parsec >=3.1.15.0 && <3.2- , template-haskell >=2.18.0.0 && <2.23+ , template-haskell >=2.18.0.0 && <2.24 mixins: base hiding (Prelude) , incipit-base (IncipitBase as Prelude)@@ -144,13 +144,13 @@ NoFieldSelectors ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall -Widentities -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-type-patterns -Wunused-packages build-depends:- base >=4.16.4.0 && <5+ base >=4.16.4.0 && <4.22 , exon , hedgehog >=1.1 && <1.6 , incipit-base >=0.5.0.0 && <0.7 , tasty >=1.4.0.3 && <1.6 , tasty-hedgehog >=1.1.0.0 && <1.5- , template-haskell >=2.18.0.0 && <2.23+ , template-haskell >=2.18.0.0 && <2.24 mixins: base hiding (Prelude) , incipit-base (IncipitBase as Prelude)@@ -200,7 +200,7 @@ NoFieldSelectors ghc-options: -Wall -Widentities -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-type-patterns -Wunused-packages build-depends:- base >=4.16.4.0 && <5+ base >=4.16.4.0 && <4.22 , criterion >=1.5.11.0 && <1.7 , exon , incipit-base >=0.5.0.0 && <0.7
lib/Exon/Haskell/Translate.hs view
@@ -123,7 +123,9 @@ = TH.AppE (TH.VarE 'negate) (toExp d . unLoc $ e) -- NOTE: for lambda, there is only one match-#if MIN_VERSION_ghc(9,10,0)+#if MIN_VERSION_ghc(9,12,0)+toExp d (Expr.HsLam _ _ (Expr.MG _ (unLoc -> (map unLoc -> [Expr.Match _ _ (map unLoc . unLoc -> ps) (Expr.GRHSs _ [unLoc -> Expr.GRHS _ _ (unLoc -> e)] _)]))))+#elif MIN_VERSION_ghc(9,10,0) toExp d (Expr.HsLam _ _ (Expr.MG _ (unLoc -> (map unLoc -> [Expr.Match _ _ (map unLoc -> ps) (Expr.GRHSs _ [unLoc -> Expr.GRHS _ _ (unLoc -> e)] _)])))) #elif MIN_VERSION_ghc(9,6,0) toExp d (Expr.HsLam _ (Expr.MG _ (unLoc -> (map unLoc -> [Expr.Match _ _ (map unLoc -> ps) (Expr.GRHSs _ [unLoc -> Expr.GRHS _ _ (unLoc -> e)] _)]))))@@ -194,7 +196,11 @@ extractFieldLabel (DotFieldOcc _ locatedStr) = field_label <$> locatedStr extractFieldLabel _ = error "Don't know how to handle XHsFieldLabel constructor..." in+#if MIN_VERSION_ghc(9, 12, 0)+ TH.ProjectionE (NonEmpty.map (unpackFS . unLoc . extractFieldLabel) locatedFields)+#else TH.ProjectionE (NonEmpty.map (unpackFS . unLoc . extractFieldLabel . unLoc) locatedFields)+#endif toExp d (Expr.HsGetField _ expr locatedField) = let@@ -232,7 +238,9 @@ TH.GetFieldE (toExp d (unLoc expr)) (unpackFS . unLoc . extractFieldLabel . unLoc $ locatedField) #endif -#if MIN_VERSION_ghc(9, 6, 0)+#if MIN_VERSION_ghc(9, 12, 0)+toExp _ (Expr.HsOverLabel _ fastString) = TH.LabelE (unpackFS fastString)+#elif MIN_VERSION_ghc(9, 6, 0) toExp _ (Expr.HsOverLabel _ _ fastString) = TH.LabelE (unpackFS fastString) #else toExp _ (Expr.HsOverLabel _ fastString) = TH.LabelE (unpackFS fastString)