From 3f5d49190f1ea0b5152e0d19462720f88d43b919 Mon Sep 17 00:00:00 2001
From: Matei Adriel <rafaeladriel11@gmail.com>
Date: Thu, 1 Apr 2021 19:29:27 +0300
Subject: [PATCH 1/4] feat: basic constraint solving

---
 purescript/factorio-throughput/.gitignore     |  10 +
 purescript/factorio-throughput/packages.dhall |  27 ++
 purescript/factorio-throughput/spago.dhall    |  19 ++
 purescript/factorio-throughput/src/Lens.purs  |  62 +++++
 purescript/factorio-throughput/src/Main.purs  |  40 +++
 .../factorio-throughput/src/Run/Fail.purs     |  12 +
 .../factorio-throughput/src/Run/Reader.purs   |  18 ++
 .../factorio-throughput/src/Run/Visited.purs  |  35 +++
 .../factorio-throughput/src/Throughput.purs   | 256 ++++++++++++++++++
 purescript/factorio-throughput/test/Main.purs |  11 +
 10 files changed, 490 insertions(+)
 create mode 100644 purescript/factorio-throughput/.gitignore
 create mode 100644 purescript/factorio-throughput/packages.dhall
 create mode 100644 purescript/factorio-throughput/spago.dhall
 create mode 100644 purescript/factorio-throughput/src/Lens.purs
 create mode 100644 purescript/factorio-throughput/src/Main.purs
 create mode 100644 purescript/factorio-throughput/src/Run/Fail.purs
 create mode 100644 purescript/factorio-throughput/src/Run/Reader.purs
 create mode 100644 purescript/factorio-throughput/src/Run/Visited.purs
 create mode 100644 purescript/factorio-throughput/src/Throughput.purs
 create mode 100644 purescript/factorio-throughput/test/Main.purs

diff --git a/purescript/factorio-throughput/.gitignore b/purescript/factorio-throughput/.gitignore
new file mode 100644
index 0000000..30efe19
--- /dev/null
+++ b/purescript/factorio-throughput/.gitignore
@@ -0,0 +1,10 @@
+/bower_components/
+/node_modules/
+/.pulp-cache/
+/output/
+/generated-docs/
+/.psc-package/
+/.psc*
+/.purs*
+/.psa*
+/.spago
diff --git a/purescript/factorio-throughput/packages.dhall b/purescript/factorio-throughput/packages.dhall
new file mode 100644
index 0000000..665be90
--- /dev/null
+++ b/purescript/factorio-throughput/packages.dhall
@@ -0,0 +1,27 @@
+let upstream =
+      https://github.com/purescript/package-sets/releases/download/psc-0.14.0-20210324/packages.dhall sha256:b4564d575da6aed1c042ca7936da97c8b7a29473b63f4515f09bb95fae8dddab
+
+let additions =
+      { debugged =
+        { dependencies =
+          [ "prelude"
+          , "console"
+          , "ordered-collections"
+          , "either"
+          , "tuples"
+          , "lists"
+          , "strings"
+          , "arrays"
+          , "bifunctors"
+          , "record"
+          , "effect"
+          , "datetime"
+          , "enums"
+          , "unordered-collections"
+          ]
+        , repo = "https://github.com/hdgarrood/purescript-debugged"
+        , version = "master"
+        }
+      }
+
+in  upstream // additions
diff --git a/purescript/factorio-throughput/spago.dhall b/purescript/factorio-throughput/spago.dhall
new file mode 100644
index 0000000..4e675bf
--- /dev/null
+++ b/purescript/factorio-throughput/spago.dhall
@@ -0,0 +1,19 @@
+{-
+Welcome to a Spago project!
+You can edit this file as you like.
+-}
+{ name = "my-project"
+, dependencies =
+  [ "console"
+  , "debug"
+  , "effect"
+  , "filterable"
+  , "profunctor-lenses"
+  , "psci-support"
+  , "run"
+  , "strings"
+  , "unordered-collections"
+  ]
+, packages = ./packages.dhall
+, sources = [ "src/**/*.purs", "test/**/*.purs" ]
+}
diff --git a/purescript/factorio-throughput/src/Lens.purs b/purescript/factorio-throughput/src/Lens.purs
new file mode 100644
index 0000000..7c32d7b
--- /dev/null
+++ b/purescript/factorio-throughput/src/Lens.purs
@@ -0,0 +1,62 @@
+module Functorio.Lens where
+
+import Prelude
+
+import Data.HashMap (HashMap)
+import Data.HashMap as H
+import Data.HashSet (HashSet)
+import Data.HashSet as S
+import Data.Hashable (class Hashable)
+import Data.Lens (AGetter, Fold, Iso', Lens', Setter, iso, lens, over, preview, set, view)
+import Data.Maybe (Maybe(..), maybe')
+import Data.Maybe.First (First)
+import Run (Run)
+import Run.Reader (READER, ask)
+import Run.State (STATE, get, modify)
+
+---------- Missing instances
+atHashMap :: forall k v. Hashable k => k -> Lens' (HashMap k v) (Maybe v)
+atHashMap k =
+    lens (H.lookup k) \m ->
+      maybe' (\_ -> H.delete k m) \v -> H.insert k v m
+
+-- | At implementation for hash sets
+atHashSetRaw :: forall v. Hashable v => v -> Lens' (HashSet v) (Maybe Unit)
+atHashSetRaw x = lens get (flip update)
+    where
+      get xs =
+        if S.member x xs
+           then Just unit
+           else Nothing
+      update Nothing = S.delete x
+      update (Just _) = S.insert x
+
+-- | Boolean implementation for AT on hash sets
+atHashSet :: forall v. Hashable v => v -> Lens' (HashSet v) Boolean
+atHashSet v = atHashSetRaw v <<< maybeUnitToBoolean
+
+-- | Helper fro implementing atHashSet'
+maybeUnitToBoolean :: Iso' (Maybe Unit) Boolean
+maybeUnitToBoolean = iso to from
+    where
+    from true = Just unit
+    from false = Nothing 
+    
+    to Nothing = false
+    to _ = true 
+
+--------- Helpers for monadic state
+getAt :: forall s t a b r. AGetter s t a b -> Run (STATE s r) a
+getAt optic = view optic <$> get
+
+getPreview :: forall r s t a b. Fold (First a) s t a b -> Run (STATE s r) (Maybe a)
+getPreview optic = preview optic <$> get
+
+setAt :: forall s a b r. Setter s s a b -> b -> Run (STATE s r) Unit
+setAt optic value = set optic value # modify
+
+modifyAt :: forall s a b r. Setter s s a b -> (a -> b) -> Run (STATE s r) Unit
+modifyAt optic f = over optic f # modify
+
+askAt :: forall s t a b r. AGetter s t a b -> Run (READER s r) a
+askAt optic = ask <#> view optic  
\ No newline at end of file
diff --git a/purescript/factorio-throughput/src/Main.purs b/purescript/factorio-throughput/src/Main.purs
new file mode 100644
index 0000000..ae3eebb
--- /dev/null
+++ b/purescript/factorio-throughput/src/Main.purs
@@ -0,0 +1,40 @@
+module Main where
+
+import Prelude
+
+import Data.Compactable (compact)
+import Data.Either (Either(..))
+import Data.Foldable (for_)
+import Data.HashMap as HashMap
+import Data.String (joinWith)
+import Data.Tuple (Tuple(..))
+import Data.Tuple.Nested ((/\))
+import Effect (Effect)
+import Effect.Class.Console (logShow)
+import Effect.Console (log)
+import RealFunction (PortSide(..), RealFunction, SolveM, _constraints, collectConstraints, myFactory, runSolveM, tryFindBound)
+import Run.Except (runFail)
+import Run.Reader.Extra (fromState')
+
+p :: SolveM (Array RealFunction)
+p = do
+  collectConstraints
+  a <- fromState' _constraints $ runFail $ tryFindBound (0 /\ Input)
+  b <- fromState' _constraints $ runFail $ tryFindBound (0 /\ Output)
+  c <- fromState' _constraints $ runFail $ tryFindBound (1 /\ Input)
+  d <- fromState' _constraints $ runFail $ tryFindBound (1 /\ Output)
+  e <- fromState' _constraints $ runFail $ tryFindBound (2 /\ Input)
+  f <- fromState' _constraints $ runFail $ tryFindBound (2 /\ Output)
+  g <- fromState' _constraints $ runFail $ tryFindBound (4 /\ Input)
+  h <- fromState' _constraints $ runFail $ tryFindBound (4 /\ Output)
+  pure $ compact [a, b, c, d, e, f, g, h]
+
+main :: Effect Unit
+main = do
+  for_ (HashMap.toArrayBy Tuple myFactory) \(Tuple key value) -> log $ show key <> ": " <> show value
+
+  case runSolveM myFactory p of
+    Left err -> log err
+    Right (Tuple s f) -> do
+      log $ joinWith "\n" $ show <$> s.constraints
+      logShow $ f <*> pure 0.0
\ No newline at end of file
diff --git a/purescript/factorio-throughput/src/Run/Fail.purs b/purescript/factorio-throughput/src/Run/Fail.purs
new file mode 100644
index 0000000..d94aeaa
--- /dev/null
+++ b/purescript/factorio-throughput/src/Run/Fail.purs
@@ -0,0 +1,12 @@
+module Run.Fail.Extra where
+
+import Prelude
+
+import Data.Compactable (class Compactable, compact)
+import Data.Traversable (class Traversable, traverse)
+import Run (Run)
+import Run.Except (FAIL, runFail)
+
+-- | `Compact` / `MapMaybe` usnig the `Fail` ability
+traverseFail :: forall r t a b. Compactable t => Traversable t => (a -> Run (FAIL r) b) -> t a -> Run r (t b)
+traverseFail f = traverse (f >>> runFail) >>> map compact
\ No newline at end of file
diff --git a/purescript/factorio-throughput/src/Run/Reader.purs b/purescript/factorio-throughput/src/Run/Reader.purs
new file mode 100644
index 0000000..b2836c2
--- /dev/null
+++ b/purescript/factorio-throughput/src/Run/Reader.purs
@@ -0,0 +1,18 @@
+module Run.Reader.Extra where
+
+import Prelude
+
+import Data.Lens (AGetter)
+import Functorio.Lens (getAt)
+import Run (Run)
+import Run.Reader (READER, runReader)
+import Run.State (STATE, get)
+import Type.Row (type (+))
+
+-- | Use state from the environemtn to eliminate a reader monad.
+fromState :: forall r s a. Run (STATE s + READER s r) a -> Run (STATE s r) a
+fromState m = get >>= flip runReader  m
+
+-- | Focus on some state in the environemtn to eliminate a reader monad.
+fromState' :: forall s t a b r x. AGetter s t a b -> Run (STATE s + READER a r) x -> Run (STATE s r) x 
+fromState' optic m = getAt optic >>= flip runReader m
\ No newline at end of file
diff --git a/purescript/factorio-throughput/src/Run/Visited.purs b/purescript/factorio-throughput/src/Run/Visited.purs
new file mode 100644
index 0000000..97322b0
--- /dev/null
+++ b/purescript/factorio-throughput/src/Run/Visited.purs
@@ -0,0 +1,35 @@
+-- | Allows the programmer to limit a monad to only run once (using a key)
+module Visited (VISITED, runVisited, once) where
+
+import Prelude
+
+import Data.HashSet (HashSet)
+import Data.HashSet as HashSet
+import Data.Hashable (class Hashable)
+import Run (Run)
+import Run.State (State, evalStateAt, getAt, modifyAt)
+import Type.Proxy (Proxy(..))
+
+-- | Monad keeping track of all the runned monad' keys
+type VISITED a r = ( visited :: State (HashSet a) | r )
+
+-- | Eliminate the Visited effect
+runVisited :: forall d a r. Hashable d => Run (VISITED d r) a -> Run r a
+runVisited = evalStateAt _visited mempty
+
+-- | Mark a key as visited
+visit :: forall a r. Hashable a => a -> Run (VISITED a r) Unit
+visit e = modifyAt _visited $ HashSet.insert e
+
+-- | Condition a monad to only run once. 
+-- | The first argument is a key, 
+-- | and the second is a default value to use when the monad has already run.
+once :: forall d a r. Hashable d => d -> Run (VISITED d r) a -> Run (VISITED d r) a -> Run (VISITED d r) a 
+once at default m = do
+    visited <- getAt _visited
+    if HashSet.member at visited
+        then default
+        else visit at *> m
+
+_visited :: Proxy "visited"
+_visited = Proxy
\ No newline at end of file
diff --git a/purescript/factorio-throughput/src/Throughput.purs b/purescript/factorio-throughput/src/Throughput.purs
new file mode 100644
index 0000000..7a4d3d6
--- /dev/null
+++ b/purescript/factorio-throughput/src/Throughput.purs
@@ -0,0 +1,256 @@
+module RealFunction where
+
+import Prelude
+
+import Data.Array (length, mapWithIndex)
+import Data.Array as Array
+import Data.Either (Either)
+import Data.Foldable (for_, minimum)
+import Data.FoldableWithIndex (forWithIndex_)
+import Data.Generic.Rep (class Generic)
+import Data.HashMap (HashMap)
+import Data.HashMap as HashMap
+import Data.HashMap as Map
+import Data.Int (toNumber)
+import Data.Lens (Lens')
+import Data.Lens.Record (prop)
+import Data.List (List(..), (:))
+import Data.List as List
+import Data.Maybe (Maybe(..), fromJust, fromMaybe)
+import Data.Number (infinity)
+import Data.Show.Generic (genericShow)
+import Data.Traversable (for)
+import Data.Tuple (Tuple(..), uncurry)
+import Data.Tuple.Nested (type (/\), (/\))
+import Functorio.Lens (getAt, modifyAt)
+import Partial.Unsafe (unsafeCrashWith, unsafePartial)
+import Run (Run, extract)
+import Run.Except (EXCEPT, fail, runExcept)
+import Run.Fail.Extra (traverseFail)
+import Run.Reader (READER, ask, runReader)
+import Run.State (STATE, runState)
+import Type.Proxy (Proxy(..))
+import Type.Row (type (+))
+import Visited (VISITED, once, runVisited)
+
+type RealFunction = Number -> Number
+type BeltConfig = 
+    { speed :: Number
+    , delay :: Number }
+
+type ChestConfig =
+    { maxContent :: Number
+    , delay :: Number }
+
+type PortId = Int
+type MachineId = Int
+
+data PortSide = Input | Output
+
+data Machine
+    = Belt { input :: PortId, output :: PortId, config :: BeltConfig }
+    | Chest { inputs :: Array PortId, outputs :: Array PortId, config :: ChestConfig }
+    | Provider (Array PortId) RealFunction
+    | Consumer PortId
+
+type Factory = HashMap MachineId Machine
+
+---------- Some configs
+yellowBelt :: BeltConfig
+yellowBelt = { speed: 15.0, delay: 1.0/3.0 }
+
+redBelt :: BeltConfig
+redBelt = { speed: 30.0, delay: 1.0/6.0 }
+
+blueBelt :: BeltConfig
+blueBelt = { speed: 45.0, delay: 1.0/8.0 }
+
+-- | Example factory
+myFactory :: Factory
+myFactory = Map.fromArray machines
+    where
+    machines = mapWithIndex Tuple 
+        [ Provider [0, 1, 2] $ const 80.0
+        , Belt { input: 0, output: 3, config: yellowBelt }
+        , Belt { input: 1, output: 4, config: redBelt }
+        , Belt { input: 2, output: 5, config: blueBelt }
+        , Consumer 3
+        , Consumer 4
+        , Consumer 5
+        ]
+
+---------- Monad for factory solving
+type PortData =
+    { id :: PortId
+    , maxInput :: Number -> Number
+    , maxOutput :: Number -> Number }
+
+data ConstraintExpression
+    = PortDependent (Array PortId) (Array PortData -> RealFunction)
+    | Function RealFunction
+    | Literal Number
+
+type BiRelationship =         
+    { p1top2 :: RealFunction
+    , p2top1 :: RealFunction
+    , p1 :: PortId /\ PortSide
+    , p2 :: PortId /\ PortSide }
+
+type BiRelationshipId = Int
+
+data ThroughputConstraint
+    = Limit ConstraintExpression PortSide PortId
+    | BiRelationship BiRelationshipId BiRelationship
+
+type Constraints = Array ThroughputConstraint
+
+type SolveState = 
+    { constraints :: Constraints 
+    , lastId :: Int }
+
+type SolveM = Run 
+    ( EXCEPT String 
+    + STATE SolveState 
+    + READER Factory
+    + () )
+
+runSolveM :: forall a. Factory -> SolveM a -> Either String (Tuple SolveState a)
+runSolveM factory = runReader factory >>> runState initialState >>> runExcept >>> extract
+
+initialState :: SolveState
+initialState = { constraints: [], lastId: 0 }
+
+focusBiRelationship :: PortId /\ PortSide -> BiRelationship -> Maybe BiRelationship
+focusBiRelationship place relationship | relationship.p1 == place = Just relationship
+                                       | relationship.p2 == place = Just $ flipBiRelationship relationship
+                                       | otherwise = Nothing 
+
+flipBiRelationship :: BiRelationship -> BiRelationship 
+flipBiRelationship { p1, p2, p1top2, p2top1 } = { p1: p2, p2: p1, p1top2: p2top1, p2top1: p1top2 }
+
+---------- System solving algorithm
+constrain :: ThroughputConstraint -> SolveM Unit
+constrain constraint = modifyAt _constraints $ push constraint
+    where
+    push = flip Array.snoc
+
+getId :: SolveM Int
+getId = modifyAt _lastId ((+) 1) *> getAt _lastId
+
+collectConstraints :: SolveM Unit
+collectConstraints = do
+    factory <- ask
+    for_ (HashMap.toArrayBy (/\) $ factory) $ uncurry collectConstraintsImpl
+
+getPortData :: forall r. PortId -> Run (READER Constraints r) PortData
+getPortData id = ado 
+    maxInput <- tryFindBound $ id /\ Input
+    maxOutput <- tryFindBound $ id /\ Output
+    in { id, maxInput, maxOutput }
+
+evalExpr :: forall r. ConstraintExpression -> Run (READER Constraints r) RealFunction
+evalExpr = case _ of
+    Literal a -> pure (const a)
+    Function f -> pure f
+    PortDependent portIds f -> for portIds getPortData <#> f
+
+tryFindBound :: forall r. PortId /\ PortSide -> Run (READER Constraints r) RealFunction
+tryFindBound at = tryFindBoundImpl at <#> \f time -> extract $ runVisited $ f time 
+
+tryFindBoundImpl :: forall r k. 
+    PortId /\ PortSide -> 
+    Run (READER Constraints r) (Number -> Run (VISITED BiRelationshipId k) Number) 
+tryFindBoundImpl (targetId /\ targetSide) = do
+    constraints <- ask
+    pure \time -> constraints
+        # traverseFail case _ of
+            Limit expr side id | side == targetSide && id == targetId -> 
+                evalExpr expr <*> pure time 
+            BiRelationship id raw 
+                | Just relationship <- focusBiRelationship (targetId /\ targetSide) raw -> do
+                    f <- once id fail $ tryFindBoundImpl relationship.p2 
+                    f (relationship.p1top2 time)
+            _ -> fail
+        # runReader constraints 
+        <#> minimum'
+    where
+    minimum' = minimum >>> fromMaybe infinity
+
+collectConstraintsImpl :: MachineId -> Machine -> SolveM Unit
+collectConstraintsImpl at = case _ of
+    Provider for amount -> do
+        forWithIndex_ for \index id -> do
+            let limit ports time 
+                  = outputs ports time
+                  # Array.findMap (\(id' /\ f) -> if id == id' then Just (f time) else Nothing)
+                  # unsafePartial fromJust -- TODO: error handling
+            constrain $ Limit (PortDependent for limit) Input id
+        where
+        outputs :: Array PortData -> Number -> Array (PortId /\ RealFunction)
+        outputs ports time 
+            = outputsImpl (length ports) (List.fromFoldable sorted) amount 
+            # Array.fromFoldable 
+            # Array.zipWith (_.id >>> Tuple) sorted
+            where
+            sorted :: Array PortData
+            sorted = Array.sortWith (_.maxOutput >>> (#) time) ports
+
+        outputsImpl :: Int -> List PortData -> RealFunction -> List RealFunction 
+        outputsImpl 1 (head:Nil) remaining = pure \time -> min (head.maxOutput time) (remaining time)
+        outputsImpl n (head:tail) remaining = current:(outputsImpl (n - 1) tail $ remaining - current)
+            where
+            current time 
+                | head.maxOutput time >= (remaining time) / (toNumber n) = (remaining time) / (toNumber n)
+                | otherwise = head.maxOutput time
+        outputsImpl _ _ _ = Nil
+
+    Consumer for -> pure unit
+    Belt { input, output, config } -> do
+        biId <- getId
+
+        constrain $ BiRelationship biId 
+            { p1: input /\ Output
+            , p2: output /\ Input
+            , p1top2: (+) config.delay
+            , p2top1: (+) (-config.delay) }
+
+        constrain $ Limit (Literal config.speed) Output input
+        constrain $ Limit (Literal config.speed) Input output
+
+    _ -> unsafeCrashWith "unimplemented"
+
+---------- Lenses
+_lastId :: Lens' SolveState Int
+_lastId = prop (Proxy :: _ "lastId")
+
+_constraints :: Lens' SolveState (Array ThroughputConstraint) 
+_constraints = prop (Proxy :: _ "constraints")
+
+---------- Typeclass instances
+derive instance genericMachine :: Generic Machine _
+derive instance genericPortSide :: Generic PortSide _
+derive instance eqPortSide :: Eq PortSide
+
+instance showMachine :: Show Machine where
+    show = case _ of
+        Provider for _ -> "Provider<" <> show for <> ">"
+        Consumer for -> "Consumer<" <> show for <> ">"
+        Belt { config, input, output } -> "Belt<" <> show input <> " -> " <> show output <> ", " <> show config <> ">"
+        Chest { inputs, outputs, config } -> "Chest<" <> show inputs <> " -> " <> show outputs <> ", " <> show config <> ">"
+
+instance showConstraint :: Show ThroughputConstraint where
+    show = case _ of
+        Limit f side id -> show f <> " !> " <> showPort (id /\ side)
+        BiRelationship _ { p1, p2 } -> showPort p1 <> " <-> " <> showPort p2
+        where
+        showPort (p /\ side) = "?" <> show p <> case side of
+            Input -> "<-"
+            Output -> "<-"
+
+instance showConstraintExpression :: Show ConstraintExpression where
+    show (Literal i) = show i
+    show (Function f) = "<Function>"
+    show (PortDependent ids f) = "(" <> show ids <> " -> <Function>)"  
+
+instance showPortSide :: Show PortSide where
+    show = genericShow
\ No newline at end of file
diff --git a/purescript/factorio-throughput/test/Main.purs b/purescript/factorio-throughput/test/Main.purs
new file mode 100644
index 0000000..f91f98c
--- /dev/null
+++ b/purescript/factorio-throughput/test/Main.purs
@@ -0,0 +1,11 @@
+module Test.Main where
+
+import Prelude
+
+import Effect (Effect)
+import Effect.Class.Console (log)
+
+main :: Effect Unit
+main = do
+  log "🍝"
+  log "You should add some tests."

From fe0816d037b77524378f7bd244a6801376237898 Mon Sep 17 00:00:00 2001
From: Matei Adriel <rafaeladriel11@gmail.com>
Date: Sun, 4 Apr 2021 00:36:18 +0300
Subject: [PATCH 2/4] build: basic esbuild setup

---
 purescript/factorio-throughput/.gitignore     |   1 +
 purescript/factorio-throughput/build.js       |  22 ++
 purescript/factorio-throughput/package.json   |  13 +
 purescript/factorio-throughput/pnpm-lock.yaml | 228 ++++++++++++++++++
 purescript/factorio-throughput/spago.dhall    |   5 +
 purescript/factorio-throughput/src/index.html |  20 ++
 6 files changed, 289 insertions(+)
 create mode 100644 purescript/factorio-throughput/build.js
 create mode 100644 purescript/factorio-throughput/package.json
 create mode 100644 purescript/factorio-throughput/pnpm-lock.yaml
 create mode 100644 purescript/factorio-throughput/src/index.html

diff --git a/purescript/factorio-throughput/.gitignore b/purescript/factorio-throughput/.gitignore
index 30efe19..ba2464c 100644
--- a/purescript/factorio-throughput/.gitignore
+++ b/purescript/factorio-throughput/.gitignore
@@ -8,3 +8,4 @@
 /.purs*
 /.psa*
 /.spago
+dist
diff --git a/purescript/factorio-throughput/build.js b/purescript/factorio-throughput/build.js
new file mode 100644
index 0000000..c64fa04
--- /dev/null
+++ b/purescript/factorio-throughput/build.js
@@ -0,0 +1,22 @@
+const esbuild = require("esbuild");
+const PurescriptPlugin = require("esbuild-plugin-purescript");
+const path = require("path");
+
+const isProd = process.env.NODE_ENV === "production";
+
+esbuild
+  .build({
+    entryPoints: ["src/index.js"],
+    bundle: true,
+    outdir: "dist",
+    watch: !isProd,
+    plugins: [
+      PurescriptPlugin({
+        output: isProd ? path.resolve(__dirname, "dce-output") : undefined,
+      }),
+    ],
+    define: {
+      global: "window",
+    },
+  })
+  .catch((_e) => process.exit(1));
diff --git a/purescript/factorio-throughput/package.json b/purescript/factorio-throughput/package.json
new file mode 100644
index 0000000..3f7309f
--- /dev/null
+++ b/purescript/factorio-throughput/package.json
@@ -0,0 +1,13 @@
+{
+  "name": "moontorio",
+  "scripts": {
+    "build": "node build.js"
+  },
+  "dependencies": {
+    "calculess": "^1.0.2",
+    "esbuild": "^0.11.4",
+    "esbuild-plugin-purescript": "^1.0.0",
+    "events": "^3.3.0",
+    "function-plot": "^1.22.7"
+  }
+}
diff --git a/purescript/factorio-throughput/pnpm-lock.yaml b/purescript/factorio-throughput/pnpm-lock.yaml
new file mode 100644
index 0000000..780fc52
--- /dev/null
+++ b/purescript/factorio-throughput/pnpm-lock.yaml
@@ -0,0 +1,228 @@
+dependencies:
+  calculess: 1.0.2
+  esbuild: 0.11.4
+  esbuild-plugin-purescript: 1.0.0
+  events: 3.3.0
+  function-plot: 1.22.7
+lockfileVersion: 5.1
+packages:
+  /@types/assert/1.5.4:
+    dev: false
+    resolution:
+      integrity: sha512-CaFVW21Ulu0J9sUaEWJjwmhkDkeoxa4fniVSERzZC13sU9v8NNM2lMlkfZZv60j47D+qDt0Lyo8skVP3CTXUdA==
+  /built-in-math-eval/0.3.0:
+    dependencies:
+      math-codegen: 0.3.5
+    dev: false
+    resolution:
+      integrity: sha1-JA3CHLOJQ5WIxhxGDrAHZJfvxBw=
+  /calculess/1.0.2:
+    dev: false
+    resolution:
+      integrity: sha512-9VCZJhW9fp7JmMgn6aTZ0U8NhcbJRFdD3vPlaYWMKIVIH1z4F/ZgDZKqx28fABjn4HaM4VT1ZoQzsONvI2LrCA==
+  /clamp/1.0.1:
+    dev: false
+    resolution:
+      integrity: sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=
+  /d3-array/2.12.1:
+    dependencies:
+      internmap: 1.0.1
+    dev: false
+    resolution:
+      integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==
+  /d3-axis/2.1.0:
+    dev: false
+    resolution:
+      integrity: sha512-z/G2TQMyuf0X3qP+Mh+2PimoJD41VOCjViJzT0BHeL/+JQAofkiWZbWxlwFGb1N8EN+Cl/CW+MUKbVzr1689Cw==
+  /d3-color/2.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==
+  /d3-dispatch/2.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==
+  /d3-drag/2.0.0:
+    dependencies:
+      d3-dispatch: 2.0.0
+      d3-selection: 2.0.0
+    dev: false
+    resolution:
+      integrity: sha512-g9y9WbMnF5uqB9qKqwIIa/921RYWzlUDv9Jl1/yONQwxbOfszAWTCm8u7HOTgJgRDXiRZN56cHT9pd24dmXs8w==
+  /d3-ease/2.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-68/n9JWarxXkOWMshcT5IcjbB+agblQUaIsbnXmrzejn2O82n3p2A9R2zEB9HIEFWKFwPAEDDN8gR0VdSAyyAQ==
+  /d3-format/2.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==
+  /d3-interpolate/2.0.1:
+    dependencies:
+      d3-color: 2.0.0
+    dev: false
+    resolution:
+      integrity: sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==
+  /d3-path/2.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==
+  /d3-scale/3.2.4:
+    dependencies:
+      d3-array: 2.12.1
+      d3-format: 2.0.0
+      d3-interpolate: 2.0.1
+      d3-time: 2.0.0
+      d3-time-format: 3.0.0
+    dev: false
+    resolution:
+      integrity: sha512-PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==
+  /d3-selection/2.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==
+  /d3-shape/2.1.0:
+    dependencies:
+      d3-path: 2.0.0
+    dev: false
+    resolution:
+      integrity: sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==
+  /d3-time-format/3.0.0:
+    dependencies:
+      d3-time: 2.0.0
+    dev: false
+    resolution:
+      integrity: sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==
+  /d3-time/2.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q==
+  /d3-timer/2.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==
+  /d3-transition/2.0.0_d3-selection@2.0.0:
+    dependencies:
+      d3-color: 2.0.0
+      d3-dispatch: 2.0.0
+      d3-ease: 2.0.0
+      d3-interpolate: 2.0.1
+      d3-selection: 2.0.0
+      d3-timer: 2.0.0
+    dev: false
+    peerDependencies:
+      d3-selection: '2'
+    resolution:
+      integrity: sha512-42ltAGgJesfQE3u9LuuBHNbGrI/AJjNL2OAUdclE70UE6Vy239GCBEYD38uBPoLeNsOhFStGpPI0BAOV+HMxog==
+  /d3-zoom/2.0.0:
+    dependencies:
+      d3-dispatch: 2.0.0
+      d3-drag: 2.0.0
+      d3-interpolate: 2.0.1
+      d3-selection: 2.0.0
+      d3-transition: 2.0.0_d3-selection@2.0.0
+    dev: false
+    resolution:
+      integrity: sha512-fFg7aoaEm9/jf+qfstak0IYpnesZLiMX6GZvXtUSdv8RH2o4E2qeelgdU09eKS6wGuiGMfcnMI0nTIqWzRHGpw==
+  /double-bits/1.1.1:
+    dev: false
+    resolution:
+      integrity: sha1-WKu6RUlNpND6Nrc60RoobJGEscY=
+  /esbuild-plugin-purescript/1.0.0:
+    dev: false
+    resolution:
+      integrity: sha512-WdSdRtpm5AoRyDj3vEnmLsMsTY9kl3znRUTQe5ilbtcK/JIJv3Nz6d8lsEA079vmWgjc3JtR7Ii1y1omoz/wLg==
+  /esbuild/0.11.4:
+    dev: false
+    hasBin: true
+    requiresBuild: true
+    resolution:
+      integrity: sha512-qWGlOOTwyTn4f846LoR47Mif4Aek4rY9ChdXN7q7G15HpDYq3pxwnPFWe2os/jOq8naFh2Z+FqWfkq8ZP6kATw==
+  /events/3.3.0:
+    dev: false
+    engines:
+      node: '>=0.8.x'
+    resolution:
+      integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+  /extend/3.0.2:
+    dev: false
+    resolution:
+      integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+  /function-plot/1.22.7:
+    dependencies:
+      built-in-math-eval: 0.3.0
+      clamp: 1.0.1
+      d3-axis: 2.1.0
+      d3-color: 2.0.0
+      d3-format: 2.0.0
+      d3-interpolate: 2.0.1
+      d3-scale: 3.2.4
+      d3-selection: 2.0.0
+      d3-shape: 2.1.0
+      d3-zoom: 2.0.0
+      interval-arithmetic-eval: 0.4.7
+    dev: false
+    resolution:
+      integrity: sha512-rB6FeVqvgNECmt5PhIvFFEOyEjM9AWLIpMkj9Nzbzq9f81Irgn3ZrXAuv5+qnuzM99jPL7ZM4kK3+ImiKXcSHA==
+  /internmap/1.0.1:
+    dev: false
+    resolution:
+      integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
+  /interval-arithmetic-eval/0.4.7:
+    dependencies:
+      interval-arithmetic: 1.0.6
+      math-codegen: 0.3.5
+    dev: false
+    resolution:
+      integrity: sha512-ClK+N4efbsgjlZR8h0qd0LQbyzUzJ9IkrjmTnD5MVb4Ytebd0lesoVP4AxLclcsEI+nIieskQ8cepHIWUPaRhQ==
+  /interval-arithmetic/1.0.6:
+    dependencies:
+      '@types/assert': 1.5.4
+      is-safe-integer: 2.0.0
+      nextafter: 1.0.0
+      typedarray: 0.0.6
+    dev: false
+    resolution:
+      integrity: sha512-eVotDGYPNiEaJ63oa4CeEHgOczZJ3gNHqG5wfVQ2o8sN2CEczQyR82Sjey/Bp36x8e7PtBcBvitcMnw6VUpjgQ==
+  /is-safe-integer/2.0.0:
+    dependencies:
+      max-safe-integer: 1.0.1
+    deprecated: This package is no longer relevant as ES2015 support is widespread.
+    dev: false
+    engines:
+      node: '>=0.10.0'
+    resolution:
+      integrity: sha512-eDaA39/1+3SNtYTRP28lRYOHMwiB1gfqXQaXcf/+f4mLwKgm8TTDkwJldsdtbgrK1R5CoDbf6AQ0KqP7BKoGtQ==
+  /math-codegen/0.3.5:
+    dependencies:
+      extend: 3.0.2
+      mr-parser: 0.2.1
+    dev: false
+    resolution:
+      integrity: sha1-R5nuRnfe0Ud2bQA8ykt4ee3UDMo=
+  /max-safe-integer/1.0.1:
+    dev: false
+    engines:
+      node: '>=0.10.0'
+    resolution:
+      integrity: sha1-84BgvixWPYwC5tSK85Ei/YO29BA=
+  /mr-parser/0.2.1:
+    dev: false
+    resolution:
+      integrity: sha1-hhi5ukF+KOn0OaQcaVtVTq/u2Sc=
+  /nextafter/1.0.0:
+    dependencies:
+      double-bits: 1.1.1
+    dev: false
+    resolution:
+      integrity: sha1-t9d7U1MQ4+CX5gJauwqQNHfsGjo=
+  /typedarray/0.0.6:
+    dev: false
+    resolution:
+      integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+specifiers:
+  calculess: ^1.0.2
+  esbuild: ^0.11.4
+  esbuild-plugin-purescript: ^1.0.0
+  events: ^3.3.0
+  function-plot: ^1.22.7
diff --git a/purescript/factorio-throughput/spago.dhall b/purescript/factorio-throughput/spago.dhall
index 4e675bf..e94d276 100644
--- a/purescript/factorio-throughput/spago.dhall
+++ b/purescript/factorio-throughput/spago.dhall
@@ -10,7 +10,12 @@ You can edit this file as you like.
   , "filterable"
   , "profunctor-lenses"
   , "psci-support"
+  , "quickcheck"
+  , "quickcheck-laws"
   , "run"
+  , "spec"
+  , "spec-discovery"
+  , "spec-quickcheck"
   , "strings"
   , "unordered-collections"
   ]
diff --git a/purescript/factorio-throughput/src/index.html b/purescript/factorio-throughput/src/index.html
new file mode 100644
index 0000000..44dacf4
--- /dev/null
+++ b/purescript/factorio-throughput/src/index.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Moontorio</title>
+
+    <script defer src="../dist/index.js"></script>
+
+    <style>
+        body {
+            display: flex;
+            flex-wrap: wrap;
+        }
+    </style>
+</head>
+<body>
+</body>
+</html>
\ No newline at end of file

From 0bb81bfc46f54838613fd9e4b02839aa35ca6d79 Mon Sep 17 00:00:00 2001
From: Matei Adriel <rafaeladriel11@gmail.com>
Date: Sun, 4 Apr 2021 00:37:14 +0300
Subject: [PATCH 3/4] feat: basic rendering

---
 purescript/factorio-throughput/src/Main.purs  | 39 ++++----
 .../factorio-throughput/src/Render.purs       | 18 ++++
 .../factorio-throughput/src/Run/Id.purs       | 33 +++++++
 .../factorio-throughput/src/Throughput.purs   | 90 ++++++++++++++-----
 purescript/factorio-throughput/src/index.js   | 38 ++++++++
 5 files changed, 172 insertions(+), 46 deletions(-)
 create mode 100644 purescript/factorio-throughput/src/Render.purs
 create mode 100644 purescript/factorio-throughput/src/Run/Id.purs
 create mode 100644 purescript/factorio-throughput/src/index.js

diff --git a/purescript/factorio-throughput/src/Main.purs b/purescript/factorio-throughput/src/Main.purs
index ae3eebb..0f2e3fd 100644
--- a/purescript/factorio-throughput/src/Main.purs
+++ b/purescript/factorio-throughput/src/Main.purs
@@ -2,39 +2,34 @@ module Main where
 
 import Prelude
 
-import Data.Compactable (compact)
 import Data.Either (Either(..))
-import Data.Foldable (for_)
-import Data.HashMap as HashMap
-import Data.String (joinWith)
 import Data.Tuple (Tuple(..))
 import Data.Tuple.Nested ((/\))
 import Effect (Effect)
-import Effect.Class.Console (logShow)
 import Effect.Console (log)
-import RealFunction (PortSide(..), RealFunction, SolveM, _constraints, collectConstraints, myFactory, runSolveM, tryFindBound)
-import Run.Except (runFail)
-import Run.Reader.Extra (fromState')
+import Moontorio.Render (RenderFn, renderFactory)
+import RealFunction (PortSide(..), RealFunction, SolveM, collectConstraints, myFactory, runSolveM, tryFindBoundSolveM)
 
 p :: SolveM (Array RealFunction)
 p = do
   collectConstraints
-  a <- fromState' _constraints $ runFail $ tryFindBound (0 /\ Input)
-  b <- fromState' _constraints $ runFail $ tryFindBound (0 /\ Output)
-  c <- fromState' _constraints $ runFail $ tryFindBound (1 /\ Input)
-  d <- fromState' _constraints $ runFail $ tryFindBound (1 /\ Output)
-  e <- fromState' _constraints $ runFail $ tryFindBound (2 /\ Input)
-  f <- fromState' _constraints $ runFail $ tryFindBound (2 /\ Output)
-  g <- fromState' _constraints $ runFail $ tryFindBound (4 /\ Input)
-  h <- fromState' _constraints $ runFail $ tryFindBound (4 /\ Output)
-  pure $ compact [a, b, c, d, e, f, g, h]
+  a <- tryFindBoundSolveM (0 /\ Input)
+  b <- tryFindBoundSolveM (0 /\ Output)
+  c <- tryFindBoundSolveM (1 /\ Input)
+  d <- tryFindBoundSolveM (1 /\ Output)
+  e <- tryFindBoundSolveM (2 /\ Input)
+  f <- tryFindBoundSolveM (2 /\ Output)
+  g <- tryFindBoundSolveM (4 /\ Input)
+  h <- tryFindBoundSolveM (4 /\ Output)
+  pure [a, b, c, d, e, f, g, h]
 
-main :: Effect Unit
-main = do
-  for_ (HashMap.toArrayBy Tuple myFactory) \(Tuple key value) -> log $ show key <> ": " <> show value
+main :: RenderFn -> Effect Unit
+main render = do
+  -- for_ (HashMap.toArrayBy Tuple myFactory) \(Tuple key value) -> log $ show key <> ": " <> show value
 
   case runSolveM myFactory p of
     Left err -> log err
     Right (Tuple s f) -> do
-      log $ joinWith "\n" $ show <$> s.constraints
-      logShow $ f <*> pure 0.0
\ No newline at end of file
+      renderFactory render myFactory s.constraints
+      -- log $ joinWith "\n" $ show <$> s.constraints
+      -- logShow $ f <*> pure 0.0
\ No newline at end of file
diff --git a/purescript/factorio-throughput/src/Render.purs b/purescript/factorio-throughput/src/Render.purs
new file mode 100644
index 0000000..ab7391b
--- /dev/null
+++ b/purescript/factorio-throughput/src/Render.purs
@@ -0,0 +1,18 @@
+module Moontorio.Render where
+
+import Prelude
+
+import Data.Foldable (for_)
+import Data.Tuple.Nested ((/\))
+import Effect (Effect)
+import RealFunction (Constraints, Factory, PortSide(..), RealFunction, factoryPorts, tryFindBoundPure, tryFindValuePure)
+
+type RenderFn = String -> Array RealFunction -> Effect Unit
+
+renderFactory :: RenderFn -> Factory -> Constraints -> Effect Unit
+renderFactory render factory constraints = for_ (factoryPorts factory) \portId -> do
+    let inputMax = tryFindBoundPure (portId /\ Input) constraints
+    let outputMax = tryFindBoundPure (portId /\ Output) constraints
+    let actual = tryFindValuePure portId constraints
+
+    render ("Port " <> show portId) [inputMax, outputMax, actual]
\ No newline at end of file
diff --git a/purescript/factorio-throughput/src/Run/Id.purs b/purescript/factorio-throughput/src/Run/Id.purs
new file mode 100644
index 0000000..962de55
--- /dev/null
+++ b/purescript/factorio-throughput/src/Run/Id.purs
@@ -0,0 +1,33 @@
+module Run.Supply where
+
+import Prelude
+
+import Data.Tuple (Tuple(..))
+import Run (Run, Step(..), lift, on, runAccumPure)
+import Type.Proxy (Proxy(..))
+
+-- | Monad providing an infinite supply of values of a particular type.
+-- | Example use cases: generating unique ids.
+data SupplyF s a = Supply (s -> a)
+
+type SUPPLY s r = ( supply :: SupplyF s | r )
+
+generate :: forall r s. Run (SUPPLY s r) s
+generate = lift _supply (Supply identity)
+
+-- | Elimininate the supply monad using a function generating the next value
+runSupply :: forall r s a. (s -> s) -> s -> Run (SUPPLY s r) a -> Run r a
+runSupply next
+    = runAccumPure
+        (next >>> \current -> on _supply (Loop <<< handleSupply current) Done)
+        (\s a -> a)
+    where
+    handleSupply :: forall i. s -> SupplyF s i -> Tuple s i
+    handleSupply current (Supply continue) = Tuple current (continue current)
+
+---------- Typeclass instances
+derive instance functorSupply :: Functor (SupplyF s)
+
+--------- SProxies
+_supply :: Proxy "supply"
+_supply = Proxy               
\ No newline at end of file
diff --git a/purescript/factorio-throughput/src/Throughput.purs b/purescript/factorio-throughput/src/Throughput.purs
index 7a4d3d6..1f03ea7 100644
--- a/purescript/factorio-throughput/src/Throughput.purs
+++ b/purescript/factorio-throughput/src/Throughput.purs
@@ -5,12 +5,13 @@ import Prelude
 import Data.Array (length, mapWithIndex)
 import Data.Array as Array
 import Data.Either (Either)
-import Data.Foldable (for_, minimum)
+import Data.Foldable (foldMap, for_, minimum)
 import Data.FoldableWithIndex (forWithIndex_)
 import Data.Generic.Rep (class Generic)
 import Data.HashMap (HashMap)
 import Data.HashMap as HashMap
 import Data.HashMap as Map
+import Data.HashSet as HashSet
 import Data.Int (toNumber)
 import Data.Lens (Lens')
 import Data.Lens.Record (prop)
@@ -20,15 +21,18 @@ import Data.Maybe (Maybe(..), fromJust, fromMaybe)
 import Data.Number (infinity)
 import Data.Show.Generic (genericShow)
 import Data.Traversable (for)
-import Data.Tuple (Tuple(..), uncurry)
+import Data.Tuple (Tuple(..), fst, uncurry)
 import Data.Tuple.Nested (type (/\), (/\))
-import Functorio.Lens (getAt, modifyAt)
+import Functorio.Lens (modifyAt)
+import Math (sin)
 import Partial.Unsafe (unsafeCrashWith, unsafePartial)
 import Run (Run, extract)
 import Run.Except (EXCEPT, fail, runExcept)
 import Run.Fail.Extra (traverseFail)
 import Run.Reader (READER, ask, runReader)
+import Run.Reader.Extra (fromState')
 import Run.State (STATE, runState)
+import Run.Supply (SUPPLY, generate, runSupply)
 import Type.Proxy (Proxy(..))
 import Type.Row (type (+))
 import Visited (VISITED, once, runVisited)
@@ -57,28 +61,34 @@ type Factory = HashMap MachineId Machine
 
 ---------- Some configs
 yellowBelt :: BeltConfig
-yellowBelt = { speed: 15.0, delay: 1.0/3.0 }
+yellowBelt = { speed: 15.0, delay: 4.0/3.0 }
 
 redBelt :: BeltConfig
-redBelt = { speed: 30.0, delay: 1.0/6.0 }
+redBelt = { speed: 30.0, delay: 4.0/6.0 }
 
 blueBelt :: BeltConfig
-blueBelt = { speed: 45.0, delay: 1.0/8.0 }
+blueBelt = { speed: 45.0, delay: 4.0/8.0 }
 
 -- | Example factory
 myFactory :: Factory
 myFactory = Map.fromArray machines
     where
     machines = mapWithIndex Tuple 
-        [ Provider [0, 1, 2] $ const 80.0
+        [ Provider [0, 1] $ startsAtZero $ \t -> 40.0 + 10.0 * sin t
         , Belt { input: 0, output: 3, config: yellowBelt }
         , Belt { input: 1, output: 4, config: redBelt }
-        , Belt { input: 2, output: 5, config: blueBelt }
+        -- , Belt { input: 2, output: 5, config: blueBelt }
         , Consumer 3
         , Consumer 4
-        , Consumer 5
         ]
 
+---------- Helpers for real functions
+type Endomorphism a = a -> a
+
+startsAtZero :: Endomorphism RealFunction
+startsAtZero f x | x >= 0.0 = f x
+                 | otherwise = 0.0
+
 ---------- Monad for factory solving
 type PortData =
     { id :: PortId
@@ -105,38 +115,44 @@ data ThroughputConstraint
 type Constraints = Array ThroughputConstraint
 
 type SolveState = 
-    { constraints :: Constraints 
-    , lastId :: Int }
+    { constraints :: Constraints }
 
 type SolveM = Run 
     ( EXCEPT String 
     + STATE SolveState 
     + READER Factory
+    + SUPPLY Int
     + () )
 
 runSolveM :: forall a. Factory -> SolveM a -> Either String (Tuple SolveState a)
-runSolveM factory = runReader factory >>> runState initialState >>> runExcept >>> extract
-
-initialState :: SolveState
-initialState = { constraints: [], lastId: 0 }
+runSolveM factory = runReader factory >>> runState mempty >>> runExcept >>> runSupply ((+) 1) 0 >>> extract
 
 focusBiRelationship :: PortId /\ PortSide -> BiRelationship -> Maybe BiRelationship
 focusBiRelationship place relationship | relationship.p1 == place = Just relationship
                                        | relationship.p2 == place = Just $ flipBiRelationship relationship
                                        | otherwise = Nothing 
 
+focusBiRelationshipWithoutSide :: PortId -> BiRelationship -> Maybe BiRelationship
+focusBiRelationshipWithoutSide id relationship | fst relationship.p1 == id = Just relationship
+                                               | fst relationship.p2 == id = Just $ flipBiRelationship relationship
+                                               | otherwise = Nothing
+
 flipBiRelationship :: BiRelationship -> BiRelationship 
 flipBiRelationship { p1, p2, p1top2, p2top1 } = { p1: p2, p2: p1, p1top2: p2top1, p2top1: p1top2 }
 
+factoryPorts :: Factory -> HashSet.HashSet PortId
+factoryPorts = foldMap case _ of
+    Belt { input, output } -> HashSet.fromArray [input, output]
+    Provider outputs _ -> HashSet.fromArray outputs
+    Chest { inputs, outputs } -> HashSet.fromArray (inputs <> outputs)
+    Consumer input -> HashSet.singleton input
+
 ---------- System solving algorithm
 constrain :: ThroughputConstraint -> SolveM Unit
 constrain constraint = modifyAt _constraints $ push constraint
     where
     push = flip Array.snoc
 
-getId :: SolveM Int
-getId = modifyAt _lastId ((+) 1) *> getAt _lastId
-
 collectConstraints :: SolveM Unit
 collectConstraints = do
     factory <- ask
@@ -157,6 +173,12 @@ evalExpr = case _ of
 tryFindBound :: forall r. PortId /\ PortSide -> Run (READER Constraints r) RealFunction
 tryFindBound at = tryFindBoundImpl at <#> \f time -> extract $ runVisited $ f time 
 
+tryFindBoundSolveM :: PortId /\ PortSide -> SolveM RealFunction
+tryFindBoundSolveM at = fromState' _constraints $ tryFindBound at
+
+tryFindBoundPure :: PortId /\ PortSide -> Constraints -> RealFunction
+tryFindBoundPure at constraints = extract $ runReader constraints $ tryFindBound at
+
 tryFindBoundImpl :: forall r k. 
     PortId /\ PortSide -> 
     Run (READER Constraints r) (Number -> Run (VISITED BiRelationshipId k) Number) 
@@ -174,7 +196,29 @@ tryFindBoundImpl (targetId /\ targetSide) = do
         # runReader constraints 
         <#> minimum'
     where
-    minimum' = minimum >>> fromMaybe infinity
+    minimum' = minimum >>> fromMaybe 0.0
+
+tryFindValue :: forall r. PortId -> Run (READER Constraints r) RealFunction
+tryFindValue at = tryFindValueImpl at <#> \f time -> extract $ runVisited $ f time 
+
+tryFindValueImpl :: forall r k. PortId -> Run (READER Constraints r) (Number -> Run (VISITED BiRelationshipId k) Number)
+tryFindValueImpl targetId = do
+    constraints <- ask
+    pure \time -> constraints
+        # traverseFail case _ of
+            Limit expr _ id | id == targetId -> evalExpr expr <*> pure time 
+            BiRelationship id raw 
+                | Just relationship <- focusBiRelationshipWithoutSide targetId raw -> do
+                    f <- once id fail $ tryFindValueImpl $ fst relationship.p2 
+                    f (relationship.p1top2 time)
+            _ -> fail
+        # runReader constraints 
+        <#> minimum'
+    where
+    minimum' = minimum >>> fromMaybe 0.0
+
+tryFindValuePure :: PortId -> Constraints -> RealFunction
+tryFindValuePure at constraints = extract $ runReader constraints $ tryFindValue at
 
 collectConstraintsImpl :: MachineId -> Machine -> SolveM Unit
 collectConstraintsImpl at = case _ of
@@ -204,9 +248,10 @@ collectConstraintsImpl at = case _ of
                 | otherwise = head.maxOutput time
         outputsImpl _ _ _ = Nil
 
-    Consumer for -> pure unit
+    Consumer for -> do
+        constrain $ Limit (Literal infinity) Output for
     Belt { input, output, config } -> do
-        biId <- getId
+        biId <- generate
 
         constrain $ BiRelationship biId 
             { p1: input /\ Output
@@ -220,9 +265,6 @@ collectConstraintsImpl at = case _ of
     _ -> unsafeCrashWith "unimplemented"
 
 ---------- Lenses
-_lastId :: Lens' SolveState Int
-_lastId = prop (Proxy :: _ "lastId")
-
 _constraints :: Lens' SolveState (Array ThroughputConstraint) 
 _constraints = prop (Proxy :: _ "constraints")
 
diff --git a/purescript/factorio-throughput/src/index.js b/purescript/factorio-throughput/src/index.js
new file mode 100644
index 0000000..5e19d4b
--- /dev/null
+++ b/purescript/factorio-throughput/src/index.js
@@ -0,0 +1,38 @@
+import { main } from "Main.purs";
+import functionPlot from "function-plot";
+
+let lastId = 0;
+const root = document.body;
+
+const width = 400;
+const height = 250;
+
+const render = (name) => (functions) => () => {
+  const currentId = ++lastId;
+
+  console.log("Renering!!!");
+
+  const node = document.createElement("div");
+  node.id = currentId;
+  node.title = name;
+  node.className = "graph";
+
+  root.appendChild(node);
+
+  const functionData = functions.map((fn) => ({
+    fn: (scope) => fn(scope.x),
+    graphType: "polyline",
+  }));
+
+  functionPlot({
+    target: node,
+    width,
+    height,
+    yAxis: { domain: [-5, 35] },
+    xAxis: { domain: [-1, 5] },
+    grid: true,
+    data: functionData,
+  });
+};
+
+main(render)();

From 3f6091369ab8d32fafc1d504eed2af0f435525c0 Mon Sep 17 00:00:00 2001
From: Matei Adriel <rafaeladriel11@gmail.com>
Date: Sun, 4 Jun 2023 15:29:29 +0200
Subject: [PATCH 4/4] Commiting some old changes

---
 purescript/factorio-throughput/.gitignore     |   5 +
 .../factorio-throughput/idea/example.pdf      | Bin 0 -> 59080 bytes
 .../factorio-throughput/idea/example.tex      |  94 ++++++++++++++++++
 purescript/factorio-throughput/idea/hmm.pdf   | Bin 0 -> 72050 bytes
 purescript/factorio-throughput/idea/hmm.tex   |  77 ++++++++++++++
 .../factorio-throughput/src/Throughput.purs   |  60 ++++++-----
 .../factorio-throughput/src/Utils/Ord.purs    |  33 ++++++
 7 files changed, 244 insertions(+), 25 deletions(-)
 create mode 100644 purescript/factorio-throughput/idea/example.pdf
 create mode 100644 purescript/factorio-throughput/idea/example.tex
 create mode 100644 purescript/factorio-throughput/idea/hmm.pdf
 create mode 100644 purescript/factorio-throughput/idea/hmm.tex
 create mode 100644 purescript/factorio-throughput/src/Utils/Ord.purs

diff --git a/purescript/factorio-throughput/.gitignore b/purescript/factorio-throughput/.gitignore
index ba2464c..1349821 100644
--- a/purescript/factorio-throughput/.gitignore
+++ b/purescript/factorio-throughput/.gitignore
@@ -9,3 +9,8 @@
 /.psa*
 /.spago
 dist
+*.aux
+*.fls
+*.fdb_*
+*.synctex*
+*.log
diff --git a/purescript/factorio-throughput/idea/example.pdf b/purescript/factorio-throughput/idea/example.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..17cd036dc6723b93f6b7673fc9480d5e79ce60fb
GIT binary patch
literal 59080
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
F0syM{`^W$Q

literal 0
HcmV?d00001

diff --git a/purescript/factorio-throughput/idea/example.tex b/purescript/factorio-throughput/idea/example.tex
new file mode 100644
index 0000000..bc199bd
--- /dev/null
+++ b/purescript/factorio-throughput/idea/example.tex
@@ -0,0 +1,94 @@
+\documentclass[a4paper, 12pt]{article}
+
+\newcommand{\bold}{\textbf}
+
+\usepackage[english]{babel}
+\usepackage{amsmath}
+\usepackage{tikz}
+\usepackage{indentfirst}
+
+\begin{document}
+
+\newcommand{\q2}{\quad\quad}
+
+\title{\Large{\bold{Moontorio}}}
+\author{Matei Adriel}
+\date {}
+
+\maketitle
+
+\section{Example 1}
+
+Solve the following factory:
+
+\vspace*{20pt}
+\begin{figure}[h]
+\centering
+\begin{tikzpicture}[shorten >=1pt, auto, node distance={30mm}, 
+  main/.style = {draw, rectangle}]
+
+\node[main] (3) {$consumer_1$};
+\node[main] (1) [above left of=3] {$provider_1$};
+\node[main] (2) [below left of=3] {$provider_2$};
+\node[main] (4) [right of=2] {$consumer_2$};
+
+\draw[->] (1) edge node{$p_1$} (3);
+\draw[->] (2) edge node{$p_2$} (3);
+\draw[->] (2) edge node{$p_3$} (4); 
+
+\end{tikzpicture}
+\caption{Factory} 
+\label{fig:Factory}
+\end{figure}
+
+Generating the constraints: 
+\begin{figure}[h]
+\centering
+
+\begin{equation}
+  p_1(t) < provider_1(t)
+\end{equation}
+
+\begin{equation}
+  p_3(t) < consumer_2(t)
+\end{equation}
+
+\begin{equation}
+\begin{split}
+  \begin{cases}
+    \begin{cases}
+      p_2(t) &< \displaystyle\frac{consumer_1(t)}{2}\\
+      p_1(t) &< consumer_1(t) - p_2(t)
+    \end{cases}
+    \ ,&\;\mbox{if } p_1(t) \geq p_2(t)\\\\
+    \begin{cases}
+      p_1(t) &< \displaystyle\frac{consumer_1(t)}{2}\\
+      p_2(t) &< consumer_1(t) - p_1(t)
+    \end{cases}
+    \ ,&\;\mbox{if } p_1(t) < p_2(t)
+  \end{cases}
+\end{split}
+\end{equation}
+
+\begin{equation}
+\begin{split}
+  \begin{cases}
+    \begin{cases}
+      p_3(t) &< \displaystyle\frac{provider_2(t)}{2}\\
+      p_2(t) &< provider_2(t) - p_3(t)
+    \end{cases}
+    \ ,&\;\mbox{if } p_2(t) \geq p_3(t)\\\\
+    \begin{cases}
+      p_2(t) &< \displaystyle\frac{provider_2(t)}{2}\\
+      p_3(t) &< provider_2(t) - p_3(t)
+    \end{cases}
+    \ ,&\;\mbox{if } p_2(t) < p_3(t)
+  \end{cases}
+\end{split}
+\end{equation}
+
+\caption{Constraints}
+\label{fig:Constraints}
+\end{figure}
+
+\end{document}
diff --git a/purescript/factorio-throughput/idea/hmm.pdf b/purescript/factorio-throughput/idea/hmm.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..69f6bf8c0d2e083b553d6d3459c15bb35069fb73
GIT binary patch
literal 72050
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
UMX70A=7wfwrd+D3uKsRZ07X_SoB#j-

literal 0
HcmV?d00001

diff --git a/purescript/factorio-throughput/idea/hmm.tex b/purescript/factorio-throughput/idea/hmm.tex
new file mode 100644
index 0000000..2eeb8d2
--- /dev/null
+++ b/purescript/factorio-throughput/idea/hmm.tex
@@ -0,0 +1,77 @@
+\documentclass[a4paper, 12pt]{article}
+
+\newcommand{\bold}{\textbf}
+
+\usepackage[english]{babel}
+\usepackage{amsmath}
+\usepackage{tikz}
+\usepackage{indentfirst}
+
+\begin{document}
+
+\newcommand{\q2}{\quad\quad}
+
+\title{\Large{\bold{Moontorio}}}
+\author{Matei Adriel}
+\date {}
+
+\maketitle
+
+\section{Describing a factory}
+
+A factory is made out of machines. A machine is either a provider, a belt or a  consumer. Machines are connected by ports.
+
+\begin{figure}[h]
+
+\begin{equation}
+\begin{split}
+Machines\ A,\ B,\ C\ &::=\; belt\ p_i\ p_o \\
+        &\quad|\quad provider\ p_1,\ p_2,\ ...\ p_n \\
+        &\quad|\quad consumer\ p_1,\ p_2,\ ...\ p_n
+\end{split}
+\end{equation}
+\caption{Machines}
+\label{Machines}
+\end{figure}
+
+We can represent the factory as a directed graph, with the machines being the nodes and the ports being the edges:
+
+\vspace*{20pt}
+\begin{figure}[h]
+\centering
+\begin{tikzpicture}[shorten >=1pt, auto, node distance={50mm}, 
+  main/.style = {draw, rectangle}]
+
+\node[main] (1) {$provider_1$};
+\node[main] (2) [right of=1] {$belt_1$};
+\node[main] (3) [right of=2] {$consumer_1$};
+
+\draw[->] (1) edge node{$p_1$} (2);
+\draw[->] (2) edge node{$p_2$} (3);
+
+\end{tikzpicture}
+\caption{Example of a simple factory} 
+\label{SimpleFactory}
+\end{figure}
+
+\section{Constraints}
+The first step of the factory solving process is the constraint generation. 
+We currently use 3 different types of constraints (Figure \ref{Constraints}). 
+Let's take them one step at a time. The first two constrains (
+  $p_k(t) <_{\Leftarrow} f(t)$ and $p_k(t) <_{\Rightarrow} f(t)$
+) are pretty similar, both limiting the flow through a port.
+
+\begin{figure}[ht]
+
+\begin{equation}
+\begin{split}
+Constraints\quad C_k\ &::=\; p_k(t) <_{\Leftarrow} f(t) \\
+        &\quad|\quad p_k(t) <_{\Rightarrow} f(t) \\
+        &\quad|\quad p_1(t) = p_2(f(t))  
+\end{split}
+\end{equation}
+\caption{Constraints}
+\label{Constraints}
+\end{figure}
+
+\end{document}
diff --git a/purescript/factorio-throughput/src/Throughput.purs b/purescript/factorio-throughput/src/Throughput.purs
index 1f03ea7..a9fe5ad 100644
--- a/purescript/factorio-throughput/src/Throughput.purs
+++ b/purescript/factorio-throughput/src/Throughput.purs
@@ -6,7 +6,7 @@ import Data.Array (length, mapWithIndex)
 import Data.Array as Array
 import Data.Either (Either)
 import Data.Foldable (foldMap, for_, minimum)
-import Data.FoldableWithIndex (forWithIndex_)
+import Data.FoldableWithIndex (foldlWithIndex, forWithIndex_)
 import Data.Generic.Rep (class Generic)
 import Data.HashMap (HashMap)
 import Data.HashMap as HashMap
@@ -16,12 +16,11 @@ import Data.Int (toNumber)
 import Data.Lens (Lens')
 import Data.Lens.Record (prop)
 import Data.List (List(..), (:))
-import Data.List as List
 import Data.Maybe (Maybe(..), fromJust, fromMaybe)
 import Data.Number (infinity)
 import Data.Show.Generic (genericShow)
 import Data.Traversable (for)
-import Data.Tuple (Tuple(..), fst, uncurry)
+import Data.Tuple (Tuple(..), fst, snd, uncurry)
 import Data.Tuple.Nested (type (/\), (/\))
 import Functorio.Lens (modifyAt)
 import Math (sin)
@@ -70,8 +69,8 @@ blueBelt :: BeltConfig
 blueBelt = { speed: 45.0, delay: 4.0/8.0 }
 
 -- | Example factory
-myFactory :: Factory
-myFactory = Map.fromArray machines
+myFactory1 :: Factory
+myFactory1 = Map.fromArray machines
     where
     machines = mapWithIndex Tuple 
         [ Provider [0, 1] $ startsAtZero $ \t -> 40.0 + 10.0 * sin t
@@ -82,6 +81,19 @@ myFactory = Map.fromArray machines
         , Consumer 4
         ]
 
+myFactory :: Factory
+myFactory = Map.fromArray machines
+    where
+    machines = mapWithIndex Tuple 
+        [ Provider [0, 1, 2] $ startsAtZero $ \t -> 80.0
+        , Belt { input: 0, output: 3, config: yellowBelt }
+        , Belt { input: 1, output: 4, config: redBelt }
+        , Belt { input: 2, output: 5, config: blueBelt }
+        , Consumer 3
+        , Consumer 4
+        , Consumer 5
+        ]
+
 ---------- Helpers for real functions
 type Endomorphism a = a -> a
 
@@ -190,7 +202,7 @@ tryFindBoundImpl (targetId /\ targetSide) = do
                 evalExpr expr <*> pure time 
             BiRelationship id raw 
                 | Just relationship <- focusBiRelationship (targetId /\ targetSide) raw -> do
-                    f <- once id fail $ tryFindBoundImpl relationship.p2 
+                    f <- once id fail $ tryFindValueImpl $ fst relationship.p2 
                     f (relationship.p1top2 time)
             _ -> fail
         # runReader constraints 
@@ -225,29 +237,27 @@ collectConstraintsImpl at = case _ of
     Provider for amount -> do
         forWithIndex_ for \index id -> do
             let limit ports time 
-                  = outputs ports time
-                  # Array.findMap (\(id' /\ f) -> if id == id' then Just (f time) else Nothing)
-                  # unsafePartial fromJust -- TODO: error handling
+                  = ports
+                  # map (\port -> port.id /\ port.maxOutput time)
+                  # outputs (amount time)
+                  # Array.findMap (\(id' /\ f) -> if id == id' then Just f else Nothing)
+                  # unsafePartial fromJust
             constrain $ Limit (PortDependent for limit) Input id
         where
-        outputs :: Array PortData -> Number -> Array (PortId /\ RealFunction)
-        outputs ports time 
-            = outputsImpl (length ports) (List.fromFoldable sorted) amount 
+        outputs :: Number -> Array (PortId /\ Number) -> Array (PortId /\ Number)
+        outputs total ports
+            = ports
+            # Array.sortWith snd
+            # foldlWithIndex (\index (past /\ remaining) (id /\ value) -> do
+                        let current 
+                              | lengthLeft <- remaining / toNumber (count - index), value >= lengthLeft = lengthLeft
+                              | otherwise = value
+                        ((id /\ current):past) /\ (remaining - current))
+              (Nil /\ total)
+            # fst
             # Array.fromFoldable 
-            # Array.zipWith (_.id >>> Tuple) sorted
             where
-            sorted :: Array PortData
-            sorted = Array.sortWith (_.maxOutput >>> (#) time) ports
-
-        outputsImpl :: Int -> List PortData -> RealFunction -> List RealFunction 
-        outputsImpl 1 (head:Nil) remaining = pure \time -> min (head.maxOutput time) (remaining time)
-        outputsImpl n (head:tail) remaining = current:(outputsImpl (n - 1) tail $ remaining - current)
-            where
-            current time 
-                | head.maxOutput time >= (remaining time) / (toNumber n) = (remaining time) / (toNumber n)
-                | otherwise = head.maxOutput time
-        outputsImpl _ _ _ = Nil
-
+            count = length ports
     Consumer for -> do
         constrain $ Limit (Literal infinity) Output for
     Belt { input, output, config } -> do
diff --git a/purescript/factorio-throughput/src/Utils/Ord.purs b/purescript/factorio-throughput/src/Utils/Ord.purs
new file mode 100644
index 0000000..02bdc90
--- /dev/null
+++ b/purescript/factorio-throughput/src/Utils/Ord.purs
@@ -0,0 +1,33 @@
+module Moontorio.Ord.Extra (Side, left, right, OrderedArray, binarySearch) where
+
+import Prelude
+
+import Data.Array (length, unsafeIndex)
+import Data.Maybe (Maybe(..))
+import Partial.Unsafe (unsafePartial)
+
+type OrderedArray = Array
+newtype Side = Side Boolean
+
+left :: Side
+left = Side false
+
+right :: Side
+right = Side true
+
+binarySearch :: forall a. (Int -> a -> Side) -> OrderedArray a -> Maybe Int
+binarySearch f arr = unsafePartial $ findImpl 0 (length arr)
+    where
+    findImpl :: Partial => _
+    findImpl start length | length == 0 = Nothing
+                          | length == 1 = Just start
+                          | otherwise   = do
+        let middle = start + length / 2
+        let element = unsafeIndex arr middle
+        if f middle element == left then 
+            findImpl start (middle - start)
+        else 
+            findImpl middle (length + start - middle)
+
+---------- Typeclass instances 
+derive instance eqSide :: Eq Side
\ No newline at end of file