Backends will need to take their use type tuple defined in #106 and concretize it to a valid type for their corresponding backend. This trait should allow an input and Optional output type returning the type if it satisfies the constraint of the use.
Backends will need to take their use type tuple defined in #106 and concretize it to a valid type for their corresponding backend. This trait should allow an input and Optional output type returning the type if it satisfies the constraint of the use.
child of #101 and #106