packages feed

lucid 2.9.11 → 2.9.12

raw patch · 4 files changed

+39/−4 lines, 4 filesdep ~basedep ~mtlPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, mtl

API changes (from Hackage documentation)

- Lucid.Base: instance (GHC.Base.Applicative m, f ~ Lucid.Base.HtmlT m a) => Lucid.Base.Term [Lucid.Base.Attribute] (f -> Lucid.Base.HtmlT m a)
- Lucid.Base: instance (GHC.Base.Monad m, Lucid.Base.ToHtml f, a ~ ()) => Lucid.Base.TermRaw [Lucid.Base.Attribute] (f -> Lucid.Base.HtmlT m a)
- Lucid.Base: instance (GHC.Base.Monad m, a ~ ()) => Data.String.IsString (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (GHC.Base.Monad m, a ~ ()) => Lucid.Base.TermRaw Data.Text.Internal.Text (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (a ~ (), GHC.Base.Applicative m) => GHC.Base.Monoid (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (a ~ (), GHC.Base.Applicative m) => GHC.Base.Semigroup (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (a ~ (), m ~ Data.Functor.Identity.Identity) => Lucid.Base.ToHtml (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (m ~ Data.Functor.Identity.Identity) => GHC.Show.Show (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (GHC.Base.Applicative m, f Data.Type.Equality.~ Lucid.Base.HtmlT m a) => Lucid.Base.Term [Lucid.Base.Attribute] (f -> Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (GHC.Base.Monad m, Lucid.Base.ToHtml f, a Data.Type.Equality.~ ()) => Lucid.Base.TermRaw [Lucid.Base.Attribute] (f -> Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (GHC.Base.Monad m, a Data.Type.Equality.~ ()) => Data.String.IsString (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (GHC.Base.Monad m, a Data.Type.Equality.~ ()) => Lucid.Base.TermRaw Data.Text.Internal.Text (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (a Data.Type.Equality.~ (), GHC.Base.Applicative m) => GHC.Base.Monoid (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (a Data.Type.Equality.~ (), GHC.Base.Applicative m) => GHC.Base.Semigroup (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (a Data.Type.Equality.~ (), m Data.Type.Equality.~ Data.Functor.Identity.Identity) => Lucid.Base.ToHtml (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (m Data.Type.Equality.~ Data.Functor.Identity.Identity) => GHC.Show.Show (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Lucid.Base.HtmlT m)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+## 2.9.12++* Add MonadFix instance+ ## 2.9.11  * Add GHC-8.6 support
lucid.cabal view
@@ -1,5 +1,5 @@ name:                lucid-version:             2.9.11+version:             2.9.12 synopsis:            Clear to write, read and edit DSL for HTML description:   Clear to write, read and edit DSL for HTML.@@ -21,7 +21,7 @@ build-type:          Simple cabal-version:       >=1.8 extra-source-files:  README.md, CHANGELOG.md-tested-with:         GHC==7.10.3,GHC==8.0.2,GHC==8.2.2,GHC==8.4.4,GHC==8.6.1+tested-with:         GHC==7.10.3,GHC==8.0.2,GHC==8.2.2,GHC==8.4.4,GHC==8.6.5, GHC==8.8.1  library   hs-source-dirs:    src/@@ -32,7 +32,7 @@                      Lucid.Bootstrap    -- GHC boot libraries-  build-depends:     base                   >=4.8      && <4.13+  build-depends:     base                   >=4.8      && <4.14                    , bytestring             >=0.10.6.0                    , containers             >=0.5.6.2                    , transformers           >=0.4.2.0
src/Lucid/Base.hs view
@@ -161,6 +161,9 @@     HtmlT (do a <- m               return (\_ -> mempty,a)) +instance MonadFix m => MonadFix (HtmlT m) where+  mfix m = HtmlT $ mfix $ \ ~(_, a) -> runHtmlT $ m a+ -- MonadReader, MonadState etc instances need UndecidableInstances, -- because they do not satisfy the coverage condition. @@ -338,7 +341,7 @@ -- | For the contentless elements: 'Lucid.Html5.br_' instance (Functor m) => With (HtmlT m a) where   with f = \attr -> HtmlT (mk attr <$> runHtmlT f)-    where +    where       mk attr ~(f',a) = (\attr' -> f' (unionArgs (M.fromListWith (<>) (map toPair attr)) attr')                         ,a)       toPair (Attribute x y) = (x,y)
test/Main.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecursiveDo #-} {-# LANGUAGE ExtendedDefaultRules #-}  -- | Test suite for Lucid.@@ -13,6 +14,8 @@ import Control.Applicative import Control.Monad.State.Strict +import qualified Data.Text as T+ import Example1  import Test.HUnit@@ -33,6 +36,7 @@   describe "special-elements" testSpecials   describe "self-closing" testSelfClosing   describe "commuteHtmlT" testCommuteHtmlT+  describe "monadFix" testMonadFix  -- | Test text/unicode. testText :: Spec@@ -219,3 +223,27 @@       li_ "3"       li_ "4"       li_ "5"++testMonadFix :: Spec+testMonadFix =+  do it "mdo" (renderText example == renderText expected)+  where+   toSectionId i = T.pack $ "section_" ++ show i++   toSectionTitle i = T.pack $ "Section " ++ show i++   example = mdo+     forM_ sections $ \(sectionName, sectionId) ->+       a_ [href_ sectionId] $ toHtml sectionName+     sections <- forM [1 .. 2] $ \sectionNum -> do+       let sectionId = toSectionId sectionNum+           sectionTitle = toSectionTitle sectionNum+       h1_ [id_ sectionId] $ toHtml sectionTitle+       return (sectionTitle, sectionId)+     return ()++   expected = do+     forM_ [1 .. 2] $ \sectionNum ->+       a_ [href_ $ toSectionId sectionNum] $ toHtml $ toSectionTitle sectionNum+     forM_ [1 .. 2] $ \sectionNum ->+       h1_ [id_ $ toSectionId sectionNum] $ toHtml $ toSectionTitle sectionNum