/me is glad he grabbed it before github went down…
This looks quite nice, could clean up my type testing that I have scattered around. I am curious though, why does something like:
conform!(is_tuple() and &(tuple_size(&1) == 2), {1})
Take the value as the second argument instead of the first? It would be convenient to do things like:
value
|> conform!(is_tuple() and &(tuple_size(&1) == 2))
|> etc...
Also, on this example from your README.md:
iex> conform!(hello :: is_binary(), "world")
{:hello, "world"}
Have you thought about mandating this syntax instead:
iex> conform!(:hello :: is_binary(), "world")
{:hello, "world"}
That way we could tag it with anything, even a variable like:
iex> blah = :vwoop
iex> conform!(blah :: is_binary(), "world")
{:vwoop, "world"}


















