Module
WAGS.Universe.Bin
- Package
- purescript-wags
- Repository
- mikesol/purescript-wags
#I Source
data I :: Bit
An on bit
Instances
BinSucc Bn (Bc I Bn)
BinSucc (Bc O r) (Bc I r)
(BinSucc r r') => BinSucc (Bc I r) (Bc O r')
BinSub' False (Bc I r) Bn (Bc I r)
BinSub' True (Bc I r) Bn (Bc O r)
(BinSub' False i o r) => BinSub' False (Bc I i) (Bc O o) (Bc I r)
(BinSub' True i o r) => BinSub' False (Bc O i) (Bc I o) (Bc I r)
(BinSub' False i o r) => BinSub' False (Bc I i) (Bc I o) (Bc O r)
(BinSub' False (Bc I i) (Bc I o) x) => BinSub' True (Bc I i) (Bc O o) x
(BinSub' True i o r) => BinSub' True (Bc O i) (Bc I o) (Bc O r)
(BinSub' False (Bc O i) (Bc I o) x) => BinSub' True (Bc I i) (Bc I o) x
Beq O I False
Beq I O False
Beq I I True
AllZerosToNull (Bc I o) (Bc I o)
(RemoveTrailingZeros r r') => RemoveTrailingZeros (Bc I r) (Bc I r')
(BinToInt r) => BinToInt (Bc I r)
#O Source
data O :: Bit
An off bit
Instances
BinSucc (Bc O r) (Bc I r)
(BinSucc r r') => BinSucc (Bc I r) (Bc O r')
BinSub' True (Bc I r) Bn (Bc O r)
BinSub' False (Bc O r) Bn (Bc O r)
(BinSub' True r Bn o) => BinSub' True (Bc O r) Bn o
(BinSub' False i o r) => BinSub' False (Bc O i) (Bc O o) (Bc O r)
(BinSub' False i o r) => BinSub' False (Bc I i) (Bc O o) (Bc I r)
(BinSub' True i o r) => BinSub' False (Bc O i) (Bc I o) (Bc I r)
(BinSub' False i o r) => BinSub' False (Bc I i) (Bc I o) (Bc O r)
(BinSub' False (Bc O i) (Bc I o) x) => BinSub' True (Bc O i) (Bc O o) x
(BinSub' False (Bc I i) (Bc I o) x) => BinSub' True (Bc I i) (Bc O o) x
(BinSub' True i o r) => BinSub' True (Bc O i) (Bc I o) (Bc O r)
Beq O O True
Beq O I False
Beq I O False
(AllZerosToNull o x) => AllZerosToNull (Bc O o) x
(AllZerosToNull r n, RemoveTrailingZeros r r', BinEq n Bn tf, Gate tf Bn (Bc O r') x) => RemoveTrailingZeros (Bc O r) x
(BinToInt r) => BinToInt (Bc O r)
#Bits Source
data Bits
0 or more bits. Note that, in all of the class operations on Bits
, the lowest bit is in the
leftmost position and the calculation proceeds from left to right. This is the opposite of how
bits are usually represented (lowest on the right and highest on the left) but is more compuationally efficient.
#Bc Source
data Bc :: Bit -> Bits -> Bits
Cons for bits
Instances
BinSucc Bn (Bc I Bn)
BinSucc (Bc O r) (Bc I r)
(BinSucc r r') => BinSucc (Bc I r) (Bc O r')
BinSub' False (Bc I r) Bn (Bc I r)
BinSub' True (Bc I r) Bn (Bc O r)
BinSub' False (Bc O r) Bn (Bc O r)
(BinSub' True r Bn o) => BinSub' True (Bc O r) Bn o
BinSub' True Bn (Bc x y) Bn
BinSub' False Bn (Bc x y) Bn
(BinSub' False i o r) => BinSub' False (Bc O i) (Bc O o) (Bc O r)
(BinSub' False i o r) => BinSub' False (Bc I i) (Bc O o) (Bc I r)
(BinSub' True i o r) => BinSub' False (Bc O i) (Bc I o) (Bc I r)
(BinSub' False i o r) => BinSub' False (Bc I i) (Bc I o) (Bc O r)
(BinSub' False (Bc O i) (Bc I o) x) => BinSub' True (Bc O i) (Bc O o) x
(BinSub' False (Bc I i) (Bc I o) x) => BinSub' True (Bc I i) (Bc O o) x
(BinSub' True i o r) => BinSub' True (Bc O i) (Bc I o) (Bc O r)
(BinSub' False (Bc O i) (Bc I o) x) => BinSub' True (Bc I i) (Bc I o) x
BinEq Bn (Bc x y) False
BinEq (Bc x y) Bn False
(Beq a x tf, BinEq b y rest, And tf rest r) => BinEq (Bc a b) (Bc x y) r
AllZerosToNull (Bc I o) (Bc I o)
(AllZerosToNull o x) => AllZerosToNull (Bc O o) x
(RemoveTrailingZeros r r') => RemoveTrailingZeros (Bc I r) (Bc I r')
(AllZerosToNull r n, RemoveTrailingZeros r r', BinEq n Bn tf, Gate tf Bn (Bc O r') x) => RemoveTrailingZeros (Bc O r) x
(BinToInt r) => BinToInt (Bc O r)
(BinToInt r) => BinToInt (Bc I r)
#Bn Source
data Bn :: Bits
Nil for bits
Instances
BinSucc Bn (Bc I Bn)
BinSub' False (Bc I r) Bn (Bc I r)
BinSub' True (Bc I r) Bn (Bc O r)
BinSub' False (Bc O r) Bn (Bc O r)
(BinSub' True r Bn o) => BinSub' True (Bc O r) Bn o
BinSub' True Bn (Bc x y) Bn
BinSub' True Bn Bn Bn
BinSub' False Bn (Bc x y) Bn
BinSub' False Bn Bn Bn
BinEq Bn Bn True
BinEq Bn (Bc x y) False
BinEq (Bc x y) Bn False
AllZerosToNull Bn Bn
RemoveTrailingZeros Bn Bn
BinToInt Bn
#PtrListNil Source
#BinSub' Source
class BinSub' (carrying :: Type) (l :: Bits) (r :: Bits) (o :: Bits) | carrying l r -> o
Internal class helping with binary subtraction.
Instances
BinSub' False (Bc I r) Bn (Bc I r)
BinSub' True (Bc I r) Bn (Bc O r)
BinSub' False (Bc O r) Bn (Bc O r)
(BinSub' True r Bn o) => BinSub' True (Bc O r) Bn o
BinSub' True Bn (Bc x y) Bn
BinSub' True Bn Bn Bn
BinSub' False Bn (Bc x y) Bn
BinSub' False Bn Bn Bn
(BinSub' False i o r) => BinSub' False (Bc O i) (Bc O o) (Bc O r)
(BinSub' False i o r) => BinSub' False (Bc I i) (Bc O o) (Bc I r)
(BinSub' True i o r) => BinSub' False (Bc O i) (Bc I o) (Bc I r)
(BinSub' False i o r) => BinSub' False (Bc I i) (Bc I o) (Bc O r)
(BinSub' False (Bc O i) (Bc I o) x) => BinSub' True (Bc O i) (Bc O o) x
(BinSub' False (Bc I i) (Bc I o) x) => BinSub' True (Bc I i) (Bc O o) x
(BinSub' True i o r) => BinSub' True (Bc O i) (Bc I o) (Bc O r)
(BinSub' False (Bc O i) (Bc I o) x) => BinSub' True (Bc I i) (Bc I o) x
#AllZerosToNull Source
class AllZerosToNull (i :: Bits) (o :: Bits) | i -> o
Class that turns a list of Os to Bn
.
Instances
AllZerosToNull Bn Bn
AllZerosToNull (Bc I o) (Bc I o)
(AllZerosToNull o x) => AllZerosToNull (Bc O o) x
#RemoveTrailingZeros Source
class RemoveTrailingZeros (i :: Bits) (o :: Bits) | i -> o
Class that removes trailing 0s from a binary number.
Instances
RemoveTrailingZeros Bn Bn
(RemoveTrailingZeros r r') => RemoveTrailingZeros (Bc I r) (Bc I r')
(AllZerosToNull r n, RemoveTrailingZeros r r', BinEq n Bn tf, Gate tf Bn (Bc O r') x) => RemoveTrailingZeros (Bc O r) x
#type (+:) Source
Operator alias for WAGS.Universe.Bin.PtrListCons (right-associative / precedence 5)
- Modules
- FRP.
Event. MIDI - WAGS.
Change - WAGS.
Connect - WAGS.
Control. Functions - WAGS.
Control. MemoizedState - WAGS.
Control. Qualified - WAGS.
Control. Thunkable - WAGS.
Control. Types - WAGS.
Create - WAGS.
Cursor - WAGS.
Debug - WAGS.
Destroy - WAGS.
Disconnect - WAGS.
Graph. Constructors - WAGS.
Graph. Decorators - WAGS.
Graph. Getter - WAGS.
Graph. Optionals - WAGS.
Graph. Parameter - WAGS.
Interpret - WAGS.
Move - WAGS.
MoveNode - WAGS.
Rebase - WAGS.
Rendered - WAGS.
Run - WAGS.
Universe. AudioUnit - WAGS.
Universe. Bin - WAGS.
Universe. BinN - WAGS.
Universe. EdgeProfile - WAGS.
Universe. Graph - WAGS.
Universe. Node - WAGS.
Universe. Skolems - WAGS.
Universe. Universe - WAGS.
Util - WAGS.
Validation
Not for public use - used internally in public functions toInt' and toInt.