{-# OPTIONS --type-in-type --no-termination-check #-} module RSwitch where open import SigVecs open import NaryFRP open import Library1 ------------------------------------------------------ -- rswitch is an infinite term and should only be evaluated lazily rswitch : {as bs : SVDesc} → {A : Set} → SF as (bs , E A) → (A → SF as (bs , E A)) → SF as bs rswitch {as} {bs} {A} sf f = switch {as} {bs} sf (λ e → rswitch {as} {bs} (_>>>_ {as} {bs , E A} {bs , E A} (f e) (sfSecond {bs} {E A} {E A} notYet)) f) ------------------------------------------------------