Perspectives.Parsing.Arc.PhaseTwo
#PhaseTwoState
type PhaseTwoState = { bot :: Boolean, dfr :: DomeinFileRecord, namespaces :: Object String, variableBindings :: Environment QueryFunctionDescription }
#PhaseTwo'
type PhaseTwo' a m = ExceptT PerspectivesError (StateT PhaseTwoState m) a
A Monad with state that indicates whether the Subject of an Action is a Bot, and allows exceptions. It allows for a variable bottom of the monadic stack.
#runPhaseTwo'
runPhaseTwo' :: forall a m. PhaseTwo' a m -> m (Tuple (Either PerspectivesError a) PhaseTwoState)
Run a computation in PhaseTwo
, returning Errors or a Tuple holding both the state and the result of the computation.
#runPhaseTwo_'
runPhaseTwo_' :: forall a m. PhaseTwo' a m -> DomeinFileRecord -> m (Tuple (Either PerspectivesError a) PhaseTwoState)
#evalPhaseTwo'
evalPhaseTwo' :: forall a m. Monad m => PhaseTwo' a m -> m (Either PerspectivesError a)
Run a computation in PhaseTwo
, returning Errors or the result of the computation.
#evalPhaseTwo_'
evalPhaseTwo_' :: forall a m. Monad m => PhaseTwo' a m -> DomeinFileRecord -> m (Either PerspectivesError a)
#PhaseThree
type PhaseThree a = PhaseTwo' a MonadPerspectives
A Monad based on MonadPerspectives, with state that indicates whether the Subject of an Action is a Bot, and allows exceptions.
#lift2
lift2 :: forall a. MonadPerspectives a -> PhaseThree a
#subjectIsBot
#subjectIsNotABot
#isSubjectBot
#modifyDF
modifyDF :: (DomeinFileRecord -> DomeinFileRecord) -> PhaseTwo Unit
#getDF
#getVariableBindings
getVariableBindings :: forall m. Monad m => PhaseTwo' (Environment QueryFunctionDescription) m
#addBinding
addBinding :: forall m. Monad m => String -> QueryFunctionDescription -> PhaseTwo' Unit m
#lookupVariableBinding
lookupVariableBinding :: forall m. Monad m => String -> PhaseTwo' (Maybe QueryFunctionDescription) m
#withNamespaces
withNamespaces :: forall a. Partial => List ContextPart -> PhaseTwo a -> PhaseTwo a
withNamespaces only handles the PREFIX
element of the ContextPart
Sum.
#expandNamespace
expandNamespace :: String -> PhaseTwo String
Replace sys:User
by model:Systeem$User
if sys = model:Systeem
Useful for expanding local names used in bindings, property- and view references.
#traverseDomain
traverseDomain :: ContextE -> Namespace -> PhaseTwo DomeinFile
#traverseContextE
traverseContextE :: ContextE -> Namespace -> PhaseTwo Context
Traverse the members of the ContextE AST type to construct a new Context type and insert it into a DomeinFileRecord.
#traverseRoleE
traverseRoleE :: RoleE -> Namespace -> PhaseTwo Role
Traverse the members of the RoleE AST type to construct a new Role type and insert it into a DomeinFileRecord.
#traverseEnumeratedRoleE
traverseEnumeratedRoleE :: RoleE -> Namespace -> PhaseTwo Role
Traverse a RoleE that results in an EnumeratedRole.
#addRoleToDomeinFile
#traverseCalculatedRoleE
traverseCalculatedRoleE :: RoleE -> Namespace -> PhaseTwo Role
Traverse a RoleE that results in an CalculatedRole.
#traverseComputedRoleE
traverseComputedRoleE :: RoleE -> Namespace -> PhaseTwo Role
Traverse a RoleE that results in an CalculatedRole with a Calculation that depends on a Computed function.
#traversePropertyE
traversePropertyE :: PropertyE -> Namespace -> PhaseTwo Property
Traverse the members of the PropertyE AST type to construct a new Property type and insert it into a DomeinFileRecord.
#traverseEnumeratedPropertyE
#traverseCalculatedPropertyE
traverseCalculatedPropertyE :: PropertyE -> Namespace -> PhaseTwo Property
Traverse a PropertyE that results in an CalculatedProperty.
#addPropertyToDomeinFile
#traversePerspectiveE
traversePerspectiveE :: PerspectiveE -> Namespace -> PhaseTwo (Tuple String (Array ActionType))
Traverse a PerspectiveE. Add each Action seperately to the DomeinFile. Returns the fully qualified string that identifies the Object of the Action and the qualified identifiers of the Actions (we need not know what kind of Role that Object is, to be able to store the Perspective in the Role itself).
#traverseActionE
traverseActionE :: Partial => String -> Maybe ViewType -> Namespace -> (Array ActionType) -> PerspectivePart -> PhaseTwo (Array ActionType)
Constructs an Action, using the provided Object and maybe the View on that Object, from the ActionE. Returns the fully qualified name of the Action in the ActionType. Adds each Action to the DomeinFileRecord.
Modules
- Affjax
- Affjax.RequestBody
- Affjax.RequestHeader
- Affjax.ResponseFormat
- Affjax.ResponseHeader
- Affjax.StatusCode
- Control.Aff.Sockets
- Control.Alt
- Control.Alternative
- Control.Applicative
- Control.Apply
- Control.Biapplicative
- Control.Biapply
- Control.Bind
- Control.Category
- Control.Comonad
- Control.Comonad.Cofree
- Control.Comonad.Cofree.Class
- Control.Comonad.Env
- Control.Comonad.Env.Class
- Control.Comonad.Env.Trans
- Control.Comonad.Store
- Control.Comonad.Store.Class
- Control.Comonad.Store.Trans
- Control.Comonad.Traced
- Control.Comonad.Traced.Class
- Control.Comonad.Traced.Trans
- Control.Comonad.Trans.Class
- Control.Coroutine
- Control.Coroutine.Aff
- Control.Extend
- Control.Lazy
- Control.Monad
- Control.Monad.AvarMonadAsk
- Control.Monad.Cont
- Control.Monad.Cont.Class
- Control.Monad.Cont.Trans
- Control.Monad.Error.Class
- Control.Monad.Except
- Control.Monad.Except.Trans
- Control.Monad.Free
- Control.Monad.Free.Class
- Control.Monad.Free.Trans
- Control.Monad.Gen
- Control.Monad.Gen.Class
- Control.Monad.Gen.Common
- Control.Monad.List.Trans
- Control.Monad.Maybe.Trans
- Control.Monad.RWS
- Control.Monad.RWS.Trans
- Control.Monad.Reader
- Control.Monad.Reader.Class
- Control.Monad.Reader.Trans
- Control.Monad.Rec.Class
- Control.Monad.ST
- Control.Monad.ST.Internal
- Control.Monad.ST.Ref
- Control.Monad.State
- Control.Monad.State.Class
- Control.Monad.State.Trans
- Control.Monad.Trampoline
- Control.Monad.Trans.Class
- Control.Monad.Writer
- Control.Monad.Writer.Class
- Control.Monad.Writer.Trans
- Control.MonadPlus
- Control.MonadZero
- Control.Parallel
- Control.Parallel.Class
- Control.Plus
- Control.Promise
- Control.Semigroupoid
- Data.Argonaut
- Data.Argonaut.Core
- Data.Argonaut.Decode
- Data.Argonaut.Decode.Class
- Data.Argonaut.Decode.Combinators
- Data.Argonaut.Encode
- Data.Argonaut.Encode.Class
- Data.Argonaut.Encode.Combinators
- Data.Argonaut.Gen
- Data.Argonaut.JCursor
- Data.Argonaut.JCursor.Gen
- Data.Argonaut.Parser
- Data.Argonaut.Prisms
- Data.Argonaut.Traversals
- Data.Array
- Data.Array.NonEmpty
- Data.Array.NonEmpty.Internal
- Data.Array.Partial
- Data.Array.ST
- Data.Array.ST.Iterator
- Data.Array.ST.Partial
- Data.ArrayBuffer.Types
- Data.Bifoldable
- Data.Bifunctor
- Data.Bifunctor.Clown
- Data.Bifunctor.Flip
- Data.Bifunctor.Join
- Data.Bifunctor.Joker
- Data.Bifunctor.Product
- Data.Bifunctor.Wrap
- Data.Bitraversable
- Data.Boolean
- Data.BooleanAlgebra
- Data.Bounded
- Data.CatList
- Data.CatQueue
- Data.Char
- Data.Char.Gen
- Data.Char.Unicode
- Data.Char.Unicode.Internal
- Data.CommutativeRing
- Data.Comparison
- Data.Const
- Data.Coyoneda
- Data.Date
- Data.Date.Component
- Data.Date.Component.Gen
- Data.Date.Gen
- Data.DateTime
- Data.DateTime.Gen
- Data.DateTime.ISO
- Data.DateTime.Instant
- Data.Decidable
- Data.Decide
- Data.Distributive
- Data.Divide
- Data.Divisible
- Data.DivisionRing
- Data.Either
- Data.Either.Inject
- Data.Either.Nested
- Data.Enum
- Data.Enum.Gen
- Data.Eq
- Data.Equivalence
- Data.EuclideanRing
- Data.Exists
- Data.Field
- Data.Foldable
- Data.FoldableWithIndex
- Data.FormURLEncoded
- Data.Function
- Data.Function.Uncurried
- Data.Functor
- Data.Functor.App
- Data.Functor.Compose
- Data.Functor.Contravariant
- Data.Functor.Coproduct
- Data.Functor.Coproduct.Inject
- Data.Functor.Coproduct.Nested
- Data.Functor.Invariant
- Data.Functor.Product
- Data.Functor.Product.Nested
- Data.Functor.Variant
- Data.FunctorWithIndex
- Data.Generic.Rep
- Data.Generic.Rep.Bounded
- Data.Generic.Rep.Enum
- Data.Generic.Rep.Eq
- Data.Generic.Rep.HeytingAlgebra
- Data.Generic.Rep.Monoid
- Data.Generic.Rep.Ord
- Data.Generic.Rep.Ring
- Data.Generic.Rep.Semigroup
- Data.Generic.Rep.Semiring
- Data.Generic.Rep.Show
- Data.HTTP.Method
- Data.HeytingAlgebra
- Data.Identity
- Data.Int
- Data.Int.Bits
- Data.Interval
- Data.Interval.Duration
- Data.Interval.Duration.Iso
- Data.JSDate
- Data.Lazy
- Data.Lens
- Data.Lens.At
- Data.Lens.Common
- Data.Lens.Fold
- Data.Lens.Fold.Partial
- Data.Lens.Getter
- Data.Lens.Grate
- Data.Lens.Index
- Data.Lens.Indexed
- Data.Lens.Internal.Bazaar
- Data.Lens.Internal.Exchange
- Data.Lens.Internal.Focusing
- Data.Lens.Internal.Forget
- Data.Lens.Internal.Grating
- Data.Lens.Internal.Indexed
- Data.Lens.Internal.Market
- Data.Lens.Internal.Re
- Data.Lens.Internal.Shop
- Data.Lens.Internal.Tagged
- Data.Lens.Internal.Wander
- Data.Lens.Internal.Zipping
- Data.Lens.Iso
- Data.Lens.Iso.Newtype
- Data.Lens.Lens
- Data.Lens.Lens.Product
- Data.Lens.Lens.Tuple
- Data.Lens.Lens.Unit
- Data.Lens.Lens.Void
- Data.Lens.Prism
- Data.Lens.Prism.Coproduct
- Data.Lens.Prism.Either
- Data.Lens.Prism.Maybe
- Data.Lens.Record
- Data.Lens.Setter
- Data.Lens.Traversal
- Data.Lens.Types
- Data.Lens.Zoom
- Data.List
- Data.List.Lazy
- Data.List.Lazy.NonEmpty
- Data.List.Lazy.Types
- Data.List.NonEmpty
- Data.List.Partial
- Data.List.Types
- Data.List.ZipList
- Data.Map
- Data.Map.Gen
- Data.Map.Internal
- Data.Maybe
- Data.Maybe.First
- Data.Maybe.Last
- Data.MediaType
- Data.MediaType.Common
- Data.Monoid
- Data.Monoid.Additive
- Data.Monoid.Alternate
- Data.Monoid.Conj
- Data.Monoid.Disj
- Data.Monoid.Dual
- Data.Monoid.Endo
- Data.Monoid.Multiplicative
- Data.NaturalTransformation
- Data.Newtype
- Data.NonEmpty
- Data.Nullable
- Data.Number
- Data.Number.Approximate
- Data.Number.Format
- Data.Op
- Data.Options
- Data.Ord
- Data.Ord.Down
- Data.Ord.Max
- Data.Ord.Min
- Data.Ord.Unsafe
- Data.Ordering
- Data.Posix
- Data.Posix.Signal
- Data.Predicate
- Data.Profunctor
- Data.Profunctor.Choice
- Data.Profunctor.Closed
- Data.Profunctor.Clown
- Data.Profunctor.Cochoice
- Data.Profunctor.Costar
- Data.Profunctor.Costrong
- Data.Profunctor.Cowrap
- Data.Profunctor.Join
- Data.Profunctor.Joker
- Data.Profunctor.Split
- Data.Profunctor.Star
- Data.Profunctor.Strong
- Data.Profunctor.Wrap
- Data.Ring
- Data.Semigroup
- Data.Semigroup.First
- Data.Semigroup.Foldable
- Data.Semigroup.Last
- Data.Semigroup.Traversable
- Data.Semiring
- Data.Set
- Data.Set.NonEmpty
- Data.Show
- Data.String
- Data.String.CaseInsensitive
- Data.String.CodePoints
- Data.String.CodeUnits
- Data.String.Common
- Data.String.Gen
- Data.String.NonEmpty
- Data.String.NonEmpty.CaseInsensitive
- Data.String.NonEmpty.CodePoints
- Data.String.NonEmpty.CodeUnits
- Data.String.NonEmpty.Internal
- Data.String.Pattern
- Data.String.Regex
- Data.String.Regex.Flags
- Data.String.Regex.Unsafe
- Data.String.Unsafe
- Data.Symbol
- Data.These
- Data.These.Gen
- Data.Time
- Data.Time.Component
- Data.Time.Component.Gen
- Data.Time.Duration
- Data.Time.Duration.Gen
- Data.Time.Gen
- Data.Traversable
- Data.Traversable.Accum
- Data.Traversable.Accum.Internal
- Data.TraversableWithIndex
- Data.Tuple
- Data.Tuple.Nested
- Data.Unfoldable
- Data.Unfoldable1
- Data.Unit
- Data.Validation.Semigroup
- Data.Validation.Semiring
- Data.Variant
- Data.Variant.Internal
- Data.Void
- Data.Yoneda
- Effect
- Effect.AVar
- Effect.Aff
- Effect.Aff.AVar
- Effect.Aff.Class
- Effect.Aff.Compat
- Effect.Class
- Effect.Class.Console
- Effect.Console
- Effect.Exception
- Effect.Exception.Unsafe
- Effect.Now
- Effect.Random
- Effect.Ref
- Effect.Timer
- Effect.Uncurried
- Effect.Unsafe
- Foreign
- Foreign.Class
- Foreign.Generic
- Foreign.Generic.Class
- Foreign.Generic.EnumEncoding
- Foreign.Generic.Types
- Foreign.Index
- Foreign.Internal
- Foreign.JSON
- Foreign.Keys
- Foreign.NullOrUndefined
- Foreign.Object
- Foreign.Object.Gen
- Foreign.Object.ST
- Foreign.Object.ST.Unsafe
- Foreign.Object.Unsafe
- Global
- Global.Unsafe
- Kishimen
- Main
- MainCouchdb
- Math
- Node.Buffer
- Node.Buffer.Unsafe
- Node.Encoding
- Node.FS
- Node.FS.Aff
- Node.FS.Async
- Node.FS.Internal
- Node.FS.Perms
- Node.FS.Stats
- Node.FS.Stream
- Node.FS.Sync
- Node.Globals
- Node.Path
- Node.Platform
- Node.Process
- Node.ReadLine
- Node.Stream
- Node.Yargs
- Node.Yargs.Applicative
- Node.Yargs.Setup
- PSCI.Support
- Partial
- Partial.Unsafe
- Perspectives.Actions
- Perspectives.Api
- Perspectives.ApiTypes
- Perspectives.Assignment.ActionCache
- Perspectives.Assignment.DependencyTracking
- Perspectives.Assignment.Update
- Perspectives.BasicConstructors
- Perspectives.Checking.PerspectivesTypeChecker
- Perspectives.Checking.PerspectivesTypeChecker.Messages
- Perspectives.ContextAndRole
- Perspectives.ContextRolAccessors
- Perspectives.ContextRoleParser
- Perspectives.CoreTypes
- Perspectives.Couchdb
- Perspectives.Couchdb.Databases
- Perspectives.CouchdbState
- Perspectives.Deltas
- Perspectives.DependencyTracking.Array.Trans
- Perspectives.DependencyTracking.Dependency
- Perspectives.Docu.InstancePersistence
- Perspectives.Docu.Instances
- Perspectives.Docu.Main
- Perspectives.Docu.TypePersistence
- Perspectives.Docu.TypeRepresentation
- Perspectives.DomeinCache
- Perspectives.DomeinFile
- Perspectives.EntiteitAndRDFAliases
- Perspectives.GlobalState
- Perspectives.GlobalUnsafeStrMap
- Perspectives.Guid
- Perspectives.Identifiers
- Perspectives.IndentParser
- Perspectives.InstanceRepresentation
- Perspectives.Instances.Aliases
- Perspectives.Instances.Combinators
- Perspectives.Instances.ComputedGetters
- Perspectives.Instances.Environment
- Perspectives.Instances.ObjectGetters
- Perspectives.LoadCRL
- Perspectives.ObjectGetterLookup
- Perspectives.ParseFromCommandLine
- Perspectives.Parser
- Perspectives.Parsing.Arc
- Perspectives.Parsing.Arc.AST
- Perspectives.Parsing.Arc.Comments
- Perspectives.Parsing.Arc.Expression
- Perspectives.Parsing.Arc.Expression.AST
- Perspectives.Parsing.Arc.Identifiers
- Perspectives.Parsing.Arc.IndentParser
- Perspectives.Parsing.Arc.PhaseThree
- Perspectives.Parsing.Arc.PhaseTwo
- Perspectives.Parsing.Arc.Token
- Perspectives.Parsing.Messages
- Perspectives.Parsing.TransferFile
- Perspectives.Parsing.TransferFile.Token
- Perspectives.Persistent
- Perspectives.PerspectivesState
- Perspectives.Query.Compiler
- Perspectives.Query.DescriptionCompiler
- Perspectives.Query.QueryTypes
- Perspectives.QueryAST
- Perspectives.Representation.ADT
- Perspectives.Representation.Action
- Perspectives.Representation.Assignment
- Perspectives.Representation.CalculatedProperty
- Perspectives.Representation.CalculatedRole
- Perspectives.Representation.Calculation
- Perspectives.Representation.Class.Action
- Perspectives.Representation.Class.Cacheable
- Perspectives.Representation.Class.EnumReadForeign
- Perspectives.Representation.Class.Identifiable
- Perspectives.Representation.Class.PersistentType
- Perspectives.Representation.Class.Property
- Perspectives.Representation.Class.Revision
- Perspectives.Representation.Class.Role
- Perspectives.Representation.Context
- Perspectives.Representation.EnumeratedProperty
- Perspectives.Representation.EnumeratedRole
- Perspectives.Representation.InstanceIdentifiers
- Perspectives.Representation.QueryFunction
- Perspectives.Representation.SideEffect
- Perspectives.Representation.ThreeValuedLogic
- Perspectives.Representation.TypeIdentifiers
- Perspectives.Representation.View
- Perspectives.RunMonadPerspectivesTransaction
- Perspectives.RunPerspectives
- Perspectives.SaveUserData
- Perspectives.SetupCouchdb
- Perspectives.SetupUser
- Perspectives.Sync.Class.Assumption
- Perspectives.Sync.DateTime
- Perspectives.Sync.Transaction
- Perspectives.Syntax
- Perspectives.Token
- Perspectives.TypePersistence.LoadArc
- Perspectives.Types.ObjectGetters
- Perspectives.TypesForDeltas
- Perspectives.User
- Perspectives.Utilities
- Prelude
- Prim
- Prim.Boolean
- Prim.Ordering
- Prim.Row
- Prim.RowList
- Prim.Symbol
- Prim.TypeError
- Random.LCG
- Record
- Record.Builder
- Record.ST
- Record.Unsafe
- Record.Unsafe.Union
- Simple.JSON
- Test.QuickCheck
- Test.QuickCheck.Arbitrary
- Test.QuickCheck.Gen
- Test.Unit
- Test.Unit.Assert
- Test.Unit.Console
- Test.Unit.Main
- Test.Unit.Output.Fancy
- Test.Unit.Output.Simple
- Test.Unit.Output.TAP
- Test.Unit.QuickCheck
- Text.Parsing.Indent
- Text.Parsing.Parser
- Text.Parsing.Parser.Combinators
- Text.Parsing.Parser.Expr
- Text.Parsing.Parser.Language
- Text.Parsing.Parser.Pos
- Text.Parsing.Parser.String
- Text.Parsing.Parser.Token
- Type.Data.Boolean
- Type.Data.Ordering
- Type.Data.Row
- Type.Data.RowList
- Type.Data.Symbol
- Type.Equality
- Type.Prelude
- Type.Proxy
- Type.Row
- Type.Row.Homogeneous
- URI
- URI.AbsoluteURI
- URI.Authority
- URI.Common
- URI.Extra.MultiHostPortPair
- URI.Extra.QueryPairs
- URI.Extra.UserPassInfo
- URI.Fragment
- URI.HierarchicalPart
- URI.Host
- URI.Host.Gen
- URI.Host.IPv4Address
- URI.Host.IPv6Address
- URI.Host.RegName
- URI.HostPortPair
- URI.HostPortPair.Gen
- URI.Path
- URI.Path.Absolute
- URI.Path.NoScheme
- URI.Path.Rootless
- URI.Path.Segment
- URI.Port
- URI.Port.Gen
- URI.Query
- URI.RelativePart
- URI.RelativeRef
- URI.Scheme
- URI.Scheme.Common
- URI.URI
- URI.URIRef
- URI.UserInfo
- Unsafe.Coerce
- Web.DOM
- Web.DOM.CharacterData
- Web.DOM.ChildNode
- Web.DOM.Comment
- Web.DOM.DOMTokenList
- Web.DOM.Document
- Web.DOM.DocumentFragment
- Web.DOM.DocumentType
- Web.DOM.Element
- Web.DOM.HTMLCollection
- Web.DOM.Internal.Types
- Web.DOM.MutationObserver
- Web.DOM.MutationRecord
- Web.DOM.Node
- Web.DOM.NodeList
- Web.DOM.NodeType
- Web.DOM.NonDocumentTypeChildNode
- Web.DOM.NonElementParentNode
- Web.DOM.ParentNode
- Web.DOM.ProcessingInstruction
- Web.DOM.Text
- Web.Event.CustomEvent
- Web.Event.Event
- Web.Event.EventPhase
- Web.Event.EventTarget
- Web.Event.Internal.Types
- Web.File.Blob
- Web.File.File
- Web.File.FileList
- Web.File.FileReader
- Web.File.FileReader.ReadyState
- Web.File.Url
- Web.Internal.FFI
- Web.XHR.EventTypes
- Web.XHR.FormData
- Web.XHR.ProgressEvent
- Web.XHR.ReadyState
- Web.XHR.ResponseType
- Web.XHR.XMLHttpRequest
- Web.XHR.XMLHttpRequestUpload