class TypeLiteral implements Serializable {

    public static <R> TypeLiteral<R> of(Type type) {
        Objects.requireNonNull(type, "Type must be given.");

        return new TypeLiteral<>(type);
    }

    public  TypeLiteral(Type definedType);
    public  TypeLiteral();

}