Alternative class is defined in Control.Applicative
hedis: mucking around