I just noticed this was written in "draft" and I had forgotten to post it :P
> newtype ConstF c a = Const c
> instance Functor (ConstF c) where
> fmap f (Const c) = Const c
> kb :: ConstF Bool a
> kb = ConstF True
> -- fmap id (Const c) = id (Const c)
> -- Const c = Const c <-- applying the definition of fmap
> -- fmap (f.g) (Const c) = (fmap f . fmap g) (Const c)
> -- Const c = fmap f (fmap g (Const c)) <<- applying the definition of fmap on the left side
> -- Const c = fmap f (Const c) <-- applying the definition of fmap on the right side
> -- Const c = Const c