orElse(function) would always return it's value even if type was matched

Hi, found this when wanting to return a default function.