{"efVersion":"0.11.5","efModuleName":["Data","EuclideanRing"],"efExports":[{"ReExportRef":[["Data","CommutativeRing"],{"TypeClassRef":"CommutativeRing"}]},{"TypeClassRef":"EuclideanRing"},{"ReExportRef":[["Data","Ring"],{"TypeClassRef":"Ring"}]},{"ReExportRef":[["Data","Semiring"],{"TypeClassRef":"Semiring"}]},{"ReExportRef":[["Data","Semiring"],{"ValueRef":{"Ident":"add"}}]},{"ValueRef":{"Ident":"degree"}},{"ValueRef":{"Ident":"div"}},{"ValueRef":{"Ident":"gcd"}},{"ValueRef":{"Ident":"lcm"}},{"ValueRef":{"Ident":"mod"}},{"ReExportRef":[["Data","Semiring"],{"ValueRef":{"Ident":"mul"}}]},{"ReExportRef":[["Data","Semiring"],{"ValueRef":{"Ident":"one"}}]},{"ReExportRef":[["Data","Ring"],{"ValueRef":{"Ident":"sub"}}]},{"ReExportRef":[["Data","Semiring"],{"ValueRef":{"Ident":"zero"}}]},{"ReExportRef":[["Data","Semiring"],{"ValueOpRef":"*"}]},{"ReExportRef":[["Data","Semiring"],{"ValueOpRef":"+"}]},{"ReExportRef":[["Data","Ring"],{"ValueOpRef":"-"}]},{"ValueOpRef":"/"},{"PositionedDeclarationRef":[{"start":[5,5],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[5,32]},[],{"ModuleRef":["Data","CommutativeRing"]}]},{"PositionedDeclarationRef":[{"start":[6,5],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[6,21]},[],{"ModuleRef":["Data","Ring"]}]},{"PositionedDeclarationRef":[{"start":[7,5],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[7,25]},[],{"ModuleRef":["Data","Semiring"]}]},{"TypeInstanceRef":{"Ident":"euclideanRingInt"}},{"TypeInstanceRef":{"Ident":"euclideanRingNumber"}}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","BooleanAlgebra"],"eiImportType":{"Explicit":[{"PositionedDeclarationRef":[{"start":[10,29],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[10,33]},[],{"ValueOpRef":"||"}]}]},"eiImportedAs":null},{"eiModule":["Data","CommutativeRing"],"eiImportType":{"Explicit":[{"PositionedDeclarationRef":[{"start":[11,30],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[11,51]},[],{"TypeClassRef":"CommutativeRing"}]}]},"eiImportedAs":null},{"eiModule":["Data","Eq"],"eiImportType":{"Explicit":[{"PositionedDeclarationRef":[{"start":[12,17],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[12,25]},[],{"TypeClassRef":"Eq"}]},{"PositionedDeclarationRef":[{"start":[12,27],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[12,31]},[],{"ValueOpRef":"=="}]}]},"eiImportedAs":null},{"eiModule":["Data","Ring"],"eiImportType":{"Explicit":[{"PositionedDeclarationRef":[{"start":[13,19],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[13,29]},[],{"TypeClassRef":"Ring"}]},{"PositionedDeclarationRef":[{"start":[13,31],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[13,34]},[],{"ValueRef":{"Ident":"sub"}}]},{"PositionedDeclarationRef":[{"start":[13,36],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[13,39]},[],{"ValueOpRef":"-"}]}]},"eiImportedAs":null},{"eiModule":["Data","Semiring"],"eiImportType":{"Explicit":[{"PositionedDeclarationRef":[{"start":[14,23],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,37]},[],{"TypeClassRef":"Semiring"}]},{"PositionedDeclarationRef":[{"start":[14,39],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,42]},[],{"ValueRef":{"Ident":"add"}}]},{"PositionedDeclarationRef":[{"start":[14,44],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,47]},[],{"ValueRef":{"Ident":"mul"}}]},{"PositionedDeclarationRef":[{"start":[14,49],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,52]},[],{"ValueRef":{"Ident":"one"}}]},{"PositionedDeclarationRef":[{"start":[14,54],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,58]},[],{"ValueRef":{"Ident":"zero"}}]},{"PositionedDeclarationRef":[{"start":[14,60],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,63]},[],{"ValueOpRef":"*"}]},{"PositionedDeclarationRef":[{"start":[14,65],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[14,68]},[],{"ValueOpRef":"+"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":7,"efOperator":"/","efAlias":[["Data","EuclideanRing"],{"Left":{"Ident":"div"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"EuclideanRing","edTypeKind":{"tag":"FunKind","contents":[{"tag":"NamedKind","contents":[["Prim"],"Type"]},{"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"EuclideanRing","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"tag":"RCons","contents":["degree",{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"tag":"RCons","contents":["div",{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeVar","contents":"a"}]}]},{"tag":"RCons","contents":["mod",{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeVar","contents":"a"}]}]},{"tag":"RCons","contents":["CommutativeRing0",{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"tag":"REmpty"}]}]},{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Data","CommutativeRing"],"CommutativeRing"]},{"tag":"TypeVar","contents":"a"}]}]},{"tag":"REmpty"}]}]}]}]}]}}},{"EDClass":{"edClassName":"EuclideanRing","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"degree"},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}],[{"Ident":"div"},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeVar","contents":"a"}]}]}],[{"Ident":"mod"},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeVar","contents":"a"}]}]}]],"edClassConstraints":[{"constraintClass":[["Data","CommutativeRing"],"CommutativeRing"],"constraintArgs":[{"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"degree"},"edValueType":{"tag":"ForAll","contents":["a",{"tag":"ConstrainedType","contents":[{"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"tag":"TypeVar","contents":"a"}],"constraintData":null},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},7]}}},{"EDValue":{"edValueName":{"Ident":"div"},"edValueType":{"tag":"ForAll","contents":["a",{"tag":"ConstrainedType","contents":[{"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"tag":"TypeVar","contents":"a"}],"constraintData":null},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeVar","contents":"a"}]}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"gcd"},"edValueType":{"tag":"ForAll","contents":["a",{"tag":"ConstrainedType","contents":[{"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"tag":"TypeVar","contents":"a"}],"constraintData":null},{"tag":"ConstrainedType","contents":[{"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"tag":"TypeVar","contents":"a"}],"constraintData":null},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeVar","contents":"a"}]}]}]}]},1]}}},{"EDValue":{"edValueName":{"Ident":"lcm"},"edValueType":{"tag":"ForAll","contents":["a",{"tag":"ConstrainedType","contents":[{"constraintClass":[["Data","Eq"],"Eq"],"constraintArgs":[{"tag":"TypeVar","contents":"a"}],"constraintData":null},{"tag":"ConstrainedType","contents":[{"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"tag":"TypeVar","contents":"a"}],"constraintData":null},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeVar","contents":"a"}]}]}]}]},5]}}},{"EDValue":{"edValueName":{"Ident":"mod"},"edValueType":{"tag":"ForAll","contents":["a",{"tag":"ConstrainedType","contents":[{"constraintClass":[["Data","EuclideanRing"],"EuclideanRing"],"constraintArgs":[{"tag":"TypeVar","contents":"a"}],"constraintData":null},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeApp","contents":[{"tag":"TypeApp","contents":[{"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"tag":"TypeVar","contents":"a"}]},{"tag":"TypeVar","contents":"a"}]}]}]},0]}}},{"EDInstance":{"edInstanceClassName":[["Data","EuclideanRing"],"EuclideanRing"],"edInstanceName":{"Ident":"euclideanRingInt"},"edInstanceTypes":[{"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[]}},{"EDInstance":{"edInstanceClassName":[["Data","EuclideanRing"],"EuclideanRing"],"edInstanceName":{"Ident":"euclideanRingNumber"},"edInstanceTypes":[{"tag":"TypeConstructor","contents":[["Prim"],"Number"]}],"edInstanceConstraints":[]}}],"efSourceSpan":{"start":[1,1],"name":"/Users/michael/projects/purescript-confusables/bower_components/purescript-prelude/src/Data/EuclideanRing.purs","end":[83,24]}}