Add Cabal situation
Add the basic type
Add convenience instances for common typeclasses