Конструктор типа Haskell в универсальной функции

Я копаюсь в системе Haskell Lava HDL и застрял в понимании http://hackage.haskell.org/package/chalmers-lava2000-1.6.1/docs/src/Lava-Vhdl.html

Может кто-нибудь сказать мне, что функция (var "inp") в writeVhdlразрешается?

функция var еще не определен и, кажется, генерируется с помощью некоторого метапрограммирования, которое мне не знакомо в class Constructive в http://hackage.haskell.org/package/chalmers-lava2000-1.6.1/docs/src/Lava-Generic.html.

функция var кажется, действует как конструктор. Как работает этот механизм?

Вход в writeVhdl это описание схемы как

halfAdd (a, b) = (sum, arry)
  where
    sum = xor2 (a, b)
    arry = and2 (a, b)

1 ответ

Решение

Может кто-нибудь сказать мне, что функция (var "inp") в writeVhdlresolves к?

Это зависит от того, что вы передаете writeVhdl 2-й аргумент, а именно circ, Тип его аргумента (если я правильно прочитал) - это именно тот тип, который возвращается var "foo",

Вы можете наблюдать типы выражений в ghci набрав :t some expression, Попробуйте загрузить свой код в сеанс GHCi и поиграть с :t команда.

Другие вопросы по тегам