cabal-version: 3.0 -- The cabal-version field refers to the version of the .cabal specification, -- and can be different from the cabal-install (the tool) version and the -- Cabal (the library) version you are using. As such, the Cabal (the library) -- version used must be equal or greater than the version stated in this field. -- Starting from the specification version 2.2, the cabal-version field must be -- the first thing in the cabal file. -- Initial package description 'Mazelib' generated by -- 'cabal init'. For further documentation, see: -- http://haskell.org/cabal/users-guide/ -- -- The name of the package. name: mazelib -- The package version. -- See the Haskell package versioning policy (PVP) for standards -- guiding when and how versions should be incremented. -- https://pvp.haskell.org -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 0.1.0.0 category: Library -- A short (one-line) description of the package. synopsis: A library for 2D maze generation and solving -- A longer description of the package. description: >>> :{ let result = generateMaze AldousBroder (3, 3) $ Just (mkStdGen 123) in case result of Left e -> do putStrLn e Right (maze, exits) -> let path = cleanPath $ solveMaze maze exits Nothing in do putStrLn $ mazeToString maze exits (Just path) :} +++++++ SOOOOO+ +++++O+ +OOO+O+ +O+O+O+ +O+OOO+ +E+++++ An (N x M) Maze is represented in memory as a (2N + 1 x 2M + 1) boolean matrix. In an idealized maze, walls are 0 width, but in memory they are width 1, thus the larger size. From this we infer that coordinates (x, y) where both x and y are odd integers map to the coordinates in the ideal maze -- i.e. @(x, y) -> (x - 1 $ `div` 2, y - 1 $ `div` 2)@. -- The license under which the package is released. license: GPL-3.0-or-later -- The file containing the license text. license-file: LICENSE -- The package author(s). author: Kevin Vicente -- An email address to which users can send suggestions, bug reports, and patches. maintainer: kvicente@fastmail.com -- A copyright notice. -- copyright: build-type: Simple -- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. extra-doc-files: CHANGELOG.md -- Extra source files to be distributed with the package, such as examples, or a tutorial module. -- extra-source-files: common warnings ghc-options: -Wall library -- Import common warning flags. import: warnings -- Modules exported by the library. exposed-modules: Mazelib.Generate Mazelib.Solve -- Modules included in this library but not exported. other-modules: Mazelib.Common -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- Other library packages from which modules are imported. build-depends: base ^>=4.16.4.0, random ^>=1.2.0.0 -- Directories containing source files. hs-source-dirs: src -- Base language which the package is written in. default-language: Haskell2010 test-suite generate-tests -- Import common warning flags. import: warnings -- Base language which the package is written in. default-language: Haskell2010 -- Modules included in this executable, other than Main. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- The interface type and version of the test suite. type: exitcode-stdio-1.0 -- Directories containing source files. hs-source-dirs: test -- The entrypoint to the test suite. main-is: TestGenerate.hs -- Test dependencies. build-depends: base ^>=4.16.4.0, random ^>=1.2.0.0, mazelib test-suite solve-tests -- Import common warning flags. import: warnings -- Base language which the package is written in. default-language: Haskell2010 -- Modules included in this executable, other than Main. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- The interface type and version of the test suite. type: exitcode-stdio-1.0 -- Directories containing source files. hs-source-dirs: test -- The entrypoint to the test suite. main-is: TestSolve.hs -- Test dependencies. build-depends: base ^>=4.16.4.0, random ^>=1.2.0.0, mazelib source-repository head type: git location: https://github.com/ImJustTrying/Mazelib.git