WIP: Projections
Got conversion to PTExp going
WIP: getting closer?
Added imports and derives for Uniplate
WIP: Now converting to Mu bound types works
Added different variations of data-type declarations
Better code organisation

Now we have a seperate Flite.Projections.Conversion module
that deals with converting the 'normal' Flite types and functions
into those that are suitable for projections analysis.

The plan is to write _only_ the projection analysis in Flite.Projections
and write any additional modules to facilitate that. I'm trying to have
good organisation :)
Flite.Flic now exports 'desugarProj'

This function is used to 'clean' a parsed program into a suitable form for
projections analysis.
Flite.Projections.Conversion only exports convertProg

Much of the conversion and type-manipulation work is completed. The (hopefully)
final piece is to convert the function types to a suitable form. I am not sure
if this necessary at the initial conversion stage, but it is looking like it is.
Exporting important things from Conversion
Ugh
Use custom instances for Uniplate
More WIP
Need to convert mu bound variables to CRec
Working on disjunction
I believe that conjunction is now working
Added mkAbs, #> and some cleanup
Now treating single item products correctly
Added two tree types to example
Not sure if mkAbs works. Can't figure out fold/unfold :(