packages feed

megaparsec 9.7.1 → 9.8.0

raw patch · 7 files changed

+108/−29 lines, 7 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

- Text.Megaparsec.Debug: instance (GHC.Base.Monoid w, GHC.Show.Show w, GHC.Show.Show st, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.RWS.Lazy.RWST r w st m)
- Text.Megaparsec.Debug: instance (GHC.Base.Monoid w, GHC.Show.Show w, GHC.Show.Show st, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.RWS.Strict.RWST r w st m)
- Text.Megaparsec.Debug: instance (GHC.Base.Monoid w, GHC.Show.Show w, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.Writer.Lazy.WriterT w m)
- Text.Megaparsec.Debug: instance (GHC.Base.Monoid w, GHC.Show.Show w, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.Writer.Strict.WriterT w m)
- Text.Megaparsec.Debug: instance (GHC.Show.Show c, GHC.Show.Show a) => GHC.Show.Show (Text.Megaparsec.Debug.ShowComment c a)
- Text.Megaparsec.Debug: instance (GHC.Show.Show st, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.State.Lazy.StateT st m)
- Text.Megaparsec.Debug: instance (GHC.Show.Show st, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.State.Strict.StateT st m)
- Text.Megaparsec.Debug: instance GHC.Show.Show (Text.Megaparsec.Debug.Blind x)
- Text.Megaparsec.Error: instance (Data.Data.Data s, Data.Data.Data (Text.Megaparsec.Stream.Token s), GHC.Classes.Ord (Text.Megaparsec.Stream.Token s), Data.Data.Data e, GHC.Classes.Ord e) => Data.Data.Data (Text.Megaparsec.Error.ParseError s e)
- Text.Megaparsec.Error: instance (Data.Data.Data s, Data.Data.Data (Text.Megaparsec.Stream.Token s), GHC.Classes.Ord (Text.Megaparsec.Stream.Token s), Data.Data.Data e, GHC.Classes.Ord e) => Data.Data.Data (Text.Megaparsec.Error.ParseErrorBundle s e)
- Text.Megaparsec.Error: instance (GHC.Show.Show (Text.Megaparsec.Stream.Token s), GHC.Show.Show e) => GHC.Show.Show (Text.Megaparsec.Error.ParseError s e)
- Text.Megaparsec.Error: instance (GHC.Show.Show (Text.Megaparsec.Stream.Token s), GHC.Show.Show e, Text.Megaparsec.Error.ShowErrorComponent e, Text.Megaparsec.Stream.VisualStream s, Data.Typeable.Internal.Typeable s, Data.Typeable.Internal.Typeable e) => GHC.Exception.Type.Exception (Text.Megaparsec.Error.ParseError s e)
- Text.Megaparsec.Error: instance (GHC.Show.Show s, GHC.Show.Show (Text.Megaparsec.Stream.Token s), GHC.Show.Show e) => GHC.Show.Show (Text.Megaparsec.Error.ParseErrorBundle s e)
- Text.Megaparsec.Error: instance (GHC.Show.Show s, GHC.Show.Show (Text.Megaparsec.Stream.Token s), GHC.Show.Show e, Text.Megaparsec.Error.ShowErrorComponent e, Text.Megaparsec.Stream.VisualStream s, Text.Megaparsec.Stream.TraversableStream s, Data.Typeable.Internal.Typeable s, Data.Typeable.Internal.Typeable e) => GHC.Exception.Type.Exception (Text.Megaparsec.Error.ParseErrorBundle s e)
- Text.Megaparsec.Error: instance (Text.Megaparsec.Stream.Stream s, GHC.Classes.Ord e) => GHC.Base.Monoid (Text.Megaparsec.Error.ParseError s e)
- Text.Megaparsec.Error: instance (Text.Megaparsec.Stream.Stream s, GHC.Classes.Ord e) => GHC.Base.Semigroup (Text.Megaparsec.Error.ParseError s e)
- Text.Megaparsec.Error: instance Data.Data.Data e => Data.Data.Data (Text.Megaparsec.Error.ErrorFancy e)
- Text.Megaparsec.Error: instance Data.Data.Data t => Data.Data.Data (Text.Megaparsec.Error.ErrorItem t)
- Text.Megaparsec.Error: instance GHC.Base.Functor Text.Megaparsec.Error.ErrorFancy
- Text.Megaparsec.Error: instance GHC.Base.Functor Text.Megaparsec.Error.ErrorItem
- Text.Megaparsec.Error: instance GHC.Generics.Generic (Text.Megaparsec.Error.ErrorFancy e)
- Text.Megaparsec.Error: instance GHC.Generics.Generic (Text.Megaparsec.Error.ErrorItem t)
- Text.Megaparsec.Error: instance GHC.Generics.Generic (Text.Megaparsec.Error.ParseError s e)
- Text.Megaparsec.Error: instance GHC.Generics.Generic (Text.Megaparsec.Error.ParseErrorBundle s e)
- Text.Megaparsec.Error: instance GHC.Read.Read e => GHC.Read.Read (Text.Megaparsec.Error.ErrorFancy e)
- Text.Megaparsec.Error: instance GHC.Read.Read t => GHC.Read.Read (Text.Megaparsec.Error.ErrorItem t)
- Text.Megaparsec.Error: instance GHC.Show.Show e => GHC.Show.Show (Text.Megaparsec.Error.ErrorFancy e)
- Text.Megaparsec.Error: instance GHC.Show.Show t => GHC.Show.Show (Text.Megaparsec.Error.ErrorItem t)
- Text.Megaparsec.Error: instance Text.Megaparsec.Error.ShowErrorComponent GHC.Base.Void
- Text.Megaparsec.Error.Builder: instance (Data.Data.Data e, GHC.Classes.Ord e) => Data.Data.Data (Text.Megaparsec.Error.Builder.EF e)
- Text.Megaparsec.Error.Builder: instance (Data.Data.Data s, Data.Data.Data (Text.Megaparsec.Stream.Token s), GHC.Classes.Ord (Text.Megaparsec.Stream.Token s)) => Data.Data.Data (Text.Megaparsec.Error.Builder.ET s)
- Text.Megaparsec.Error.Builder: instance GHC.Classes.Ord e => GHC.Base.Monoid (Text.Megaparsec.Error.Builder.EF e)
- Text.Megaparsec.Error.Builder: instance GHC.Classes.Ord e => GHC.Base.Semigroup (Text.Megaparsec.Error.Builder.EF e)
- Text.Megaparsec.Error.Builder: instance GHC.Generics.Generic (Text.Megaparsec.Error.Builder.EF e)
- Text.Megaparsec.Error.Builder: instance GHC.Generics.Generic (Text.Megaparsec.Error.Builder.ET s)
- Text.Megaparsec.Error.Builder: instance Text.Megaparsec.Stream.Stream s => GHC.Base.Monoid (Text.Megaparsec.Error.Builder.ET s)
- Text.Megaparsec.Error.Builder: instance Text.Megaparsec.Stream.Stream s => GHC.Base.Semigroup (Text.Megaparsec.Error.Builder.ET s)
- Text.Megaparsec.Internal: instance (GHC.Classes.Ord e, Text.Megaparsec.Stream.Stream s) => GHC.Base.Alternative (Text.Megaparsec.Internal.ParsecT e s m)
- Text.Megaparsec.Internal: instance (GHC.Classes.Ord e, Text.Megaparsec.Stream.Stream s) => GHC.Base.MonadPlus (Text.Megaparsec.Internal.ParsecT e s m)
- Text.Megaparsec.Internal: instance (Text.Megaparsec.Stream.Stream s, Control.Monad.Fix.MonadFix m) => Control.Monad.Fix.MonadFix (Text.Megaparsec.Internal.ParsecT e s m)
- Text.Megaparsec.Internal: instance (Text.Megaparsec.Stream.Stream s, GHC.Base.Monoid a) => GHC.Base.Monoid (Text.Megaparsec.Internal.ParsecT e s m a)
- Text.Megaparsec.Internal: instance (Text.Megaparsec.Stream.Stream s, GHC.Base.Semigroup a) => GHC.Base.Semigroup (Text.Megaparsec.Internal.ParsecT e s m a)
- Text.Megaparsec.Internal: instance (a GHC.Types.~ Text.Megaparsec.Stream.Tokens s, Data.String.IsString a, GHC.Classes.Eq a, Text.Megaparsec.Stream.Stream s, GHC.Classes.Ord e) => Data.String.IsString (Text.Megaparsec.Internal.ParsecT e s m a)
- Text.Megaparsec.Internal: instance GHC.Base.Functor (Text.Megaparsec.Internal.ParsecT e s m)
- Text.Megaparsec.Internal: instance GHC.Base.Functor (Text.Megaparsec.Internal.Reply e s)
- Text.Megaparsec.Internal: instance GHC.Base.Functor (Text.Megaparsec.Internal.Result s e)
- Text.Megaparsec.Internal: instance GHC.Classes.Ord t => GHC.Base.Monoid (Text.Megaparsec.Internal.Hints t)
- Text.Megaparsec.Internal: instance GHC.Classes.Ord t => GHC.Base.Semigroup (Text.Megaparsec.Internal.Hints t)
- Text.Megaparsec.Internal: instance Text.Megaparsec.Stream.Stream s => Control.Monad.Fail.MonadFail (Text.Megaparsec.Internal.ParsecT e s m)
- Text.Megaparsec.Internal: instance Text.Megaparsec.Stream.Stream s => GHC.Base.Applicative (Text.Megaparsec.Internal.ParsecT e s m)
- Text.Megaparsec.Internal: instance Text.Megaparsec.Stream.Stream s => GHC.Base.Monad (Text.Megaparsec.Internal.ParsecT e s m)
- Text.Megaparsec.Pos: instance Data.Data.Data Text.Megaparsec.Pos.InvalidPosException
- Text.Megaparsec.Pos: instance Data.Data.Data Text.Megaparsec.Pos.Pos
- Text.Megaparsec.Pos: instance Data.Data.Data Text.Megaparsec.Pos.SourcePos
- Text.Megaparsec.Pos: instance GHC.Base.Semigroup Text.Megaparsec.Pos.Pos
- Text.Megaparsec.Pos: instance GHC.Exception.Type.Exception Text.Megaparsec.Pos.InvalidPosException
- Text.Megaparsec.Pos: instance GHC.Generics.Generic Text.Megaparsec.Pos.InvalidPosException
- Text.Megaparsec.Pos: instance GHC.Generics.Generic Text.Megaparsec.Pos.Pos
- Text.Megaparsec.Pos: instance GHC.Generics.Generic Text.Megaparsec.Pos.SourcePos
- Text.Megaparsec.Pos: instance GHC.Read.Read Text.Megaparsec.Pos.Pos
- Text.Megaparsec.Pos: instance GHC.Read.Read Text.Megaparsec.Pos.SourcePos
- Text.Megaparsec.Pos: instance GHC.Show.Show Text.Megaparsec.Pos.InvalidPosException
- Text.Megaparsec.Pos: instance GHC.Show.Show Text.Megaparsec.Pos.Pos
- Text.Megaparsec.Pos: instance GHC.Show.Show Text.Megaparsec.Pos.SourcePos
- Text.Megaparsec.State: instance (Data.Data.Data e, Data.Data.Data (Text.Megaparsec.Error.ParseError s e), Data.Data.Data s) => Data.Data.Data (Text.Megaparsec.State.State s e)
- Text.Megaparsec.State: instance (GHC.Show.Show (Text.Megaparsec.Error.ParseError s e), GHC.Show.Show s) => GHC.Show.Show (Text.Megaparsec.State.State s e)
- Text.Megaparsec.State: instance Data.Data.Data s => Data.Data.Data (Text.Megaparsec.State.PosState s)
- Text.Megaparsec.State: instance GHC.Generics.Generic (Text.Megaparsec.State.PosState s)
- Text.Megaparsec.State: instance GHC.Generics.Generic (Text.Megaparsec.State.State s e)
- Text.Megaparsec.State: instance GHC.Show.Show s => GHC.Show.Show (Text.Megaparsec.State.PosState s)
- Text.Megaparsec.Stream: instance Text.Megaparsec.Stream.TraversableStream GHC.Base.String
- Text.Megaparsec.Stream: instance Text.Megaparsec.Stream.VisualStream GHC.Base.String
+ Text.Megaparsec.Debug: instance (GHC.Internal.Base.Monoid w, GHC.Internal.Show.Show w, GHC.Internal.Show.Show st, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.RWS.Lazy.RWST r w st m)
+ Text.Megaparsec.Debug: instance (GHC.Internal.Base.Monoid w, GHC.Internal.Show.Show w, GHC.Internal.Show.Show st, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.RWS.Strict.RWST r w st m)
+ Text.Megaparsec.Debug: instance (GHC.Internal.Base.Monoid w, GHC.Internal.Show.Show w, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.Writer.Lazy.WriterT w m)
+ Text.Megaparsec.Debug: instance (GHC.Internal.Base.Monoid w, GHC.Internal.Show.Show w, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.Writer.Strict.WriterT w m)
+ Text.Megaparsec.Debug: instance (GHC.Internal.Show.Show c, GHC.Internal.Show.Show a) => GHC.Internal.Show.Show (Text.Megaparsec.Debug.ShowComment c a)
+ Text.Megaparsec.Debug: instance (GHC.Internal.Show.Show st, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.State.Lazy.StateT st m)
+ Text.Megaparsec.Debug: instance (GHC.Internal.Show.Show st, Text.Megaparsec.Debug.MonadParsecDbg e s m) => Text.Megaparsec.Debug.MonadParsecDbg e s (Control.Monad.Trans.State.Strict.StateT st m)
+ Text.Megaparsec.Debug: instance GHC.Internal.Show.Show (Text.Megaparsec.Debug.Blind x)
+ Text.Megaparsec.Error: instance (GHC.Internal.Data.Data.Data s, GHC.Internal.Data.Data.Data (Text.Megaparsec.Stream.Token s), GHC.Classes.Ord (Text.Megaparsec.Stream.Token s), GHC.Internal.Data.Data.Data e, GHC.Classes.Ord e) => GHC.Internal.Data.Data.Data (Text.Megaparsec.Error.ParseError s e)
+ Text.Megaparsec.Error: instance (GHC.Internal.Data.Data.Data s, GHC.Internal.Data.Data.Data (Text.Megaparsec.Stream.Token s), GHC.Classes.Ord (Text.Megaparsec.Stream.Token s), GHC.Internal.Data.Data.Data e, GHC.Classes.Ord e) => GHC.Internal.Data.Data.Data (Text.Megaparsec.Error.ParseErrorBundle s e)
+ Text.Megaparsec.Error: instance (GHC.Internal.Show.Show (Text.Megaparsec.Stream.Token s), GHC.Internal.Show.Show e) => GHC.Internal.Show.Show (Text.Megaparsec.Error.ParseError s e)
+ Text.Megaparsec.Error: instance (GHC.Internal.Show.Show (Text.Megaparsec.Stream.Token s), GHC.Internal.Show.Show e, Text.Megaparsec.Error.ShowErrorComponent e, Text.Megaparsec.Stream.VisualStream s, GHC.Internal.Data.Typeable.Internal.Typeable s, GHC.Internal.Data.Typeable.Internal.Typeable e) => GHC.Internal.Exception.Type.Exception (Text.Megaparsec.Error.ParseError s e)
+ Text.Megaparsec.Error: instance (GHC.Internal.Show.Show s, GHC.Internal.Show.Show (Text.Megaparsec.Stream.Token s), GHC.Internal.Show.Show e) => GHC.Internal.Show.Show (Text.Megaparsec.Error.ParseErrorBundle s e)
+ Text.Megaparsec.Error: instance (GHC.Internal.Show.Show s, GHC.Internal.Show.Show (Text.Megaparsec.Stream.Token s), GHC.Internal.Show.Show e, Text.Megaparsec.Error.ShowErrorComponent e, Text.Megaparsec.Stream.VisualStream s, Text.Megaparsec.Stream.TraversableStream s, GHC.Internal.Data.Typeable.Internal.Typeable s, GHC.Internal.Data.Typeable.Internal.Typeable e) => GHC.Internal.Exception.Type.Exception (Text.Megaparsec.Error.ParseErrorBundle s e)
+ Text.Megaparsec.Error: instance (Text.Megaparsec.Stream.Stream s, GHC.Classes.Ord e) => GHC.Internal.Base.Monoid (Text.Megaparsec.Error.ParseError s e)
+ Text.Megaparsec.Error: instance (Text.Megaparsec.Stream.Stream s, GHC.Classes.Ord e) => GHC.Internal.Base.Semigroup (Text.Megaparsec.Error.ParseError s e)
+ Text.Megaparsec.Error: instance GHC.Internal.Base.Functor Text.Megaparsec.Error.ErrorFancy
+ Text.Megaparsec.Error: instance GHC.Internal.Base.Functor Text.Megaparsec.Error.ErrorItem
+ Text.Megaparsec.Error: instance GHC.Internal.Data.Data.Data e => GHC.Internal.Data.Data.Data (Text.Megaparsec.Error.ErrorFancy e)
+ Text.Megaparsec.Error: instance GHC.Internal.Data.Data.Data t => GHC.Internal.Data.Data.Data (Text.Megaparsec.Error.ErrorItem t)
+ Text.Megaparsec.Error: instance GHC.Internal.Generics.Generic (Text.Megaparsec.Error.ErrorFancy e)
+ Text.Megaparsec.Error: instance GHC.Internal.Generics.Generic (Text.Megaparsec.Error.ErrorItem t)
+ Text.Megaparsec.Error: instance GHC.Internal.Generics.Generic (Text.Megaparsec.Error.ParseError s e)
+ Text.Megaparsec.Error: instance GHC.Internal.Generics.Generic (Text.Megaparsec.Error.ParseErrorBundle s e)
+ Text.Megaparsec.Error: instance GHC.Internal.Read.Read e => GHC.Internal.Read.Read (Text.Megaparsec.Error.ErrorFancy e)
+ Text.Megaparsec.Error: instance GHC.Internal.Read.Read t => GHC.Internal.Read.Read (Text.Megaparsec.Error.ErrorItem t)
+ Text.Megaparsec.Error: instance GHC.Internal.Show.Show e => GHC.Internal.Show.Show (Text.Megaparsec.Error.ErrorFancy e)
+ Text.Megaparsec.Error: instance GHC.Internal.Show.Show t => GHC.Internal.Show.Show (Text.Megaparsec.Error.ErrorItem t)
+ Text.Megaparsec.Error: instance Text.Megaparsec.Error.ShowErrorComponent GHC.Internal.Base.Void
+ Text.Megaparsec.Error.Builder: instance (GHC.Internal.Data.Data.Data e, GHC.Classes.Ord e) => GHC.Internal.Data.Data.Data (Text.Megaparsec.Error.Builder.EF e)
+ Text.Megaparsec.Error.Builder: instance (GHC.Internal.Data.Data.Data s, GHC.Internal.Data.Data.Data (Text.Megaparsec.Stream.Token s), GHC.Classes.Ord (Text.Megaparsec.Stream.Token s)) => GHC.Internal.Data.Data.Data (Text.Megaparsec.Error.Builder.ET s)
+ Text.Megaparsec.Error.Builder: instance GHC.Classes.Ord e => GHC.Internal.Base.Monoid (Text.Megaparsec.Error.Builder.EF e)
+ Text.Megaparsec.Error.Builder: instance GHC.Classes.Ord e => GHC.Internal.Base.Semigroup (Text.Megaparsec.Error.Builder.EF e)
+ Text.Megaparsec.Error.Builder: instance GHC.Internal.Generics.Generic (Text.Megaparsec.Error.Builder.EF e)
+ Text.Megaparsec.Error.Builder: instance GHC.Internal.Generics.Generic (Text.Megaparsec.Error.Builder.ET s)
+ Text.Megaparsec.Error.Builder: instance Text.Megaparsec.Stream.Stream s => GHC.Internal.Base.Monoid (Text.Megaparsec.Error.Builder.ET s)
+ Text.Megaparsec.Error.Builder: instance Text.Megaparsec.Stream.Stream s => GHC.Internal.Base.Semigroup (Text.Megaparsec.Error.Builder.ET s)
+ Text.Megaparsec.Internal: instance (GHC.Classes.Ord e, Text.Megaparsec.Stream.Stream s) => GHC.Internal.Base.Alternative (Text.Megaparsec.Internal.ParsecT e s m)
+ Text.Megaparsec.Internal: instance (GHC.Classes.Ord e, Text.Megaparsec.Stream.Stream s) => GHC.Internal.Base.MonadPlus (Text.Megaparsec.Internal.ParsecT e s m)
+ Text.Megaparsec.Internal: instance (Text.Megaparsec.Stream.Stream s, GHC.Internal.Base.Monoid a) => GHC.Internal.Base.Monoid (Text.Megaparsec.Internal.ParsecT e s m a)
+ Text.Megaparsec.Internal: instance (Text.Megaparsec.Stream.Stream s, GHC.Internal.Base.Semigroup a) => GHC.Internal.Base.Semigroup (Text.Megaparsec.Internal.ParsecT e s m a)
+ Text.Megaparsec.Internal: instance (Text.Megaparsec.Stream.Stream s, GHC.Internal.Control.Monad.Fix.MonadFix m) => GHC.Internal.Control.Monad.Fix.MonadFix (Text.Megaparsec.Internal.ParsecT e s m)
+ Text.Megaparsec.Internal: instance (a GHC.Types.~ Text.Megaparsec.Stream.Tokens s, GHC.Internal.Data.String.IsString a, GHC.Classes.Eq a, Text.Megaparsec.Stream.Stream s, GHC.Classes.Ord e) => GHC.Internal.Data.String.IsString (Text.Megaparsec.Internal.ParsecT e s m a)
+ Text.Megaparsec.Internal: instance GHC.Classes.Ord t => GHC.Internal.Base.Monoid (Text.Megaparsec.Internal.Hints t)
+ Text.Megaparsec.Internal: instance GHC.Classes.Ord t => GHC.Internal.Base.Semigroup (Text.Megaparsec.Internal.Hints t)
+ Text.Megaparsec.Internal: instance GHC.Internal.Base.Functor (Text.Megaparsec.Internal.ParsecT e s m)
+ Text.Megaparsec.Internal: instance GHC.Internal.Base.Functor (Text.Megaparsec.Internal.Reply e s)
+ Text.Megaparsec.Internal: instance GHC.Internal.Base.Functor (Text.Megaparsec.Internal.Result s e)
+ Text.Megaparsec.Internal: instance Text.Megaparsec.Stream.Stream s => GHC.Internal.Base.Applicative (Text.Megaparsec.Internal.ParsecT e s m)
+ Text.Megaparsec.Internal: instance Text.Megaparsec.Stream.Stream s => GHC.Internal.Base.Monad (Text.Megaparsec.Internal.ParsecT e s m)
+ Text.Megaparsec.Internal: instance Text.Megaparsec.Stream.Stream s => GHC.Internal.Control.Monad.Fail.MonadFail (Text.Megaparsec.Internal.ParsecT e s m)
+ Text.Megaparsec.Pos: instance GHC.Internal.Base.Semigroup Text.Megaparsec.Pos.Pos
+ Text.Megaparsec.Pos: instance GHC.Internal.Data.Data.Data Text.Megaparsec.Pos.InvalidPosException
+ Text.Megaparsec.Pos: instance GHC.Internal.Data.Data.Data Text.Megaparsec.Pos.Pos
+ Text.Megaparsec.Pos: instance GHC.Internal.Data.Data.Data Text.Megaparsec.Pos.SourcePos
+ Text.Megaparsec.Pos: instance GHC.Internal.Exception.Type.Exception Text.Megaparsec.Pos.InvalidPosException
+ Text.Megaparsec.Pos: instance GHC.Internal.Generics.Generic Text.Megaparsec.Pos.InvalidPosException
+ Text.Megaparsec.Pos: instance GHC.Internal.Generics.Generic Text.Megaparsec.Pos.Pos
+ Text.Megaparsec.Pos: instance GHC.Internal.Generics.Generic Text.Megaparsec.Pos.SourcePos
+ Text.Megaparsec.Pos: instance GHC.Internal.Read.Read Text.Megaparsec.Pos.Pos
+ Text.Megaparsec.Pos: instance GHC.Internal.Read.Read Text.Megaparsec.Pos.SourcePos
+ Text.Megaparsec.Pos: instance GHC.Internal.Show.Show Text.Megaparsec.Pos.InvalidPosException
+ Text.Megaparsec.Pos: instance GHC.Internal.Show.Show Text.Megaparsec.Pos.Pos
+ Text.Megaparsec.Pos: instance GHC.Internal.Show.Show Text.Megaparsec.Pos.SourcePos
+ Text.Megaparsec.State: instance (GHC.Internal.Data.Data.Data e, GHC.Internal.Data.Data.Data (Text.Megaparsec.Error.ParseError s e), GHC.Internal.Data.Data.Data s) => GHC.Internal.Data.Data.Data (Text.Megaparsec.State.State s e)
+ Text.Megaparsec.State: instance (GHC.Internal.Show.Show (Text.Megaparsec.Error.ParseError s e), GHC.Internal.Show.Show s) => GHC.Internal.Show.Show (Text.Megaparsec.State.State s e)
+ Text.Megaparsec.State: instance GHC.Internal.Data.Data.Data s => GHC.Internal.Data.Data.Data (Text.Megaparsec.State.PosState s)
+ Text.Megaparsec.State: instance GHC.Internal.Generics.Generic (Text.Megaparsec.State.PosState s)
+ Text.Megaparsec.State: instance GHC.Internal.Generics.Generic (Text.Megaparsec.State.State s e)
+ Text.Megaparsec.State: instance GHC.Internal.Show.Show s => GHC.Internal.Show.Show (Text.Megaparsec.State.PosState s)
+ Text.Megaparsec.Stream: instance Text.Megaparsec.Stream.TraversableStream GHC.Internal.Base.String
+ Text.Megaparsec.Stream: instance Text.Megaparsec.Stream.VisualStream GHC.Internal.Base.String
+ Text.Megaparsec.Unicode: isZeroWidthChar :: Char -> Bool

Files

CHANGELOG.md view
@@ -1,5 +1,17 @@ *Megaparsec follows [SemVer](https://semver.org/).* +## Megaparsec 9.8.0++* Fixed the associativity of the `(<|>)` operator. [Issue+  412](https://github.com/mrkkrp/megaparsec/issues/412).+* Fixed the loss of precision in `decimal`, `binary`, `octal`, and+  `hexadecimal` functions in `Text.Megaparsec.Byte.Lexer` and+  `Text.Megaparsec.Char.Lexer` when they are used to parse floating point+  numbers. [Issue 479](https://github.com/mrkkrp/megaparsec/issues/479).+* Fixed handling of zero-width characters in error messages. To that end,+  added `isZeroWidthChar` function in `Text.Megaparsec.Unicode`. [Issue+  572](https://github.com/mrkkrp/megaparsec/issues/572).+ ## Megaparsec 9.7.1  * Typo fixes and compatibility with `QuickCheck >= 2.17` for
Text/Megaparsec/Byte/Lexer.hs view
@@ -41,7 +41,6 @@  import Control.Applicative import Data.Functor (void)-import Data.List (foldl') import Data.Proxy import Data.Scientific (Scientific) import qualified Data.Scientific as Sci@@ -122,7 +121,7 @@   m a decimal_ = mkNum <$> takeWhile1P (Just "digit") isDigit   where-    mkNum = foldl' step 0 . chunkToTokens (Proxy :: Proxy s)+    mkNum = fromInteger . foldl' step 0 . chunkToTokens (Proxy :: Proxy s)     step a w = a * 10 + fromIntegral (w - 48) {-# INLINE decimal_ #-} @@ -145,7 +144,7 @@     <$> takeWhile1P Nothing isBinDigit     <?> "binary integer"   where-    mkNum = foldl' step 0 . chunkToTokens (Proxy :: Proxy s)+    mkNum = fromInteger . foldl' step 0 . chunkToTokens (Proxy :: Proxy s)     step a w = a * 2 + fromIntegral (w - 48)     isBinDigit w = w == 48 || w == 49 {-# INLINEABLE binary #-}@@ -170,7 +169,7 @@     <$> takeWhile1P Nothing isOctDigit     <?> "octal integer"   where-    mkNum = foldl' step 0 . chunkToTokens (Proxy :: Proxy s)+    mkNum = fromInteger . foldl' step 0 . chunkToTokens (Proxy :: Proxy s)     step a w = a * 8 + fromIntegral (w - 48)     isOctDigit w = w - 48 < 8 {-# INLINEABLE octal #-}@@ -195,7 +194,7 @@     <$> takeWhile1P Nothing isHexDigit     <?> "hexadecimal integer"   where-    mkNum = foldl' step 0 . chunkToTokens (Proxy :: Proxy s)+    mkNum = fromInteger . foldl' step 0 . chunkToTokens (Proxy :: Proxy s)     step a w       | w >= 48 && w <= 57 = a * 16 + fromIntegral (w - 48)       | w >= 97 = a * 16 + fromIntegral (w - 87)
Text/Megaparsec/Char/Lexer.hs view
@@ -69,7 +69,6 @@ import Control.Applicative import Control.Monad (void) import qualified Data.Char as Char-import Data.List (foldl') import Data.List.NonEmpty (NonEmpty (..)) import Data.Maybe (fromMaybe, isJust, listToMaybe) import Data.Proxy@@ -372,7 +371,7 @@   m a decimal_ = mkNum <$> takeWhile1P (Just "digit") Char.isDigit   where-    mkNum = foldl' step 0 . chunkToTokens (Proxy :: Proxy s)+    mkNum = fromInteger . foldl' step 0 . chunkToTokens (Proxy :: Proxy s)     step a c = a * 10 + fromIntegral (Char.digitToInt c) {-# INLINE decimal_ #-} @@ -395,7 +394,7 @@     <$> takeWhile1P Nothing isBinDigit     <?> "binary integer"   where-    mkNum = foldl' step 0 . chunkToTokens (Proxy :: Proxy s)+    mkNum = fromInteger . foldl' step 0 . chunkToTokens (Proxy :: Proxy s)     step a c = a * 2 + fromIntegral (Char.digitToInt c)     isBinDigit x = x == '0' || x == '1' {-# INLINEABLE binary #-}@@ -423,7 +422,7 @@     <$> takeWhile1P Nothing Char.isOctDigit     <?> "octal integer"   where-    mkNum = foldl' step 0 . chunkToTokens (Proxy :: Proxy s)+    mkNum = fromInteger . foldl' step 0 . chunkToTokens (Proxy :: Proxy s)     step a c = a * 8 + fromIntegral (Char.digitToInt c) {-# INLINEABLE octal #-} @@ -450,7 +449,7 @@     <$> takeWhile1P Nothing Char.isHexDigit     <?> "hexadecimal integer"   where-    mkNum = foldl' step 0 . chunkToTokens (Proxy :: Proxy s)+    mkNum = fromInteger . foldl' step 0 . chunkToTokens (Proxy :: Proxy s)     step a c = a * 16 + fromIntegral (Char.digitToInt c) {-# INLINEABLE hexadecimal #-} 
Text/Megaparsec/Internal.hs view
@@ -357,9 +357,32 @@   let meerr err ms =         let ncerr err' s' = cerr (err' <> err) (longestMatch ms s')             neok x s' hs = eok x s' (toHints (stateOffset s') err <> hs)-            neerr err' s' = eerr (err' <> err) (longestMatch ms s')+            neerr err' s' =+              let combinedErr = combineErrors (stateOffset s) err err'+               in eerr combinedErr (longestMatch ms s')          in unParser n s cok ncerr neok neerr    in unParser m s cok cerr eok meerr+  where+    combineErrors altOffset e1 e2 = case (e1, e2) of+      (TrivialError o1 u1 p1, TrivialError o2 u2 p2) ->+        -- When merging alternative errors, if one is ahead due to try, we+        -- bring both to the alternative position and union their expected+        -- tokens.+        if o1 > altOffset || o2 > altOffset+          then+            -- At least one error is ahead, normalize to alt position. Only+            -- include expected tokens from errors at the alt position.+            let p1' = if o1 == altOffset then p1 else E.empty+                p2' = if o2 == altOffset then p2 else E.empty+                -- Use the unexpected from the error at alt position, or the+                -- furthest.+                unexp = case (o1 `compare` altOffset, o2 `compare` altOffset) of+                  (EQ, _) -> u1+                  (_, EQ) -> u2+                  _ -> if o1 >= o2 then u1 else u2+             in TrivialError altOffset unexp (E.union p1' p2')+          else e2 <> e1+      _ -> e2 <> e1 {-# INLINE pPlus #-}  -- | From two states, return the one with the greater number of processed
Text/Megaparsec/Stream.hs view
@@ -40,7 +40,7 @@ import qualified Data.ByteString.Lazy as BL import qualified Data.ByteString.Lazy.Char8 as BL8 import Data.Char (chr)-import Data.Foldable (foldl', toList)+import Data.Foldable (toList) import Data.Kind (Type) import Data.List.NonEmpty (NonEmpty (..)) import qualified Data.List.NonEmpty as NE@@ -568,8 +568,8 @@   (Token s -> Char) ->   -- | Newline token and tab token   (Token s, Token s) ->-  -- | Increment in column position for a token-  (Token s -> Pos) ->+  -- | Update column position for a token+  (Token s -> Pos -> Pos) ->   -- | Offset to reach   Int ->   -- | Initial 'PosState' to use@@ -631,7 +631,7 @@                     (g . (fromTok ch :))               | otherwise ->                   St-                    (SourcePos n l (c <> columnIncrement ch))+                    (SourcePos n l (columnIncrement ch c))                     (g . (fromTok ch :)) {-# INLINE reachOffset' #-} @@ -645,9 +645,9 @@   (forall b. (b -> Token s -> b) -> b -> Tokens s -> b) ->   -- | Newline token and tab token   (Token s, Token s) ->+  -- | Update column position for a token+  (Token s -> Pos -> Pos) ->   -- | Offset to reach-  -- | Increment in column position for a token-  (Token s -> Pos) ->   Int ->   -- | Initial 'PosState' to use   PosState s ->@@ -680,7 +680,7 @@               | ch == tabTok ->                   SourcePos n l (mkPos $ c' + w - ((c' - 1) `rem` w))               | otherwise ->-                  SourcePos n l (c <> columnIncrement ch)+                  SourcePos n l (columnIncrement ch c) {-# INLINE reachOffsetNoLine' #-}  -- | Like 'BL.splitAt' but accepts the index as an 'Int'.@@ -764,12 +764,15 @@     go !i n xs = ' ' : go (i + 1) (n - 1) xs     w = unPos w' --- | Return increment in column position that corresponds to the given--- 'Char'.-charInc :: Char -> Pos-charInc ch = if Unicode.isWideChar ch then pos1 <> pos1 else pos1+-- | Return updated column position that corresponds to the given 'Char'.+charInc :: Char -> Pos -> Pos+charInc ch c+  | Unicode.isZeroWidthChar ch = c+  | Unicode.isWideChar ch = c <> pos1 <> pos1+  | otherwise = c <> pos1 --- | Return increment in column position that corresponds to the given--- 'Word8'.-byteInc :: Word8 -> Pos-byteInc _ = pos1+-- | Return updated column position that corresponds to the given 'Word8'.+byteInc :: Word8 -> Pos -> Pos+byteInc w c+  | w < 0x20 || (w >= 0x7f && w < 0xa0) = c -- C0 and C1 control chars+  | otherwise = c <> pos1
Text/Megaparsec/Unicode.hs view
@@ -16,6 +16,7 @@   ( stringLength,     charLength,     isWideChar,+    isZeroWidthChar,   ) where @@ -33,7 +34,10 @@ -- -- @since 9.7.0 charLength :: Char -> Int-charLength ch = if isWideChar ch then 2 else 1+charLength ch+  | isZeroWidthChar ch = 0+  | isWideChar ch = 2+  | otherwise = 1  -- | Determine whether the given 'Char' is “wide”, that is, whether it spans -- 2 columns instead of one.@@ -52,6 +56,24 @@         (a, b) = wideCharRanges ! mid     n = ord c +-- | Determine whether the given 'Char' is "zero-width", that is, whether it+-- has no visible representation and does not advance the cursor position.+-- This includes control characters and certain Unicode zero-width characters.+--+-- @since 9.8.0+isZeroWidthChar :: Char -> Bool+isZeroWidthChar c = go (bounds zeroWidthCharRanges)+  where+    go (lo, hi)+      | hi < lo = False+      | a <= n && n <= b = True+      | n < a = go (lo, pred mid)+      | otherwise = go (succ mid, hi)+      where+        mid = (lo + hi) `div` 2+        (a, b) = zeroWidthCharRanges ! mid+    n = ord c+ -- | Wide character ranges. wideCharRanges :: Array Int (Int, Int) wideCharRanges =@@ -178,3 +200,24 @@       (0x02f800, 0x02fa1d)     ] {-# NOINLINE wideCharRanges #-}++-- | Zero-width character ranges.+zeroWidthCharRanges :: Array Int (Int, Int)+zeroWidthCharRanges =+  listArray+    (0, 12)+    [ (0x0000, 0x001f), -- C0 control characters+      (0x007f, 0x009f), -- DEL and C1 control characters+      (0x00ad, 0x00ad), -- Soft Hyphen+      (0x0300, 0x036f), -- Combining Diacritical Marks+      (0x0483, 0x0489), -- Combining Cyrillic+      (0x0591, 0x05bd), -- Hebrew combining marks+      (0x05bf, 0x05bf), -- Hebrew point+      (0x05c1, 0x05c2), -- Hebrew points+      (0x05c4, 0x05c5), -- Hebrew marks+      (0x05c7, 0x05c7), -- Hebrew point+      (0x0610, 0x061a), -- Arabic combining marks+      (0x200b, 0x200f), -- Zero width chars and directional marks+      (0x202a, 0x202e) -- Directional formatting+    ]+{-# NOINLINE zeroWidthCharRanges #-}
megaparsec.cabal view
@@ -1,6 +1,6 @@ cabal-version:   2.4 name:            megaparsec-version:         9.7.1+version:         9.8.0 license:         BSD-2-Clause license-file:    LICENSE.md maintainer:      Mark Karpov <markkarpov92@gmail.com>@@ -72,7 +72,7 @@     if flag(dev)         ghc-options:             -Wall -Werror -Wredundant-constraints -Wpartial-fields-            -Wunused-packages -Wno-unused-imports+            -Wunused-packages      else         ghc-options: -O2 -Wall