|  | @@ 96-100 (lines=5) @@ | 
                                                            
                                    | 93 |  |         } | 
                                                            
                                    | 94 |  |  | 
                                                            
                                    | 95 |  |         // Check iterable | 
                                                            
                                    | 96 |  |         if ($superTypeName === BuiltInTypes::ITERABLE) { | 
                                                            
                                    | 97 |  |             return $subTypeName === BuiltInTypes::ARRAY | 
                                                            
                                    | 98 |  |                 || $subTypeName === \Traversable::class | 
                                                            
                                    | 99 |  |                 || \is_subclass_of($subTypeName, \Traversable::class); | 
                                                            
                                    | 100 |  |         } | 
                                                            
                                    | 101 |  |  | 
                                                            
                                    | 102 |  |         // Check callable | 
                                                            
                                    | 103 |  |         if ($superTypeName === BuiltInTypes::CALLABLE) { | 
                                                                                
                                |  | @@ 103-107 (lines=5) @@ | 
                                                            
                                    | 100 |  |         } | 
                                                            
                                    | 101 |  |  | 
                                                            
                                    | 102 |  |         // Check callable | 
                                                            
                                    | 103 |  |         if ($superTypeName === BuiltInTypes::CALLABLE) { | 
                                                            
                                    | 104 |  |             return $subTypeName === \Closure::class | 
                                                            
                                    | 105 |  |                 || \method_exists($subTypeName, '__invoke') | 
                                                            
                                    | 106 |  |                 || \is_subclass_of($subTypeName, \Closure::class); | 
                                                            
                                    | 107 |  |         } | 
                                                            
                                    | 108 |  |  | 
                                                            
                                    | 109 |  |         // If the super type is built-in, check whether casting rules can succeed | 
                                                            
                                    | 110 |  |         if (isset(self::$builtInTypes[$superTypeName])) { |