2

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)

しかし、私が正しく理解していれば、複数のバリアントを持つことはできません。解決策はありますか?

4

1 に答える 1