Skip to content

Instantly share code, notes, and snippets.

@chrisdone
Created May 18, 2019 22:32
Show Gist options
  • Save chrisdone/c908dbdbbeaaa945575ce5be7b47b9a6 to your computer and use it in GitHub Desktop.
Save chrisdone/c908dbdbbeaaa945575ce5be7b47b9a6 to your computer and use it in GitHub Desktop.
repro case for persist
{-# LANGUAGE DeriveGeneric #-}
-- | Derive the primop type.
module Prana.PrimOp.Type where
import Data.Persist
import GHC.Generics
-- $derivePrimOpType
data PrimOp
= CharGtOp
| CharGeOp
| CharEqOp
| CharNeOp
| CharLtOp
| CharLeOp
| OrdOp
| IntAddOp
| IntSubOp
| IntMulOp
| IntMulMayOfloOp
| IntQuotOp
| IntRemOp
| IntQuotRemOp
| AndIOp
| OrIOp
| XorIOp
| NotIOp
| IntNegOp
| IntAddCOp
| IntSubCOp
| IntGtOp
| IntGeOp
| IntEqOp
| IntNeOp
| IntLtOp
| IntLeOp
| ChrOp
| Int2WordOp
| Int2FloatOp
| Int2DoubleOp
| Word2FloatOp
| Word2DoubleOp
| ISllOp
| ISraOp
| ISrlOp
| WordAddOp
| WordSubCOp
| WordAdd2Op
| WordSubOp
| WordMulOp
| WordMul2Op
| WordQuotOp
| WordRemOp
| WordQuotRemOp
| WordQuotRem2Op
| AndOp
| OrOp
| XorOp
| NotOp
| SllOp
| SrlOp
| Word2IntOp
| WordGtOp
| WordGeOp
| WordEqOp
| WordNeOp
| WordLtOp
| WordLeOp
| PopCnt8Op
| PopCnt16Op
| PopCnt32Op
| PopCnt64Op
| PopCntOp
| Pdep8Op
| Pdep16Op
| Pdep32Op
| Pdep64Op
| PdepOp
| Pext8Op
| Pext16Op
| Pext32Op
| Pext64Op
| PextOp
| Clz8Op
| Clz16Op
| Clz32Op
| Clz64Op
| ClzOp
| Ctz8Op
| Ctz16Op
| Ctz32Op
| Ctz64Op
| CtzOp
| BSwap16Op
| BSwap32Op
| BSwap64Op
| BSwapOp
| Narrow8IntOp
| Narrow16IntOp
| Narrow32IntOp
| Narrow8WordOp
| Narrow16WordOp
| Narrow32WordOp
| DoubleGtOp
| DoubleGeOp
| DoubleEqOp
| DoubleNeOp
| DoubleLtOp
| DoubleLeOp
| DoubleAddOp
| DoubleSubOp
| DoubleMulOp
| DoubleDivOp
| DoubleNegOp
| DoubleFabsOp
| Double2IntOp
| Double2FloatOp
| DoubleExpOp
| DoubleLogOp
| DoubleSqrtOp
| DoubleSinOp
| DoubleCosOp
| DoubleTanOp
| DoubleAsinOp
| DoubleAcosOp
| DoubleAtanOp
| DoubleSinhOp
| DoubleCoshOp
| DoubleTanhOp
| DoublePowerOp
| DoubleDecode_2IntOp
| DoubleDecode_Int64Op
| FloatGtOp
| FloatGeOp
| FloatEqOp
| FloatNeOp
| FloatLtOp
| FloatLeOp
| FloatAddOp
| FloatSubOp
| FloatMulOp
| FloatDivOp
| FloatNegOp
| FloatFabsOp
| Float2IntOp
| FloatExpOp
| FloatLogOp
| FloatSqrtOp
| FloatSinOp
| FloatCosOp
| FloatTanOp
| FloatAsinOp
| FloatAcosOp
| FloatAtanOp
| FloatSinhOp
| FloatCoshOp
| FloatTanhOp
| FloatPowerOp
| Float2DoubleOp
| FloatDecode_IntOp
| NewArrayOp
| SameMutableArrayOp
| ReadArrayOp
| WriteArrayOp
| SizeofArrayOp
| SizeofMutableArrayOp
| IndexArrayOp
| UnsafeFreezeArrayOp
| UnsafeThawArrayOp
| CopyArrayOp
| CopyMutableArrayOp
| CloneArrayOp
| CloneMutableArrayOp
| FreezeArrayOp
| ThawArrayOp
| CasArrayOp
| NewSmallArrayOp
| SameSmallMutableArrayOp
| ReadSmallArrayOp
| WriteSmallArrayOp
| SizeofSmallArrayOp
| SizeofSmallMutableArrayOp
| IndexSmallArrayOp
| UnsafeFreezeSmallArrayOp
| UnsafeThawSmallArrayOp
| CopySmallArrayOp
| CopySmallMutableArrayOp
| CloneSmallArrayOp
| CloneSmallMutableArrayOp
| FreezeSmallArrayOp
| ThawSmallArrayOp
| CasSmallArrayOp
| NewByteArrayOp_Char
| NewPinnedByteArrayOp_Char
| NewAlignedPinnedByteArrayOp_Char
| MutableByteArrayIsPinnedOp
| ByteArrayIsPinnedOp
| ByteArrayContents_Char
| SameMutableByteArrayOp
| ShrinkMutableByteArrayOp_Char
| ResizeMutableByteArrayOp_Char
| UnsafeFreezeByteArrayOp
| SizeofByteArrayOp
| SizeofMutableByteArrayOp
| GetSizeofMutableByteArrayOp
| IndexByteArrayOp_Char
| IndexByteArrayOp_WideChar
| IndexByteArrayOp_Int
| IndexByteArrayOp_Word
| IndexByteArrayOp_Addr
| IndexByteArrayOp_Float
| IndexByteArrayOp_Double
| IndexByteArrayOp_StablePtr
| IndexByteArrayOp_Int8
| IndexByteArrayOp_Int16
| IndexByteArrayOp_Int32
| IndexByteArrayOp_Int64
| IndexByteArrayOp_Word8
| IndexByteArrayOp_Word16
| IndexByteArrayOp_Word32
| IndexByteArrayOp_Word64
| ReadByteArrayOp_Char
| ReadByteArrayOp_WideChar
| ReadByteArrayOp_Int
| ReadByteArrayOp_Word
| ReadByteArrayOp_Addr
| ReadByteArrayOp_Float
| ReadByteArrayOp_Double
| ReadByteArrayOp_StablePtr
| ReadByteArrayOp_Int8
| ReadByteArrayOp_Int16
| ReadByteArrayOp_Int32
| ReadByteArrayOp_Int64
| ReadByteArrayOp_Word8
| ReadByteArrayOp_Word16
| ReadByteArrayOp_Word32
| ReadByteArrayOp_Word64
| WriteByteArrayOp_Char
| WriteByteArrayOp_WideChar
| WriteByteArrayOp_Int
| WriteByteArrayOp_Word
| WriteByteArrayOp_Addr
| WriteByteArrayOp_Float
| WriteByteArrayOp_Double
| WriteByteArrayOp_StablePtr
| WriteByteArrayOp_Int8
| WriteByteArrayOp_Int16
| WriteByteArrayOp_Int32
| WriteByteArrayOp_Int64
| WriteByteArrayOp_Word8
| WriteByteArrayOp_Word16
| WriteByteArrayOp_Word32
| WriteByteArrayOp_Word64
| CompareByteArraysOp
| CopyByteArrayOp
| CopyMutableByteArrayOp
| CopyByteArrayToAddrOp
| CopyMutableByteArrayToAddrOp
| CopyAddrToByteArrayOp
| SetByteArrayOp
| AtomicReadByteArrayOp_Int
| AtomicWriteByteArrayOp_Int
| CasByteArrayOp_Int
| FetchAddByteArrayOp_Int
| FetchSubByteArrayOp_Int
| FetchAndByteArrayOp_Int
| FetchNandByteArrayOp_Int
| FetchOrByteArrayOp_Int
| FetchXorByteArrayOp_Int
| NewArrayArrayOp
| SameMutableArrayArrayOp
| UnsafeFreezeArrayArrayOp
| SizeofArrayArrayOp
| SizeofMutableArrayArrayOp
| IndexArrayArrayOp_ByteArray
| IndexArrayArrayOp_ArrayArray
| ReadArrayArrayOp_ByteArray
| ReadArrayArrayOp_MutableByteArray
| ReadArrayArrayOp_ArrayArray
| ReadArrayArrayOp_MutableArrayArray
| WriteArrayArrayOp_ByteArray
| WriteArrayArrayOp_MutableByteArray
| WriteArrayArrayOp_ArrayArray
| WriteArrayArrayOp_MutableArrayArray
| CopyArrayArrayOp
| CopyMutableArrayArrayOp
| AddrAddOp
| AddrSubOp
| AddrRemOp
| Addr2IntOp
| Int2AddrOp
| AddrGtOp
| AddrGeOp
| AddrEqOp
| AddrNeOp
| AddrLtOp
| AddrLeOp
| IndexOffAddrOp_Char
| IndexOffAddrOp_WideChar
| IndexOffAddrOp_Int
| IndexOffAddrOp_Word
| IndexOffAddrOp_Addr
| IndexOffAddrOp_Float
| IndexOffAddrOp_Double
| IndexOffAddrOp_StablePtr
| IndexOffAddrOp_Int8
| IndexOffAddrOp_Int16
| IndexOffAddrOp_Int32
| IndexOffAddrOp_Int64
| IndexOffAddrOp_Word8
| IndexOffAddrOp_Word16
| IndexOffAddrOp_Word32
| IndexOffAddrOp_Word64
| ReadOffAddrOp_Char
| ReadOffAddrOp_WideChar
| ReadOffAddrOp_Int
| ReadOffAddrOp_Word
| ReadOffAddrOp_Addr
| ReadOffAddrOp_Float
| ReadOffAddrOp_Double
| ReadOffAddrOp_StablePtr
| ReadOffAddrOp_Int8
| ReadOffAddrOp_Int16
| ReadOffAddrOp_Int32
| ReadOffAddrOp_Int64
| ReadOffAddrOp_Word8
| ReadOffAddrOp_Word16
| ReadOffAddrOp_Word32
| ReadOffAddrOp_Word64
| WriteOffAddrOp_Char
| WriteOffAddrOp_WideChar
| WriteOffAddrOp_Int
| WriteOffAddrOp_Word
| WriteOffAddrOp_Addr
| WriteOffAddrOp_Float
| WriteOffAddrOp_Double
| WriteOffAddrOp_StablePtr
| WriteOffAddrOp_Int8
| WriteOffAddrOp_Int16
| WriteOffAddrOp_Int32
| WriteOffAddrOp_Int64
| WriteOffAddrOp_Word8
| WriteOffAddrOp_Word16
| WriteOffAddrOp_Word32
| WriteOffAddrOp_Word64
| NewMutVarOp
| ReadMutVarOp
| WriteMutVarOp
| SameMutVarOp
| AtomicModifyMutVarOp
| CasMutVarOp
| CatchOp
| RaiseOp
| RaiseIOOp
| MaskAsyncExceptionsOp
| MaskUninterruptibleOp
| UnmaskAsyncExceptionsOp
| MaskStatus
| AtomicallyOp
| RetryOp
| CatchRetryOp
| CatchSTMOp
| Check
| NewTVarOp
| ReadTVarOp
| ReadTVarIOOp
| WriteTVarOp
| SameTVarOp
| NewMVarOp
| TakeMVarOp
| TryTakeMVarOp
| PutMVarOp
| TryPutMVarOp
| ReadMVarOp
| TryReadMVarOp
| SameMVarOp
| IsEmptyMVarOp
| DelayOp
| WaitReadOp
| WaitWriteOp
| ForkOp
| ForkOnOp
| KillThreadOp
| YieldOp
| MyThreadIdOp
| LabelThreadOp
| IsCurrentThreadBoundOp
| NoDuplicateOp
| ThreadStatusOp
| MkWeakOp
| MkWeakNoFinalizerOp
| AddCFinalizerToWeakOp
| DeRefWeakOp
| FinalizeWeakOp
| TouchOp
| MakeStablePtrOp
| DeRefStablePtrOp
| EqStablePtrOp
| MakeStableNameOp
| EqStableNameOp
| StableNameToIntOp
| CompactNewOp
| CompactResizeOp
| CompactContainsOp
| CompactContainsAnyOp
| CompactGetFirstBlockOp
| CompactGetNextBlockOp
| CompactAllocateBlockOp
| CompactFixupPointersOp
| CompactAdd
| CompactAddWithSharing
| CompactSize
| ReallyUnsafePtrEqualityOp
| ParOp
| SparkOp
| SeqOp
| GetSparkOp
| NumSparks
| DataToTagOp
| TagToEnumOp
| AddrToAnyOp
| AnyToAddrOp
| MkApUpd0_Op
| NewBCOOp
| UnpackClosureOp
| GetApStackValOp
| GetCCSOfOp
| GetCurrentCCSOp
| ClearCCSOp
| TraceEventOp
| TraceMarkerOp
| VecBroadcastOp
| VecPackOp
| VecUnpackOp
| VecInsertOp
| VecAddOp
| VecSubOp
| VecMulOp
| VecDivOp
| VecQuotOp
| VecRemOp
| VecNegOp
| VecIndexByteArrayOp
| VecReadByteArrayOp
| VecWriteByteArrayOp
| VecIndexOffAddrOp
| VecReadOffAddrOp
| VecWriteOffAddrOp
| VecIndexScalarByteArrayOp
| VecReadScalarByteArrayOp
| VecWriteScalarByteArrayOp
| VecIndexScalarOffAddrOp
| VecReadScalarOffAddrOp
| VecWriteScalarOffAddrOp
| PrefetchByteArrayOp3
| PrefetchMutableByteArrayOp3
| PrefetchAddrOp3
| PrefetchValueOp3
| PrefetchByteArrayOp2
| PrefetchMutableByteArrayOp2
| PrefetchAddrOp2
| PrefetchValueOp2
| PrefetchByteArrayOp1
| PrefetchMutableByteArrayOp1
| PrefetchAddrOp1
| PrefetchValueOp1
| PrefetchByteArrayOp0
| PrefetchMutableByteArrayOp0
| PrefetchAddrOp0
| PrefetchValueOp0
deriving (Generic)
instance Persist PrimOp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment