The problem is that your display function specifically creates an instance sometype.
, IOther<'a, 'b> , , 'a1 'b1 ISomething ( sometype), .
, IOther<'a, 'b> map, :
type IOther<'a, 'b> =
abstract map<'a, 'b, 'a1, 'b1 when 'a1 :> ISomething and 'b1 :> ISomething> : ('a->'a1) -> ('b->'b1) -> IOther<'a1, 'b1>
, sometime.map , , IOther<'a, 'b> ISomething.
, sometype.map, , .