From 54a3be383e0f7358765e79f981be37c2c24ff43d Mon Sep 17 00:00:00 2001 From: Jonathan Lamothe Date: Tue, 20 Aug 2024 19:29:33 -0400 Subject: [PATCH] module reorganizaion removed `Lib` and added `Abacus` and `Abacus.Internal` --- abacus.cabal | 3 ++- src/Abacus.hs | 40 +++++++++++++++++++++++++++++++++++++++ src/Abacus/Internal.hs | 43 ++++++++++++++++++++++++++++++++++++++++++ src/Lib.hs | 6 ------ 4 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 src/Abacus.hs create mode 100644 src/Abacus/Internal.hs delete mode 100644 src/Lib.hs diff --git a/abacus.cabal b/abacus.cabal index 495053b..b73a745 100644 --- a/abacus.cabal +++ b/abacus.cabal @@ -19,7 +19,8 @@ extra-source-files: library exposed-modules: - Lib + Abacus + Abacus.Internal other-modules: Paths_abacus autogen-modules: diff --git a/src/Abacus.hs b/src/Abacus.hs new file mode 100644 index 0000000..a374afb --- /dev/null +++ b/src/Abacus.hs @@ -0,0 +1,40 @@ +{-| + +Module : Abacus +Description : Core functionality for a simple abacus program +Copyright : (C) Jonathan Lamothe +License : AGPL-3.0-or-later +Maintainer : jonathan@jlamothe.net +Stability : experimental +Portability : POSIX + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public +License along with this program. If not, see +. + +-} + +module Abacus (Abacus, newAbacus) where + +import Abacus.Internal + +-- | Constructs the initial state of a new "Abacus" +newAbacus + :: Int + -- ^ The number of beads on each rung + -> Int + -- ^ The number of rungs + -> Maybe Abacus +newAbacus = undefined + +--jl diff --git a/src/Abacus/Internal.hs b/src/Abacus/Internal.hs new file mode 100644 index 0000000..ae40b17 --- /dev/null +++ b/src/Abacus/Internal.hs @@ -0,0 +1,43 @@ +{-| + +Module : Abacus.Internal +Description : Core functionality for a simple abacus program +Copyright : (C) Jonathan Lamothe +License : AGPL-3.0-or-later +Maintainer : jonathan@jlamothe.net +Stability : experimental +Portability : POSIX + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public +License along with this program. If not, see +. + +# Important Note + +This module should only be imported directl by the Abacus module and +the testing suite. Anything contained herein should be considered +subject to change without notice. + +-} + +module Abacus.Internal (Abacus (..)) where + +-- | Represents the state of an Abacus +data Abacus = Abacus + { abacusNumBeads :: Int + -- ^ The number of beads per rung of the abacus + , abacusRows :: [Int] + -- ^ The number of beads slid across each rung + } deriving (Eq, Show) + +--jl diff --git a/src/Lib.hs b/src/Lib.hs deleted file mode 100644 index d36ff27..0000000 --- a/src/Lib.hs +++ /dev/null @@ -1,6 +0,0 @@ -module Lib - ( someFunc - ) where - -someFunc :: IO () -someFunc = putStrLn "someFunc"