Add Type signitures
Wadler Free Theorems
More cleanup