-- Emulate a quickcheck import; deriveArbitrary works on any type with the
-- right name and kind
data Gen a

data Obj
  = Square Int Int
  | Circle Int
  | Polygon [(Int, Int)]
  | Rotate2 Double Obj
  | Empty
  | Full
  | Complement Obj
  | UnionR Double [Obj]
  | DifferenceR Double Obj [Obj]
  | IntersectR Double [Obj]
  | Translate Double Double Obj
  | Scale Double Double Obj
  | Mirror Double Double Obj
  | Outset Double Obj
  | Shell Double Obj
  | WithRounding Double Obj


arbitrary :: Gen Obj
arbitrary = _