packages feed

haskell-fsrs-7.0.0: haskell-fsrs.cabal

cabal-version:      2.2

name:               haskell-fsrs
-- The major version tracks the algorithm version, as py-fsrs and fsrs-rs do:
-- 7.x.y implements FSRS-7.
version:            7.0.0
synopsis:           FSRS-7, the Free Spaced Repetition Scheduler
description:
  A Haskell implementation of FSRS-7, the seventh version of the Free Spaced
  Repetition Scheduler: a memory model that predicts when you are about to
  forget a flashcard, so it can be shown to you just before that happens.
  .
  The model itself lives in "FSRS.Algorithm" and is a direct transcription of
  the reference implementation used by the upstream benchmark. A card
  scheduler built on top of it — learning steps, due dates, lapses, fuzz —
  lives in "FSRS.Scheduler". Import "FSRS" for everything at once.

homepage:           https://github.com/kutyel/haskell-fsrs#readme
bug-reports:        https://github.com/kutyel/haskell-fsrs/issues
license:            MIT
license-file:       LICENSE
author:             Flavio Corpa
maintainer:         https://github.com/kutyel/haskell-fsrs/issues
copyright:          2026 © Flavio Corpa Ríos
category:           Education
build-type:         Simple
tested-with:
  GHC ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.8 || ==9.6.7 || ==9.8.4 || ==9.10.3
extra-doc-files:
  CHANGELOG.md
  README.md

extra-source-files:
  reference/check_golden.py
  reference/fsrs7_reference.py
  reference/gen_golden.py
  reference/test_reference.py

source-repository head
  type:     git
  location: https://github.com/kutyel/haskell-fsrs

common warnings
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wmissing-export-lists
    -Wmissing-home-modules
    -Wpartial-fields
    -Wredundant-constraints

library
  import:           warnings
  hs-source-dirs:   src
  exposed-modules:
    FSRS
    FSRS.Algorithm
    FSRS.Parameters
    FSRS.Scheduler
    FSRS.Types

  build-depends:
    , array  >=0.5 && <0.6
    , base   >=4.14 && <5
    , time   >=1.9 && <2

  default-language: Haskell2010

executable haskell-fsrs
  import:           warnings
  hs-source-dirs:   app
  main-is:          Main.hs
  build-depends:
    , base
    , haskell-fsrs
    , time

  ghc-options:      -threaded -rtsopts -with-rtsopts=-N
  default-language: Haskell2010

test-suite haskell-fsrs-test
  import:           warnings
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  main-is:          Spec.hs
  other-modules:
    Test.FSRS.Gen
    Test.FSRS.Golden
    Test.FSRS.GoldenData
    Test.FSRS.Properties
    Test.FSRS.SchedulerSpec
    Test.FSRS.Unit

  build-depends:
    , base
    , haskell-fsrs
    , QuickCheck        >=2.14 && <3
    , tasty             >=1.4  && <1.6
    , tasty-hunit       >=0.10 && <0.11
    , tasty-quickcheck  >=0.10 && <0.12
    , time

  ghc-options:      -threaded -rtsopts -with-rtsopts=-N
  default-language: Haskell2010