{-# LANGUAGE CPP
, DataKinds
, PolyKinds
, GADTs
, TypeOperators
, TypeFamilies
, ExistentialQuantification
#-}
{-# OPTIONS_GHC -Wall -fwarn-tabs #-}
module Language.Hakaru.Syntax.DatumABT
( fromGBranch
, toGBranch
) where
import Language.Hakaru.Syntax.ABT
import Language.Hakaru.Syntax.Datum
fromGBranch
:: (ABT syn abt)
=> GBranch a (abt '[] b)
-> Branch a abt b
fromGBranch (GBranch pat vars e) =
Branch pat (binds_ vars e)
toGBranch
:: (ABT syn abt)
=> Branch a abt b
-> GBranch a (abt '[] b)
toGBranch (Branch pat body) =
uncurry (GBranch pat) (caseBinds body)
----------------------------------------------------------------
----------------------------------------------------------- fin.