• ? Haskell typefun Вот я хочу какую-то структуру, работающую как:
    (Key -> Value Key) причем соотвествие Value Key задается в рантайме, т.е. у меня есть Free монатка, в которой написано, что-то вроде

    intKey <- define "Key" read show (42::Int)
    stringKey <- define "Key2" id id ("42"::String)
    action $ do { x <- readValue intKey :: MyMonad Int ; y <- readValue stringKey :: MyMonad String ; ...
    }

    далее, внутри интерпретатора фримондки по декларациям должна создаться структура где будут положены значения по умолчанию (последний параметр define) и ещё в рантайме ему могут скидываться ("key","value") пары, соотв readValue должны считывать обновленные.
    Вопрос, как это все сложить? У меня пока только идея сделать Data.Map String Any и немного unsafeCoerce (ну или +Typeable и coerce), что выглядит как-то печальненько.

Replies (5)