Portability  ghc 

Stability  unstable 
Maintainer  Andy Gill <andygill@ku.edu> 
Boards are the principal type for our images. The are conceptually functions from 2D coordinates to values, typically a color.
Common Boards include

Board Bool
 A maskingBoard
, or region. 
Board RGB
Color Board

Board (Alpha RGB)
 AColor Board
with alpha (transparency) values. 
Board (Maybe a)
 ABoard
with binary transparency. 
Board (Maybe Color)
 AColor Board
with binary transparency. 
Board Point
 ABoard
(or field) ofPoint
values.
 data Board a
 lookup :: Board a > (R, R) > a
 coord :: Board Point
 maskFor :: (Point, Point) > Board Bool
 circularMaskFor :: Point > R > Board Bool
 scale :: Scale c => R > c > c
 scaleXY :: (R, R) > Board a > Board a
 move :: (R, R) > Board a > Board a
 rotate :: Radian > Board a > Board a
 crop :: Board Bool > Board a > Board (Maybe a)
 class Functor f => Applicative f where
The Board datatype
'''Board''' is our primary data type, an infinite flat surface (or R2 field) of values.
Conceptually, Board a = Point > a
.
looking up a point on the Board
.
Creating Board
s.
circularMaskFor :: Point > R > Board BoolSource
build a circular mask or region, with a circle of radius R
, and center Point
.
Translations on a Board
.
scaleXY :: (R, R) > Board a > Board aSource
A nonoverloaded version of scale
which takes a independent x and y coordinate.
class Functor f => Applicative f where
A functor with application.
Instances should satisfy the following laws:
 identity

pure
id
<*>
v = v  composition

pure
(.)<*>
u<*>
v<*>
w = u<*>
(v<*>
w)  homomorphism

pure
f<*>
pure
x =pure
(f x)  interchange

u
<*>
pure
y =pure
($
y)<*>
u  ignore left value

u
*>
v =pure
(const
id
)<*>
u<*>
v  ignore right value

u
<*
v =pure
const
<*>
u<*>
v
The Functor
instance should satisfy
fmap
f x = pure
f <*>
x
pure :: a > f a
Lift a value.
(<*>) :: f (a > b) > f a > f b
Sequential application.
(*>) :: f a > f b > f b
Sequence actions, discarding the value of the first argument.
(<*) :: f a > f b > f a
Sequence actions, discarding the value of the second argument.
Applicative []  
Applicative IO  
Applicative ZipList  
Applicative Maybe  
Applicative Board  
Applicative ((>) a)  
Monoid a => Applicative ((,) a)  
Monoid m => Applicative (Const m)  
Monad m => Applicative (WrappedMonad m)  
Arrow a => Applicative (WrappedArrow a b) 