Module Puzzlescript

type dir =
  1. | Up
  2. | Down
  3. | Left
  4. | Right
val every : dir list
val horizontal : dir list
val vertical : dir list
type thing = {
  1. glyph : char;
  2. color : Playground.color;
  3. layer : int;
  4. art : string list;
}
val thing : ?art:string list -> char -> Playground.color -> layer:int -> thing
type rule
val rule : ?dirs:dir list -> ?late:bool -> string -> rule
type win
val all_on : char -> char -> win
val some_on : char -> char -> win
val no_on : char -> char -> win
val none_left : char -> win
type t
val make : things:thing list -> player:char -> ?legend:(char * string) list -> rules:rule list -> wins:win list -> ?background:Playground.color -> string list list -> t
type state
type board
val board : t -> int -> board
val turn : t -> dir option -> board -> board
val won : t -> board -> bool
val at : board -> int -> int -> char list
val to_strings : t -> board -> string list