packages feed

aihc-parser-1.0.0.2: test/Test/Fixtures/oracle/PatternSynonyms/pattern-synonyms-record-bidirectional.hs

{- ORACLE_TEST pass -}
{-# LANGUAGE PatternSynonyms #-}

module PatternSynonymsRecordBidirectional where

data Point = MkPoint Int Int

pattern Point :: Int -> Int -> Point
pattern Point {xCoord, yCoord} = MkPoint xCoord yCoord

origin :: Point
origin = Point {xCoord = 0, yCoord = 0}

shiftX :: Int -> Point -> Point
shiftX dx p = p {xCoord = xCoord p + dx}