find . -type f | xargs grep -n " <c " の結果 ./docs/TypeChecker.rst:126: called. Conversion constraints are written ``X <c Y``, read as ./docs/TypeChecker.rst:261: conversion constraint ``T(b) <c T0`` captures the requirement that ./docs/TypeChecker.rst:284: respectively. The constraint ``T(b) <c T0`` requires the key ./docs/TypeChecker.rst:324: constraints ``T(y) <c T0`` and ``T(z) <c T0`` capture the need for ./docs/TypeChecker.rst:503: A -> B <c C -> D ./docs/TypeChecker.rst:594:placed on it that relate it to concrete types, e.g., ``T0 <c Int`` or ./docs/TypeChecker.rst:595:``Float <c T0``. In these cases, we can use the concrete types as a ./docs/TypeChecker.rst:741:these constraints is broken down into "``T2 <c Int``" and "``X <c ./docs/TypeChecker.rst:763:applied. Similarly, the "``(T2, X) <c T0`` constraint has a ./docs/TypeChecker.rst:772:example, the ``T2 <c Int`` constraint will be anchored at the function ./docs/TypeChecker.rst:776:element. Similarly, the ``X <c String`` constraint will have the same ./docs/TypeChecker.rst:789:simplifying the constraint ``X <c String``, so it uses the locator ./docs/TypeChecker.rst:842:Here, the failing constraint is ``Float <c Int``, with the same ./lib/Sema/CSSimplify.cpp:6596: // T <c U ===> T? <c U! ./lib/Sema/CSSimplify.cpp:6715: // T < U or T is bridged to V where V < U ===> Array<T> <c Array<U> ./lib/Sema/CSSimplify.cpp:6730: // Dictionary<K1, V1> <c Dictionary<K2, V2> ./lib/Sema/CSSimplify.cpp:6764: // T1 < T2 || T1 bridges to T2 ===> Set<T1> <c Set<T2> ./lib/Sema/CSSimplify.cpp:6778: // T1 <c T2 && T2 : Hashable ===> T1 <c AnyHashable ./lib/Sema/CSSimplify.cpp:6809: // T' < U and T a toll-free-bridged to T' ===> T' <c U ./lib/Sema/CSSimplify.cpp:6824: // T < U' and U a toll-free-bridged to U' ===> T <c U