Parsing.String
Primitive parsers, combinators and functions for working with an input
stream of type String
.
All of these primitive parsers will consume when they succeed.
All of these primitive parsers will not consume and will automatically backtrack when they fail.
The behavior of these primitive parsers is based on the behavior of the
Data.String
module in the strings package.
In most JavaScript runtime environments, the String
is little-endian UTF-16.
The primitive parsers which return Char
will only succeed when the character
being parsed is a code point in the
Basic Multilingual Plane
(the “BMP”). These parsers can be convenient because of the good support
that PureScript has for writing Char
literals like 'あ'
, 'β'
, 'C'
.
The other primitive parsers, which return CodePoint
and String
types,
can parse the full Unicode character set. All of the primitive parsers
in this module can be used together.
Position
In a String
parser, the Position {index}
counts the number of
unicode CodePoint
s since the beginning of the input string.
Each tab character (0x09
) encountered in a String
parser will advance
the Position {column}
by 8.
These patterns will advance the Position {line}
by 1 and reset
the Position {column}
to 1:
- newline (
0x0A
) - carriage-return (
0x0D
) - carriage-return-newline (
0x0D 0x0A
)
#anyChar
#anyCodePoint
anyCodePoint :: forall m. ParserT String m CodePoint
Match any Unicode character. Always succeeds when any input remains.
#satisfy
#satisfyCodePoint
#rest
#match
#regex
regex :: forall m. String -> RegexFlags -> Either String (ParserT String m String)
Compile a regular expression String
into a regular expression parser.
This function will use the Data.String.Regex.regex
function to compile
and return a parser which can be used
in a ParserT String m
monad.
If compilation fails then this function will return Left
a compilation
error message.
The returned parser will try to match the regular expression pattern once, starting at the current parser position. On success, it will return the matched substring.
If the RegExp String
is constant then we can assume that compilation will
always succeed and unsafeCrashWith
if it doesn’t. If we dynamically
generate the RegExp String
at runtime then we should handle the
case where compilation of the RegExp fails.
This function should be called outside the context of a ParserT String m
monad for two reasons:
- If we call this function inside of the
ParserT String m
monad and thenfail
the parse when the compilation fails, then that could be confusing because a parser failure is supposed to indicate an invalid input string. If the compilation failure occurs in analt
then the compilation failure might not be reported at all and instead the input string would be parsed incorrectly. - Compiling a RegExp is expensive and it’s better to do it once in advance and then use the compiled RegExp many times than to compile the RegExp many times during the parse.
This parser may be useful for quickly consuming a large section of the
input String
, because in a JavaScript runtime environment a compiled
RegExp is a lot faster than a monadic parser built from parsing primitives.
MDN Regular Expressions Cheatsheet
Example
This example shows how to compile and run the xMany
parser which will
capture the regular expression pattern x*
.
case regex "x*" noFlags of
Left compileError -> unsafeCrashWith $ "xMany failed to compile: " <> compileError
Right xMany -> runParser "xxxZ" do
xMany
Flags
Set RegexFlags
with the Semigroup
instance like this.
regex "x*" (dotAll <> ignoreCase)
The dotAll
, unicode
, and ignoreCase
flags might make sense for
a regex
parser. The other flags will
probably cause surprising behavior and you should avoid them.
#anyTill
anyTill :: forall m a. Monad m => ParserT String m a -> ParserT String m (Tuple String a)
Combinator which finds the first position in the input String
where the
phrase can parse. Returns both the
parsed result and the unparsable input section searched before the parse.
Will fail if no section of the input is parseable. To backtrack the input
stream on failure, combine with tryRethrow
.
This combinator works like Data.String.takeWhile or Data.String.Regex.search and it allows using a parser for the pattern search.
This combinator is equivalent to manyTill_ anyCodePoint
, but it will be
faster because it returns a slice of the input String
for the
section preceding the parse instead of a List CodePoint
.
Be careful not to look too far
ahead; if the phrase parser looks to the end of the input then anyTill
could be O(n²).
#consumeWith
consumeWith :: forall m a. (String -> Either String { consumed :: String, remainder :: String, value :: a }) -> ParserT String m a
Consume a portion of the input string while yielding a value.
Takes a consumption function which takes the remaining input String
as its argument and returns either an error message, or three fields:
value
is the value to return.consumed
is the inputString
that was consumed. It is used to update the parser position. If theconsumed
String
is non-empty then theconsumed
flag will be set to true. (Confusing terminology.)remainder
is the new remaining inputString
.
This function is used internally to construct primitive String
parsers.
#parseErrorHuman
parseErrorHuman :: String -> Int -> ParseError -> Array String
Returns three String
s which, when printed line-by-line, will show
a human-readable parsing error message with context.
Input arguments
- The first argument is the input
String
given to the parser which errored. - The second argument is a positive
Int
which indicates how many characters of inputString
context are wanted around the parsing error. - The third argument is the
ParseError
for the inputString
.
Output String
s
The parse error message and the parsing position.
A string with an arrow that points to the error position in the input context (in a fixed-width font).
The input context. A substring of the input which tries to center the error position and have the wanted length and not include any newlines or carriage returns.
If the parse error occurred on a carriage return or newline character, then that character will be included at the end of the input context.
Example
let input = "12345six789"
case runParser input (replicateA 9 String.Basic.digit) of
Left err ->
log $ String.joinWith "\n" $ parseErrorHuman input 20 err
Expected digit at position index:5 (line:1, column:6)
▼
12345six789
Packages
cardano-transaction-lib
- Contract.Address
- Contract.AuxiliaryData
- Contract.Backend.Ogmios
- Contract.CborBytes
- Contract.Chain
- Contract.Config
- Contract.Crypto.Secp256k1
- Contract.Crypto.Secp256k1.ECDSA
- Contract.Crypto.Secp256k1.Schnorr
- Contract.Crypto.Secp256k1.Utils
- Contract.Hashing
- Contract.JsSdk
- Contract.Keys
- Contract.Log
- Contract.Monad
- Contract.Plutarch.Types
- Contract.PlutusData
- Contract.Prelude
- Contract.Prim.ByteArray
- Contract.ProtocolParameters
- Contract.Scripts
- Contract.Staking
- Contract.Test.Assert
- Contract.Test.Blockfrost
- Contract.Test.Testnet
- Contract.Test.Utils
- Contract.Time
- Contract.Transaction
- Contract.UnbalancedTx
- Contract.Utxos
- Contract.Value
- Contract.Wallet
- Contract.Wallet.Key
- Contract.Wallet.KeyFile
- Ctl.Examples.AdditionalUtxos
- Ctl.Examples.AlwaysMints
- Ctl.Examples.AlwaysSucceeds
- Ctl.Examples.AwaitTxConfirmedWithTimeout
- Ctl.Examples.BalanceTxConstraints
- Ctl.Examples.ByUrl
- Ctl.Examples.ChangeGeneration
- Ctl.Examples.Cip30
- Ctl.Examples.ContractTestUtils
- Ctl.Examples.Datums
- Ctl.Examples.DropTokens
- Ctl.Examples.ECDSA
- Ctl.Examples.ExUnits
- Ctl.Examples.Gov.DelegateVoteAbstain
- Ctl.Examples.Gov.Internal.Common
- Ctl.Examples.Gov.ManageDrep
- Ctl.Examples.Gov.ManageDrepScript
- Ctl.Examples.Gov.SubmitVote
- Ctl.Examples.Gov.SubmitVoteScript
- Ctl.Examples.Helpers
- Ctl.Examples.IncludeDatum
- Ctl.Examples.KeyWallet.Cip30
- Ctl.Examples.KeyWallet.DelegateVoteAbstain
- Ctl.Examples.KeyWallet.Internal.Cip30Contract
- Ctl.Examples.KeyWallet.Internal.Cip30HtmlForm
- Ctl.Examples.KeyWallet.Internal.Contract
- Ctl.Examples.KeyWallet.Internal.HtmlForm
- Ctl.Examples.KeyWallet.Internal.Pkh2PkhContract
- Ctl.Examples.KeyWallet.Internal.Pkh2PkhHtmlForm
- Ctl.Examples.KeyWallet.ManageDrep
- Ctl.Examples.KeyWallet.MintsAndSendsToken
- Ctl.Examples.KeyWallet.Pkh2Pkh
- Ctl.Examples.KeyWallet.SignMultiple
- Ctl.Examples.KeyWallet.SubmitVote
- Ctl.Examples.Lose7Ada
- Ctl.Examples.ManyAssets
- Ctl.Examples.MintsMultipleTokens
- Ctl.Examples.MultipleRedeemers
- Ctl.Examples.NativeScriptMints
- Ctl.Examples.OneShotMinting
- Ctl.Examples.PaysWithDatum
- Ctl.Examples.Pkh2Pkh
- Ctl.Examples.PlutusV2.AlwaysSucceeds
- Ctl.Examples.PlutusV2.InlineDatum
- Ctl.Examples.PlutusV2.OneShotMinting
- Ctl.Examples.PlutusV2.ReferenceInputsAndScripts
- Ctl.Examples.PlutusV2.Scripts.AlwaysMints
- Ctl.Examples.PlutusV2.Scripts.AlwaysSucceeds
- Ctl.Examples.PlutusV3.Scripts.AlwaysMints
- Ctl.Examples.Schnorr
- Ctl.Examples.SendsToken
- Ctl.Examples.SignData
- Ctl.Examples.SignMultiple
- Ctl.Examples.TxChaining
- Ctl.Examples.Utxos
- Ctl.Examples.Wallet
- Ctl.Internal.BalanceTx
- Ctl.Internal.BalanceTx.CoinSelection
- Ctl.Internal.BalanceTx.Collateral
- Ctl.Internal.BalanceTx.Collateral.Select
- Ctl.Internal.BalanceTx.Constraints
- Ctl.Internal.BalanceTx.Error
- Ctl.Internal.BalanceTx.ExUnitsAndMinFee
- Ctl.Internal.BalanceTx.FakeOutput
- Ctl.Internal.BalanceTx.Sync
- Ctl.Internal.BalanceTx.Types
- Ctl.Internal.BalanceTx.UtxoMinAda
- Ctl.Internal.Cardano.TextEnvelope
- Ctl.Internal.CardanoCli
- Ctl.Internal.CoinSelection.UtxoIndex
- Ctl.Internal.Contract
- Ctl.Internal.Contract.AwaitTxConfirmed
- Ctl.Internal.Contract.Hooks
- Ctl.Internal.Contract.LogParams
- Ctl.Internal.Contract.MinFee
- Ctl.Internal.Contract.Monad
- Ctl.Internal.Contract.Provider
- Ctl.Internal.Contract.ProviderBackend
- Ctl.Internal.Contract.Sign
- Ctl.Internal.Contract.WaitUntilSlot
- Ctl.Internal.Contract.Wallet
- Ctl.Internal.FfiHelpers
- Ctl.Internal.Helpers
- Ctl.Internal.Helpers.Formatter
- Ctl.Internal.Helpers.UniqueId
- Ctl.Internal.IsData
- Ctl.Internal.Logging
- Ctl.Internal.Metadata.MetadataType
- Ctl.Internal.MinFee
- Ctl.Internal.NativeScripts
- Ctl.Internal.Partition
- Ctl.Internal.ProcessConstraints
- Ctl.Internal.ProcessConstraints.Error
- Ctl.Internal.ProcessConstraints.State
- Ctl.Internal.ServerConfig
- Ctl.Internal.Spawn
- Ctl.Internal.Test.ConsoleReporter
- Ctl.Internal.Test.ContractTest
- Ctl.Internal.Test.E2E.Browser
- Ctl.Internal.Test.E2E.Feedback
- Ctl.Internal.Test.E2E.Feedback.Browser
- Ctl.Internal.Test.E2E.Feedback.Hooks
- Ctl.Internal.Test.E2E.Feedback.Node
- Ctl.Internal.Test.E2E.Options
- Ctl.Internal.Test.E2E.Route
- Ctl.Internal.Test.E2E.Runner
- Ctl.Internal.Test.E2E.Types
- Ctl.Internal.Test.E2E.Wallets
- Ctl.Internal.Test.KeyDir
- Ctl.Internal.Test.UtxoDistribution
- Ctl.Internal.Testnet.Contract
- Ctl.Internal.Testnet.DistributeFunds
- Ctl.Internal.Testnet.Server
- Ctl.Internal.Testnet.Types
- Ctl.Internal.Testnet.Utils
- Ctl.Internal.Transaction
- Ctl.Internal.TxOutput
- Ctl.Internal.Types.Cbor
- Ctl.Internal.Types.Interval
- Ctl.Internal.Types.MetadataLabel
- Ctl.Internal.Types.ScriptLookups
- Ctl.Internal.Types.TxConstraints
- Ctl.Internal.Types.UsedTxOuts
- Ctl.Internal.Types.Val
- Ctl.Internal.Wallet
- Ctl.Internal.Wallet.Cip30
- Ctl.Internal.Wallet.Cip30Mock
- Ctl.Internal.Wallet.KeyFile
- Ctl.Internal.Wallet.Spec
- Internal.CardanoCli.Provider
- Scaffold
- Scaffold.Main
- Scaffold.Test.Blockfrost
- Scaffold.Test.E2E
- Scaffold.Test.E2E.Serve
- Test.Ctl.ApplyArgs
- Test.Ctl.BalanceTx.ChangeGeneration
- Test.Ctl.BalanceTx.Collateral
- Test.Ctl.BalanceTx.Time
- Test.Ctl.Blockfrost
- Test.Ctl.Blockfrost.Aeson.Suite
- Test.Ctl.Blockfrost.Contract
- Test.Ctl.Blockfrost.GenerateFixtures.ChainTip
- Test.Ctl.Blockfrost.GenerateFixtures.EraSummaries
- Test.Ctl.Blockfrost.GenerateFixtures.Helpers
- Test.Ctl.Blockfrost.GenerateFixtures.NativeScript
- Test.Ctl.Blockfrost.GenerateFixtures.ProtocolParameters
- Test.Ctl.Blockfrost.GenerateFixtures.ScriptInfo
- Test.Ctl.Blockfrost.GenerateFixtures.SystemStart
- Test.Ctl.CoinSelection
- Test.Ctl.CoinSelection.Arbitrary
- Test.Ctl.CoinSelection.RoundRobin
- Test.Ctl.CoinSelection.SelectionState
- Test.Ctl.CoinSelection.UtxoIndex
- Test.Ctl.CslGc
- Test.Ctl.Data
- Test.Ctl.Data.Interval
- Test.Ctl.E2E
- Test.Ctl.E2E.Route
- Test.Ctl.Fixtures
- Test.Ctl.Fixtures.CostModels
- Test.Ctl.Hashing
- Test.Ctl.Integration
- Test.Ctl.Internal.Hashing
- Test.Ctl.Internal.Plutus.Credential
- Test.Ctl.Internal.Plutus.Time
- Test.Ctl.KupmiosM.AffInterface
- Test.Ctl.Logging
- Test.Ctl.Main
- Test.Ctl.NativeScript
- Test.Ctl.Ogmios.Aeson
- Test.Ctl.Ogmios.EvaluateTx
- Test.Ctl.Ogmios.GenerateFixtures
- Test.Ctl.Partition
- Test.Ctl.PrivateKey
- Test.Ctl.ProtocolParameters
- Test.Ctl.Serialization
- Test.Ctl.Serialization.Hash
- Test.Ctl.Testnet
- Test.Ctl.Testnet.Common
- Test.Ctl.Testnet.Contract
- Test.Ctl.Testnet.Contract.Assert
- Test.Ctl.Testnet.Contract.Mnemonics
- Test.Ctl.Testnet.Contract.OgmiosMempool
- Test.Ctl.Testnet.DistributeFunds
- Test.Ctl.Testnet.ExUnits
- Test.Ctl.Testnet.Gov
- Test.Ctl.Testnet.Logging
- Test.Ctl.Testnet.SameWallets
- Test.Ctl.Testnet.Staking
- Test.Ctl.Testnet.Utils
- Test.Ctl.Testnet.UtxoDistribution
- Test.Ctl.Types.Interval
- Test.Ctl.Types.Ipv6
- Test.Ctl.Types.TokenName
- Test.Ctl.Types.Transaction
- Test.Ctl.Unit
- Test.Ctl.UsedTxOuts
- Test.Ctl.Utils
- Test.Ctl.Utils.DrainWallets
- Test.Ctl.Wallet.Bip32
- Test.Scaffold.Main
aeson
aff-promise
aff-retry
arraybuffer-types
assert
bignumber
bytearrays
cardano-collateral-select
cardano-data-lite
cardano-hd-wallet
cardano-key-wallet
cardano-kupmios-provider
- Cardano.Kupmios.Helpers
- Cardano.Kupmios.KupmiosM
- Cardano.Kupmios.KupmiosM.HttpUtils
- Cardano.Kupmios.Kupo
- Cardano.Kupmios.Logging
- Cardano.Kupmios.Ogmios
- Cardano.Kupmios.Ogmios.CurrentEpoch
- Cardano.Kupmios.Ogmios.EraSummaries
- Cardano.Kupmios.Ogmios.Helpers
- Cardano.Kupmios.Ogmios.Pools
- Cardano.Kupmios.Ogmios.Types
- Cardano.Kupmios.Provider
cardano-message-signing
cardano-transaction-builder
cardano-types
- Cardano.AsCbor
- Cardano.FromData
- Cardano.FromMetadata
- Cardano.ToData
- Cardano.ToMetadata
- Cardano.Types.Address
- Cardano.Types.Anchor
- Cardano.Types.AnchorDataHash
- Cardano.Types.Asset
- Cardano.Types.AssetClass
- Cardano.Types.AssetName
- Cardano.Types.AuxiliaryData
- Cardano.Types.AuxiliaryDataHash
- Cardano.Types.Base58String
- Cardano.Types.BaseAddress
- Cardano.Types.Bech32String
- Cardano.Types.BigInt
- Cardano.Types.BigNum
- Cardano.Types.BootstrapWitness
- Cardano.Types.ByronAddress
- Cardano.Types.CborBytes
- Cardano.Types.Certificate
- Cardano.Types.Chain
- Cardano.Types.Coin
- Cardano.Types.Committee
- Cardano.Types.Constitution
- Cardano.Types.CostModel
- Cardano.Types.Credential
- Cardano.Types.DRep
- Cardano.Types.DRepVotingThresholds
- Cardano.Types.DataHash
- Cardano.Types.DelegationsAndRewards
- Cardano.Types.Ed25519KeyHash
- Cardano.Types.Ed25519Signature
- Cardano.Types.EnterpriseAddress
- Cardano.Types.Epoch
- Cardano.Types.EraSummaries
- Cardano.Types.ExUnitPrices
- Cardano.Types.ExUnits
- Cardano.Types.GeneralTransactionMetadata
- Cardano.Types.GenesisHash
- Cardano.Types.GovernanceAction
- Cardano.Types.GovernanceActionId
- Cardano.Types.HardForkInitiationAction
- Cardano.Types.Int
- Cardano.Types.Internal.Helpers
- Cardano.Types.Ipv4
- Cardano.Types.Ipv6
- Cardano.Types.Language
- Cardano.Types.Mint
- Cardano.Types.MultiAsset
- Cardano.Types.NativeScript
- Cardano.Types.NetworkId
- Cardano.Types.NewConstitutionAction
- Cardano.Types.NoConfidenceAction
- Cardano.Types.OutputDatum
- Cardano.Types.ParameterChangeAction
- Cardano.Types.PaymentCredential
- Cardano.Types.PaymentPubKeyHash
- Cardano.Types.PlutusData
- Cardano.Types.PlutusScript
- Cardano.Types.PoolMetadata
- Cardano.Types.PoolMetadataHash
- Cardano.Types.PoolParams
- Cardano.Types.PoolPubKeyHash
- Cardano.Types.PoolVotingThresholds
- Cardano.Types.PrivateKey
- Cardano.Types.ProtocolParamUpdate
- Cardano.Types.ProtocolParameters
- Cardano.Types.ProtocolVersion
- Cardano.Types.PublicKey
- Cardano.Types.Rational
- Cardano.Types.RawBytes
- Cardano.Types.Redeemer
- Cardano.Types.RedeemerDatum
- Cardano.Types.RedeemerTag
- Cardano.Types.Relay
- Cardano.Types.RewardAddress
- Cardano.Types.ScriptDataHash
- Cardano.Types.ScriptHash
- Cardano.Types.ScriptRef
- Cardano.Types.Slot
- Cardano.Types.StakeCredential
- Cardano.Types.StakePubKeyHash
- Cardano.Types.StakeValidatorHash
- Cardano.Types.SystemStart
- Cardano.Types.Transaction
- Cardano.Types.TransactionBody
- Cardano.Types.TransactionHash
- Cardano.Types.TransactionInput
- Cardano.Types.TransactionMetadatum
- Cardano.Types.TransactionOutput
- Cardano.Types.TransactionUnspentOutput
- Cardano.Types.TransactionWitnessSet
- Cardano.Types.TreasuryWithdrawalsAction
- Cardano.Types.URL
- Cardano.Types.UnitInterval
- Cardano.Types.UpdateCommitteeAction
- Cardano.Types.UtxoMap
- Cardano.Types.VRFKeyHash
- Cardano.Types.Value
- Cardano.Types.Vkey
- Cardano.Types.Vkeywitness
- Cardano.Types.Vote
- Cardano.Types.Voter
- Cardano.Types.VotingProcedure
- Cardano.Types.VotingProcedures
- Cardano.Types.VotingProposal
catenable-lists
checked-exceptions
cip30
cip30-mock
cip30-typesafe
cip95
cip95-typesafe
const
debug
distributive
encoding
exceptions
exists
exitcodes
fixed-points
form-urlencoded
functions
heterogeneous
http-methods
identity
integers
invariant
js-bigints
js-date
js-uri
lazy
lcg
media-types
mmorph
mote-testplan
newtype
node-child-process
node-fs-aff
node-path
node-process
node-readline
node-streams
node-streams-aff
node-url
nonempty
now
nullable
open-memoize
options
optparse
- Options.Applicative.BashCompletion
- Options.Applicative.Builder
- Options.Applicative.Builder.Completer
- Options.Applicative.Builder.Internal
- Options.Applicative.Common
- Options.Applicative.Extra
- Options.Applicative.Help.Chunk
- Options.Applicative.Help.Core
- Options.Applicative.Help.Levenshtein
- Options.Applicative.Help.Pretty
- Options.Applicative.Help.Types
- Options.Applicative.Internal
- Options.Applicative.Internal.Utils
- Options.Applicative.Types
- Text.PrettyPrint.Leijen
ordered-collections
partial
plutus-types
- Cardano.Plutus.Types.Address
- Cardano.Plutus.Types.Credential
- Cardano.Plutus.Types.CurrencySymbol
- Cardano.Plutus.Types.Map
- Cardano.Plutus.Types.MintingPolicyHash
- Cardano.Plutus.Types.OutputDatum
- Cardano.Plutus.Types.PaymentPubKeyHash
- Cardano.Plutus.Types.PubKeyHash
- Cardano.Plutus.Types.StakePubKeyHash
- Cardano.Plutus.Types.StakingCredential
- Cardano.Plutus.Types.TokenName
- Cardano.Plutus.Types.TransactionOutput
- Cardano.Plutus.Types.TransactionOutputWithRefScript
- Cardano.Plutus.Types.TransactionUnspentOutput
- Cardano.Plutus.Types.UtxoMap
- Cardano.Plutus.Types.Validator
- Cardano.Plutus.Types.ValidatorHash
- Cardano.Plutus.Types.Value
posix-types
prelude
- Control.Applicative
- Control.Apply
- Control.Bind
- Control.Category
- Control.Monad
- Control.Semigroupoid
- Data.Boolean
- Data.BooleanAlgebra
- Data.Bounded
- Data.Bounded.Generic
- Data.CommutativeRing
- Data.DivisionRing
- Data.Eq
- Data.Eq.Generic
- Data.EuclideanRing
- Data.Field
- Data.Function
- Data.Functor
- Data.Generic.Rep
- Data.HeytingAlgebra
- Data.HeytingAlgebra.Generic
- Data.Monoid
- Data.Monoid.Additive
- Data.Monoid.Conj
- Data.Monoid.Disj
- Data.Monoid.Dual
- Data.Monoid.Endo
- Data.Monoid.Generic
- Data.Monoid.Multiplicative
- Data.NaturalTransformation
- Data.Ord
- Data.Ord.Generic
- Data.Ordering
- Data.Reflectable
- Data.Ring
- Data.Ring.Generic
- Data.Semigroup
- Data.Semigroup.First
- Data.Semigroup.Generic
- Data.Semigroup.Last
- Data.Semiring
- Data.Semiring.Generic
- Data.Show
- Data.Show.Generic
- Data.Symbol
- Data.Unit
- Data.Void
- Record.Unsafe
- Type.Proxy
profunctor-lenses
- Data.Lens.AffineTraversal
- Data.Lens.At
- Data.Lens.Common
- Data.Lens.Fold
- Data.Lens.Fold.Partial
- Data.Lens.Getter
- Data.Lens.Grate
- Data.Lens.Index
- Data.Lens.Indexed
- Data.Lens.Internal.Bazaar
- Data.Lens.Internal.Exchange
- Data.Lens.Internal.Focusing
- Data.Lens.Internal.Forget
- Data.Lens.Internal.Grating
- Data.Lens.Internal.Indexed
- Data.Lens.Internal.Market
- Data.Lens.Internal.Re
- Data.Lens.Internal.Shop
- Data.Lens.Internal.Stall
- Data.Lens.Internal.Tagged
- Data.Lens.Internal.Wander
- Data.Lens.Internal.Zipping
- Data.Lens.Iso
- Data.Lens.Iso.Newtype
- Data.Lens.Lens
- Data.Lens.Lens.Product
- Data.Lens.Lens.Tuple
- Data.Lens.Lens.Unit
- Data.Lens.Lens.Void
- Data.Lens.Prism
- Data.Lens.Prism.Coproduct
- Data.Lens.Prism.Either
- Data.Lens.Prism.Maybe
- Data.Lens.Record
- Data.Lens.Setter
- Data.Lens.Traversal
- Data.Lens.Types
- Data.Lens.Zoom
properties
psci-support
quickcheck-combinators
quickcheck-laws
- Test.QuickCheck.Laws
- Test.QuickCheck.Laws.Control.Alt
- Test.QuickCheck.Laws.Control.Alternative
- Test.QuickCheck.Laws.Control.Applicative
- Test.QuickCheck.Laws.Control.Apply
- Test.QuickCheck.Laws.Control.Bind
- Test.QuickCheck.Laws.Control.Category
- Test.QuickCheck.Laws.Control.Comonad
- Test.QuickCheck.Laws.Control.Extend
- Test.QuickCheck.Laws.Control.Monad
- Test.QuickCheck.Laws.Control.MonadPlus
- Test.QuickCheck.Laws.Control.Plus
- Test.QuickCheck.Laws.Control.Semigroupoid
- Test.QuickCheck.Laws.Data.BooleanAlgebra
- Test.QuickCheck.Laws.Data.Bounded
- Test.QuickCheck.Laws.Data.BoundedEnum
- Test.QuickCheck.Laws.Data.CommutativeRing
- Test.QuickCheck.Laws.Data.DivisionRing
- Test.QuickCheck.Laws.Data.Enum
- Test.QuickCheck.Laws.Data.Eq
- Test.QuickCheck.Laws.Data.EuclideanRing
- Test.QuickCheck.Laws.Data.Field
- Test.QuickCheck.Laws.Data.Foldable
- Test.QuickCheck.Laws.Data.Functor
- Test.QuickCheck.Laws.Data.FunctorWithIndex
- Test.QuickCheck.Laws.Data.HeytingAlgebra
- Test.QuickCheck.Laws.Data.Monoid
- Test.QuickCheck.Laws.Data.Ord
- Test.QuickCheck.Laws.Data.Ring
- Test.QuickCheck.Laws.Data.Semigroup
- Test.QuickCheck.Laws.Data.Semiring
random
rationals
refs
safe-coerce
safely
spec
- Test.Spec
- Test.Spec.Assertions
- Test.Spec.Assertions.String
- Test.Spec.Console
- Test.Spec.Reporter.Base
- Test.Spec.Reporter.Console
- Test.Spec.Reporter.Dot
- Test.Spec.Reporter.Spec
- Test.Spec.Reporter.Tap
- Test.Spec.Reporter.TeamCity
- Test.Spec.Result
- Test.Spec.Runner
- Test.Spec.Runner.Event
- Test.Spec.Speed
- Test.Spec.Style
- Test.Spec.Summary
- Test.Spec.Tree
spec-quickcheck
strings
- Data.Char
- Data.Char.Gen
- Data.String.CaseInsensitive
- Data.String.CodePoints
- Data.String.CodeUnits
- Data.String.Common
- Data.String.Gen
- Data.String.NonEmpty.CaseInsensitive
- Data.String.NonEmpty.CodePoints
- Data.String.NonEmpty.CodeUnits
- Data.String.NonEmpty.Internal
- Data.String.Pattern
- Data.String.Regex
- Data.String.Regex.Flags
- Data.String.Regex.Unsafe
- Data.String.Unsafe
stringutils
tailrec
toppokki
transformers
- Control.Comonad.Env
- Control.Comonad.Env.Class
- Control.Comonad.Env.Trans
- Control.Comonad.Store
- Control.Comonad.Store.Class
- Control.Comonad.Store.Trans
- Control.Comonad.Traced
- Control.Comonad.Traced.Class
- Control.Comonad.Traced.Trans
- Control.Comonad.Trans.Class
- Control.Monad.Cont
- Control.Monad.Cont.Class
- Control.Monad.Cont.Trans
- Control.Monad.Error.Class
- Control.Monad.Except
- Control.Monad.Except.Trans
- Control.Monad.Identity.Trans
- Control.Monad.List.Trans
- Control.Monad.Maybe.Trans
- Control.Monad.RWS
- Control.Monad.RWS.Trans
- Control.Monad.Reader
- Control.Monad.Reader.Class
- Control.Monad.Reader.Trans
- Control.Monad.State
- Control.Monad.State.Class
- Control.Monad.State.Trans
- Control.Monad.Trans.Class
- Control.Monad.Writer
- Control.Monad.Writer.Class
- Control.Monad.Writer.Trans
type-equality
unfoldable
unsafe-coerce
untagged-union
uplc-apply-args
web-dom
- Web.DOM.CharacterData
- Web.DOM.ChildNode
- Web.DOM.Comment
- Web.DOM.DOMTokenList
- Web.DOM.Document
- Web.DOM.DocumentFragment
- Web.DOM.DocumentType
- Web.DOM.Element
- Web.DOM.HTMLCollection
- Web.DOM.Internal.Types
- Web.DOM.MutationObserver
- Web.DOM.MutationRecord
- Web.DOM.Node
- Web.DOM.NodeList
- Web.DOM.NodeType
- Web.DOM.NonDocumentTypeChildNode
- Web.DOM.NonElementParentNode
- Web.DOM.ParentNode
- Web.DOM.ProcessingInstruction
- Web.DOM.ShadowRoot
- Web.DOM.Text
web-html
- Web.HTML
- Web.HTML.Common
- Web.HTML.Event.BeforeUnloadEvent
- Web.HTML.Event.BeforeUnloadEvent.EventTypes
- Web.HTML.Event.DataTransfer
- Web.HTML.Event.DataTransfer.DataTransferItem
- Web.HTML.Event.DragEvent
- Web.HTML.Event.DragEvent.EventTypes
- Web.HTML.Event.ErrorEvent
- Web.HTML.Event.EventTypes
- Web.HTML.Event.HashChangeEvent
- Web.HTML.Event.HashChangeEvent.EventTypes
- Web.HTML.Event.PageTransitionEvent
- Web.HTML.Event.PageTransitionEvent.EventTypes
- Web.HTML.Event.PopStateEvent
- Web.HTML.Event.PopStateEvent.EventTypes
- Web.HTML.Event.TrackEvent
- Web.HTML.Event.TrackEvent.EventTypes
- Web.HTML.HTMLAnchorElement
- Web.HTML.HTMLAreaElement
- Web.HTML.HTMLAudioElement
- Web.HTML.HTMLBRElement
- Web.HTML.HTMLBaseElement
- Web.HTML.HTMLBodyElement
- Web.HTML.HTMLButtonElement
- Web.HTML.HTMLCanvasElement
- Web.HTML.HTMLDListElement
- Web.HTML.HTMLDataElement
- Web.HTML.HTMLDataListElement
- Web.HTML.HTMLDivElement
- Web.HTML.HTMLDocument
- Web.HTML.HTMLDocument.ReadyState
- Web.HTML.HTMLDocument.VisibilityState
- Web.HTML.HTMLElement
- Web.HTML.HTMLEmbedElement
- Web.HTML.HTMLFieldSetElement
- Web.HTML.HTMLFormElement
- Web.HTML.HTMLHRElement
- Web.HTML.HTMLHeadElement
- Web.HTML.HTMLHeadingElement
- Web.HTML.HTMLHtmlElement
- Web.HTML.HTMLHyperlinkElementUtils
- Web.HTML.HTMLIFrameElement
- Web.HTML.HTMLImageElement
- Web.HTML.HTMLImageElement.CORSMode
- Web.HTML.HTMLImageElement.DecodingHint
- Web.HTML.HTMLImageElement.Laziness
- Web.HTML.HTMLInputElement
- Web.HTML.HTMLKeygenElement
- Web.HTML.HTMLLIElement
- Web.HTML.HTMLLabelElement
- Web.HTML.HTMLLegendElement
- Web.HTML.HTMLLinkElement
- Web.HTML.HTMLMapElement
- Web.HTML.HTMLMediaElement
- Web.HTML.HTMLMediaElement.CanPlayType
- Web.HTML.HTMLMediaElement.NetworkState
- Web.HTML.HTMLMediaElement.ReadyState
- Web.HTML.HTMLMetaElement
- Web.HTML.HTMLMeterElement
- Web.HTML.HTMLModElement
- Web.HTML.HTMLOListElement
- Web.HTML.HTMLObjectElement
- Web.HTML.HTMLOptGroupElement
- Web.HTML.HTMLOptionElement
- Web.HTML.HTMLOutputElement
- Web.HTML.HTMLParagraphElement
- Web.HTML.HTMLParamElement
- Web.HTML.HTMLPreElement
- Web.HTML.HTMLProgressElement
- Web.HTML.HTMLQuoteElement
- Web.HTML.HTMLScriptElement
- Web.HTML.HTMLSelectElement
- Web.HTML.HTMLSourceElement
- Web.HTML.HTMLSpanElement
- Web.HTML.HTMLStyleElement
- Web.HTML.HTMLTableCaptionElement
- Web.HTML.HTMLTableCellElement
- Web.HTML.HTMLTableColElement
- Web.HTML.HTMLTableDataCellElement
- Web.HTML.HTMLTableElement
- Web.HTML.HTMLTableHeaderCellElement
- Web.HTML.HTMLTableRowElement
- Web.HTML.HTMLTableSectionElement
- Web.HTML.HTMLTemplateElement
- Web.HTML.HTMLTextAreaElement
- Web.HTML.HTMLTimeElement
- Web.HTML.HTMLTitleElement
- Web.HTML.HTMLTrackElement
- Web.HTML.HTMLTrackElement.ReadyState
- Web.HTML.HTMLUListElement
- Web.HTML.HTMLVideoElement
- Web.HTML.History
- Web.HTML.Location
- Web.HTML.Navigator
- Web.HTML.SelectionMode
- Web.HTML.ValidityState
- Web.HTML.Window