/* * EdMovement.dcl: the Movement type and operations on it */ definition module EdMovement from StdClass import ==, toString, fromString from EdSelection import Position, ColumnNr, LineNr import EdMonad :: Movement = LineUp | LineDown | CharLeft | CharRight | WordLeft | WordRight | PageUp | PageDown | StartOfLine | EndOfLine | StartOfText | EndOfText instance == Movement instance toString Movement instance fromString Movement positionAfterMove :: !Movement !Position -> EditMonad (PSt *l) Position isVerticalMove :: !Movement -> Bool selectWordAt :: !Position -> EditMonad .env Selection allMovements :: [Movement]