5 years agoMake compatible with base>=4.6 again (fixes #11) 2.0
Herbert Valerio Riedel [Mon, 12 May 2014 08:36:11 +0000 (10:36 +0200)] 
Make compatible with base>=4.6 again (fixes #11)

5 years agoAdd Travis-CI job file
Herbert Valerio Riedel [Mon, 12 May 2014 08:41:29 +0000 (10:41 +0200)] 
Add Travis-CI job file

Note: this is supposed to fail for GHC 7.6+ due to issue #11

8 years agobump minor version number
Ross Paterson [Sun, 7 Nov 2010 11:42:39 +0000 (11:42 +0000)] 
bump minor version number

8 years agouse section syntax, as preferred by recent versions of Cabal
Ross Paterson [Sun, 7 Nov 2010 11:41:50 +0000 (11:41 +0000)] 
use section syntax, as preferred by recent versions of Cabal

8 years agore-export functions to replace data constructors on base monads
Ross Paterson [Sat, 6 Nov 2010 16:12:14 +0000 (16:12 +0000)] 
re-export functions to replace data constructors on base monads

8 years agomarkup fix in module header docs
Ross Paterson [Fri, 5 Nov 2010 13:52:44 +0000 (13:52 +0000)] 
markup fix in module header docs

8 years agorevise to depend on transformers package
Ross Paterson [Fri, 5 Nov 2010 13:32:42 +0000 (13:32 +0000)] 
revise to depend on transformers package

As discussed on the libraries list Sep-Nov 2010.  The mtl is split in two:

transformers is a Haskell 98 package containing
 * base functors (Data.Functor.Constant and Data.Functor.Identity),
 * operations on functors (Data.Functor.Compose and Data.Functor.Product),
 * transformer classes (Control.Monad.Trans.Class and Control.Monad.IO.Class)
 * concrete monad transformers with code to lift operators

The package can be used on its own (see the Control.Monad.Trans.Class
documentation for examples), or with packages adding type classes.

The revised mtl depends on transformers and adds type classes using
functional dependencies.  It has the same modules as version 1.*
and usage is very close, except for the differences listed below:

 * instances of Applicative and Alternative have been added as appropriate.
 * Functor instances for monad transformers no longer require Monad where
   Functor is sufficient.
 * simple monads are now aliases for monad trasformers applied to Identity.
 * The instance Error String is restructured to avoid a type synonym instance.

8 years agobump version number to
Ross Paterson [Fri, 3 Sep 2010 11:41:27 +0000 (11:41 +0000)] 
bump version number to

8 years agoswitch to LANGUAGE pragma for UndecidableInstances
Ross Paterson [Fri, 3 Sep 2010 11:40:43 +0000 (11:40 +0000)] 
switch to LANGUAGE pragma for UndecidableInstances

8 years agomake it build with versions of base before and after 4.3
Ross Paterson [Fri, 3 Sep 2010 11:33:58 +0000 (11:33 +0000)] 
make it build with versions of base before and after 4.3

The Monad and MonadFix instances for Either moved to base-4.3, and
lost their Error constraints.  Test the version of base to either
supply the instances here or use the ones from base.

8 years ago move Monad and MonadFix instances for Either to base (proposal #4159)
Ross Paterson [Fri, 30 Jul 2010 15:40:34 +0000 (15:40 +0000)] 
 move Monad and MonadFix instances for Either to base (proposal #4159)

8 years agowe can have documentation on instances now, so use it
Simon Marlow [Thu, 1 Jul 2010 15:41:32 +0000 (15:41 +0000)] 
we can have documentation on instances now, so use it

9 years agoAdd comments to "OPTIONS_GHC -fno-warn-orphans" pragmas
Ian Lynagh [Sat, 5 Dec 2009 16:59:11 +0000 (16:59 +0000)] 
Add comments to "OPTIONS_GHC -fno-warn-orphans" pragmas
Also changed an OPTIONS pragma to OPTIONS_GHC

9 years agoDe-orphan the "MonadReader r ((->) r)" instance
Ian Lynagh [Tue, 24 Nov 2009 14:35:40 +0000 (14:35 +0000)] 
De-orphan the "MonadReader r ((->) r)" instance

9 years agoFix "Cabal check" warnings
Ian Lynagh [Tue, 11 Aug 2009 21:59:13 +0000 (21:59 +0000)] 
Fix "Cabal check" warnings

9 years agoFix unused import warnings
Ian Lynagh [Tue, 7 Jul 2009 13:36:43 +0000 (13:36 +0000)] 
Fix unused import warnings

9 years agoRemove unused imports
Ian Lynagh [Tue, 7 Jul 2009 11:58:51 +0000 (11:58 +0000)] 
Remove unused imports

10 years agoRename to ghc-mtl
Ian Lynagh [Tue, 28 Apr 2009 12:40:22 +0000 (12:40 +0000)] 
Rename to ghc-mtl

10 years agoRename to ghc-mtl
Ian Lynagh [Tue, 28 Apr 2009 12:40:22 +0000 (12:40 +0000)] 
Rename to ghc-mtl

10 years agoBump to
Don Stewart [Sat, 11 Oct 2008 21:44:59 +0000 (21:44 +0000)] 
Bump to

10 years agoUpdate Mark Jones' www page (previous link was broken)
Simon Marlow [Tue, 26 Aug 2008 07:41:28 +0000 (07:41 +0000)] 
Update Mark Jones' www page (previous link was broken)

10 years agoAdd temporary -fno-warn-orphans in modules that have orphans
Simon Peyton Jones [Mon, 4 Aug 2008 16:24:54 +0000 (16:24 +0000)] 
Add temporary -fno-warn-orphans in modules that have orphans

Ian is going to investigate moving the instances so that they
are not orphans.

11 years agoBump version number to
Ian Lynagh [Wed, 4 Jun 2008 12:08:53 +0000 (12:08 +0000)] 
Bump version number to

11 years agoFix haddock markup in package description
Duncan Coutts [Sat, 8 Dec 2007 13:25:14 +0000 (13:25 +0000)] 
Fix haddock markup in package description
Using ".." is haddock markup for module references. It should either be
\"...\" to escape the quotes, or /.../ to markup in italics. I've gone
for the latter.

11 years agoBump version number
Ian Lynagh [Sat, 27 Oct 2007 12:48:43 +0000 (12:48 +0000)] 
Bump version number

11 years agoSpecify build-type: Simple
Duncan Coutts [Tue, 23 Oct 2007 09:21:19 +0000 (09:21 +0000)] 
Specify build-type: Simple

11 years agoadd re-exports for compatibility with old Control.Monad.RWS
Ross Paterson [Tue, 21 Aug 2007 00:23:58 +0000 (00:23 +0000)] 
add re-exports for compatibility with old Control.Monad.RWS

11 years agoCorrec the extensions list in the Cabal file
Ian Lynagh [Sun, 5 Aug 2007 20:03:07 +0000 (20:03 +0000)] 
Correc the extensions list in the Cabal file

12 years agoReader Monad. Added Haddock documentation. Converted the existing module documentatio...
Andriy Palamarchuk [Wed, 27 Jun 2007 18:05:20 +0000 (18:05 +0000)] 
Reader Monad. Added Haddock documentation. Converted the existing module documentation to Haddock format. Created examples. Per Jeff Newberns permission included parts his tutorial "All About Monads"

12 years agoAdded Haddock documentation. Converted the existing module documentation to Haddock...
Andriy Palamarchuk [Mon, 4 Jun 2007 13:36:02 +0000 (13:36 +0000)] 
Added Haddock documentation. Converted the existing module documentation to Haddock format. Created examples. Per Jeff Newberns permission included parts his tutorial "All About Monads"

12 years ago--configure-option and --ghc-option are now provided by Cabal
Ross Paterson [Mon, 4 Jun 2007 11:59:36 +0000 (11:59 +0000)] 
--configure-option and --ghc-option are now provided by Cabal

12 years agoRemove Makefile and (used in the old GHC build system)
Ian Lynagh [Thu, 24 May 2007 14:59:02 +0000 (14:59 +0000)] 
Remove Makefile and (used in the old GHC build system)

12 years agoBump version to 1.0.1
Ian Lynagh [Sun, 22 Apr 2007 19:52:17 +0000 (19:52 +0000)] 
Bump version to 1.0.1

12 years agoFollow Cabal changes in Setup.*hs
Ian Lynagh [Wed, 18 Apr 2007 12:13:37 +0000 (12:13 +0000)] 
Follow Cabal changes in Setup.*hs

12 years agoFix -Wall warnings
Ian Lynagh [Wed, 11 Apr 2007 01:22:33 +0000 (01:22 +0000)] 
Fix -Wall warnings

12 years agoMake Setup.hs suitable for building in a GHC tree
Ian Lynagh [Sat, 7 Apr 2007 17:41:43 +0000 (17:41 +0000)] 
Make Setup.hs suitable for building in a GHC tree

12 years agoFixed Haddock markup
Sven Panne [Thu, 22 Mar 2007 16:53:20 +0000 (16:53 +0000)] 
Fixed Haddock markup

12 years agoWarning police: Removed unused import
Sven Panne [Thu, 22 Mar 2007 15:58:54 +0000 (15:58 +0000)] 
Warning police: Removed unused import

12 years agoFix link to Mark Jones' paper
Ian Lynagh [Sat, 17 Mar 2007 14:24:37 +0000 (14:24 +0000)] 
Fix link to Mark Jones' paper

12 years agoRejig mtl; trac proposal #1127
Ian Lynagh [Sat, 3 Mar 2007 15:22:21 +0000 (15:22 +0000)] 
Rejig mtl; trac proposal #1127
  Moved the MonadFoo classes to Control.Monad.Foo.Class.

  Put the instances consistently in the module which defines the type they
  give an instance for.

  Made the existing transformers lazy to match the existing monads, and put
  them in Control.Monad.Foo.Lazy. Also added Control.Monad.Foo.Strict with
  strict monads and transformers. Control.Monad.Foo still exports what it
  used to.

  Created a MonadRWS class.

  Made the MonadWriter w (ErrorT e m) instance strict to match everything

12 years agoStylistic change only: Removed trailing comma from export list
Sven Panne [Wed, 7 Feb 2007 14:47:37 +0000 (14:47 +0000)] 
Stylistic change only: Removed trailing comma from export list

12 years agoTrim imports
Sven Panne [Wed, 7 Feb 2007 14:45:45 +0000 (14:45 +0000)] 
Trim imports

12 years agoUse -Wall for compilation
Sven Panne [Wed, 7 Feb 2007 14:45:03 +0000 (14:45 +0000)] 
Use -Wall for compilation

12 years agoWarning police: Avoid re-exporting things via different paths
Sven Panne [Wed, 7 Feb 2007 14:23:11 +0000 (14:23 +0000)] 
Warning police: Avoid re-exporting things via different paths

The modules in the mtl packages contain a lot of convenience re-exports, which
lead to a large number of warnings for Control.Monad.RWS. There are basically
3 ways to fix that:

   a) via hiding, leading to an epic "hiding ( ... )" clause

   b) via explicitly listing things which should be re-exported

   c) via refactoring the modules into convenience/implementation modules

Although c) would probably be the right solution in the long run, this patch
uses b), because it is the least intrusive way.

12 years agoProposal in trac #1059: Control.Monad.Error documentation
Ian Lynagh [Wed, 31 Jan 2007 01:37:20 +0000 (01:37 +0000)] 
Proposal in trac #1059: Control.Monad.Error documentation
Andriy Palamarchuk writes:
* Converted the module documentation to Haddock format.
* Per Jeff Newbern's gracious permission included relevant information
  from his cool tutorial "All About Monads"
* Added examples for custom error type, ErrorT.
* Use String instead of [Char].

12 years agoupdate broken URL as noticed by
Simon Marlow [Thu, 18 Jan 2007 09:47:39 +0000 (09:47 +0000)] 
update broken URL as noticed by

12 years agoAdded Haddock documentation. Converted the module documentation to Haddock format...
Andriy Palamarchuk [Mon, 18 Dec 2006 16:56:21 +0000 (16:56 +0000)] 
Added Haddock documentation. Converted the module documentation to Haddock format. Per Jeff Newbern's permission included parts his tutorial "All About Monads"

12 years agoadd boilerplate Setup.hs
Ross Paterson [Thu, 28 Sep 2006 23:15:25 +0000 (23:15 +0000)] 
add boilerplate Setup.hs

13 years agouse Control.Monad.Instances from base
Ross Paterson [Mon, 10 Apr 2006 11:25:33 +0000 (11:25 +0000)] 
use Control.Monad.Instances from base

13 years agoAdd -fallow-undecidable-instances to some Control.Monad modules
Simon Peyton Jones [Thu, 9 Feb 2006 12:13:34 +0000 (12:13 +0000)] 
Add -fallow-undecidable-instances to some Control.Monad modules

I have recently tightened up GHC's implementation of the coverage
condition.  As a result some of the Control.Monad modules are rejected.

  class (Monad m) => MonadReader r m | m -> r where
  instance (Monoid w, MonadReader r m) => MonadReader r (WriterT w m)
Here, fv(Writer w m) is not a superset of fv(r).

The flag allows it.  I wonder if it's possible to use these modules
to send the type cheker into a loop.

14 years agoadd license files for individual packages
Ross Paterson [Wed, 23 Mar 2005 14:34:21 +0000 (14:34 +0000)] 
add license files for individual packages

14 years agonDoc fixes from Sven Panne. Generally fixing of Haddock links, adding
Simon Marlow [Thu, 24 Feb 2005 09:58:25 +0000 (09:58 +0000)] 
nDoc fixes from Sven Panne.  Generally fixing of Haddock links, adding
some signatures, and in some cases exporting type constructors that
are mentioned in the types of exported identifiers.

14 years agoRename fields in InstalledPackageInfo for consistency with PackageDescription & build...
Simon Marlow [Fri, 18 Feb 2005 15:06:45 +0000 (15:06 +0000)] 
Rename fields in InstalledPackageInfo for consistency with PackageDescription & buildInfo:

 extra-libs (extraLibraries) --> extra-libraries (extraLibraries)
 extra-cc-opts (extraCcOpts) --> cc-options (ccOptions)
 extra-ld-opts (extraLdOpts) --> ld-options (ldOptions)
 extra-hugs-opts (extraHugsOpts) --> hugs-options (hugsOptions)
 extra-frameworks (extraFrameworks) --> frameworks (frameworks)

14 years agotrack syntax changes:
Ross Paterson [Fri, 11 Feb 2005 01:55:57 +0000 (01:55 +0000)] 
track syntax changes:

* add License-File and Synopsis fields

* rename Hidden-Fields as Other-Fields

These files are used only by Hugs, but are also useful as examples.

14 years agoFill in the haddock-interfaces and haddock-html fields in the package.conf files.
Simon Marlow [Thu, 20 Jan 2005 14:22:27 +0000 (14:22 +0000)] 
Fill in the haddock-interfaces and haddock-html fields in the package.conf files.

To do this I had to make some changes:

  - haddock-interfaces requires the value of $(datadir).  We can't
    just plug this in, because $(datadir) might change at install-time
    (eg. a Windows installer can be placed anywhere, as can a Unix
    binary .tar.gz distribution).  The current trick is for the
    compiler to splice in the value of $libdir in package.conf at
    runtime.  So we could extend this mechanism and tell the compiler
    the value of $datadir via a command-line option, but that seems

    On Windows, $datadir==$libdir, so we don't need any changes:
    package.conf still uses $libdir, and a Windows installation is
    independent of its absolute location.  Even 'make install' on
    Windows should have this property.

    On Unix:
- for 'make install' and in-place execution, we just use
          absolute paths in package.conf

- for a binary dist, we generate a package.conf that refers
  to $libdir and $datadir, and splice in the values at
  install-time (distrib/

  - Also, I renamed $libdir to $topdir to more closely reflect its
    actual meaning.  This is somewhat malicious in that it will flush
    out all those clients using $libdir when they really shouldn't
    be :-)

14 years agoSetup.description -> <package>.cabal
Ross Paterson [Thu, 13 Jan 2005 00:06:25 +0000 (00:06 +0000)] 
Setup.description -> <package>.cabal

14 years agonote extensions
Ross Paterson [Mon, 20 Dec 2004 00:16:19 +0000 (00:16 +0000)] 
note extensions

14 years agoUpdated description files to match the changes I just made to the
Isaac Potoczny-Jones [Sun, 19 Dec 2004 18:50:41 +0000 (18:50 +0000)] 
Updated description files to match the changes I just made to the
syntax (modules => exposed-Modules, hidden-modules)

14 years agoCabal package description files
Ross Paterson [Fri, 17 Dec 2004 00:02:06 +0000 (00:02 +0000)] 
Cabal package description files

14 years agoFurther integration with the new package story.
Simon Marlow [Fri, 26 Nov 2004 16:22:11 +0000 (16:22 +0000)] 
Further integration with the new package story.

GHC now supports pretty much everything in the package proposal.

  - GHC now works in terms of PackageIds (<pkg>-<version>) rather than
    just package names.  You can still specify package names without
    versions on the command line, as long as the name is unambiguous.

  - GHC understands hidden/exposed modules in a package, and will refuse
    to import a hidden module.  Also, the hidden/eposed status of packages
    is taken into account.

  - I had to remove the old package syntax from ghc-pkg, backwards
    compatibility isn't really practical.

  - All the files have been rewritten in the new syntax,
    and contain a complete list of modules in the package.  I've set all
    the versions to 1.0 for now - please check your package(s) and fix the
    version number & other info appropriately.

  - New options:

-hide-package P    sets the expose flag on package P to False
-ignore-package P  unregisters P for this compilation

For comparison, -package P sets the expose flag on package P
        to True, and also causes P to be linked in eagerly.

        -package-name is no longer officially supported.  Unofficially, it's
a synonym for -ignore-package, which has more or less the same effect
as -package-name used to.

Note that a package may be hidden and yet still be linked into
the program, by virtue of being a dependency of some other package.
To completely remove a package from the compiler's internal database,
        use -ignore-package.

The compiler will complain if any two packages in the
        transitive closure of exposed packages contain the same

You *must* use -ignore-package P when compiling modules for
        package P, if package P (or an older version of P) is already
        registered.  The compiler will helpfully complain if you don't.
The fptools build system does this.

   - Note: the Cabal library won't work yet.  It still thinks GHC uses
     the old package config syntax.

Internal changes/cleanups:

   - The ModuleName type has gone away.  Modules are now just (a
     newtype of) FastStrings, and don't contain any package information.
     All the package-related knowledge is in DynFlags, which is passed
     down to where it is needed.

   - DynFlags manipulation has been cleaned up somewhat: there are no
     global variables holding DynFlags any more, instead the DynFlags
     are passed around properly.

   - There are a few less global variables in GHC.  Lots more are
     scheduled for removal.

   - -i is now a dynamic flag, as are all the package-related flags (but
     using them in {-# OPTIONS #-} is Officially Not Recommended).

   - make -j now appears to work under fptools/libraries/.  Probably
     wouldn't take much to get it working for a whole build.

14 years agowhitespace changes to the header only, for new compatibility with new Haddock
Simon Marlow [Mon, 9 Aug 2004 11:59:48 +0000 (11:59 +0000)] 
whitespace changes to the header only, for new compatibility with new Haddock

15 years agomoved the monad transformer libraries into a separate mtl package.
Ross Paterson [Thu, 5 Feb 2004 18:55:49 +0000 (18:55 +0000)] 
moved the monad transformer libraries into a separate mtl package.