types -package:base

Traverse all the types
Traverse all types in the given structure. For example, to update all Strings in a WTree (Maybe String) String, we can write
>>> myTree = WithWeight (Fork (Leaf (Just "hello")) (Leaf Nothing)) "world"

>>> over (types @String) (++ "!") myTree
WithWeight (Fork (Leaf (Just "hello!")) (Leaf Nothing)) "world!"
The traversal is deep, which means that not just the immediate children are visited, but all nested values too.
Types referenced by the schema.
Structure of types and their pointings (up to points, initially 0) Primitive types and empty types are mapped to an empty constructor list, and can be distinguished using dataTypeRep on the SomeData associated to it by xedni. The integer is a multiplicity which can be > 1 for pointings.
Warning: this is an internal module, and does not have a stable API or name. Functions in this module may not check or enforce preconditions expected by public modules. Use at your own risk! Core stream fusion functionality for text.
Types for working with JSON data.
Simple, efficient parser combinators, loosely based on the Parsec library.
Simple, efficient parser combinators for strings, loosely based on the Parsec library.
Types for benchmarking. The core type is Benchmarkable, which admits both pure functions and IO actions. For a pure function of type a -> b, the benchmarking harness calls this function repeatedly, each time with a different Int64 argument (the number of times to run the function in a loop), and reduces the result the function returns to weak head normal form. For an action of type IO a, the benchmarking harness calls the action repeatedly, but does not reduce the result.
GHC type definitions. Use GHC.Exts from the base package instead of importing this module directly.
Basic types and classes for primitive array operations.
This provides an abstraction which deals with configuring and running programs. A Program is a static notion of a known program. A ConfiguredProgram is a Program that has been found on the current machine and is ready to be run (possibly with some user-supplied default args). Configuring a program involves finding its location and if necessary finding its version. There's reasonable default behavior for trying to find "foo" in PATH, being able to override its location, etc.