Advantages

More strictly typed and encodeable

Transferrable using functors

Disadvantage

Requires more rigor