Labyrinth.Generate

generateLabyrinth

type LabGen g a

type CellPredicate m

type CellPredicateR g

isTypeF

isType

isLand

perimeter

area

chooseRandomR

randomDirection

allOf

cellIf

putCell

putCellIf

neighbors

allNeighbors

isArmoryHospital

putAH

putArmories

putHospitals

noTreasures

putTreasure

hasWall

putExit

putExits

putPits

foldTimes

foldTimes_

putRivers

hasLandAround

landCellThere

putTreasures

putWalls

goodReachability

goodDistribution

untilR

untilRN

generate