diff --git a/.ghci b/.ghci
new file mode 100644
--- /dev/null
+++ b/.ghci
@@ -0,0 +1,1 @@
+:set -isrc-lib:dist/build/autogen -optP-include -optPdist/build/autogen/cabal_macros.h
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -1,7 +1,9 @@
-# **RegExDot**.
+# **RegExDot**
 
-This is **RegExDot**, a polymorphic regex-engine.
+[![Hackage](https://img.shields.io/hackage/v/regexdot.svg)](https://hackage.haskell.org/package/regexdot) [![Build Status](https://travis-ci.org/functionalley/RegExDot.svg?branch=master)](https://travis-ci.org/functionalley/RegExDot)
 
+This is "**RegExDot**", a polymorphic regex-engine.
+
 ## Installation
 
 It can be built and installed using [Cabal](https://www.haskell.org/cabal/users-guide/installing-packages.html).
@@ -12,11 +14,11 @@
 
 ## License
 
-For information on copying and distributing this package, see the file **LICENSE** in this directory.
+For information on copying and distributing this package, see the file "**LICENSE**" in this directory.
 
 ## Bug-reporting
 
-Bug-reports should be emailed to <regexdot *at* functionalley *dot* eu>.
+Bug-reports should be emailed to <regexdot@functionalley.eu>.
 
 ## Author
 
diff --git a/changelog.markdown b/changelog.markdown
--- a/changelog.markdown
+++ b/changelog.markdown
@@ -1,53 +1,75 @@
-# 2010-11-18 Dr. Alistair Ward <regexdot at functionalley dot eu>
+# 2010-11-18 Dr. Alistair Ward <regexdot@functionalley.eu>
 
 ## 0.9.0.0
-	* First version of the package.
+* First version of the package.
+
 ## 0.10.0.0
-	* Reacted to major-number changes in the package **ToolShed-0.10.0.0**.
-	* Created **src/RegExDot/** sub-directory & then modified module-names accordingly.
-	* Pacified **hlint**.
-	* Added a makefile.
-	* Removed awkward unary operators from **Repeatable.hs**.
-	* Qualified identifiers used in error-messages.
+* Reacted to major-number changes in the package "**ToolShed-0.10.0.0**".
+* Created sub-directory "**src/RegExDot/**" & then modified module-names accordingly.
+* Pacified **hlint**.
+* Added a makefile.
+* Removed awkward unary operators from **Repeatable.hs**.
+* Qualified identifiers used in error-messages.
+
 ## 0.10.0.1
-	* Ported to ghc-7.0.1:
-		Used definitions of `NFData` & `rnf` from new package **deepseq**, rather than **parallel**.
-		Replaced reference to the deprecated function `Control.Parallel.Strategies.parFlatMap` with `concat . Control.Parallel.Strategies.parMap`.
+* Ported to **ghc-7.0.1**:
+	+ Used definitions of `NFData` & `rnf` from new package "**deepseq**", rather than "**parallel**".
+	+ Replaced reference to the deprecated function `Control.Parallel.Strategies.parFlatMap` with `concat . Control.Parallel.Strategies.parMap`.
+
 ## 0.10.1.0
-	* Set @threaded@ flag to @True@ by default.
-	* Replaced use of @threaded@-flag in source-code, with CABAL CPP-macro.
-	* Relocated **RegExDot.Options** to **ToolShed.Options**.
+* Set @threaded@ flag to @True@ by default.
+* Replaced use of @threaded@-flag in source-code, with CABAL CPP-macro.
+* Relocated module "**RegExDot.Options**" to "**ToolShed.Options**".
+
 ## 0.10.2.0
-	* Renamed package from **RegExDot** to **regexdot**, for compatibility with Debian's *.deb*-format.
+* Renamed package "**RegExDot**" to "**regexdot**", for compatibility with Debian's *.deb*-format.
+
 ## 0.10.2.1
-	* Added manually controlled **llvm** flag to the *.cabal*-file.
-	* Changed identifier for type-parameters, to better reflect its role.
-	* Reacted to the creation of module **ToolShed.Defaultable**.
-	* Uploaded to [Hackage](http://hackage.haskell.org/packages/hackage.html).
+* Added manually controlled flag "**llvm**" to the *.cabal*-file.
+* Changed identifier for type-parameters, to better reflect its role.
+* Reacted to the creation of module "**ToolShed.Defaultable**".
+* Uploaded to [Hackage](http://hackage.haskell.org/package/regexdot).
+
 ## 0.10.2.2
-	* Amended the *.cabal*-file to more correctly specify dependency on package **toolshed**.
-	* Used new module **ToolShed.Pair** from package **toolshed-0.12.0.0**.
-	* Guarded **eager-blackholing** flag in the *.cabal*-file.
+* Amended the *.cabal*-file to more correctly specify dependency on package "**toolshed**".
+* Used new module "**ToolShed.Pair**" from package "**toolshed-0.12.0.0**".
+* Guarded flag "**eager-blackholing**" in the *.cabal*-file.
+
 ## 0.11.0.0
-	* Replaced `(+ 1)` and `(- 1)` with the faster calls `succ` and `pred`, in **RegExDot.RegEx**.
-	* Reacted to new module-hierarchy, creation of new module **ToolShed.Data.List.Splits** and addition of method `ToolShed.SelfValidate.getErrors`, in **toolshed-0.13.0.0**, and used it to improved error-reporting in `instance Read RegExDot.RegEx.ExtendedRegEx`.
-	* Minor reworking of `RegExDot.Repeatable.repeatableParser`.
-	* Replaced `System` with `System.Environment` and `System.Exit`.
+* Replaced `(+ 1)` and `(- 1)` with the faster calls `succ` and `pred`, in module "**RegExDot.RegEx**".
+* Reacted to; new module-hierarchy, creation of new module "**ToolShed.Data.List.Splits**", and addition of method `ToolShed.SelfValidate.getErrors` in package "**toolshed-0.13.0.0**", and used it to improved error-reporting in `instance Read RegExDot.RegEx.ExtendedRegEx`.
+* Minor reworking of `RegExDot.Repeatable.repeatableParser`.
+* Replaced `System` with `System.Environment` and `System.Exit`.
+
 ## 0.11.0.1
-	* Added class `Eq` to the context of `RegExDot.RegEx.safeReciprocal`, for migration to **ghc-7.4**.
+* Added class `Eq` to the context of `RegExDot.RegEx.safeReciprocal`, for migration to **ghc-7.4**.
+
 ## 0.11.1.0
-	* Removed comments referring to deleted module **ToolShed.Unsafe**, from **RegExDot.RegEx**.
-	* Removed `Show` from the context of functions in **RegExDot.RegEx**
-	* Exported a new constant `RegExDot.Anchor.unanchored`.
-	* Refactored `RegExDot.ConsumptionProfile.withinConsumptionBounds`.
+* Removed comments referring to deleted module "**ToolShed.Unsafe**", from **RegExDot.RegEx**.
+* Removed `Show` from the context of functions in module "**RegExDot.RegEx**".
+* Exported a new constant `RegExDot.Anchor.unanchored`.
+* Refactored `RegExDot.ConsumptionProfile.withinConsumptionBounds`.
+
 ## 0.11.1.1
-	* Tested with **haskell-platform-2013.2.0.0**.
-	* Replaced preprocessor-directives with **build-depends** constraints in the *.cabal*-file.
-	* In function `RegExDot.RegEx.findMatch.findMatchSlave.matchPairList`, changed `fromIntegral` (which required a type-signature) to `toRational`.
-	* Either replaced instances of `(<$>)` with `fmap` to avoid ambiguity between **Control.Applicative** & **Prelude** which (from **base-4.8**) also exports this symbol, or hid the symbol when importing the **Prelude**..
+* Tested with **haskell-platform-2013.2.0.0**.
+* Replaced preprocessor-directives with **build-depends** constraints in the *.cabal*-file.
+* In function `RegExDot.RegEx.findMatch.findMatchSlave.matchPairList`, changed `fromIntegral` (which required a type-signature) to `toRational`.
+* Either replaced instances of `(<$>)` with `fmap` to avoid ambiguity between modules "**Control.Applicative**" & "**Prelude**" which (from package "**base-4.8**") also exports this symbol, or hid the symbol when importing the module "**Prelude**".
+
 ## 0.11.1.2
-	* Added **Default-language**-specification to the *.cabal*-file.
-	* Added file **README.markdown**.
-	* Converted this file to markdown-format.
-	* Renamed directory **src/** to **src-lib/** for consistency with other packages. 
-	* Used **CPP** to control the import of symbols from **Control.Applicative**.
+* Added "**Default-language**"-specification to the *.cabal*-file.
+* Added file "**README.markdown**".
+* Converted this file to markdown-format.
+* Renamed directory "**src/**" to "**src-lib/**" for consistency with other packages. 
+* Used **CPP** to control the import of symbols from **Control.Applicative**.
+
+## 0.12.0.0
+* Corrected the markdown-syntax in this file.
+* Uploaded to [GitHub](https://github.com/functionalley/RegExDot.git).
+* Added file **.travis.yml** to control testing by <https://docs.travis-ci.com>.
+* Added file **.ghci**.
+* Replaced use of module **ToolShed.Defaultable** with **Data.Default**.
+* Reimplemented **RegExDot.RegEx.deconstruct** using record-syntax.
+* Tested with **ghc-8.0.1**.
+## 0.12.0.1
+* Checked that pre-processor macros are defined.
diff --git a/copyright b/copyright
--- a/copyright
+++ b/copyright
@@ -1,5 +1,5 @@
 Author:
-	Dr. Alistair Ward <regexdot at functionalley dot eu>.
+	Dr. Alistair Ward <regexdot@functionalley.eu>.
 
 Copyright:
 	Copyright (C) 2010-2011 Dr. Alistair Ward. All Rights Reserved.
diff --git a/regexdot.cabal b/regexdot.cabal
--- a/regexdot.cabal
+++ b/regexdot.cabal
@@ -14,7 +14,7 @@
 -- along with RegExDot.  If not, see <http://www.gnu.org/licenses/>.
 
 Name:		regexdot
-Version:	0.11.1.2
+Version:	0.12.0.1
 Cabal-version:	>= 1.10
 Copyright:	(C) 2010-2015 Dr. Alistair Ward
 License:	GPL
@@ -25,17 +25,22 @@
 Build-type:	Simple
 Description:	Provides a portable, POSIX, extended regex-engine, designed to process a list of /arbitrary/ objects.
 Category:	Search, Regex
-Tested-with:	GHC == 6.10, GHC == 6.12, GHC == 7.0, GHC == 7.4, GHC == 7.6, GHC == 7.8, GHC == 7.10
+Tested-with:	GHC == 7.4, GHC == 7.6, GHC == 7.8, GHC == 7.10.1, GHC == 8.0.1
 Homepage:	http://functionalley.eu/RegExDot/regExDot.html
-Maintainer:	mailto <colon> regexdot <at> functionalley <dot> eu
-Bug-reports:	mailto <colon> regexdot <at> functionalley <dot> eu
+Maintainer:	mailto:regexdot@functionalley.eu
+Bug-reports:	mailto:regexdot@functionalley.eu
 
 -- None of these files are needed at run-time.
 Extra-source-files:
+    .ghci
     changelog.markdown
     copyright
     README.markdown
 
+source-repository head
+    type:	git
+    location:	https://github.com/functionalley/RegExDot
+
 -- Enable using: 'cabal configure -f llvm'.
 flag llvm
     Description:	Whether the 'llvm' compiler-backend has been installed and is required for code-generation.
@@ -44,7 +49,7 @@
 
 Library
     Default-language:	Haskell2010
-    GHC-options:	-Wall -O2 -fno-warn-tabs
+    GHC-options:	-O2 -Wall -fno-warn-tabs
     Hs-source-dirs:	src-lib
 
     Exposed-modules:
@@ -71,15 +76,16 @@
 
     Build-depends:
         base == 4.*,
+        data-default,
         deepseq >= 1.1,
         parallel >= 3.0,
         parsec == 3.*,
-        toolshed >= 0.13
+        toolshed >= 0.17
 
     if impl(ghc >= 7.4.1)
-        GHC-prof-options:	-prof -fprof-auto -fprof-cafs
+        GHC-prof-options:	-fprof-auto -fprof-cafs
     else
-        GHC-prof-options:	-prof -auto-all -caf-all
+        GHC-prof-options:	-auto-all -caf-all
 
     if impl(ghc >= 7.0) && flag(llvm)
         GHC-options:	-fllvm
diff --git a/src-lib/RegExDot/CompilationOptions.hs b/src-lib/RegExDot/CompilationOptions.hs
--- a/src-lib/RegExDot/CompilationOptions.hs
+++ b/src-lib/RegExDot/CompilationOptions.hs
@@ -1,5 +1,5 @@
 {-
-	Copyright (C) 2010 Dr. Alistair Ward
+	Copyright (C) 2010-2015 Dr. Alistair Ward
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@
 	CompilationOptions(..)
 ) where
 
-import qualified	ToolShed.Defaultable
+import qualified	Data.Default
 import qualified	ToolShed.Options
 
 -- | The switch(es) used to control compilation of the /regex/-engine.
@@ -40,8 +40,8 @@
 	complyStrictlyWithPosix	:: Bool		-- ^ Define the offset of captured data, corresponding to a sub-expression which matched zero times, as the artificial value @-1@ specified by POSIX.
 } deriving (Eq, Show)
 
-instance ToolShed.Defaultable.Defaultable CompilationOptions	where
-	defaultValue	= ToolShed.Options.blankValue { complyStrictlyWithPosix	= True }
+instance Data.Default.Default CompilationOptions	where
+	def	= ToolShed.Options.blankValue { complyStrictlyWithPosix	= True }
 
 instance ToolShed.Options.Options CompilationOptions	where
 	blankValue	= MkCompilationOptions { complyStrictlyWithPosix = undefined }
diff --git a/src-lib/RegExDot/Consumer.hs b/src-lib/RegExDot/Consumer.hs
--- a/src-lib/RegExDot/Consumer.hs
+++ b/src-lib/RegExDot/Consumer.hs
@@ -53,7 +53,7 @@
 {- |
 	* A measure of the complexity of a /regex/, which has some baring on either the time-complexity or the space-complexity of the solution.
 
-	* <http://en.wikipedia.org/wiki/Star_height>
+	* <https://en.wikipedia.org/wiki/Star_height>
 -}
 type StarHeight	= Int
 
diff --git a/src-lib/RegExDot/ConsumptionProfile.hs b/src-lib/RegExDot/ConsumptionProfile.hs
--- a/src-lib/RegExDot/ConsumptionProfile.hs
+++ b/src-lib/RegExDot/ConsumptionProfile.hs
@@ -49,7 +49,7 @@
 import qualified	RegExDot.ConsumptionBounds	as ConsumptionBounds
 import qualified	ToolShed.SelfValidate
 
-#if !MIN_VERSION_base(4,8,0)
+#if !defined(MIN_VERSION_base) || !MIN_VERSION_base(4,8,0)
 import	Control.Applicative((<$>), (<*>))
 #endif
 
@@ -68,13 +68,11 @@
 } deriving (Eq, Read, Show)
 
 instance ToolShed.SelfValidate.SelfValidator ConsumptionProfile	where
-	getErrors c@(
-		MkConsumptionProfile {
-			consumptionBounds	= (fewest, most),
-			hasSpecificRequirement	= hasSpecificRequirement',
-			canConsumeAnything	= canConsumeAnything'
-		}
-	 ) = ToolShed.SelfValidate.extractErrors [
+	getErrors c@ MkConsumptionProfile {
+		consumptionBounds	= (fewest, most),
+		hasSpecificRequirement	= hasSpecificRequirement',
+		canConsumeAnything	= canConsumeAnything'
+	} = ToolShed.SelfValidate.extractErrors [
 		(fewest < 0, "Negative fewest=" ++ show fewest ++ "."),
 		(
 			case most of
diff --git a/src-lib/RegExDot/ExecutionOptions.hs b/src-lib/RegExDot/ExecutionOptions.hs
--- a/src-lib/RegExDot/ExecutionOptions.hs
+++ b/src-lib/RegExDot/ExecutionOptions.hs
@@ -1,5 +1,5 @@
 {-
-	Copyright (C) 2010 Dr. Alistair Ward
+	Copyright (C) 2010-2015 Dr. Alistair Ward
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
@@ -35,7 +35,7 @@
 	setVerbose
 ) where
 
-import qualified	ToolShed.Defaultable
+import qualified	Data.Default
 import qualified	ToolShed.Options
 
 -- | The switches used to control execution of the /regex/-engine.
@@ -57,8 +57,8 @@
 	validateMinConsumptionOfAlternatives	:: Bool		-- ^ When the number of repetitions of a /RegExDot.RegEx.CaptureGroup/ is precisely specified, check whether the resulting minimum data-requirement is available.
 } deriving (Eq, Show)
 
-instance ToolShed.Defaultable.Defaultable ExecutionOptions	where
-	defaultValue	= setVerbose False $ ToolShed.Options.blankValue {
+instance Data.Default.Default ExecutionOptions	where
+	def = setVerbose False $ ToolShed.Options.blankValue {
 		abortTrialRepetitionsOnInherentFailure	= True,		-- Regrettably, this slightly reduces performance for most non-pathological patterns.
 		catchIncompatibleAnchors		= True,
 		checkExistenceOfInelasticTail		= True,
diff --git a/src-lib/RegExDot/Meta.hs b/src-lib/RegExDot/Meta.hs
--- a/src-lib/RegExDot/Meta.hs
+++ b/src-lib/RegExDot/Meta.hs
@@ -1,5 +1,5 @@
 {-
-	Copyright (C) 2010 Dr. Alistair Ward
+	Copyright (C) 2010-2015 Dr. Alistair Ward
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/src-lib/RegExDot/RegEx.hs b/src-lib/RegExDot/RegEx.hs
--- a/src-lib/RegExDot/RegEx.hs
+++ b/src-lib/RegExDot/RegEx.hs
@@ -50,7 +50,7 @@
 
  [@REFERENCES@]
 
-	* <http://en.wikipedia.org/wiki/Regular_expression>
+	* <https://en.wikipedia.org/wiki/Regular_expression>
 
 	* <http://swtch.com/~rsc/regexp/regexp1.html>
 
@@ -121,7 +121,10 @@
 	RepeatablePattern,
 --	Transformation,
 -- ** Data-types
-	Alternatives(..),
+	Alternatives(
+		MkAlternatives,
+		deconstructAlternatives
+	),
 	Match,
 	ExtendedRegEx(..),
 	Pattern(..),
@@ -148,8 +151,7 @@
 	showsMaybeAnchor,
 	simply,
 	transformExtendedRegEx,
--- ** Accessors (Deconstructors)
-	deconstructAlternatives,
+-- ** Accessors
 --	getInputData,
 -- ** Operators
 	(+~),
@@ -218,11 +220,9 @@
 
 	* One could amalgamate this with 'Pattern', since it seems to exist merely as a peg to hang /instance/-declarations from.
 -}
-newtype Alternatives m	= MkAlternatives [ExtendedRegEx m]	deriving Eq
-
--- | Accessor, to expose the guts.
-deconstructAlternatives :: Alternatives m -> [ExtendedRegEx m]
-deconstructAlternatives (MkAlternatives extendedRegExList)	= extendedRegExList
+newtype Alternatives m	= MkAlternatives {
+	deconstructAlternatives	:: [ExtendedRegEx m]
+} deriving Eq
 
 -- | Similar to 'fmap', but operates on ['ExtendedRegEx'], rather than just @a@.
 transformAlternatives
@@ -241,12 +241,12 @@
 	readsPrec _ ('\t' : s)	= reads s	-- Consume white-space.
 	readsPrec _ s		= case reads s of
 		[(extendedRegEx, s1)]	-> case dropWhile Data.Char.isSpace s1 of
-			('|' : s2)	-> Control.Arrow.first (transformAlternatives (extendedRegEx :)) `map` reads s2 {-singleton-}
+			'|' : s2	-> Control.Arrow.first (transformAlternatives (extendedRegEx :)) `map` reads s2 {-singleton-}
 			_		-> [(MkAlternatives [extendedRegEx], s1)]
 		_			-> []	-- No parse.
 
 instance Show m => Show (Alternatives m)	where
-	showsPrec _	= foldl (.) (showString "") . Data.List.intersperse (showChar alternativeExtendedRegExSeparatorToken) . map shows . deconstructAlternatives	-- Replace the default list-format, with 'egrep'-syntax.
+	showsPrec _	= foldl (.) id . Data.List.intersperse (showChar alternativeExtendedRegExSeparatorToken) . map shows . deconstructAlternatives	-- Replace the default list-format, with 'egrep'-syntax.
 
 instance Consumer.Consumer (Alternatives m)	where
 	consumptionProfile	= Consumer.aggregateConsumptionProfilesFromAlternatives . deconstructAlternatives
@@ -297,7 +297,7 @@
 	readsPrec _ ('\t' : s)	= reads s	-- Consume white-space.
 	readsPrec _ ('(' : s)	= case {-Alternatives.-} reads s of
 		[(alternatives, s1)]	-> case dropWhile Data.Char.isSpace s1 of
-			(')' : s2)	-> [(CaptureGroup alternatives, s2)]
+			')' : s2	-> [(CaptureGroup alternatives, s2)]
 			_		-> []	-- No parse.
 		_			-> []	-- No parse.
 	readsPrec _ s		= case reads s of
@@ -836,7 +836,7 @@
  using a single repetition of 'concatenationFromAlternative' followed by a replacement infallible 'concatenationTail'.
 -}
 										then {-#SCC "abortTrialRepetitionsOnInherentFailure" #-} case maybeMatchPairList of
-											(Nothing {-failed attempt-} : _ {-subsequent attempt worth bypassing-} : _)	-> if (
+											Nothing {-failed attempt-} : _ {-subsequent attempt worth bypassing-} : _	-> if (
 												minConsumptionConcatenationFromAlternative == 0	-- Can delegate consumption of unconsumable data to the infallible tail => unprovable culpability.
 											 ) || inputData =~ RegExOpts.mkRegEx MkExtendedRegEx {
 												bowAnchor	= Just Anchor.Bow,
diff --git a/src-lib/RegExDot/RegExOpts.hs b/src-lib/RegExDot/RegExOpts.hs
--- a/src-lib/RegExDot/RegExOpts.hs
+++ b/src-lib/RegExDot/RegExOpts.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
 {-
-	Copyright (C) 2010 Dr. Alistair Ward
+	Copyright (C) 2010-2015 Dr. Alistair Ward
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
@@ -33,13 +33,13 @@
 	RegExOpts(..),
 -- * Functions
 	setVerbose,
--- ** Constructors
+-- ** Constructor
 	mkRegEx
 ) where
 
+import qualified	Data.Default
 import qualified	RegExDot.CompilationOptions	as CompilationOptions
 import qualified	RegExDot.ExecutionOptions	as ExecutionOptions
-import qualified	ToolShed.Defaultable
 
 -- | Aggregates both 'ExecutionOptions.ExecutionOptions' & 'CompilationOptions.CompilationOptions' with a polymorphic /regex/, to form a complete job-description.
 data RegExOpts a	= MkRegExOpts {
@@ -51,11 +51,11 @@
 instance Functor RegExOpts	where
 	fmap f regExOpts	= regExOpts { regEx = f $ regEx regExOpts }
 
--- | Smart constructor using 'ToolShed.Defaultable.defaultValue'.
+-- | Smart constructor.
 mkRegEx :: a -> RegExOpts a
 mkRegEx	r	= MkRegExOpts {
-	compilationOptions	= ToolShed.Defaultable.defaultValue,
-	executionOptions	= ToolShed.Defaultable.defaultValue,
+	compilationOptions	= Data.Default.def,
+	executionOptions	= Data.Default.def,
 	regEx			= r
 }
 
diff --git a/src-lib/RegExDot/Repeatable.hs b/src-lib/RegExDot/Repeatable.hs
--- a/src-lib/RegExDot/Repeatable.hs
+++ b/src-lib/RegExDot/Repeatable.hs
@@ -29,7 +29,7 @@
 
 	* In the context of /regex/es, this concept is known as /Quantification/.
 
-	* /regex/es evolved from the minimal ability to optionally qualify the datum with a <http://en.wikipedia.org/wiki/Kleene_star> suffix.
+	* /regex/es evolved from the minimal ability to optionally qualify the datum with a <https://en.wikipedia.org/wiki/Kleene_star> suffix.
 	More exotic repetition-specifications could be composed by concatenating these atomic building-blocks.
 	Here, I've taken the contrary top-down view, & assumed that all data are qualified by a full 'RepetitionBounds', which in most cases will degenerate into a simpler form.
 
@@ -90,7 +90,7 @@
 import qualified	ToolShed.Data.Pair
 import qualified	ToolShed.SelfValidate
 
-#if !MIN_VERSION_base(4,8,0)
+#if !defined(MIN_VERSION_base) || !MIN_VERSION_base(4,8,0)
 import	Control.Applicative((<$>), (<*>))
 #endif
 
diff --git a/src-lib/RegExDot/Result.hs b/src-lib/RegExDot/Result.hs
--- a/src-lib/RegExDot/Result.hs
+++ b/src-lib/RegExDot/Result.hs
@@ -24,7 +24,7 @@
 
 module RegExDot.Result(
 -- * Functions
--- ** Accessors (Deconstructors)
+-- ** Accessors
 	getMatchList,
 	getPreMatch,
 	getPostMatch,
diff --git a/src-lib/RegExDot/Tree.hs b/src-lib/RegExDot/Tree.hs
--- a/src-lib/RegExDot/Tree.hs
+++ b/src-lib/RegExDot/Tree.hs
@@ -1,5 +1,5 @@
 {-
-	Copyright (C) 2010 Dr. Alistair Ward
+	Copyright (C) 2010-2015 Dr. Alistair Ward
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
 
  [@DESCRIPTION@]
 
-	* Defines a specific type of tree-structure, which is composed from either a datum, or a list of Tree-lists; <http://en.wikipedia.org/wiki/Rose_Tree>.
+	* Defines a specific type of tree-structure, which is composed from either a datum, or a list of Tree-lists; <https://en.wikipedia.org/wiki/Rose_Tree>.
 
 	* This more general tree-structure has the shape of a regular-expression match.
 
@@ -45,7 +45,7 @@
 -- | A general purpose tree-type structure.
 data Tree a	=
 	Leaf a			-- ^ The payload.
-	| Node [TreeList a]	-- ^ Recurse. NB: a list of lists is required to contain the /MatchLists/ resulting from repeated /Alternatives/.
+	| Node [TreeList a]	-- ^ Recurse. N.B.: a list of lists is required to contain the /MatchLists/ resulting from repeated /Alternatives/.
 	deriving Eq
 
 -- | A list of 'Tree's; significant only because it is the essence of the recursive nature of 'Tree'.
