Solution (source code)

= Solution

Apply the same <translation> to every <vertex>:
``
translate :: Point -> Polygon -> Polygon
translate (u,v) = map (\(x,y) -> (x+u,y+v))
``
Every <edge vector> is unchanged because the added displacement cancels on subtraction. Hence lengths, angles, orientation and shape are preserved.