sbv-14.0: SBVTestSuite/TestSuite/CompileTests/SCase/SCase30.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wall -Werror -ddump-splices #-}
module T where
import Data.SBV
-- Testing constructor/type name conflct
data A = A Integer
| B Float
| C A A
mkSymbolic [''A]
t :: SA -> SA
t a = [sCase| a of
A u -> sA (u+1)
B f -> sB (f+2)
C a1 a2 -> sC (t a1) (t a2)
|]