-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Dynamic programming for Set data structures. -- -- generalized Algebraic Dynamic Programming -- -- Extensions of ADPfusion for set-(like) data structures. @package ADPfusionSet @version 0.0.0.2 -- | Type definition for singleton terminal symbols. module ADP.Fusion.Term.Singleton.Type -- | A singleton vertex is successfully parsed only if no other vertex is -- active yet. In particular, this allows us to insert "starting" points -- into graphs that mostly deal with edges. As a parsing symbol, it -- provides an Int which is the node index. data Singleton Singleton :: Singleton instance (GHC.Show.Show i, GHC.Show.Show (ADP.Fusion.Core.Classes.RunningIndex i), GHC.Show.Show (ADP.Fusion.Core.Classes.Elm ls i)) => GHC.Show.Show (ADP.Fusion.Core.Classes.Elm (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.Singleton.Type.Singleton) i) instance ADP.Fusion.Core.Classes.Build ADP.Fusion.Term.Singleton.Type.Singleton instance ADP.Fusion.Core.Classes.Element ls i => ADP.Fusion.Core.Classes.Element (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.Singleton.Type.Singleton) i -- | TODO merge with Edge and handle via phantom typing? module ADP.Fusion.Term.EdgeWithSet.Type -- | An edge in a graph. As a parsing symbol, it will provide (From:.To) -- pairs. data EdgeWithSet EdgeWithSet :: EdgeWithSet instance (GHC.Show.Show i, GHC.Show.Show (ADP.Fusion.Core.Classes.RunningIndex i), GHC.Show.Show (ADP.Fusion.Core.Classes.Elm ls i)) => GHC.Show.Show (ADP.Fusion.Core.Classes.Elm (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) i) instance ADP.Fusion.Core.Classes.Build ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet instance ADP.Fusion.Core.Classes.Element ls i => ADP.Fusion.Core.Classes.Element (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) i -- | Bitsets BS1 i are bitsets where one of the active bits is -- annotated as the first or last bit that has been set. In principle, -- being first or last is exchangeable, but is made explicit to allow for -- type-different sets. module ADP.Fusion.Core.Set1 instance ADP.Fusion.Core.Classes.RuleContext (Data.PrimitiveArray.Index.Set.BS1 i Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Classes.RuleContext (Data.PrimitiveArray.Index.Set.BS1 i Data.PrimitiveArray.Index.IOC.O) instance GHC.Base.Monad m => ADP.Fusion.Core.Classes.MkStream m ADP.Fusion.Core.Classes.S (Data.PrimitiveArray.Index.Set.BS1 i Data.PrimitiveArray.Index.IOC.I) instance GHC.Base.Monad m => ADP.Fusion.Core.Classes.MkStream m ADP.Fusion.Core.Classes.S (Data.PrimitiveArray.Index.Set.BS1 i Data.PrimitiveArray.Index.IOC.O) instance ADP.Fusion.Core.Classes.MinSize c => ADP.Fusion.Core.Multi.TableStaticVar u c (Data.PrimitiveArray.Index.Set.BS1 s Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Classes.MinSize c => ADP.Fusion.Core.Multi.TableStaticVar u c (Data.PrimitiveArray.Index.Set.BS1 s Data.PrimitiveArray.Index.IOC.O) -- | Insert an edge into a set. X -> Y e with e == -- Edge extends Y with the edge partially overlapping -- Y. -- -- The semantic meaning of the overlap depends on what the k -- type in BS1 k i is. For First, the edge will go from -- First in X to First in the smaller -- Y. -- -- TODO X -> e X vs X -> X e. -- -- Sidenote: can we actually have X -> Y Z with Set1 -- structures? I don't think so, at least not easily, since the boundary -- between Y Z is unclear. module ADP.Fusion.Term.Edge.Set1 -- | We need to separate out the two cases of having BS1 First and -- BS1 Last as this changes how we fill the Edge. -- -- TODO separate out these cases into an Edge-Choice class ... -- | TODO move to definition of Edge class EdgeFromTo k edgeFromTo :: EdgeFromTo k => Proxy k -> SetNode -> NewNode -> (From :. To) newtype SetNode SetNode :: Int -> SetNode newtype NewNode NewNode :: Int -> NewNode -- | In case our sets have a First boundary, then we always point -- from the boundary "into" the set. Hence SetNode == To and -- NewNode == From. -- | And if the set has a Last boundary, then we point from -- somewhere in the set To the NewNode, which is -- Last. instance ADP.Fusion.Core.Multi.TmkCtx1 m ls ADP.Fusion.Term.Edge.Type.Edge (Data.PrimitiveArray.Index.Set.BS1 k t) => ADP.Fusion.Core.Classes.MkStream m (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.Edge.Type.Edge) (Data.PrimitiveArray.Index.Set.BS1 k t) instance (ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I), ADP.Fusion.Term.Edge.Set1.EdgeFromTo k) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.Edge.Type.Edge) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Term.Edge.Set1.EdgeFromTo Data.PrimitiveArray.Index.Set.First instance ADP.Fusion.Term.Edge.Set1.EdgeFromTo Data.PrimitiveArray.Index.Set.Last instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.Edge.Type.Edge (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) module ADP.Fusion.Term.EdgeWithSet.Set1 -- | We need to separate out the two cases of having BS1 First and -- BS1 Last as this changes how we fill the Edge. -- -- TODO separate out these cases into an Edge-Choice class ... instance ADP.Fusion.Core.Multi.TmkCtx1 m ls ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet (Data.PrimitiveArray.Index.Set.BS1 k t) => ADP.Fusion.Core.Classes.MkStream m (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) (Data.PrimitiveArray.Index.Set.BS1 k t) instance (ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I), ADP.Fusion.Term.Edge.Set1.EdgeFromTo k) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance (ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O), ADP.Fusion.Term.Edge.Set1.EdgeFromTo k) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) instance (ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.C), ADP.Fusion.Term.Edge.Set1.EdgeFromTo k) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.C) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) module ADP.Fusion.Term.Epsilon.Set1 instance ADP.Fusion.Core.Multi.TmkCtx1 m ls ADP.Fusion.Term.Epsilon.Type.Epsilon (Data.PrimitiveArray.Index.Set.BS1 k t) => ADP.Fusion.Core.Classes.MkStream m (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.Epsilon.Type.Epsilon) (Data.PrimitiveArray.Index.Set.BS1 k t) instance ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.Epsilon.Type.Epsilon) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.Epsilon.Type.Epsilon) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.Epsilon.Type.Epsilon (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.Epsilon.Type.Epsilon (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) module ADP.Fusion.Term.PeekIndex.Set1 data PeekIndex i PeekIndex :: PeekIndex i instance (GHC.Show.Show i, GHC.Show.Show (ADP.Fusion.Core.Classes.RunningIndex i), GHC.Show.Show (ADP.Fusion.Core.Classes.Elm ls i)) => GHC.Show.Show (ADP.Fusion.Core.Classes.Elm (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.PeekIndex.Set1.PeekIndex i) i) instance ADP.Fusion.Core.Classes.Build (ADP.Fusion.Term.PeekIndex.Set1.PeekIndex i) instance ADP.Fusion.Core.Classes.Element ls i => ADP.Fusion.Core.Classes.Element (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.PeekIndex.Set1.PeekIndex i) i instance ADP.Fusion.Core.Multi.TmkCtx1 m ls (ADP.Fusion.Term.PeekIndex.Set1.PeekIndex (Data.PrimitiveArray.Index.Set.BS1 k t)) (Data.PrimitiveArray.Index.Set.BS1 k t) => ADP.Fusion.Core.Classes.MkStream m (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.PeekIndex.Set1.PeekIndex (Data.PrimitiveArray.Index.Set.BS1 k t)) (Data.PrimitiveArray.Index.Set.BS1 k t) instance ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts (ADP.Fusion.Term.PeekIndex.Set1.PeekIndex (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I))) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TermStaticVar (ADP.Fusion.Term.PeekIndex.Set1.PeekIndex (Data.PrimitiveArray.Index.Set.BS1 k i)) (Data.PrimitiveArray.Index.Set.BS1 k i) -- | Singleton vertices are only introduced into a set structure, if no -- vertex has been placed yet. -- -- We explicitly check that X -> s is the only allowed rule, -- with s == Singleton, apart from introducing "deletion" -- symbols like X -> - s. module ADP.Fusion.Term.Singleton.Set1 -- | TODO 17.2.2017 added; probably wrong together with the syntactic -- variable instance in subtle ways. instance ADP.Fusion.Core.Multi.TmkCtx1 m ls ADP.Fusion.Term.Singleton.Type.Singleton (Data.PrimitiveArray.Index.Set.BS1 k t) => ADP.Fusion.Core.Classes.MkStream m (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.Singleton.Type.Singleton) (Data.PrimitiveArray.Index.Set.BS1 k t) instance ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.Singleton.Type.Singleton) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.Singleton.Type.Singleton) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.Singleton.Type.Singleton (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.Singleton.Type.Singleton (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) module ADP.Fusion.Core.EdgeBoundary instance ADP.Fusion.Core.Classes.RuleContext (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Classes.RuleContext (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) instance GHC.Base.Monad m => ADP.Fusion.Core.Classes.MkStream m ADP.Fusion.Core.Classes.S (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) instance GHC.Base.Monad m => ADP.Fusion.Core.Classes.MkStream m ADP.Fusion.Core.Classes.S (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) instance ADP.Fusion.Core.Multi.TableStaticVar u c (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TableStaticVar u c (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) module ADP.Fusion.Term.Edge.EdgeBoundary instance ADP.Fusion.Core.Multi.TmkCtx1 m ls ADP.Fusion.Term.Edge.Type.Edge (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary k) => ADP.Fusion.Core.Classes.MkStream m (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.Edge.Type.Edge) (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary k) instance ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.Edge.Type.Edge) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.Edge.Type.Edge (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) module ADP.Fusion.EdgeBoundary module ADP.Fusion.Term.EdgeWithSet.EdgeBoundary instance ADP.Fusion.Core.Multi.TmkCtx1 m ls ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary k) => ADP.Fusion.Core.Classes.MkStream m (ls Data.Strict.Tuple.:!: ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary k) instance ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TstCtx m ts s x0 i0 is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) => ADP.Fusion.Core.Multi.TermStream m (ADP.Fusion.Core.Multi.TermSymbol ts ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet) s (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TermStaticVar ADP.Fusion.Term.EdgeWithSet.Type.EdgeWithSet (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) module ADP.Fusion.Term.EdgeWithSet -- | Core structures for using Boundary indices. These are -- isomorphic to Int but are to be used to indicate "boundary" -- elements in sets. -- -- Immediate use is given, if one for example wants to extract posterior -- scores for each possible endpoint in a set. module ADP.Fusion.Core.Boundary instance ADP.Fusion.Core.Classes.RuleContext (Data.PrimitiveArray.Index.Set.Boundary i Data.PrimitiveArray.Index.IOC.I) instance GHC.Base.Monad m => ADP.Fusion.Core.Classes.MkStream m ADP.Fusion.Core.Classes.S (Data.PrimitiveArray.Index.Set.Boundary i Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.Core.Multi.TableStaticVar u c (Data.PrimitiveArray.Index.Set.Boundary i Data.PrimitiveArray.Index.IOC.I) module ADP.Fusion.SynVar.Indices.Set1 -- | Since there is only one boundary, it doesn't matter if -- k==First or k==Last. As a result, the "name" of the -- boundary is kept variable. -- -- Given the outer (set,bnd) system, we try all boundaries α for -- (set-bnd,α) for the smaller set Y in X -> Y e. -- -- TODO After this case we should only allow S, since we write, -- in essence, left-linear grammars here. -- -- TODO we should try to statically assure that rb==0 holds -- always in this case. It should because every other symbol moves to -- IVariable once the number of of reserved bits is -- >0. -- -- TODO kind-of hacked and should be written in a better way -- | For the inside case, we try all possible boundaries for Y in -- X -> Y e. For the outside case we now have: Y -> X -- e where Y is now extended. (yset,ybnd) -> (yset + -- α,α) for all α that are not in yset. -- -- TODO 17.2.2017 added -- | A Unit index expands to the full set with all possible -- boundaries tried in order. -- | A single Boundary index allows us to get the optimal results -- ending on each individual boundary. -- | Given indices that index _only_ the current edge First -> -- Last, we want to go over all possible set combinations. -- -- The to element from an edge boundary will serve as the -- First element in a rule @X -> Last (from :-> to) First -- | Generate all possible bitsets until fullSet is reached. -- from is our Last, and to may not be set. -- | TODO 17.2.2017 added -- | TODO 17.2.2017 added -- | TODO 18.2.2017 added -- | TODO 18.2.2017 added instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) cs c is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) cs c is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) cs c is (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.O) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) cs c is (Data.PrimitiveArray.Index.Unit.Unit Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Unit.Unit Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) cs c is (Data.PrimitiveArray.Index.Set.Boundary k Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 k Data.PrimitiveArray.Index.IOC.I) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.Boundary k Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.First Data.PrimitiveArray.Index.IOC.I) cs c is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.First Data.PrimitiveArray.Index.IOC.I) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.Last Data.PrimitiveArray.Index.IOC.I) cs c is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.Last Data.PrimitiveArray.Index.IOC.I) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.I) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.First Data.PrimitiveArray.Index.IOC.I) cs c is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.First Data.PrimitiveArray.Index.IOC.I) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.First Data.PrimitiveArray.Index.IOC.O) cs c is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.First Data.PrimitiveArray.Index.IOC.O) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.Last Data.PrimitiveArray.Index.IOC.I) cs c is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.Last Data.PrimitiveArray.Index.IOC.I) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) instance ADP.Fusion.SynVar.Indices.Classes.IndexHdr s x0 i0 us (Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.Last Data.PrimitiveArray.Index.IOC.O) cs c is (Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) => ADP.Fusion.SynVar.Indices.Classes.AddIndexDense s (us Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.Set.BS1 Data.PrimitiveArray.Index.Set.Last Data.PrimitiveArray.Index.IOC.O) (cs Data.PrimitiveArray.Index.Class.:. c) (is Data.PrimitiveArray.Index.Class.:. Data.PrimitiveArray.Index.EdgeBoundary.EdgeBoundary Data.PrimitiveArray.Index.IOC.C) -- | TODO Import and re-export all required modules for sets with one -- boundary node. module ADP.Fusion.Set1 module ADP.Fusion.Boundary