Strict

All types in the strict category are constrained by a type-check that is applied to an input which makes sure that the input is an instance of the primitive:

Types::Strict::Int[1] # => 1
Types::Strict::Int['1'] # => raises Dry::Types::ConstraintError