Haskellでは、私は書くことができます
data CoAttr f a
= Automatic a
| Manual (f (CoAttr f a))
しかし Idris はdata
. 彼らはで動作しますrecord
。つまり、私は書くことができます
record CoAttrWithoutAutomatic (f : Type -> Type) where
constructor Manual
out : f (CoAttrWithoutAutomatic f)
しかし、私が正しく理解していれば、複数のバリアントを持つことはできません。解決策はありますか?