Refines the given inner_type with some arbitrary validation function.
inner_type
@type t() :: t(Zodish.Type.t())
@type t(inner_type) :: %Zodish.Type.Refine{ error: String.t(), fun: (any() -> boolean()) | mfa(), inner_type: inner_type }