exclude, intersection, orElse schema combinators built in userland, that helped me declaring domain schema.exclude: given schema A and schema B decode things that are As that are not Bs, resulting in Exclude<A, B>intersection: given schema A and schema B, decode things that are As and Bs at the same time resulting in A & BorElse: given schema<A, I> and value a of type A, try decoding I and return a if decoding fails (this may be accomplished with the default option, not sure it's available for all schema though)