Course.ListZipper: add findLeft/findRight examples

The current quickcheck properties are not enough to ensure that the
zipper moves when the predicate is false for the current focus but
true elsewhere (in the given direction).

Therefore add a couple of simple examples to cover these cases.
Course.StateT: add quickcheck property on distinct'

Distinct has no examples or properties.  Add a quickcheck property
(copied from Course.State.distinct).
Merge pull request #78 from frasertweedale/more-doctest

More doctest
update copyright notice for 2014
update README with links to mailing lists and IRC channel
A typo in the distinct' quickcheck makes you test the old Course.State.distinct version instead of the state' one we just implemented.
Merge pull request #80 from oiegag/distinctprime

A typo in the distinct' quickcheck makes you test the old Course.State.d...
change :type example in readme
add flattenAgain #82
Added a test for State's instance of Apply
Merge pull request #83 from ajcoppa/add-test-for-state-instance-of-apply

Added a test for State's instance of Apply
Include instance signatures on instance methods that are set as exercises.

Previously, it was done using comments in the hands-on course to guide through the type. Now, it is machine-checked.

Unfortunately, a difference between 7.6.3 and 7.8.2 means that redundant parentheses cannot be used for some type constructors in types. This is demonstrated by the source file below.

Issue #84

----

{-# LANGUAGE InstanceSigs #-}

{-

The commented lines in the signature below break the 7.6 compiler.

      Method signature does not match class; it should be
      fmap' :: forall a b. (a -> b) -> (t -> a) -> t -> b

The parentheses are placed redundantly on the
type constructor application -- left-associative.

* Fails using GHC 7.6.3
* Works fine using GHC 7.8.2

-}

class Functor' f where
  fmap' ::
    (a -> b)
    -> f a
    -> f b

instance Functor' ((->) t) where
  fmap' ::
    (a -> b)

--  -> (((->) t) a)
--     -> ((->) t a)

--  -> (((->) t) b)
    -> ((->) t b)
  fmap' =
    (.)
Merge branch 'master' of github.com:NICTA/course
Added tests for Logger instances of Apply and Applicative
Merge pull request #86 from ajcoppa/added-test-for-logger-apply-and-applicative

Added tests for Logger instances of Apply and Applicative
Add another doctest for filtering

That checks we only traverse the list once.
Add doctest tests for natural
Merge pull request #87 from tismith/doctest-additions

Doctest additions
typo in tip
remove redundant parens