RFC #Haskell type classes w subset of methods
type Pointed = Applicative{pure}
instance Pointed Endo where
pure :: a -> Endo a
pure a = Endo \_ -> a
trouble: pure's type is still has Applicative, but I want
point = pure_ :: Applicative{pure} f => a -> f a
Conversation
Hot take: scrap type classes altogether and just list the methods that you want, innit
Instead of `instance Num N` you can just define the methods that you actually need `(+) : N → N → N` etc.
Essentially then we just have open and closed function definitions. Bam
1
1
making ad hoc polymorphism less less ad hoc?


