packages feed

hydra-0.14.0: src/gen-main/haskell/Hydra/Encode/Context.hs

-- Note: this is an automatically generated file. Do not edit.

-- | Term encoders for hydra.context

module Hydra.Encode.Context where

import qualified Hydra.Context as Context
import qualified Hydra.Core as Core
import qualified Hydra.Encode.Core as Core_
import qualified Hydra.Lib.Lists as Lists
import qualified Hydra.Lib.Maps as Maps
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.ByteString as B
import qualified Data.Int as I
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S

context :: Context.Context -> Core.Term
context x =
    Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.context.Context"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "trace"),
          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map (\x -> Core.TermLiteral (Core.LiteralString x)) xs)) (Context.contextTrace x))},
        Core.Field {
          Core.fieldName = (Core.Name "messages"),
          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map (\x -> Core.TermLiteral (Core.LiteralString x)) xs)) (Context.contextMessages x))},
        Core.Field {
          Core.fieldName = (Core.Name "other"),
          Core.fieldTerm = ((\m -> Core.TermMap (Maps.bimap Core_.name Core_.term m)) (Context.contextOther x))}]})

inContext :: (t0 -> Core.Term) -> Context.InContext t0 -> Core.Term
inContext e x =
    Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.context.InContext"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "object"),
          Core.fieldTerm = (e (Context.inContextObject x))},
        Core.Field {
          Core.fieldName = (Core.Name "context"),
          Core.fieldTerm = (context (Context.inContextContext x))}]})