Fix an issue where abstract types were confused with abstract functions. Not all concrete functions have concrete input types, and this is fine. Now, the algorithm decides how to treat a function f' based on whether the function is abstract, instead of only looking for abstract functions should the direct subtype happen to be abstract (which would rule out a huge class of valid functions).
Fix an issue where abstract types were confused with abstract functions.
Not all concrete functions have concrete input types, and this is fine. Now, the algorithm decides how to treat a function f' based on whether the function is abstract, instead of only looking for abstract functions should the direct subtype happen to be abstract (which would rule out a huge class of valid functions).

marcopennekamp/lore,marcopennekamp/lore