Changed function expansion and fleshed out checkType
Changed function expansion and fleshed out checkType

Function expansion got changed so that it requires an explicit target type and that target type can be an arbitrary SAM type.

som-snytt/dotty,auvik/dotty,som-snytt/dotty,sjrd/dotty,spetz911/dotty,reactormonk/dotty,sjrd/dotty,DarkDimius/dotty,yusuke2255/dotty,folone/dotty,AlexSikia/dotty,dotty-staging/dotty,spetz911/dotty,AlexSikia/dotty,lampepfl/dotty,som-snytt/dotty,reactormonk/dotty,som-snytt/dotty,densh/dotty,lampepfl/dotty,auvik/dotty,folone/dotty,angi2/dotty,sjrd/dotty,dotty-staging/dotty,VladimirNik/dotty,som-snytt/dotty,angi2/dotty,dotty-staging/dotty,lampepfl/dotty,VladimirNik/dotty,vsalvis/dotty,yusuke2255/dotty,dotty-staging/dotty,dotty-staging/dotty,svalaskevicius/dotty,sjrd/dotty,lampepfl/dotty,svalaskevicius/dotty,sjrd/dotty,vsalvis/dotty,lampepfl/dotty,densh/dotty