initial eclipse project creation
Implemented Tompson's post2NFA in Haskell
Added a tag so the NFA can be printed even if it has cycles
ExpEng types: Added new Match and State types and match function (comments)

This should be the final layout of how the NFA will work.  It has tags to handle recursive printing and Eq comparisons (not yet implemented), a match for the different kinds of matching and special tagging for start and end of a group clause (the idea here is to allow the NFA to record when a grouping is finished based on seeing these tags).

Also added initial cut at match function for running the states.
Added tag to Open/Close Group (comments)

This will hopefully make it easier for the matcher to figure out which group was actually closed.
Added tag for Final (comments)

The problem is, later we will allow partial matches to run actions, but what happens in a pattern like "a+b*a" matched agains a string like "aaaa" (iterate 4 'a')?  That will produce 3 successful partial matches ("aa", "aaa", "aaaa").  Now that we tag Final we can check all the matches we got in the end and when we see multiple matches with the same tag we can simply take the longest one.
Added Eq instance for State (comments)

The instance makes use of the tags to ensure we never traverse down the same path more than once.  Hopefully sharing will make sure the elem checks are only done once each instead of up to twice each (not that it makes much of a difference speed wise)
Changed match to use a monad transformer (comments)

This was needed so the group handling code can store the locations that it matched at (not yet completely implemented).  The old, non-transformer version has been kept so we can do speed tests later to find out how much the monad transformer is slowing us down.  If it's dramatic we may have to unroll the transformer ourselves by hand.
DUP: added tag type
Moved working code from Types into matcher (comments)

The matching functions were in Types, but that's the last place they would actually go.  Now I've split out the structure a bit more.
Types is now warning clean
Types: moved smart constructors to bottom of file
NFA Matcher: Added code for OneOf and NoneOf comparisons
NFA Matcher: added type signatures, comment and tmp fix (comments)

The comment is about the nature of the tmp fix: namely that we want the aux function to be match' not match'' but match' is currently taken by the baseline (more efficient) version of match.  We'll need that later to benchmark the speed of the engine with a transformer and without.
Types: Added some more smart constructors
added some dependancies and modules to the cabal file
NFA Matcher: added close group handling (comments)

Ok, so now close group works for some word "works".  What it does is, when a close group is encountered it applies the character count to all found start group character counts, after removing impossible ones (zero or negative length matches).
Added new Accept tag and handling for it (comments)

The new Accept tag is for expressions that don't have to reach the end of the string to match.  To handle this there is the Accept tag that records a win if it's seen and the Final tag remains which only wins at the end of the string.  Any wins that are seen are recorded in the state.