Full implementation of Specification.
Reexport common types.
clean up hlint