public static void Map <TFrom, TTo>(TFrom from, TTo to)
 {
     if (OnTypes.IsAssignable(typeof(TFrom), typeof(IDictionary <string, object>)))
     {
         Map((IDictionary <string, object>)from, to);
     }
     else
     {
         var data = OnMappings.TurnObjectIntoDictionary(from);
         OnMappings.Map(data, to);
     }
 }
 public static bool IsAssignableFrom(this Type abstraction, Type concretion)
 {
     return(OnTypes.IsAssignable(concretion, abstraction));
 }