Transmitting HTTP requests and responses holding String in their payload bodies. This is one of the implementation modules for the Network.HTTP interface, representing request and response content as Strings and transmitting them in non-packed form (cf. Network.HTTP.HandleStream and its use of ByteStrings.) over Stream handles. It is mostly here for backwards compatibility, representing how requests and responses were transmitted up until the 4.x releases of the HTTP package.
For more detailed information about what the individual exports do, please consult the documentation for Network.HTTP. Notice however that the functions here do not perform any kind of normalization prior to transmission (or receipt); you are responsible for doing any such yourself, or, if you prefer, just switch to using Network.HTTP function instead.
An library for creating abstract streams. Originally part of Gray's\/Bringert's HTTP module.
* Changes by Robin Bate Boerop firstname.lastname@example.org: - Removed unnecessary import statements. - Moved Debug code to StreamDebugger.hs - Moved Socket-related code to StreamSocket.hs.
* Changes by Simon Foster: - Split Network.HTTPmodule up into to separate Network.[Stream,TCP,HTTP] modules
Implements debugging of Streams. Originally part of Gray's\/Bringert's HTTP module.
* Changes by Robin Bate Boerop email@example.com: - Created. Made minor formatting changes.
Socket Stream instance. Originally part of Gray's\/Bringert's HTTP module.
* Changes by Robin Bate Boerop firstname.lastname@example.org: - Made dependencies explicit in import statements. - Removed false dependencies in import statements. - Created separate module for instance Stream Socket.
* Changes by Simon Foster: - Split module up into to sepearate Network.[Stream,TCP,HTTP] modules
A duplex communications channel (results in creation of a duplex GHC.IO.Handle.Handle). The standard libraries use this device type when creating GHC.IO.Handle.Handles for open sockets.
Streams should make layering of TLS protocol easier in future, they allow reading/writing to files etc for debugging, they allow use of protocols other than TCP/IP and they allow customisation.
Instances of this class should not trim the input in any way, e.g. leave LF on line endings etc. Unless that is exactly the behaviour you want from your twisted instances ;)
An instance of Stream has stream type s, underlying monad m and token type t determined by the stream
Some rough guidelines for a "correct" instance of Stream:
* unfoldM uncons gives the [t] corresponding to the stream
* A Stream instance is responsible for maintaining the "position within the stream" in the stream state s. This is trivial unless you are using the monad in a non-trivial way.
This package implements functions, analogous to those from Data.List, to create and manipulate infinite lists: data Stream a = Cons a (Stream a). It provides alternative definitions for those Prelude functions that make sense for such streams. Note that this package has (almost) nothing to do with the work on Stream Fusion by Duncan Coutts, Roman Leshchinskiy, and Don Stewart.
This package provides the standard Haskell list library reimplemented to allow stream fusion. This should in general provide faster list operations, and faster code for list-heavy programs. See the paper Stream Fusion: From Lists to Streams to Nothing at All, Coutts, Leshchinskiy and Stewart, 2007. To use, simply import Data.List.Stream in place of Data.List, and hide list functions from the Prelude.
This Haskell library provides an implementation of the MonadPlus type class that enumerates results of a non-deterministic computation by interleaving subcomputations in a way that has usually much better memory performance than other strategies with the same termination properties.
Please note: This package shall be replaced by reactive-balsa in the future.
MIDI is the Musical Instrument Digital Interface, ALSA is the Advanced Linux Sound Architecture. This package allows to manipulate a sequence of MIDI events via ALSA. It is intended to be plugged as a playing assistant between a MIDI input device (e.g. a keyboard or a controller bank) and a MIDI controlled synthesizer (e.g. a software synthesizer or an external synthesizer). For software synthesizers see the Haskell packages synthesizer-alsa, synthesizer-llvm, supercollider-midi, hsc3, YampaSynth or the C packages fluidsynth and Timidity.
Applications include: Remapping of channels, controller, instruments, keys, Keyboard splitting, Conversion from notes to controllers, Latch mode, Convert parallel chords to serial patterns, Automated change of MIDI controllers, Echo simulation.
It is intended that you write programs for MIDI stream manipulation. It is not intended to provide an executable program with all the functionality available in a custom programming interface. It is most fun to play with the stream editors in GHCi. However we provide an example module that demonstrates various effects.
An error code and a human readable error message.
Show more results