ок
мне нужно понять в каких случаях при возврате из функции
foo: Int -> ([0;20] -> [10;40])
можно возвращать функции с другим типом аргументов и возвращаемого значения.
как мне кажется в случаях когда входной диапазон больше чем требуемый (все значения входные попадут в диапазон, а остальной просто отбросится).
Короче, прочитай про вариантность в номиконе, оно именно про твой вопрос