type Character = { node :: Node, x :: Number, y :: Number, dx :: Number, dy :: Number, dir :: Direction }
data Direction
= Left
| Right
type SpriteDescriptor = String
data Activity
= Walking
| Standing
| Jumping
jumpCoefficient :: Number
charSpriteDescriptor :: Character -> SpriteDescriptor
isAirborne :: Character -> Boolean
accel :: Character -> Number
friction :: Character -> Number
velocity :: Character -> Character
applyGravity :: Character -> Character
walk :: Boolean -> Boolean -> Character -> Character
jump :: Boolean -> Character -> Character
marioLogic :: { left :: Boolean, right :: Boolean, jump :: Boolean } -> Character -> Character