repeatedCubicLaw :: 
    (Integral a, Integral b) => ModularEllipticCurve a -> Point a -> b -> a -> Either (Point a) a
-- repeatedCubicLaw _ _ 0 _     = Left $ SimplePoint 0 0 -- point at infinity
repeatedCubicLaw _ point 1 _ = Left point
repeatedCubicLaw :: 
    (Integral a, Integral b) => ModularEllipticCurve a -> Point a -> b -> a -> Either (Point a) a
repeatedCubicLaw _ point 1 _ = Left point
repeatedCubicLaw _ point 1 _ = Left point