История изменений
Исправление q0tw4, (текущая версия) :
Не вижу тут оптимизаций
Ок, как написать Maybe так чтоб для некоего «newtype NotNullInt = NotNullInt Int» Maybe NotNullInt представлялся в памяти как Int и кодировал Nothing как 0? В расте такое реализовано. В хаскеле такое не возможно в принципе, так как для того чтоб реализовать монаду, Maybe должен быть параметричным и не может быть реализован по-разному для разных параметров типа. Тоесть можно написать тип MaybeNotNullInt, но невозможно реализовать этим типом монаду уже никак, хоть убейся
Исходная версия q0tw4, :
Не вижу тут оптимизаций
Ок, как написать Maybe так чтоб для некоего «newtype NotNullInt = Int» Maybe NotNullInt представлялся в памяти как Int и кодировал Nothing как 0? В расте такое реализовано. В хаскеле такое не возможно в принципе, так как для того чтоб реализовать монаду, Maybe должен быть параметричным и не может быть реализован по-разному для разных параметров типа. Тоесть можно написать тип MaybeNotNullInt, но невозможно реализовать этим типом монаду уже никак, хоть убейся