diff options
Diffstat (limited to 'ddl/templates/data.purs.ede')
-rw-r--r-- | ddl/templates/data.purs.ede | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/ddl/templates/data.purs.ede b/ddl/templates/data.purs.ede index f8b3e5d..2374c1d 100644 --- a/ddl/templates/data.purs.ede +++ b/ddl/templates/data.purs.ede | |||
@@ -39,11 +39,24 @@ type {{ t.value.aliasName }} = {{ t.value.aliasType | psType }} | |||
39 | 39 | ||
40 | {% endcase %} | 40 | {% endcase %} |
41 | {% endfor %} | 41 | {% endfor %} |
42 | {% for t in definitions %}{% let l = t.value.instances | length %}{% if l > 0 %}{# FIXME!!! #} | 42 | {% for t in definitions %} |
43 | {% let l = t.value.instances | psInstances %} | ||
44 | {% for i in l %} | ||
45 | {% if i.first %} | ||
46 | |||
43 | derive instance generic{{ t.value.dataName }} :: Generic {{ t.value.dataName }} | 47 | derive instance generic{{ t.value.dataName }} :: Generic {{ t.value.dataName }} |
48 | {% endif %} | ||
49 | {% case i.value %} | ||
50 | {% when "Show" %} | ||
44 | instance show{{ t.value.dataName }} :: Show {{ t.value.dataName }} where show = gShow | 51 | instance show{{ t.value.dataName }} :: Show {{ t.value.dataName }} where show = gShow |
52 | {% when "Eq" %} | ||
45 | instance eq{{ t.value.dataName }} :: Eq {{ t.value.dataName }} where eq = gEq | 53 | instance eq{{ t.value.dataName }} :: Eq {{ t.value.dataName }} where eq = gEq |
46 | {% endif %}{% endlet %}{% endfor %} | 54 | {% else %} |
55 | -- FIXME: {{ i.value }} instance is not supported! | ||
56 | {% endcase %} | ||
57 | {% endfor %} | ||
58 | {% endlet %} | ||
59 | {% endfor %} | ||
47 | 60 | ||
48 | {# JSON Encode and Decode #} | 61 | {# JSON Encode and Decode #} |
49 | {% for t in definitions %} | 62 | {% for t in definitions %} |