scala widening of method signatures -


i have class written expects given option[(e) => long]:

class whatever[e] (sizefunction: option[(e) => long]) 

when try , instantiate function (e) => int:

val sizefunction = (a: string) => a.length new whatever[string](some(sizefunction)) 

i compilation error:

type mismatch; found   : string => int required: string => long 

shouldnt string => int "satisfy" string => long due widening?

keep in mind string => int type in , of itself. string => long different type. important programs , not important others, in example. dangerous compiler make assumptions , not call out type mismatches because possibly widen 1 part of function type. if care can define sizefunction string => number.


Comments