складывания локальных функций под where, в контрасте с теми же функциями, продекларированными на том же уровне?
                  
                  
                  foo = bar
                  
                  
                    where bar = ...
                  
                  
                  -- против
                  
                  
                  bar = ...
                  
                  
                  foo = bar
                  
                  
                
я кстати рассказал про то, когда может быть просадка перформанса, но не рассказал, когда будет буст. В случае, когда у тебя нет явного экспорт-листа в модуле, вынесенные на топ-левел определения будут хуже оптимизироваться компилятором, потому что тот будет считать, что они могут быть использованы в другом модуле. В обратной ситуации (когда функции в where) компилятор выводит, что те используются только в теле функции и свободнее их инлайнит по правилу одного использования. Данный фокус правится явным экспорт листом конечно, но приятного в экспорт листах мало
Обсуждают сегодня