diff --git a/src/func/classes/overload.rs b/src/func/classes/overload.rs
index 964854c..d74aef6 100644
--- a/src/func/classes/overload.rs
+++ b/src/func/classes/overload.rs
@@ -5,11 +5,11 @@ use crate::func::*;
 pub struct OverloadClass<T, O>(T, O);
 
 pub trait DeriveWeakFunctor {}
-impl<T: DeriveFunctor> DeriveWeakFunctor for T {}
+impl<O: DeriveFunctor> DeriveWeakFunctor for O {}
 pub trait DeriveFunctor {}
-impl<T: DeriveApplicative> DeriveFunctor for T {}
+impl<O: DeriveApplicative> DeriveFunctor for O {}
 pub trait DeriveApplicative {}
-impl<T: DeriveMonad> DeriveApplicative for T {}
+impl<O: DeriveMonad> DeriveApplicative for O {}
 pub trait DeriveMonad {}
 
 impl<T: WeakFunctor, O: DeriveWeakFunctor> WeakFunctor for OverloadClass<T, O> {