-- | Sequential imperative code.
module Futhark.CodeGen.ImpCode.Sequential
       ( Program
       , Function
       , FunctionT (Function)
       , Code
       , Sequential
       , module Futhark.CodeGen.ImpCode
       )
       where

import Futhark.CodeGen.ImpCode hiding (Function, Code)
import qualified Futhark.CodeGen.ImpCode as Imp

import Futhark.Util.Pretty

-- | An imperative program.
type Program = Imp.Definitions Sequential

-- | An imperative function.
type Function = Imp.Function Sequential

-- | A piece of imperative code.
type Code = Imp.Code Sequential

-- | Phantom type for identifying sequential imperative code.
data Sequential

instance Pretty Sequential where
  ppr :: Sequential -> Doc
ppr Sequential
_ = Doc
empty

instance FreeIn Sequential where
  freeIn' :: Sequential -> FV
freeIn' Sequential
_ = FV
forall a. Monoid a => a
mempty