module Haskell.Extra.Sigma where
open import Haskell.Prelude
record Σ (a : Type) (b : @0 a → Type) : Type where
constructor _,_
field
fst : a
snd : b fst
open Σ public
{-# COMPILE AGDA2HS Σ tuple #-}
infix 2 Σ-syntax
Σ-syntax : (a : Type) → (@0 a → Type) → Type
Σ-syntax = Σ
{-# COMPILE AGDA2HS Σ-syntax inline #-}
syntax Σ-syntax a (λ x → b) = Σ[ x ∈ a ] b