p
Size: a a a
p
AK
HasUUID можно Data.Newtype.unwrap использовать. И lookup ( liftEntity $ ToDir "file1" ) mymap и lookup ( liftEntity $ ToFile "file1" ) mymap не проверяют "ограничение" ключа — оба сработают несмотря на то, в мапе лежит типа файл (если не проверять его тип отдельно).p
HasUUID можно Data.Newtype.unwrap использовать. И lookup ( liftEntity $ ToDir "file1" ) mymap и lookup ( liftEntity $ ToFile "file1" ) mymap не проверяют "ограничение" ключа — оба сработают несмотря на то, в мапе лежит типа файл (если не проверять его тип отдельно).AK
p
p
p
VY
foreign import kind FSTagне знаю что из этого выйдет, мб ничего
foreign import data File ∷ FSTag
foreign import data Dir ∷ FSTag
foreign import data Symlink ∷ FSTag
newtype UUID (tag ∷ FSTag) = UUID String
AK
derive instance теперь, раньше было больше извращенийp
derive instance теперь, раньше было больше извращенийp
p
Common это как раз версия newtype Leibniz a b = Leibniz (forall f. f a -> f b) из статьи.VY
file, dir) экспортируются, а конструктор UUID нетAK
AK
file, dir) экспортируются, а конструктор UUID нетMap не "тэгирован", как я понимаюVY
type Value = Int...
data Key = Key Item String
+ Eq, Ord для Key
type Storage = Map Key Item
AK
kind решение может красивее оказатьсяAK
VY