"Streng positiv" in Agda

Ich versuche, eine Denotationssemantik in Agda zu kodieren, basierend auf einem Programm, das ich in Haskell geschrieben habe.

data Value = FunVal (Value -> Value)
           | PriVal Int
           | ConVal Id [Value]
           | Error  String

n Agda wäre die direkte Übersetzung;

data Value : Set where
    FunVal : (Value -> Value) -> Value
    PriVal : ℕ -> Value
    ConVal : String -> List Value -> Value
    Error  : String -> Value

aber ich bekomme eine Fehlermeldung bezüglich des FunVal weil;

Value ist nicht unbedingt positiv, da es im Typ des Konstruktors FunVal in der Definition von Value links von einem Pfeil vorkommt.

Was bedeutet das? Kann ich das in Agda kodieren? Gehe ich falsch vor?

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage