notes
Advantages
More strictly typed and encodeable
Transferrable using functors
Disadvantage
Requires more rigor