initxy :: Rat -> Rat -> OState
initxy xl yl = (p, (mkFacets 4 [mkFacet 4 [0, 3, 4, 1], mkFacet 4 [3, 6, 7, 4], mkFacet 4 [4, 7, 8, 5], mkFacet 4 [1, 4, 5, 2]], p'))
    where
        p = mkPoly 9 [V2 0 0, V2 xl 0, V2 1 0, V2 0 yl, V2 xl yl, V2 1 yl, V2 0 1, V2 xl 1, V2 1 1]
        p' = mkPoly 9 [V2 0 0, V2 xl 0, V2 (2 * xl - 1) 0, V2 0 yl, V2 xl yl, V2 (2 * xl - 1) yl, V2 0 (2 * yl - 1), V2 xl (2 * yl - 1), V2 (2 * xl - 1) (2 * yl - 1)]
initxy :: Rat -> Rat -> OState
initxy xl yl = (p, (mkFacets 4 [mkFacet 4 [0, 3, 4, 1], mkFacet 4 [3, 6, 7, 4], mkFacet 4 [4, 7, 8, 5], mkFacet 4 [1, 4, 5, 2]], p'))
    where
        p = mkPoly 9 [V2 0 0, V2 xl 0, V2 1 0, V2 0 yl, V2 xl yl, V2 1 yl, V2 0 1, V2 xl 1, V2 1 1]
        p' = mkPoly 9 [V2 0 0, V2 xl 0, V2 (2 * xl - 1) 0, V2 0 yl, V2 xl yl, V2 (2 * xl - 1) yl, V2 0 (2 * yl - 1), V2 xl (2 * yl - 1), V2 (2 * xl - 1) (2 * yl - 1)]
initxy xl yl = (p, (mkFacets 4 [mkFacet 4 [0, 3, 4, 1], mkFacet 4 [3, 6, 7, 4], mkFacet 4 [4, 7, 8, 5], mkFacet 4 [1, 4, 5, 2]], p'))
    where
        p = mkPoly 9 [V2 0 0, V2 xl 0, V2 1 0, V2 0 yl, V2 xl yl, V2 1 yl, V2 0 1, V2 xl 1, V2 1 1]
        p' = mkPoly 9 [V2 0 0, V2 xl 0, V2 (2 * xl - 1) 0, V2 0 yl, V2 xl yl, V2 (2 * xl - 1) yl, V2 0 (2 * yl - 1), V2 xl (2 * yl - 1), V2 (2 * xl - 1) (2 * yl - 1)]