habe ich zwei eng verwandte Fragen:Haskells Pfeil-Klasse in Agda und -> in Agda
Erstens: Wie kann die Haskells Pfeil Klasse in Agda modelliert/dargestellt werden?
class Arrow a where
arr :: (b -> c) -> a b c
(>>>) :: a b c -> a c d -> a b d
first :: a b c -> a (b,d) (c,d)
second :: a b c -> a (d,b) (d,c)
(***) :: a b c -> a b' c' -> a (b,b') (c,c')
(&&&) :: a b c -> a b c' -> a b (c,c')
(die folgenden Blog Post besagt, dass es möglich sein sollte ...)
Zweitens in Haskell, die (->)
ist ein Bürger erste Klasse und nur eine weitere höhere Ordnung Art und seine einfach zu definieren (->)
als eine Instanz der Arrow
Klasse. Aber wie ist das in Agda? Ich könnte mich irren, aber ich fühle, dass Agdas ->
ist ein integraler Bestandteil von Agda, als Haskell ->
ist. Kann also Agdas ->
als ein Typ höherer Ordnung angesehen werden, d. H. Eine Typfunktion, die Set
ergibt, die zu einer Instanz von Arrow
gemacht werden kann?
Interessante Frage. (In Haskell kommen Pfeile mit etwas syntaktischem Zucker, was sie noch hilfreicher macht.) – AndrewC
@AndrewC: meinst du Pattersons Proc-Notation? Es wäre in der Tat interessant zu wissen, ob das auch in Agda ausdrückbar wäre ... – phynfo
Genau das meine ich ja. – AndrewC