conformed() :: {:ok, conformed :: any}
fun() :: (any -> result | any)
mismatch() :: {:error, mismatch :: Spec.Mismatch.t}
quoted() :: Macro.t
result() :: conformed | mismatch
t() :: term
conform(conformer :: t, value :: any) :: result