У меня возникли проблемы с поиском хороших ресурсов, которые помогут сделать мои типы данных распакованными для использования в распакованном векторе. Как бы я сделал тип данных
data Color = Yellow | Red | Green | Blue | Empty deriving (Show, Eq)
быть экземпляром Unbox?
Редактировать: немного поковырявшись, кажется, что, заставив параметры в некоторых функциях быть строгими, я могу убедить GHC распаковать их автоматически. Если это применимо в моем случае? Как узнать, какие параметры сделать строгими?
Vector
,MVector
иU.Unbox
не являются производными классами. Не говоря уже о том, что я действительно не понимаю, что там происходит, особенно сGeneralizedNewtypeDeriving
, и я хотел бы понять некоторые вещи, прежде чем использовать их. - person Drew   schedule 28.11.2012newtype Color = Color Int
), вместо перечисляемого типа данных. А затем добавьте вспомогательные функции для построения/деконструкции экземпляров. Это не очень приятно, но если выступления важны, это может помочь. См. Производительность-Типы данных-Перечисления. - person Petr   schedule 28.11.2012