class Applicative f where (<*>) :: f (a -> b) -> f a -> f b
class Applicative f where (<*>) :: f (a -> b) -> f a -> f b pure :: a -> f a