Types.hs 540 Bytes
Newer Older
1
2
{-# LANGUAGE StrictData #-}

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module MA.Algorithm.Types
  ( AlgoState(..)
  ) where

import Data.STRef

import Data.Vector (Vector)
import Data.Vector.Mutable (MVector)

import Data.MorphismEncoding
import Data.RefinablePartition (RefinablePartition)
import MA.Coalgebra.RefinementTypes

data AlgoState s h = AlgoState
  { toSub :: MVector s [EdgeRef]
  , lastW :: MVector s (STRef s (Weight h))
  , encoding :: Encoding (Label h) (H1 h)
  , pred :: Vector [EdgeRef]
  , partition :: RefinablePartition s
  , h3Cache :: MVector s (H3 h)
  }