IOSpec 0.3.1 → 0.3.1.1
raw patch · 4 files changed
+52/−32 lines, 4 filesdep ~Streamdep ~mtlnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: Stream, mtl
API changes (from Hackage documentation)
+ Test.IOSpec: infixr 5 :+:
+ Test.IOSpec.Types: infixr 5 :+:
- Test.IOSpec: Inl :: (f x) -> (:+:) f g x
+ Test.IOSpec: Inl :: f x -> (:+:) f g x
- Test.IOSpec: Inr :: (g x) -> (:+:) f g x
+ Test.IOSpec: Inr :: g x -> (:+:) f g x
- Test.IOSpec: data ( f (:+:) g ) x
+ Test.IOSpec: data ( f :+: g ) x
- Test.IOSpec: inject :: (g :<: f) => g (IOSpec f a) -> IOSpec f a
+ Test.IOSpec: inject :: g :<: f => g (IOSpec f a) -> IOSpec f a
- Test.IOSpec.STM: atomically :: (STMS :<: f) => STM a -> IOSpec f a
+ Test.IOSpec.STM: atomically :: STMS :<: f => STM a -> IOSpec f a
- Test.IOSpec.Surrogate: data f (:+:) g
+ Test.IOSpec.Surrogate: data f :+: g
- Test.IOSpec.Teletype: getLine :: (Teletype :<: f) => IOSpec f String
+ Test.IOSpec.Teletype: getLine :: Teletype :<: f => IOSpec f String
- Test.IOSpec.Teletype: putChar :: (Teletype :<: f) => Char -> IOSpec f ()
+ Test.IOSpec.Teletype: putChar :: Teletype :<: f => Char -> IOSpec f ()
- Test.IOSpec.Teletype: putStr :: (Teletype :<: f) => String -> IOSpec f ()
+ Test.IOSpec.Teletype: putStr :: Teletype :<: f => String -> IOSpec f ()
- Test.IOSpec.Teletype: putStrLn :: (Teletype :<: f) => String -> IOSpec f ()
+ Test.IOSpec.Teletype: putStrLn :: Teletype :<: f => String -> IOSpec f ()
- Test.IOSpec.Types: Impure :: (f (IOSpec f a)) -> IOSpec f a
+ Test.IOSpec.Types: Impure :: f (IOSpec f a) -> IOSpec f a
- Test.IOSpec.Types: Inl :: (f x) -> (:+:) f g x
+ Test.IOSpec.Types: Inl :: f x -> (:+:) f g x
- Test.IOSpec.Types: Inr :: (g x) -> (:+:) f g x
+ Test.IOSpec.Types: Inr :: g x -> (:+:) f g x
- Test.IOSpec.Types: data ( f (:+:) g ) x
+ Test.IOSpec.Types: data ( f :+: g ) x
- Test.IOSpec.Types: inject :: (g :<: f) => g (IOSpec f a) -> IOSpec f a
+ Test.IOSpec.Types: inject :: g :<: f => g (IOSpec f a) -> IOSpec f a
- Test.IOSpec.VirtualMachine: Print :: Char -> (Effect a) -> Effect a
+ Test.IOSpec.VirtualMachine: Print :: Char -> Effect a -> Effect a
Files
- IOSpec.cabal +40/−24
- LICENSE +4/−1
- README +7/−6
- src/Test/IOSpec/Types.hs +1/−1
IOSpec.cabal view
@@ -1,33 +1,41 @@ Name: IOSpec-Version: 0.3.1+Version: 0.3.1.1 License: BSD3 License-file: LICENSE-Cabal-Version: >= 1.2-Author: Wouter Swierstra, Yusaku Hashimoto, Nikolay Amiantov-Maintainer: Wouter Swierstra <w.s.swierstra@uu.nl> +Cabal-Version: >= 1.6+Author: Wouter Swierstra,+ Yusaku Hashimoto,+ Nikolay Amiantov,+ Bertram Felgenhauer+Maintainer: Bertram Felgenhauer <int-e@gmx.de>+Homepage: https://github.com/lambdabot/IOSpec Synopsis: A pure specification of the IO monad. Description: This package consists of several modules, that give a pure specification of functions in the IO monad:- * "Test.IOSpec.Fork": a pure specification of- 'forkIO'.- * "Test.IOSpec.IORef": a pure specification of most- functions that create and manipulate on 'IORefs'.- * "Test.IOSpec.MVar": a pure specification of most- functions that create and manipulate and 'MVars'.- * "Test.IOSpec.STM": a pure specification of- 'atomically' and the 'STM' monad.- * "Test.IOSpec.Teletype": a pure specification of- 'getChar', 'putChar', and several related- Prelude functions.+ .+ * "Test.IOSpec.Fork": a pure specification of+ 'forkIO'.+ * "Test.IOSpec.IORef": a pure specification of most+ functions that create and manipulate on 'IORefs'.+ * "Test.IOSpec.MVar": a pure specification of most+ functions that create and manipulate and 'MVars'.+ * "Test.IOSpec.STM": a pure specification of+ 'atomically' and the 'STM' monad.+ * "Test.IOSpec.Teletype": a pure specification of+ 'getChar', 'putChar', and several related+ Prelude functions.+ . Besides these modules containing the specifications, there are a few other important modules:- * "Test.IOSpec.Types": defines the 'IOSpec' type and- several amenities.- * "Test.IOSpec.VirtualMachine": defines a virtual- machine on which to execute pure specifications.- * "Test.IOSpec.Surrogate": a drop-in replacement for- the other modules. Import this and recompile your- code once you've finished testing and debugging.+ .+ * "Test.IOSpec.Types": defines the 'IOSpec' type and+ several amenities.+ * "Test.IOSpec.VirtualMachine": defines a virtual+ machine on which to execute pure specifications.+ * "Test.IOSpec.Surrogate": a drop-in replacement for+ the other modules. Import this and recompile your+ code once you've finished testing and debugging.+ . There are several well-documented examples included with the source distribution. Category: Testing@@ -38,8 +46,16 @@ , examples/Queues.hs , examples/Refs.hs , examples/Sudoku.hs-library - Build-Depends: base >= 4.8.0.0 && < 5, mtl, QuickCheck >= 2 && < 3, Stream++Source-Repository head+ Type: git+ Location: https://github.com/lambdabot/IOSpec++Library+ Build-Depends: base >= 4.8.0.0 && < 5+ , mtl+ , QuickCheck >= 2 && < 3+ , Stream Extensions: MultiParamTypeClasses, OverlappingInstances Ghc-options: -Wall Hs-source-dirs: src
LICENSE view
@@ -1,4 +1,7 @@-Copyright Wouter Swierstra 2006.+Copyright Wouter Swierstra 2006-2009,2011,2012,2015,2018+Copyright Yusaku Hashimoto 2009+Copyright Nikolay Amiantov 2015+Copyright Bertram Felgenhauer 2018 All rights reserved.
README view
@@ -1,5 +1,6 @@-IOSpec version 0.2- Author: Wouter Swierstra <wss@cs.nott.ac.uk>+IOSpec version 0.3.1.1+ Author: Wouter Swierstra <w.s.swierstra@uu.nl>+ Maintainer: Bertram Felgenhauer <int-e@gmx.de> IOSpec provides a library containing pure, executable specifications of a few functions from the IO monad. @@ -10,18 +11,18 @@ $ runhaskell Setup.lhs build $ runhaskell Setup.lhs install -See http://www.haskell.org/ghc/docs/latest/html/Cabal/builders.html-for more instructions.+For further instructions, see:+ https://www.haskell.org/cabal/users-guide/installing-packages.html#building-and-installing-packages Documentation: Please have a look at the latest documentation available from:- http://www.cs.nott.ac.uk/~wss/repos/IOSpec+ https://hackage.haskell.org/package/IOSpec To build the Haddock API execute the following command: $ runhaskell Setup.lhs haddock -This will require Haddock 2.0+This will require Haddock 2.0. Check out the examples directory for the following examples:
src/Test/IOSpec/Types.hs view
@@ -2,7 +2,7 @@ -- | This module contains the basic data types underlying the -- 'IOSpec' library. Most of the types and classes in this module -- are described in--- <http://www.cs.nott.ac.uk/~wss/Publications/DataTypesALaCarte.pdf>.+-- <https://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf> module Test.IOSpec.Types ( -- * The 'IOSpec' type.