多态UUAG属性

时间:2017-08-13 06:28:07

标签: haskell uuagc

我想定义一个多态的属性。对于一个非感性的例子,假设我想syn大小的任何类型的列表(所以在实践中它只能是空列表):

ATTR Foo
  SYN lst : {[a]}

(一个不太敏感的例子可能涉及一些类型类约束,或ST s (STRef s Something))等。)

问题当然是,如果没有告诉UUAGC lst应该是多态的,它会生成以下无效的Haskell代码:

type T_Foo = ( ([a]))
data Inh_Foo = Inh_Foo {}
data Syn_Foo = Syn_Foo {lst_Syn_Foo :: ([a])}

sem_Foo :: Foo -> T_Foo

那么我如何让UUAGC生成像

这样的东西
type T_Foo a = ( ([a]))
data Inh_Foo a = Inh_Foo {}
data Syn_Foo a = Syn_Foo {lst_Syn_Foo :: ([a])}

sem_Foo :: Foo -> T_Foo a

0 个答案:

没有答案