{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE EmptyCase #-}
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}

{-# OPTIONS_GHC -Wno-overlapping-patterns #-}

module MAlonzo.Code.Data.Parity.Base where

import MAlonzo.RTE (coe, erased, AgdaAny, addInt, subInt, mulInt,
                    quotInt, remInt, geqInt, ltInt, eqInt, add64, sub64, mul64, quot64,
                    rem64, lt64, eq64, word64FromNat, word64ToNat)
import qualified MAlonzo.RTE
import qualified Data.Text
import qualified MAlonzo.Code.Algebra.Bundles.Raw
import qualified MAlonzo.Code.Data.Sign.Base

-- Data.Parity.Base.Parity
d_Parity_6 :: ()
d_Parity_6 = ()
data T_Parity_6 = C_0ℙ_8 | C_1ℙ_10
-- Data.Parity.Base._⁻¹
d__'8315''185'_12 :: T_Parity_6 -> T_Parity_6
d__'8315''185'_12 :: T_Parity_6 -> T_Parity_6
d__'8315''185'_12 T_Parity_6
v0
  = case T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
v0 of
      T_Parity_6
C_0ℙ_8 -> T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
C_1ℙ_10
      T_Parity_6
C_1ℙ_10 -> T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
C_0ℙ_8
      T_Parity_6
_ -> T_Parity_6
forall a. a
MAlonzo.RTE.mazUnreachableError
-- Data.Parity.Base._+_
d__'43'__14 :: T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'43'__14 :: T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'43'__14 T_Parity_6
v0 T_Parity_6
v1
  = case T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
v0 of
      T_Parity_6
C_0ℙ_8 -> T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
v1
      T_Parity_6
C_1ℙ_10 -> (T_Parity_6 -> T_Parity_6) -> Any -> T_Parity_6
forall a b. a -> b
coe T_Parity_6 -> T_Parity_6
d__'8315''185'_12 (T_Parity_6 -> Any
forall a b. a -> b
coe T_Parity_6
v1)
      T_Parity_6
_ -> T_Parity_6
forall a. a
MAlonzo.RTE.mazUnreachableError
-- Data.Parity.Base._*_
d__'42'__20 :: T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'42'__20 :: T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'42'__20 T_Parity_6
v0 T_Parity_6
v1
  = case T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
v0 of
      T_Parity_6
C_0ℙ_8 -> T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
v0
      T_Parity_6
C_1ℙ_10 -> T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
v1
      T_Parity_6
_ -> T_Parity_6
forall a. a
MAlonzo.RTE.mazUnreachableError
-- Data.Parity.Base.+-rawMagma
d_'43''45'rawMagma_26 ::
  MAlonzo.Code.Algebra.Bundles.Raw.T_RawMagma_44
d_'43''45'rawMagma_26 :: T_RawMagma_44
d_'43''45'rawMagma_26
  = ((Any -> Any -> Any) -> T_RawMagma_44)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6) -> T_RawMagma_44
forall a b. a -> b
coe (Any -> Any -> Any) -> T_RawMagma_44
MAlonzo.Code.Algebra.Bundles.Raw.C_constructor_68 T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'43'__14
-- Data.Parity.Base.+-0-rawMonoid
d_'43''45'0'45'rawMonoid_28 ::
  MAlonzo.Code.Algebra.Bundles.Raw.T_RawMonoid_74
d_'43''45'0'45'rawMonoid_28 :: T_RawMonoid_74
d_'43''45'0'45'rawMonoid_28
  = ((Any -> Any -> Any) -> Any -> T_RawMonoid_74)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6)
-> Any
-> T_RawMonoid_74
forall a b. a -> b
coe
      (Any -> Any -> Any) -> Any -> T_RawMonoid_74
MAlonzo.Code.Algebra.Bundles.Raw.C_constructor_102 T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'43'__14
      (T_Parity_6 -> Any
forall a b. a -> b
coe T_Parity_6
C_0ℙ_8)
-- Data.Parity.Base.+-0-rawGroup
d_'43''45'0'45'rawGroup_30 ::
  MAlonzo.Code.Algebra.Bundles.Raw.T_RawGroup_108
d_'43''45'0'45'rawGroup_30 :: T_RawGroup_108
d_'43''45'0'45'rawGroup_30
  = ((Any -> Any -> Any) -> Any -> (Any -> Any) -> T_RawGroup_108)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6)
-> Any
-> (T_Parity_6 -> T_Parity_6)
-> T_RawGroup_108
forall a b. a -> b
coe
      (Any -> Any -> Any) -> Any -> (Any -> Any) -> T_RawGroup_108
MAlonzo.Code.Algebra.Bundles.Raw.C_constructor_142 T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'43'__14
      (T_Parity_6 -> Any
forall a b. a -> b
coe T_Parity_6
C_0ℙ_8) T_Parity_6 -> T_Parity_6
d__'8315''185'_12
-- Data.Parity.Base.*-rawMagma
d_'42''45'rawMagma_32 ::
  MAlonzo.Code.Algebra.Bundles.Raw.T_RawMagma_44
d_'42''45'rawMagma_32 :: T_RawMagma_44
d_'42''45'rawMagma_32
  = ((Any -> Any -> Any) -> T_RawMagma_44)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6) -> T_RawMagma_44
forall a b. a -> b
coe (Any -> Any -> Any) -> T_RawMagma_44
MAlonzo.Code.Algebra.Bundles.Raw.C_constructor_68 T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'42'__20
-- Data.Parity.Base.*-1-rawMonoid
d_'42''45'1'45'rawMonoid_34 ::
  MAlonzo.Code.Algebra.Bundles.Raw.T_RawMonoid_74
d_'42''45'1'45'rawMonoid_34 :: T_RawMonoid_74
d_'42''45'1'45'rawMonoid_34
  = ((Any -> Any -> Any) -> Any -> T_RawMonoid_74)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6)
-> Any
-> T_RawMonoid_74
forall a b. a -> b
coe
      (Any -> Any -> Any) -> Any -> T_RawMonoid_74
MAlonzo.Code.Algebra.Bundles.Raw.C_constructor_102 T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'42'__20
      (T_Parity_6 -> Any
forall a b. a -> b
coe T_Parity_6
C_1ℙ_10)
-- Data.Parity.Base.+-*-rawNearSemiring
d_'43''45''42''45'rawNearSemiring_36 ::
  MAlonzo.Code.Algebra.Bundles.Raw.T_RawNearSemiring_148
d_'43''45''42''45'rawNearSemiring_36 :: T_RawNearSemiring_148
d_'43''45''42''45'rawNearSemiring_36
  = ((Any -> Any -> Any)
 -> (Any -> Any -> Any) -> Any -> T_RawNearSemiring_148)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6)
-> Any
-> T_RawNearSemiring_148
forall a b. a -> b
coe
      (Any -> Any -> Any)
-> (Any -> Any -> Any) -> Any -> T_RawNearSemiring_148
MAlonzo.Code.Algebra.Bundles.Raw.C_constructor_184 T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'43'__14
      T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'42'__20 (T_Parity_6 -> Any
forall a b. a -> b
coe T_Parity_6
C_0ℙ_8)
-- Data.Parity.Base.+-*-rawSemiring
d_'43''45''42''45'rawSemiring_38 ::
  MAlonzo.Code.Algebra.Bundles.Raw.T_RawSemiring_190
d_'43''45''42''45'rawSemiring_38 :: T_RawSemiring_190
d_'43''45''42''45'rawSemiring_38
  = ((Any -> Any -> Any)
 -> (Any -> Any -> Any) -> Any -> Any -> T_RawSemiring_190)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6)
-> (T_Parity_6 -> T_Parity_6 -> T_Parity_6)
-> Any
-> Any
-> T_RawSemiring_190
forall a b. a -> b
coe
      (Any -> Any -> Any)
-> (Any -> Any -> Any) -> Any -> Any -> T_RawSemiring_190
MAlonzo.Code.Algebra.Bundles.Raw.C_constructor_234 T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'43'__14
      T_Parity_6 -> T_Parity_6 -> T_Parity_6
d__'42'__20 (T_Parity_6 -> Any
forall a b. a -> b
coe T_Parity_6
C_0ℙ_8) (T_Parity_6 -> Any
forall a b. a -> b
coe T_Parity_6
C_1ℙ_10)
-- Data.Parity.Base.toSign
d_toSign_40 :: T_Parity_6 -> MAlonzo.Code.Data.Sign.Base.T_Sign_6
d_toSign_40 :: T_Parity_6 -> T_Sign_6
d_toSign_40 T_Parity_6
v0
  = case T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
v0 of
      T_Parity_6
C_0ℙ_8 -> T_Sign_6 -> T_Sign_6
forall a b. a -> b
coe T_Sign_6
MAlonzo.Code.Data.Sign.Base.C_'43'_10
      T_Parity_6
C_1ℙ_10 -> T_Sign_6 -> T_Sign_6
forall a b. a -> b
coe T_Sign_6
MAlonzo.Code.Data.Sign.Base.C_'45'_8
      T_Parity_6
_ -> T_Sign_6
forall a. a
MAlonzo.RTE.mazUnreachableError
-- Data.Parity.Base.fromSign
d_fromSign_42 :: MAlonzo.Code.Data.Sign.Base.T_Sign_6 -> T_Parity_6
d_fromSign_42 :: T_Sign_6 -> T_Parity_6
d_fromSign_42 T_Sign_6
v0
  = case T_Sign_6 -> T_Sign_6
forall a b. a -> b
coe T_Sign_6
v0 of
      T_Sign_6
MAlonzo.Code.Data.Sign.Base.C_'45'_8 -> T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
C_1ℙ_10
      T_Sign_6
MAlonzo.Code.Data.Sign.Base.C_'43'_10 -> T_Parity_6 -> T_Parity_6
forall a b. a -> b
coe T_Parity_6
C_0ℙ_8
      T_Sign_6
_ -> T_Parity_6
forall a. a
MAlonzo.RTE.mazUnreachableError