packages feed

hydra-kernel-0.17.3: src/main/haskell/Hydra/Dsl/Lib/Maps.hs

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

-- | DSL functions for hydra.lib.maps

module Hydra.Dsl.Lib.Maps where

import qualified Hydra.Ast as Ast
import qualified Hydra.Coders as Coders
import qualified Hydra.Core as Core
import qualified Hydra.Docs as Docs
import qualified Hydra.Dsl.Ast as DslAst
import qualified Hydra.Dsl.Coders as DslCoders
import qualified Hydra.Dsl.Core as DslCore
import qualified Hydra.Dsl.Docs as DslDocs
import qualified Hydra.Dsl.Error.Checking as ErrorChecking
import qualified Hydra.Dsl.Error.Core as DslErrorCore
import qualified Hydra.Dsl.Error.File as DslErrorFile
import qualified Hydra.Dsl.Error.Packaging as DslErrorPackaging
import qualified Hydra.Dsl.Error.System as DslErrorSystem
import qualified Hydra.Dsl.Errors as DslErrors
import qualified Hydra.Dsl.File as DslFile
import qualified Hydra.Dsl.Graph as DslGraph
import qualified Hydra.Dsl.Json.Model as JsonModel
import qualified Hydra.Dsl.Packaging as DslPackaging
import qualified Hydra.Dsl.Parsing as DslParsing
import qualified Hydra.Dsl.Paths as DslPaths
import qualified Hydra.Dsl.Query as DslQuery
import qualified Hydra.Dsl.Regex as DslRegex
import qualified Hydra.Dsl.Relational as DslRelational
import qualified Hydra.Dsl.System as DslSystem
import qualified Hydra.Dsl.Tabular as DslTabular
import qualified Hydra.Dsl.Testing as DslTesting
import qualified Hydra.Dsl.Time as DslTime
import qualified Hydra.Dsl.Topology as DslTopology
import qualified Hydra.Dsl.Typing as DslTyping
import qualified Hydra.Dsl.Util as DslUtil
import qualified Hydra.Dsl.Validation as DslValidation
import qualified Hydra.Dsl.Variants as DslVariants
import qualified Hydra.Error.Checking as Checking
import qualified Hydra.Error.Core as ErrorCore
import qualified Hydra.Error.File as ErrorFile
import qualified Hydra.Error.Packaging as ErrorPackaging
import qualified Hydra.Error.System as ErrorSystem
import qualified Hydra.Errors as Errors
import qualified Hydra.File as File
import qualified Hydra.Graph as Graph
import qualified Hydra.Json.Model as Model
import qualified Hydra.Packaging as Packaging
import qualified Hydra.Parsing as Parsing
import qualified Hydra.Paths as Paths
import qualified Hydra.Query as Query
import qualified Hydra.Regex as Regex
import qualified Hydra.Relational as Relational
import qualified Hydra.System as System
import qualified Hydra.Tabular as Tabular
import qualified Hydra.Testing as Testing
import qualified Hydra.Time as Time
import qualified Hydra.Topology as Topology
import qualified Hydra.Typed as Typed
import qualified Hydra.Typing as Typing
import qualified Hydra.Util as Util
import qualified Hydra.Validation as Validation
import qualified Hydra.Variants as Variants
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.Scientific as Sci
import qualified Data.Map as M

-- | DSL reference to hydra.lib.maps.alter
alter :: Ord k => (Typed.TypedTerm (Maybe v -> Maybe v) -> Typed.TypedTerm k -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v))
alter f k m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermApplication (Core.Application {
          Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.alter")),
          Core.applicationArgument = (Typed.unTypedTerm f)})),
        Core.applicationArgument = (Typed.unTypedTerm k)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.bimap
bimap :: (Ord k1, Ord k2) => (Typed.TypedTerm (k1 -> k2) -> Typed.TypedTerm (v1 -> v2) -> Typed.TypedTerm (M.Map k1 v1) -> Typed.TypedTerm (M.Map k2 v2))
bimap fk fv m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermApplication (Core.Application {
          Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.bimap")),
          Core.applicationArgument = (Typed.unTypedTerm fk)})),
        Core.applicationArgument = (Typed.unTypedTerm fv)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.delete
delete :: Ord k => (Typed.TypedTerm k -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v))
delete k m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.delete")),
        Core.applicationArgument = (Typed.unTypedTerm k)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.difference
difference :: Ord k => (Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v))
difference m1 m2 =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.difference")),
        Core.applicationArgument = (Typed.unTypedTerm m1)})),
      Core.applicationArgument = (Typed.unTypedTerm m2)}))

-- | DSL reference to hydra.lib.maps.elems
elems :: Ord k => (Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm [v])
elems m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.elems")),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.empty
empty :: Ord k => (Typed.TypedTerm (M.Map k v))
empty = Typed.TypedTerm (Core.TermVariable (Core.Name "hydra.lib.maps.empty"))

-- | DSL reference to hydra.lib.maps.filter
filter :: Ord k => (Typed.TypedTerm (v -> Bool) -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v))
filter p m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.filter")),
        Core.applicationArgument = (Typed.unTypedTerm p)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.filterWithKey
filterWithKey :: Ord k => (Typed.TypedTerm (k -> v -> Bool) -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v))
filterWithKey p m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.filterWithKey")),
        Core.applicationArgument = (Typed.unTypedTerm p)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.findWithDefault
findWithDefault :: Ord k => (Typed.TypedTerm v -> Typed.TypedTerm k -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm v)
findWithDefault def k m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermApplication (Core.Application {
          Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.findWithDefault")),
          Core.applicationArgument = (Typed.unTypedTerm def)})),
        Core.applicationArgument = (Typed.unTypedTerm k)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.fromList
fromList :: Ord k => (Typed.TypedTerm [(k, v)] -> Typed.TypedTerm (M.Map k v))
fromList xs =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.fromList")),
      Core.applicationArgument = (Typed.unTypedTerm xs)}))

-- | DSL reference to hydra.lib.maps.insert
insert :: Ord k => (Typed.TypedTerm k -> Typed.TypedTerm v -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v))
insert k v m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermApplication (Core.Application {
          Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.insert")),
          Core.applicationArgument = (Typed.unTypedTerm k)})),
        Core.applicationArgument = (Typed.unTypedTerm v)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.intersection
intersection :: Ord k => (Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v))
intersection m1 m2 =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.intersection")),
        Core.applicationArgument = (Typed.unTypedTerm m1)})),
      Core.applicationArgument = (Typed.unTypedTerm m2)}))

-- | DSL reference to hydra.lib.maps.keys
keys :: Ord k => (Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm [k])
keys m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.keys")),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.lookup
lookup :: Ord k => (Typed.TypedTerm k -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (Maybe v))
lookup k m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.lookup")),
        Core.applicationArgument = (Typed.unTypedTerm k)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.map
map :: Ord k => (Typed.TypedTerm (v1 -> v2) -> Typed.TypedTerm (M.Map k v1) -> Typed.TypedTerm (M.Map k v2))
map f m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.map")),
        Core.applicationArgument = (Typed.unTypedTerm f)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.mapKeys
mapKeys :: (Ord k1, Ord k2) => (Typed.TypedTerm (k1 -> k2) -> Typed.TypedTerm (M.Map k1 v) -> Typed.TypedTerm (M.Map k2 v))
mapKeys f m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.mapKeys")),
        Core.applicationArgument = (Typed.unTypedTerm f)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.member
member :: Ord k => (Typed.TypedTerm k -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm Bool)
member k m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.member")),
        Core.applicationArgument = (Typed.unTypedTerm k)})),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.null
null :: Ord k => (Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm Bool)
null m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.null")),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.singleton
singleton :: Ord k => (Typed.TypedTerm k -> Typed.TypedTerm v -> Typed.TypedTerm (M.Map k v))
singleton k v =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.singleton")),
        Core.applicationArgument = (Typed.unTypedTerm k)})),
      Core.applicationArgument = (Typed.unTypedTerm v)}))

-- | DSL reference to hydra.lib.maps.size
size :: Ord k => (Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm Int)
size m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.size")),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.toList
toList :: Ord k => (Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm [(k, v)])
toList m =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.toList")),
      Core.applicationArgument = (Typed.unTypedTerm m)}))

-- | DSL reference to hydra.lib.maps.union
union :: Ord k => (Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v) -> Typed.TypedTerm (M.Map k v))
union m1 m2 =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermApplication (Core.Application {
        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.union")),
        Core.applicationArgument = (Typed.unTypedTerm m1)})),
      Core.applicationArgument = (Typed.unTypedTerm m2)}))

-- | DSL reference to hydra.lib.maps.unions
unions :: Ord k => (Typed.TypedTerm [M.Map k v] -> Typed.TypedTerm (M.Map k v))
unions ms =
    Typed.TypedTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.lib.maps.unions")),
      Core.applicationArgument = (Typed.unTypedTerm ms)}))