├── .gitignore ├── .travis.yml ├── LICENSE ├── MANUAL.md ├── README.md ├── modules ├── core │ └── src │ │ ├── main │ │ └── scala │ │ │ └── skutek │ │ │ ├── abstraction │ │ │ ├── Computation.scala │ │ │ ├── Handler.scala │ │ │ ├── effect │ │ │ │ └── Effect.scala │ │ │ ├── internals │ │ │ │ ├── Interpreter.scala │ │ │ │ ├── PrimitiveHandler.scala │ │ │ │ └── aux │ │ │ │ │ ├── AuxExports.scala │ │ │ │ │ ├── CanHandle.scala │ │ │ │ │ ├── CanRunImpure.scala │ │ │ │ │ └── CanRunPure.scala │ │ │ └── package.scala │ │ │ ├── std_effects │ │ │ ├── Choice.scala │ │ │ ├── Concurrency.scala │ │ │ ├── Except.scala │ │ │ ├── Maybe.scala │ │ │ ├── Reader.scala │ │ │ ├── State.scala │ │ │ ├── Validation.scala │ │ │ └── Writer.scala │ │ │ └── utils │ │ │ ├── Exports.scala │ │ │ ├── Fold.scala │ │ │ └── Traverse.scala │ │ └── test │ │ └── scala │ │ └── skutek │ │ ├── misc │ │ ├── ParallelismTest.scala │ │ └── TraverseTest.scala │ │ ├── operations │ │ ├── CanLaunchTheMissiles.scala │ │ ├── ChoiceTest.scala │ │ ├── ConcurrencyTest.scala │ │ ├── ExceptTest.scala │ │ ├── MaybeTest.scala │ │ ├── ReaderTest.scala │ │ ├── StateTest.scala │ │ ├── ValidationTest.scala │ │ └── WriterTest.scala │ │ ├── stack_safety │ │ ├── CanStackOverflow.scala │ │ ├── RepeatedlyTest.scala │ │ ├── TrampolineTest.scala │ │ └── WideTest.scala │ │ └── type_safety │ │ ├── Dummies.scala │ │ ├── EffectSubtypingTest.scala │ │ ├── ForGuardTest.scala │ │ ├── InferenceTest.scala │ │ ├── PartialHandlerTest.scala │ │ └── TotalHandlerTest.scala ├── examples │ └── src │ │ └── main │ │ └── scala │ │ └── skutek_examples │ │ ├── InvalidFutures.scala │ │ ├── Main.scala │ │ ├── Queens.scala │ │ └── sat_solver │ │ ├── AST.scala │ │ ├── CNF.scala │ │ ├── Main.scala │ │ ├── Parser.scala │ │ └── Solve.scala ├── experimental │ └── src │ │ ├── main │ │ └── scala │ │ │ └── skutek_experimental │ │ │ ├── AcyclicMemoizer.scala │ │ │ ├── CyclicMemoizer.scala │ │ │ ├── UnsafeFixMemo.scala │ │ │ └── _internals │ │ │ ├── Cache.scala │ │ │ └── OnceVar.scala │ │ └── test │ │ └── scala │ │ └── skutek_experimental │ │ ├── AcyclicMemoTest.scala │ │ ├── CanLaunchTheMissiles.scala │ │ ├── CyclicMemoTest.scala │ │ └── UnsafeFixMemoTest.scala └── mwords │ └── src │ └── main │ └── scala │ └── mwords │ ├── Misc.scala │ ├── Monad.scala │ ├── Monoid.scala │ └── package.scala └── project └── build.properties /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/LICENSE -------------------------------------------------------------------------------- /MANUAL.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/MANUAL.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/README.md -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/Computation.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/Computation.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/Handler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/Handler.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/effect/Effect.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/effect/Effect.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/internals/Interpreter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/internals/Interpreter.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/internals/PrimitiveHandler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/internals/PrimitiveHandler.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/internals/aux/AuxExports.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/internals/aux/AuxExports.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/internals/aux/CanHandle.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/internals/aux/CanHandle.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/internals/aux/CanRunImpure.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/internals/aux/CanRunImpure.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/internals/aux/CanRunPure.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/internals/aux/CanRunPure.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/abstraction/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/abstraction/package.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/std_effects/Choice.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/std_effects/Choice.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/std_effects/Concurrency.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/std_effects/Concurrency.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/std_effects/Except.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/std_effects/Except.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/std_effects/Maybe.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/std_effects/Maybe.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/std_effects/Reader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/std_effects/Reader.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/std_effects/State.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/std_effects/State.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/std_effects/Validation.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/std_effects/Validation.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/std_effects/Writer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/std_effects/Writer.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/utils/Exports.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/utils/Exports.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/utils/Fold.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/utils/Fold.scala -------------------------------------------------------------------------------- /modules/core/src/main/scala/skutek/utils/Traverse.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/main/scala/skutek/utils/Traverse.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/misc/ParallelismTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/misc/ParallelismTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/misc/TraverseTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/misc/TraverseTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/CanLaunchTheMissiles.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/CanLaunchTheMissiles.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/ChoiceTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/ChoiceTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/ConcurrencyTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/ConcurrencyTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/ExceptTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/ExceptTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/MaybeTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/MaybeTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/ReaderTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/ReaderTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/StateTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/StateTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/ValidationTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/ValidationTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/operations/WriterTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/operations/WriterTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/stack_safety/CanStackOverflow.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/stack_safety/CanStackOverflow.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/stack_safety/RepeatedlyTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/stack_safety/RepeatedlyTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/stack_safety/TrampolineTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/stack_safety/TrampolineTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/stack_safety/WideTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/stack_safety/WideTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/type_safety/Dummies.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/type_safety/Dummies.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/type_safety/EffectSubtypingTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/type_safety/EffectSubtypingTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/type_safety/ForGuardTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/type_safety/ForGuardTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/type_safety/InferenceTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/type_safety/InferenceTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/type_safety/PartialHandlerTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/type_safety/PartialHandlerTest.scala -------------------------------------------------------------------------------- /modules/core/src/test/scala/skutek/type_safety/TotalHandlerTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/core/src/test/scala/skutek/type_safety/TotalHandlerTest.scala -------------------------------------------------------------------------------- /modules/examples/src/main/scala/skutek_examples/InvalidFutures.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/examples/src/main/scala/skutek_examples/InvalidFutures.scala -------------------------------------------------------------------------------- /modules/examples/src/main/scala/skutek_examples/Main.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/examples/src/main/scala/skutek_examples/Main.scala -------------------------------------------------------------------------------- /modules/examples/src/main/scala/skutek_examples/Queens.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/examples/src/main/scala/skutek_examples/Queens.scala -------------------------------------------------------------------------------- /modules/examples/src/main/scala/skutek_examples/sat_solver/AST.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/examples/src/main/scala/skutek_examples/sat_solver/AST.scala -------------------------------------------------------------------------------- /modules/examples/src/main/scala/skutek_examples/sat_solver/CNF.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/examples/src/main/scala/skutek_examples/sat_solver/CNF.scala -------------------------------------------------------------------------------- /modules/examples/src/main/scala/skutek_examples/sat_solver/Main.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/examples/src/main/scala/skutek_examples/sat_solver/Main.scala -------------------------------------------------------------------------------- /modules/examples/src/main/scala/skutek_examples/sat_solver/Parser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/examples/src/main/scala/skutek_examples/sat_solver/Parser.scala -------------------------------------------------------------------------------- /modules/examples/src/main/scala/skutek_examples/sat_solver/Solve.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/examples/src/main/scala/skutek_examples/sat_solver/Solve.scala -------------------------------------------------------------------------------- /modules/experimental/src/main/scala/skutek_experimental/AcyclicMemoizer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/main/scala/skutek_experimental/AcyclicMemoizer.scala -------------------------------------------------------------------------------- /modules/experimental/src/main/scala/skutek_experimental/CyclicMemoizer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/main/scala/skutek_experimental/CyclicMemoizer.scala -------------------------------------------------------------------------------- /modules/experimental/src/main/scala/skutek_experimental/UnsafeFixMemo.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/main/scala/skutek_experimental/UnsafeFixMemo.scala -------------------------------------------------------------------------------- /modules/experimental/src/main/scala/skutek_experimental/_internals/Cache.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/main/scala/skutek_experimental/_internals/Cache.scala -------------------------------------------------------------------------------- /modules/experimental/src/main/scala/skutek_experimental/_internals/OnceVar.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/main/scala/skutek_experimental/_internals/OnceVar.scala -------------------------------------------------------------------------------- /modules/experimental/src/test/scala/skutek_experimental/AcyclicMemoTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/test/scala/skutek_experimental/AcyclicMemoTest.scala -------------------------------------------------------------------------------- /modules/experimental/src/test/scala/skutek_experimental/CanLaunchTheMissiles.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/test/scala/skutek_experimental/CanLaunchTheMissiles.scala -------------------------------------------------------------------------------- /modules/experimental/src/test/scala/skutek_experimental/CyclicMemoTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/test/scala/skutek_experimental/CyclicMemoTest.scala -------------------------------------------------------------------------------- /modules/experimental/src/test/scala/skutek_experimental/UnsafeFixMemoTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/experimental/src/test/scala/skutek_experimental/UnsafeFixMemoTest.scala -------------------------------------------------------------------------------- /modules/mwords/src/main/scala/mwords/Misc.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/mwords/src/main/scala/mwords/Misc.scala -------------------------------------------------------------------------------- /modules/mwords/src/main/scala/mwords/Monad.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/mwords/src/main/scala/mwords/Monad.scala -------------------------------------------------------------------------------- /modules/mwords/src/main/scala/mwords/Monoid.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/mwords/src/main/scala/mwords/Monoid.scala -------------------------------------------------------------------------------- /modules/mwords/src/main/scala/mwords/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcinzh/skutek/HEAD/modules/mwords/src/main/scala/mwords/package.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.3.5 2 | --------------------------------------------------------------------------------