{-# OPTIONS --type-in-type #-}
module SVDesc where
open import NeilPrelude
---------------------------------------------------------
infixr 2 _,_
data SVDesc : Set where
C : Set → SVDesc
E : Set → SVDesc
S : Set → SVDesc
_,_ : SVDesc → SVDesc → SVDesc
---------------------------------------------------------
Sample : SVDesc → Set
Sample (C A) = A
Sample (E A) = Maybe A
Sample (S A) = A
Sample (as , bs) = Sample as × Sample bs
---------------------------------------------------------