packages feed

hydra-0.12.0: src/gen-main/haskell/Hydra/Show/Mantle.hs

-- | String representations of hydra.mantle types

module Hydra.Show.Mantle where

import qualified Hydra.Mantle as Mantle
import Prelude hiding  (Enum, Ordering, fail, map, pure, sum)
import qualified Data.Int as I
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S

-- | Show a term variant as a string
termVariant :: (Mantle.TermVariant -> String)
termVariant x = case x of
  Mantle.TermVariantAnnotated -> "annotated"
  Mantle.TermVariantApplication -> "application"
  Mantle.TermVariantFunction -> "function"
  Mantle.TermVariantLet -> "let"
  Mantle.TermVariantList -> "list"
  Mantle.TermVariantLiteral -> "literal"
  Mantle.TermVariantMap -> "map"
  Mantle.TermVariantOptional -> "optional"
  Mantle.TermVariantProduct -> "product"
  Mantle.TermVariantRecord -> "record"
  Mantle.TermVariantSet -> "set"
  Mantle.TermVariantSum -> "sum"
  Mantle.TermVariantTypeLambda -> "typeLambda"
  Mantle.TermVariantTypeApplication -> "typeApplication"
  Mantle.TermVariantUnion -> "union"
  Mantle.TermVariantUnit -> "unit"
  Mantle.TermVariantVariable -> "variable"
  Mantle.TermVariantWrap -> "wrap"

-- | Show a type variant as a string
typeVariant :: (Mantle.TypeVariant -> String)
typeVariant x = case x of
  Mantle.TypeVariantAnnotated -> "annotated"
  Mantle.TypeVariantApplication -> "application"
  Mantle.TypeVariantForall -> "forall"
  Mantle.TypeVariantFunction -> "function"
  Mantle.TypeVariantList -> "list"
  Mantle.TypeVariantLiteral -> "literal"
  Mantle.TypeVariantMap -> "map"
  Mantle.TypeVariantOptional -> "optional"
  Mantle.TypeVariantProduct -> "product"
  Mantle.TypeVariantRecord -> "record"
  Mantle.TypeVariantSet -> "set"
  Mantle.TypeVariantSum -> "sum"
  Mantle.TypeVariantUnion -> "union"
  Mantle.TypeVariantUnit -> "unit"
  Mantle.TypeVariantVariable -> "variable"
  Mantle.TypeVariantWrap -> "wrap"