diff --git a/Nu/Nu/Nu.Gaia/GaiaFunctions.fs b/Nu/Nu/Nu.Gaia/GaiaFunctions.fs
index b852f449ef..d549568ce1 100644
--- a/Nu/Nu/Nu.Gaia/GaiaFunctions.fs
+++ b/Nu/Nu/Nu.Gaia/GaiaFunctions.fs
@@ -806,7 +806,8 @@ module Gaia =
then World.exit world
else world
- let private attachToWorld targetDir form world =
+ /// Attach Gaia to the given world.
+ let attachToWorld targetDir form world =
match World.getUserState world : obj with
| :? unit ->
if World.getSelectedScreen world = Simulants.EditorScreen then
diff --git a/Nu/Nu/Nu.Gaia/Interactive.fsx b/Nu/Nu/Nu.Gaia/Interactive.fsx
index 2e2ffb0c36..b3ec794dd7 100644
--- a/Nu/Nu/Nu.Gaia/Interactive.fsx
+++ b/Nu/Nu/Nu.Gaia/Interactive.fsx
@@ -8,12 +8,12 @@
#r "../../../Prime/xUnit/xunit.dll"
#r "../../../Nu/FSharpx.Core/FSharpx.Core.dll"
#r "../../../Nu/FSharpx.Collections/FSharpx.Collections.dll"
-#r "../../../Nu/Prime/Release/Prime.exe"
#r "../../../Nu/Farseer/FarseerPhysics.dll"
#r "../../../Nu/Magick.NET/Magick.NET-AnyCPU.dll"
#r "../../../Nu/SDL2#/Debug/SDL2#.dll"
-#r "../../../Nu/TiledSharp/Release/TiledSharp.dll"
+#r "../../../Nu/TiledSharp/Debug/TiledSharp.dll"
#r "../../../SDL2Addendum/SDL2Addendum/SDL2Addendum/bin/Debug/SDL2Addendum.dll"
+#r "../../../Prime/Prime/Prime/bin/Debug/Prime.exe"
#r "../../../Nu/Nu/Nu/bin/Debug/Nu.exe"
#r "../../../Nu/Nu/Nu.Gaia.Design/bin/Debug/Nu.Gaia.Design.exe"
#r "../../../Nu/Nu/Nu.Gaia/bin/Debug/Nu.Gaia.exe"
diff --git a/Nu/Nu/Nu/Interactive.fsx b/Nu/Nu/Nu/Interactive.fsx
index d5197294b7..a06df1c866 100644
--- a/Nu/Nu/Nu/Interactive.fsx
+++ b/Nu/Nu/Nu/Interactive.fsx
@@ -8,12 +8,12 @@
#r "../../../Prime/xUnit/xunit.dll"
#r "../../../Nu/FSharpx.Core/FSharpx.Core.dll"
#r "../../../Nu/FSharpx.Collections/FSharpx.Collections.dll"
-#r "../../../Nu/Prime/Release/Prime.exe"
#r "../../../Nu/Farseer/FarseerPhysics.dll"
#r "../../../Nu/Magick.NET/Magick.NET-AnyCPU.dll"
-#r "../../../Nu/SDL2#/Release/SDL2#.dll"
-#r "../../../Nu/TiledSharp/Release/TiledSharp.dll"
+#r "../../../Nu/SDL2#/Debug/SDL2#.dll"
+#r "../../../Nu/TiledSharp/Debug/TiledSharp.dll"
#r "../../../SDL2Addendum/SDL2Addendum/SDL2Addendum/bin/Debug/SDL2Addendum.dll"
+#r "../../../Prime/Prime/Prime/bin/Debug/Prime.exe"
#r "../../../Nu/Nu/Nu/bin/Debug/Nu.exe"
open System
diff --git a/Nu/Nu/Nu/Nu.fsproj b/Nu/Nu/Nu/Nu.fsproj
index 1ffc8f2e2c..33f7e8640f 100644
--- a/Nu/Nu/Nu/Nu.fsproj
+++ b/Nu/Nu/Nu/Nu.fsproj
@@ -84,6 +84,7 @@
+
diff --git a/Nu/Nu/Nu/Program.fs b/Nu/Nu/Nu/Program.fs
index 5997a8f86d..2e130ae4b7 100644
--- a/Nu/Nu/Nu/Program.fs
+++ b/Nu/Nu/Nu/Program.fs
@@ -20,13 +20,14 @@ module Program =
system | language | editor
-----------------------------------------------
- overlay | s-expr DSL | Visual Studio
- asset graph | s-expr DSL | Visual Studio
+ overlay | s-expr DSL | Visual Studio & Gaia
+ asset graph | s-expr DSL | Visual Studio & Gaia
simulants defs | s-expr DSL | Gaia
event filtering | s-expr DSL | Gaia
collision bodies| s-expr DSL | Gaia
- effect system | s-expr DSL | Aether (TBA)
- mind (TBA) | s-expr DSL | Pheobe (TBA) - http://www.cs.uu.nl/research/techreps/repo/CS-2013/2013-003.pdf
+ effect system | s-expr DSL | Gaia & Aether (TBA)
+ mind(TBA) | s-expr DSL | Gaia & Pheobe (TBA) - http://www.cs.uu.nl/research/techreps/repo/CS-2013/2013-003.pdf
+ vsrl script(WIP)| s-expr DSL | Visual Studio & Gaia
interactions | F# (chains) | Visual Studio
subsystems | F# | Visual Studio
dispatchers | F# | Visual Studio
diff --git a/Nu/Nu/Nu/Reflection.fs b/Nu/Nu/Nu/Reflection.fs
index ae11e7809c..814b013db7 100644
--- a/Nu/Nu/Nu/Reflection.fs
+++ b/Nu/Nu/Nu/Reflection.fs
@@ -15,11 +15,8 @@ type [] PropertyExpr =
| DefineExpr of obj
| VariableExpr of (unit -> obj)
-[]
-module PropertyExpr =
-
/// Evaluate a property expression.
- let eval expr =
+ static member eval expr =
match expr with
| DefineExpr value -> value
| VariableExpr fn -> fn ()
@@ -30,11 +27,8 @@ type [] PropertyDefinition =
PropertyType : Type
PropertyExpr : PropertyExpr }
-[]
-module PropertyDefinition =
-
/// Validate a property definition.
- let validate propertyDefinition =
+ static member validate propertyDefinition =
if propertyDefinition.PropertyName = "FacetNames" then failwith "FacetNames cannot be an intrinsic property."
if propertyDefinition.PropertyName = "OptOverlayName" then failwith "OptOverlayName cannot be an intrinsic property."
if Array.exists (fun gta -> gta = typeof) propertyDefinition.PropertyType.GenericTypeArguments then
@@ -43,13 +37,13 @@ module PropertyDefinition =
"Use explicit typing on all values that carry incomplete type information such as empty lists, empty sets, and none options."
/// Make a property definition.
- let make propertyName propertyType propertyExpr =
+ static member make propertyName propertyType propertyExpr =
{ PropertyName = propertyName; PropertyType = propertyType; PropertyExpr = propertyExpr }
/// Make a property definition, validating it in the process.
- let makeValidated propertyName propertyType propertyExpr =
- let result = make propertyName propertyType propertyExpr
- validate result
+ static member makeValidated propertyName propertyType propertyExpr =
+ let result = PropertyDefinition.make propertyName propertyType propertyExpr
+ PropertyDefinition.validate result
result
/// In tandem with the define literal, grants a nice syntax to define value properties.
diff --git a/Nu/Nu/Nu/WorldEvents.fs b/Nu/Nu/Nu/WorldEvents.fs
new file mode 100644
index 0000000000..3cae0a65ef
--- /dev/null
+++ b/Nu/Nu/Nu/WorldEvents.fs
@@ -0,0 +1,101 @@
+// Nu Game Engine.
+// Copyright (C) Bryan Edds, 2012-2016.
+
+namespace Nu
+open System
+open OpenTK
+open Prime
+open Nu
+
+/// The data for a mouse move event.
+type [] MouseMoveData =
+ { Position : Vector2 }
+
+/// The data for a mouse button event.
+type [] MouseButtonData =
+ { Position : Vector2
+ Button : MouseButton
+ Down : bool }
+
+/// The data for a keyboard key event.
+type [] KeyboardKeyData =
+ { ScanCode : int
+ Repeated : bool
+ Down : bool }
+
+/// The data for a collision event.
+type [] CollisionData =
+ { Normal : Vector2
+ Speed : single
+ Collidee : Entity }
+
+[]
+module Events =
+
+ let Any = Prime.Events.Any
+ let Subscribe = ntoa !!"Subscribe"
+ let Unsubscribe = ntoa !!"Unsubscribe"
+ let Update = ntoa !!"Update"
+ let Select = ntoa !!"Select"
+ let Deselect = ntoa !!"Deselect"
+ let Down = ntoa !!"Down"
+ let Up = ntoa !!"Up"
+ let Click = ntoa !!"Click"
+ let On = ntoa !!"On"
+ let Off = ntoa !!"Off"
+ let Touch = ntoa !!"Touch"
+ let Untouch = ntoa !!"Untouch"
+ let Mouse = ntoa !!"Mouse"
+ let MouseMove = Mouse -<- ntoa !!"Move"
+ let MouseDrag = Mouse -<- ntoa !!"Drag"
+ let MouseLeft = Mouse -<- ntoa !!"Left"
+ let MouseCenter = Mouse -<- ntoa !!"Center"
+ let MouseRight = Mouse -<- ntoa !!"Right"
+ let MouseX1 = Mouse -<- ntoa !!"X1"
+ let MouseX2 = Mouse -<- ntoa !!"X2"
+ let MouseLeftDown = MouseLeft -|- ntoa !!"Down"
+ let MouseLeftUp = MouseLeft -|- ntoa !!"Up"
+ let MouseLeftChange = MouseLeft -|- ntoa !!"Change"
+ let MouseCenterDown = MouseCenter -|- ntoa !!"Down"
+ let MouseCenterUp = MouseCenter -|- ntoa !!"Up"
+ let MouseCenterChange = MouseCenter -|- ntoa !!"Change"
+ let MouseRightDown = MouseRight -|- ntoa !!"Down"
+ let MouseRightUp = MouseRight -|- ntoa !!"Up"
+ let MouseRightChange = MouseRight -|- ntoa !!"Change"
+ let MouseX1Down = MouseX1 -|- ntoa !!"Down"
+ let MouseX1Up = MouseX1 -|- ntoa !!"Up"
+ let MouseX1Change = MouseX1 -|- ntoa !!"Change"
+ let MouseX2Down = MouseX2 -|- ntoa !!"Down"
+ let MouseX2Up = MouseX2 -|- ntoa !!"Up"
+ let MouseX2Change = MouseX2 -|- ntoa !!"Change"
+ let KeyboardKey = ntoa !!"KeyboardKey"
+ let KeyboardKeyDown = Mouse -<- ntoa !!"Down"
+ let KeyboardKeyUp = Mouse -<- ntoa !!"Up"
+ let KeyboardKeyChange = Mouse -<- ntoa !!"Change"
+ let Collision = ntoa !!"Collision"
+ let Incoming = ntoa !!"Incoming"
+ let IncomingStart = Incoming -|- ntoa !!"Start"
+ let IncomingFinish = Incoming -|- ntoa !!"Finish"
+ let Outgoing = ntoa !!"Outgoing"
+ let OutgoingStart = Outgoing -|- ntoa !!"Start"
+ let OutgoingFinish = Outgoing -|- ntoa !!"Finish"
+ let Assets = ntoa !!"Assets"
+ let AssetsReload = Assets -<- ntoa !!"Reload"
+ let Ambient = ntoa !!"Ambient"
+ let AmbientChange = Ambient -<- ntoa !!"Change"
+ let AmbientChangeProperty = fun propertyName -> Ambient -<- ltoa [!!"Change"; !!propertyName]
+ let Game = ntoa !!"Game"
+ let GameChange = Game -<- ntoa> !!"Change"
+ let Screen = ntoa !!"Screen"
+ let ScreenAdd = Screen -<- ntoa !!"Add"
+ let ScreenRemoving = Screen -<- ntoa !!"Removing"
+ let ScreenChange = Screen -<- ntoa> !!"Change"
+ let Group = ntoa !!"Group"
+ let GroupAdd = Group -<- ntoa !!"Add"
+ let GroupRemoving = Group -<- ntoa !!"Removing"
+ let GroupChange = Group -<- ntoa> !!"Change"
+ let Entity = ntoa !!"Entity"
+ let EntityAdd = Entity -<- ntoa !!"Add"
+ let EntityRemoving = Entity -<- ntoa !!"Removing"
+ let EntityChange = Entity -<- ntoa> !!"Change"
+ let EntityChangeProperty = fun propertyName -> Entity -<- ltoa> [!!"Change"; !!propertyName]
\ No newline at end of file
diff --git a/Nu/Nu/Nu/WorldScripting.fs b/Nu/Nu/Nu/WorldScripting.fs
index 26c1ca0ea8..216bcbff14 100644
--- a/Nu/Nu/Nu/WorldScripting.fs
+++ b/Nu/Nu/Nu/WorldScripting.fs
@@ -258,4 +258,4 @@ module Scripting =
type [] ScriptSystem =
private
{ Scripts : Vmap
- Debugging : bool }
+ Debugging : bool }
\ No newline at end of file
diff --git a/Nu/Nu/Nu/WorldTypes2.fs b/Nu/Nu/Nu/WorldTypes2.fs
index c7ee4b26e8..aeeba30fa3 100644
--- a/Nu/Nu/Nu/WorldTypes2.fs
+++ b/Nu/Nu/Nu/WorldTypes2.fs
@@ -6,28 +6,41 @@ open System
open OpenTK
open Prime
open Nu
+
+/// Provides a way to make user-defined dispatchers, facets, and various other sorts of game-
+/// specific values.
+type NuPlugin () =
+
+ /// Make user-defined subsystems such that Nu can utilitze them at run-time.
+ abstract MakeSubsystems : unit -> (string * World Subsystem) list
+ default this.MakeSubsystems () = []
+
+ /// Optionally make a user-defined game dispatchers such that Nu can utilize it at run-time.
+ abstract MakeOptGameDispatcher : unit -> GameDispatcher option
+ default this.MakeOptGameDispatcher () = None
+
+ /// Make user-defined screen dispatchers such that Nu can utilize them at run-time.
+ abstract MakeScreenDispatchers : unit -> ScreenDispatcher list
+ default this.MakeScreenDispatchers () = []
+
+ /// Make user-defined group dispatchers such that Nu can utilize them at run-time.
+ abstract MakeGroupDispatchers : unit -> GroupDispatcher list
+ default this.MakeGroupDispatchers () = []
+
+ /// Make user-defined entity dispatchers such that Nu can utilize them at run-time.
+ abstract MakeEntityDispatchers : unit -> EntityDispatcher list
+ default this.MakeEntityDispatchers () = []
+
+ /// Make user-defined assets such that Nu can utilize them at run-time.
+ abstract MakeFacets : unit -> Facet list
+ default this.MakeFacets () = []
-/// The data for a mouse move event.
-type [] MouseMoveData =
- { Position : Vector2 }
-
-/// The data for a mouse button event.
-type [] MouseButtonData =
- { Position : Vector2
- Button : MouseButton
- Down : bool }
-
-/// The data for a keyboard key event.
-type [] KeyboardKeyData =
- { ScanCode : int
- Repeated : bool
- Down : bool }
-
-/// The data for a collision event.
-type [] CollisionData =
- { Normal : Vector2
- Speed : single
- Collidee : Entity }
+ /// Make the overlay routes that will allow Nu to use different overlays for the specified
+ /// types. For example, a returned router of (typeof.Name, Some "CustomButtonOverlay")
+ /// will cause all buttons to use the overlay with the name "CustomButtonOverlay" rather
+ /// than the default "ButtonDispatcher" overlay.
+ abstract MakeOverlayRoutes : unit -> (string * string option) list
+ default this.MakeOverlayRoutes () = []
/// Describes an entity value independent of the engine.
type [] EntityDescriptor =
@@ -75,112 +88,6 @@ type [] GameDescriptor =
GameProperties = Map.empty
Screens = [] }
-/// Provides a way to make user-defined dispatchers, facets, and various other sorts of game-
-/// specific values.
-type NuPlugin () =
-
- /// Make user-defined subsystems such that Nu can utilitze them at run-time.
- abstract MakeSubsystems : unit -> (string * World Subsystem) list
- default this.MakeSubsystems () = []
-
- /// Optionally make a user-defined game dispatchers such that Nu can utililize it at run-time.
- abstract MakeOptGameDispatcher : unit -> GameDispatcher option
- default this.MakeOptGameDispatcher () = None
-
- /// Make user-defined screen dispatchers such that Nu can utililize them at run-time.
- abstract MakeScreenDispatchers : unit -> ScreenDispatcher list
- default this.MakeScreenDispatchers () = []
-
- /// Make user-defined group dispatchers such that Nu can utililize them at run-time.
- abstract MakeGroupDispatchers : unit -> GroupDispatcher list
- default this.MakeGroupDispatchers () = []
-
- /// Make user-defined entity dispatchers such that Nu can utililize them at run-time.
- abstract MakeEntityDispatchers : unit -> EntityDispatcher list
- default this.MakeEntityDispatchers () = []
-
- /// Make user-defined assets such that Nu can utililize them at run-time.
- abstract MakeFacets : unit -> Facet list
- default this.MakeFacets () = []
-
- /// Make the overlay routes that will allow Nu to use different overlays for the specified
- /// types. For example, a returned router of (typeof.Name, Some "CustomButtonOverlay")
- /// will cause all buttons to use the overlay with the name "CustomButtonOverlay" rather
- /// than the default "ButtonDispatcher" overlay.
- abstract MakeOverlayRoutes : unit -> (string * string option) list
- default this.MakeOverlayRoutes () = []
-
-[]
-module Events =
-
- let Any = Prime.Events.Any
- let Subscribe = ntoa !!"Subscribe"
- let Unsubscribe = ntoa !!"Unsubscribe"
- let Update = ntoa !!"Update"
- let Select = ntoa !!"Select"
- let Deselect = ntoa !!"Deselect"
- let Down = ntoa !!"Down"
- let Up = ntoa !!"Up"
- let Click = ntoa !!"Click"
- let On = ntoa !!"On"
- let Off = ntoa !!"Off"
- let Touch = ntoa !!"Touch"
- let Untouch = ntoa !!"Untouch"
- let Mouse = ntoa !!"Mouse"
- let MouseMove = Mouse -<- ntoa !!"Move"
- let MouseDrag = Mouse -<- ntoa !!"Drag"
- let MouseLeft = Mouse -<- ntoa !!"Left"
- let MouseCenter = Mouse -<- ntoa !!"Center"
- let MouseRight = Mouse -<- ntoa !!"Right"
- let MouseX1 = Mouse -<- ntoa !!"X1"
- let MouseX2 = Mouse -<- ntoa !!"X2"
- let MouseLeftDown = MouseLeft -|- ntoa !!"Down"
- let MouseLeftUp = MouseLeft -|- ntoa !!"Up"
- let MouseLeftChange = MouseLeft -|- ntoa !!"Change"
- let MouseCenterDown = MouseCenter -|- ntoa !!"Down"
- let MouseCenterUp = MouseCenter -|- ntoa !!"Up"
- let MouseCenterChange = MouseCenter -|- ntoa !!"Change"
- let MouseRightDown = MouseRight -|- ntoa !!"Down"
- let MouseRightUp = MouseRight -|- ntoa !!"Up"
- let MouseRightChange = MouseRight -|- ntoa !!"Change"
- let MouseX1Down = MouseX1 -|- ntoa !!"Down"
- let MouseX1Up = MouseX1 -|- ntoa !!"Up"
- let MouseX1Change = MouseX1 -|- ntoa !!"Change"
- let MouseX2Down = MouseX2 -|- ntoa !!"Down"
- let MouseX2Up = MouseX2 -|- ntoa !!"Up"
- let MouseX2Change = MouseX2 -|- ntoa !!"Change"
- let KeyboardKey = ntoa !!"KeyboardKey"
- let KeyboardKeyDown = Mouse -<- ntoa !!"Down"
- let KeyboardKeyUp = Mouse -<- ntoa !!"Up"
- let KeyboardKeyChange = Mouse -<- ntoa !!"Change"
- let Collision = ntoa !!"Collision"
- let Incoming = ntoa !!"Incoming"
- let IncomingStart = Incoming -|- ntoa !!"Start"
- let IncomingFinish = Incoming -|- ntoa !!"Finish"
- let Outgoing = ntoa !!"Outgoing"
- let OutgoingStart = Outgoing -|- ntoa !!"Start"
- let OutgoingFinish = Outgoing -|- ntoa !!"Finish"
- let Assets = ntoa !!"Assets"
- let AssetsReload = Assets -<- ntoa !!"Reload"
- let Ambient = ntoa !!"Ambient"
- let AmbientChange = Ambient -<- ntoa !!"Change"
- let AmbientChangeProperty = fun propertyName -> Ambient -<- ltoa [!!"Change"; !!propertyName]
- let Game = ntoa !!"Game"
- let GameChange = Game -<- ntoa> !!"Change"
- let Screen = ntoa !!"Screen"
- let ScreenAdd = Screen -<- ntoa !!"Add"
- let ScreenRemoving = Screen -<- ntoa !!"Removing"
- let ScreenChange = Screen -<- ntoa> !!"Change"
- let Group = ntoa !!"Group"
- let GroupAdd = Group -<- ntoa !!"Add"
- let GroupRemoving = Group -<- ntoa !!"Removing"
- let GroupChange = Group -<- ntoa> !!"Change"
- let Entity = ntoa !!"Entity"
- let EntityAdd = Entity -<- ntoa !!"Add"
- let EntityRemoving = Entity -<- ntoa !!"Removing"
- let EntityChange = Entity -<- ntoa> !!"Change"
- let EntityChangeProperty = fun propertyName -> Entity -<- ltoa> [!!"Change"; !!propertyName]
-
[]
module SimulantOperators =
diff --git a/Nu/Prime/Debug/Prime.XML b/Nu/Prime/Debug/Prime.XML
deleted file mode 100644
index 6e7a10805e..0000000000
--- a/Nu/Prime/Debug/Prime.XML
+++ /dev/null
@@ -1,2751 +0,0 @@
-
-
-Prime
-
-
-
- Try to find an index in reverse.
-
-
-
-
- Hash a list.
- NOTE: May be a pessimization.
-
-
-
-
- Compare a list of strings lexicographically.
-
-
-
-
- Stack a list from the left, starting with the empty list.
- Example - [0, 1, 2] becomes [[]; [0]; [0; 1]; [0; 1; 2]]
-
-
-
-
- Remove all elements from a list that satisfy a predicate.
-
-
-
-
- Implement a fold while folder results in Some.
-
-
-
-
- Convert a list to a HashSet.
-
-
-
-
- Convert a list of values to a Dictionary.
-
-
-
-
- Convert a list of pairs to a Dictionary.
-
-
-
-
- Add a list of values to a Dictionary.
-
-
-
-
- Add a list of pairs to a Dictionary.
-
-
-
-
- Get the set interesection of two lists.
-
-
-
-
- Query that the first list a superset of the second list.
-
-
-
-
- Query that the first list a subset of the second list.
-
-
-
-
- Runs a binary set operation on two lists that are converted to sets.
-
-
-
-
- Take elements until an element satisfies a predicate, taking also that element.
-
-
-
-
- Join a list of lists into a list separated by sep.
-
-
-
-
- Join a list into a string separated by sep.
- TODO: consider optimizing with a StringBuilder.
-
-
-
-
- Join a list into a string separated by sep.
-
-
-
-
- Pad a list with instances of its last item so that it is proportion to another list.
-
-
-
-
- Pad a list with count instances of its last item.
-
-
-
-
- Pad a list with count instances of its last item, removing items from back if count is negative.
-
-
-
-
- Make a transformed list of options an all or nothing proposition.
- TODO: optimize with program fusion.
-
-
-
-
- Make a list of options an all or nothing proposition.
- TODO: optimize with program fusion.
-
-
-
-
- Convert option values to definite values.
-
-
-
-
- Get all but the last item from a list.
-
-
-
-
- Foldi for lists.
-
-
-
-
- Fornone for lists.
-
-
-
-
- Replace a list's head.
-
-
-
-
- Project the first list onto the second.
-
-
-
-
- A more tolerant and open-minded take.
-
-
-
-
- Zip two lists by a function.
- TODO: optimize with program fusion.
-
-
-
-
- Threads a computation state through the adjacent members of a list.
-
-
-
-
- For all 2 that indicates uneven lists by returning false rather than raising.
-
-
-
-
- Try to find a value at index n.
-
-
-
-
- Try to find a value.
-
-
-
-
- Query that two lists are of the same length.
-
-
-
-
- Query that a list has at least n elements.
-
-
-
-
- Query that a list has exactly n elements.
-
-
-
-
- Query that a list has at most n elements.
-
-
-
-
- Query that a list has at least n elements.
-
-
-
-
- Partition a list.
-
-
-
-
- Check that a predicate passes for NO items in a list.
-
-
-
-
- Cons with flipped arguments.
-
-
-
-
- The missing cons function.
-
-
-
-
- Converts Address types.
-
-
-
-
- Describes an event subscription that can be boxed / unboxed.
-
-
-
-
- Monadic return for the chain monad.
-
-
-
-
- Monadic bind for the chain monad.
-
-
-
-
- Implements the chain monad.
-
-
-
-
- The Chain monad. Allows the user to define a chain of operations over the world that
- optionally spans across a bounded number of events.
-
- The following is a potentially tail-recursible representation as speculated by @tpetracek -
- 'w -> ('w * Either<'e -> Chain<'e, 'a, 'w>, 'a> -> 'a) -> 'a
-
-
-
-
- Haskell-style Either type.
-
-
-
-
- An event used by the event system.
-
-
-
-
- Adds the capability to use purely-functional events with the given program type 'w.
-
-
-
-
- Describes whether an in-flight event has been resolved or should cascade to down-stream handlers.
-
-
-
-
- A hash-key-value triple, implemented with a struct for efficiency.
-
-
-
-
- Along with the Label binding, is used to elaborate the name of a target without using a
- string literal.
-
-
-
-
- Specifies whether an event-based application is running or exiting.
-
-
-
-
- Converts Name types.
-
-
-
-
- An observation in the functional reactive style.
-
-
-
-
- A participant in the event system.
-
-
-
-
- The data for a change in a participant.
-
-
-
-
- Concatenate two addresses, takings the type of first address.
-
-
-
-
- Concatenate two addresses, forcing the type of first address.
-
-
-
-
- Operators for the Participant type.
-
-
-
-
- Converts Relation types.
-
-
-
-
- Effectively new-types the Regex type to implement custom type-conversation without needing
- explicit initialization by the client program.
-
-
-
-
- Converts Rexpr types.
-
-
-
-
- A map of event subscriptions.
-
-
-
-
- An entry in the subscription map.
-
-
-
-
- Abstracts over a subscription sorting procedure.
-
-
-
-
- Describes an event subscription.
-
-
-
-
- Compresses two unions into a single union in a symbolic-expression.
-
-
-
-
- A map of subscription keys to unsubscription data.
-
-
-
-
- The Vsync computation expression builder.
-
-
-
-
- An attribute to specify the default value of an XProperty.
-
-
-
-
- A map of XProperties.
-
-
-
-
- An Xtension property.
-
-
-
-
- Describes an XProperty.
-
-
-
-
- Concatenate two addresses, taking the type of the second address.
-
-
-
-
- Concatenate two addresses, forcing the type of second address.
-
-
-
-
- Concatenate two addresses, taking the type of first address.
-
-
-
-
- Concatenate two addresses, forcing the type of first address.
-
-
-
-
- Concatenate two addresses of the same type.
-
-
-
-
- Convert a single name into an address.
-
-
-
-
- Make an address from a '/' delimited string.
- NOTE: do not move this function as the AddressConverter's reflection code relies on it being exactly here!
-
-
-
-
- Convert a names list into an address.
-
-
-
-
- Hash an Address.
-
-
-
-
- Convert a full name into an address.
-
-
-
-
- Equate Addresses.
-
-
-
-
- Compare Addresses.
-
-
-
-
- Convert any address to an obj Address.
-
-
-
-
- Convert an address of type 'a to an address of type 'b.
-
-
-
-
- Concatenate two addresses, forcing the type of second address.
-
-
-
-
- Concatenate two addresses, taking the type of the second address.
-
-
-
-
- Concatenate two addresses, forcing the type of first address.
-
-
-
-
- Concatenate two addresses, taking the type of first address.
-
-
-
-
- Concatenate two addresses of the same type.
-
-
-
-
- Specifies the address of an identifiable value.
-
-
-
-
- Query that an address is devoid of names.
-
-
-
-
- Get the length of an address by its names.
-
-
-
-
- Take an address composed of all but the last name of an address.
-
-
-
-
- Take the last name of an address.
-
-
-
-
- Take an address composed of the given number of names of an address.
-
-
-
-
- Take an address composed of the name of an address minus a skipped amount of names.
-
-
-
-
- Take a name of an address.
-
-
-
-
- Take the tail of an address.
-
-
-
-
- Take the head of an address.
-
-
-
-
- Get the address's hash code.
-
-
-
-
- Get the name of an address.
-
-
-
-
- Get the full name of an address.
-
-
-
-
- Change the type of an address.
-
-
-
-
- Get the names of an address.
-
-
-
-
- Make an address from a '/' delimited string.
-
-
-
-
- Make an address from names.
-
-
-
-
- The empty address.
-
-
-
-
- Concatenate two addresses, forcing the type of second address.
-
-
-
-
- Concatenate two addresses, taking the type of the second address.
-
-
-
-
- Concatenate two addresses, forcing the type of first address.
-
-
-
-
- Concatenate two addresses, taking the type of first address.
-
-
-
-
- Concatenate two addresses of the same type.
-
-
-
-
- Convert any address to an obj Address.
-
-
-
-
- Convert a single name into an address.
-
-
-
-
- Convert a full name into an address.
-
-
-
-
- Convert a names list into an address.
-
-
-
-
- Convert an address of type 'a to an address of type 'b.
-
-
-
-
- Creates an asynchronous operation that runs 'f' over computation of 'a'.
-
-
-
-
- Async is missing a couple of functions, as we know...
-
-
-
-
- Run a chain over Nu's event system.
- Allows each chainhronized operation to run without referencing its source event, and
- without specifying its event handling approach by assuming Resolve.
-
-
-
-
- Run a chain over Nu's event system.
- Allows each chainhronized operation to run without referencing its source event, and
- without specifying its event handling approach by assuming Cascade.
-
-
-
-
- Run a chain to its end, providing unit for all its steps.
-
-
-
-
- Run a chain to its end, providing unit for all its steps.
-
-
-
-
- Run a chain to its end, providing 'e' for all its steps.
-
-
-
-
- Advance a chain value by one step, providing 'e'.
-
-
-
-
- Step once into a chain.
-
-
-
-
- Loop in a chain context while 'pred' evaluates to true.
-
-
-
-
- Loop in a chain context while 'pred' evaluate to true.
-
-
-
-
- React to the next event, discarding the event's value.
-
-
-
-
- React to the next event, using the event's value in the reaction.
-
-
-
-
- Pass over the next event.
-
-
-
-
- Get the next event.
-
-
-
-
- Update the world.
-
-
-
-
- Update the world with an additional transformed world parameter.
-
-
-
-
- Set the world.
-
-
-
-
- Get the world transformed by 'by'.
-
-
-
-
- Get the world.
-
-
-
-
- Monadic bind for the chain monad.
-
-
-
-
- Monadic return for the chain monad.
-
-
-
-
- Builds the chain monad.
-
-
-
-
- Like dict, but returns a concrete Dictionary instance with structural hashing.
-
-
-
-
- Try to find a value in a dictonary.
-
-
-
-
- Map over a dictionary. A new dictionary is produced.
-
-
-
-
- Make a dictionary with a single element.
-
-
-
-
- Add all the elements of another dictionary.
-
-
-
-
- Add multiple kvps to a dictionary.
-
-
-
-
- Check value equality of dictionary.
- NOTE: be wary the highly imperative nature of this code.
-
-
-
-
- Force the addition of an element, removing the existing one if necessary.
-
-
-
-
- Try to add an element, returning false upon failure.
-
-
-
-
- Builds an either monad.
-
-
-
-
- Split a sequences of Either values into a pair of left and right value lists.
-
-
-
-
- Map over the right side of an Either value.
-
-
-
-
- Map over the left side of an Either value.
-
-
-
-
- Get only the Right values of a sequence of an Either value.
-
-
-
-
- Get only the Left values of a sequence of an Either value.
-
-
-
-
- Get the Right value of an Either value, failing if not available.
-
-
-
-
- Get the Left value of an Either value, failing if not available.
-
-
-
-
- Query whether an Either value is a Right value.
-
-
-
-
- Query whether an Either value is a Left value.
-
-
-
-
- The computation expression builder for Either.
-
-
-
-
- Monadic 'return from' for Either.
-
-
-
-
- Monadic return for Either.
-
-
-
-
- Monadic bind for Either.
-
-
-
-
- Describes how events are filtered.
-
-
-
-
- Filter events.
-
-
-
-
- Describes how events are filtered.
-
-
-
-
- A publisher-neutral, purely functional event system.
-
-
-
-
- Make an event system.
-
-
-
-
- Log an event.
-
-
-
-
- Set the state of the event filter.
-
-
-
-
- Get the state of the event filter.
-
-
-
-
- Set whether events are being traced.
-
-
-
-
- Get whether events are being traced.
-
-
-
-
- Get event state.
-
-
-
-
- Set unsubscriptions.
-
-
-
-
- Set subscriptions.
-
-
-
-
- Get unsubscriptions.
-
-
-
-
- Get subscriptions.
-
-
-
-
- Remove event state.
-
-
-
-
- Add event state.
-
-
-
-
- Keep active a subscription for the lifetime of a participant.
-
-
-
-
- Keep active a subscription for the lifetime of a participant, and be provided with an unsubscription callback.
-
-
-
-
- Subscribe to an event.
-
-
-
-
- Subscribe to an event using the given subscriptionKey.
-
-
-
-
- Subscribe to an event, and be provided with an unsubscription callback.
-
-
-
-
- Subscribe to an event using the given subscriptionKey, and be provided with an unsubscription callback.
-
-
-
-
- Unsubscribe from an event.
-
-
-
-
- Publish an event with no subscription sorting.
-
-
-
-
- Publish an event, using the given publishSorter procedure to arrange the order to which subscriptions are published.
-
-
-
-
- Publish an event, using the given getSubscriptions and publishSorter procedures to arrange the order to which subscriptions are published.
-
-
-
-
- A 'no-op' for subscription sorting - that is, performs no sorting at all.
-
-
-
-
- Sort subscriptions using categorization via the 'by' procedure.
-
-
-
-
- Set the state of the event filter.
-
-
-
-
- Get the state of the event filter.
-
-
-
-
- Set whether events are being traced.
-
-
-
-
- Get whether events are being traced.
-
-
-
-
- Get event state from the world.
-
-
-
-
- Remove event state from the world.
-
-
-
-
- Add event state to the world.
-
-
-
-
- Set event unsubscriptions.
-
-
-
-
- Set event subscriptions.
-
-
-
-
- Get event unsubscriptions.
-
-
-
-
- Get event subscriptions.
-
-
-
-
- Update the event system in the world.
-
-
-
-
- Get the event system as tranformed via 'by'.
-
-
-
-
- Get the event system.
-
-
-
-
- Represents any event.
-
-
-
-
- Generic (and sectioned) division.
-
-
-
-
- Generic (and sectioned) multiplication.
-
-
-
-
- Generic (and sectioned) subtraction.
-
-
-
-
- Generic (and sectioned) addition.
-
-
-
-
- Generic (and sectioned) decrement.
-
-
-
-
- Generic (and sectioned) increment.
-
-
-
-
- The generic monoidal append operation.
-
-
-
-
- The generic monoidal empty value.
-
-
-
-
- The generic one value.
-
-
-
-
- The generic zero value.
-
-
-
-
- Make a hash set with a single element.
-
-
-
-
- Force the addition of an element, removing the existing one if necessary.
-
-
-
-
- Presents a purely-functional interface to a cached value.
- Works by associating a cached value with a given cache key such that the cached value remains valid when queried
- for using the same cache key (as decided by a simple key comparer function), automatically rebuilding the cached
- value and key (as done with a simple factory function).
-
-
-
- Make a keyed cache value.
- The current key against which to validate the cache.
- The value associated with the cache key.
-
-
- Get the cached value.
- Determines the equality of the key used to consider if the cache is valid.
- Generates a fresh key and corresponding value to cache.
- The current key against which to validate the cache.
- The keyed cache.
-
-
-
- The number of cache misses that have occured when using this type.
- Useful for performance trouble-shooting in Debug mode.
-
-
-
-
- The number of cache hits that have occured when using this type.
- Useful for performance trouble-shooting in Debug mode.
-
-
-
-
- Label for module names.
- Needed since we can't utter something like typeof<MyModule>.
-
-
-
-
- Along with the LabelName type, is used to elaborate the name of a target without
- using a string literal.
-
- Usage:
- let fieldName = Label?MyFieldName
-
-
-
-
- Initialize logging.
-
-
-
-
- Conditional trace message call where condition is eagerly evaluted.
-
-
-
-
- Log a trace message using Trace.Fail and call to info.
-
-
-
-
- Conditional debug message call where condition is lazily evaluated.
-
-
-
-
- Log a debug message with Debug.Fail and call to info.
-
-
-
-
- Log a purely informational message using Trace.WriteLine.
-
-
-
-
- Log a remark with a custom header using Trace.WriteLine.
-
-
-
-
- Combine the contents of two maps, taking an item from the second map in the case of a key
- conflict.
-
-
-
-
- Convert any map value to an obj.
-
-
-
-
- Convert a list of a map's values by a function.
-
-
-
-
- Get a list of a map's values.
-
-
-
-
- Convert a list of a map's keys by a function.
-
-
-
-
- Get a list of a map's keys.
-
-
-
-
- Convert a map to a list by a function.
- TODO: Optimize by program fusion.
-
-
-
-
- Make a map from a list by a function.
- TODO: Optimize by program fusion.
-
-
-
-
- Convert a seq of a map's values by a function.
-
-
-
-
- Get a seq of a map's values.
-
-
-
-
- Convert a seq of a map's keys by a function.
-
-
-
-
- Get a seq of a map's keys.
-
-
-
-
- Convert a map to a seq by a function.
- TODO: Optimize by program fusion.
-
-
-
-
- Make a map from a seq by a function.
- TODO: Optimize by program fusion.
-
-
-
-
- Add multiple values to a map.
-
-
-
-
- Make a singleton map.
-
-
-
-
- Combine the contents of two maps, taking an item from the second map in case of a key overlap.
-
-
-
-
- Presents a purely-functional interface to a mutable object / record / whatever.
- If it is not satisfactorily efficient to run a clone operation on the mutant for every get,
- just pass in the id function for make's cloneMutant arg, but make sure to NEVER mutate the
- returned mutant!
-
-
-
- Make a mutant cache.
-
- A function to clone the mutant before presenting it to the outside world.
- Feel free to pass id if you can ensure that the presented mutant will never be mutated externally.
-
- The mutant (mutable object / record / whatever) to be cached.
-
-
- Mutate the underlying mutant (mutable object / record / whatever).
- A function that rebuilds the mutant from scratch in case the current underlying mutant is out of date.
- A function that mutates the underlying mutant.
- The mutant cache.
-
-
- Get the underlying mutant (mutable object / record / whatever).
- A function that rebuilds the mutant from scratch in case the current underlying mutant is out of date.
- The mutant cache.
-
-
-
- The number of mutant rebuilds that have occured when using this type.
- Useful for performance trouble-shooting in Debug mode.
-
-
-
-
- Make a name from a non-empty string without whitespace.
-
-
-
-
- Equate Names.
-
-
-
-
- Compare Names.
-
-
-
-
- A name for optimized keying in hashing containers.
-
-
-
-
- The empty name, consisting of an empty string.
-
-
-
-
- Hash a list of names.
-
-
-
-
- Compare a list of names lexicographically.
-
-
-
-
- Query for equality a list of names lexicographically.
-
-
-
-
- Split a name on a separator char array.
-
-
-
-
- Join a list of names by a separator string.
-
-
-
-
- Get the name of a name key.
-
-
-
-
- Convert a name string to a name.
-
-
-
-
- Filter out participant change events that do not relate to those returned by 'valueGetter'.
-
-
-
-
- Filter out the events with non-unique data from an observation.
-
-
-
-
- Filter out the events with non-unique data as defined by 'by' from an observation.
-
-
-
-
- Transform an observation into a running minimum of it numeric data.
-
-
-
-
- Transform an observation into a running maximum of it numeric data.
-
-
-
-
- Filter out the None data values from an observation and strip the Some constructor from
- the remaining values.
-
-
-
-
- Take only the first event from an observation that satisfies 'p'.
-
-
-
-
- Take only the nth event from an observation.
-
-
-
-
- Skip the first event of an observation.
-
-
-
-
- Take only the first event from an observation.
-
-
-
-
- Skip the first n events in an observation.
-
-
-
-
- Take only the first n events from an observation.
-
-
-
-
- Transform an observation by duplicating its data into pairs.
-
-
-
-
- Transform an observation of pairs by a mapping of its snd values.
-
-
-
-
- Transform an observation's pairs by a mapping of its fst values.
-
-
-
-
- Transform an observation of pairs into its snd values.
-
-
-
-
- Transform an observation of pairs into its fst values.
-
-
-
-
- Transform an observation into a running product of its data.
-
-
-
-
- Transform an observation into a running sum of its data.
-
-
-
-
- Transform an observation into a running set of its event's unique data.
-
-
-
-
- Transform an observation into a running set of its event's unique data as defined by 'by'.
-
-
-
-
- Transform an observation into a running map from its event's data to keys as defined by 'f'.
-
-
-
-
- Transform an observation into a running average of its event's numeric data.
-
-
-
-
- Scan over an observation, accumulating state.
-
-
-
-
- Scan over an observation, accumulating state.
-
-
-
-
- Scan over an observation, accumulating state.
-
-
-
-
- Subscribe to an observation until the observer is removed from the world.
-
-
-
-
- Subscribe to an observation until the observer is removed from the world,
- returning both an unsubscription procedure as well as the world as augmented with said
- subscription.
-
-
-
-
- Terminate an observation when the observer is removed from the world.
-
-
-
-
- Terminate an observation when an event at the given address is raised.
-
-
-
-
- Subscribe to an observation, handling each event with the given 'handleEvent' procedure.
-
-
-
-
- Subscribe to an observation, handling each event with the given 'handleEvent' procedure,
- returning both an unsubscription procedure as well as the world as augmented with said
- subscription.
-
-
-
-
- TODO: document!
-
-
-
-
- TODO: document!
-
-
-
-
- TODO: document!
-
-
-
-
- Map an observation by the given 'mapper' procedure.
-
-
-
-
- Filter an observation by the given 'pred' procedure.
-
-
-
-
- Combine an observation with the events from the given address. Combination is in 'sum
- form', which is defined as an Either of the data of the combined events, where only data
- from the most recent event is available at a time.
- TODO: unit test for this!
-
-
-
-
- Combine an observation with the events from the given address. Combination is in 'product
- form', which is defined as a pair of the data of the combined events. Think of it as 'zip'
- for event streams.
- TODO: unit test for this!
-
-
-
-
- Make an observation of an event at the given address.
-
-
-
-
- Propagate the event data of an observation to a value in the observing participant when the
- observer exists (doing nothing otherwise).
-
-
-
-
- Make an observation of the observer's change events.
-
-
-
-
- Pipe-right arrow that provides special precedence for observations.
-
-
-
-
- Test just the value parts of a type for equality. Reflective and slow.
-
-
-
-
- Test for equality, usually faster than (=).
-
-
-
-
- Sequences two functions like Haskell ($).
-
-
-
-
- As close as we can get to F# implicits.
-
-
-
-
- Fail with an unexpected match failure.
-
-
-
-
- Make a Guid from a couple of ints.
- It is the user's responsibility to ensure uniqueness when using the resulting Guids.
-
-
-
-
- Make a Guid.
-
-
-
-
- Get the enumerator for a sequence.
-
-
-
-
- Short-hand for linq enumerable cast.
-
-
-
-
- Add a custom TypeConverter to an existing type.
-
-
-
-
- Perform an operation until a predicate passes.
-
-
-
-
- Apply a function recursively a number of times.
-
-
-
-
- Test just the value parts of a type for equality.
- NOTE: This function uses mad reflection, so is extremely slow, and should not be used in tight loops.
-
-
-
-
- Test for reference equality.
-
-
-
-
- Test for equality, usually faster than (=).
-
-
-
-
- Get the value of a property.
-
-
-
-
- Get the properties of a type.
-
-
-
-
- Get the value of a field.
-
-
-
-
- Get the fields of a type.
-
-
-
-
- Get the .NET type name of a target.
-
-
-
-
- Get the .NET type of a target.
-
-
-
-
- Compare two strings.
-
-
-
-
- Test for string equality.
-
-
-
-
- Convert a nullable value into an option.
-
-
-
-
- Test that the given type has null as an actual value.
-
-
-
-
- Test for non-null.
-
-
-
-
- Test for null.
-
-
-
-
- Transforms a function by flipping the order of its arguments.
-
-
-
-
- Transforms a function by flipping the order of its arguments.
-
-
-
-
- Transforms a function by flipping the order of its arguments.
-
-
-
-
- Uncurry two values.
-
-
-
-
- Curry up two values.
-
-
-
-
- Convert any value to an obj.
-
-
-
-
- The absurdity function with two arguments.
- No matter what you pass it, it evaluates to false.
-
-
-
-
- The absurdity function.
- No matter what you pass it, it evaluates to false.
-
-
-
-
- The tautology function with three arguments.
- No matter what you pass it, it evaluates to true.
-
-
-
-
- The tautology function with two arguments.
- No matter what you pass it, it evaluates to true.
-
-
-
-
- The tautology function.
- No matter what you pass it, it evaluates to true.
-
-
-
-
- Get an option's value, or missing that, return a default value.
-
-
-
-
- Join an option option.
-
-
-
-
- Sort pairs by fst in descending order.
-
-
-
-
- Make a pair.
-
-
-
-
- Map over pair member snd.
-
-
-
-
- Map over pair member fst.
-
-
-
-
- Replace pair member snd.
-
-
-
-
- Replace pair member fst.
-
-
-
-
- Performs some ad-hoc tests to compare performance of maps.
-
-
-
-
- An immutable random number generator using the xorshift* algorithm.
-
-
-
-
- Make a rand value generator from the default seed state.
-
-
-
-
- Make a rand value generator from the given int seed state.
- May not be zero.
-
-
-
-
- Make a rand value generator from the given seed state.
- May not be zero.
-
-
-
-
- Get the next random value below the given maximum as an int64 type.
-
-
-
-
- Get the next random value as an int64 type.
- NOTE: System.Random.Next will never return Int64.MaxValue, but this will.
-
-
-
-
- Get the next random value below the given maximum as an int type.
-
-
-
-
- Get the next random value as an int type.
- NOTE: System.Random.Next will never return Int32.MaxValue, but this will.
-
-
-
-
- Get the next random value below the given maximum as a single type.
-
-
-
-
- Get the next random value as a double type.
-
-
-
-
- Get the next random value below the given maximum as a double type.
-
-
-
-
- Get the next random value as a double type.
-
-
-
-
- The internal state of rand, useful for serialization and duplication.
-
-
-
-
- Advance the state of rand, thus yielding a new outcome.
-
-
-
-
- The default seed state for rand.
- NOTE: number generated via http://www.random.org/bytes/
-
-
-
-
- Get the sample value used to generate the current random value.
-
-
-
-
- Make a relation from a '/' delimited string where '.' are empty.
- NOTE: do not move this function as the RelationConverter's reflection code relies on it being exactly here!
-
-
-
-
- Hash a Relation.
-
-
-
-
- Equate Relations.
-
-
-
-
- A relation that can be resolved to an address via projection.
-
-
-
-
- Make an address from a '/' delimited string.
-
-
-
-
- Make a relation from a list of option names.
-
-
-
-
- Resolve a relationship to an address.
-
-
-
-
- Expand escaped characters in a string.
-
-
-
-
- Contract escaped characters in a string.
-
-
-
-
- Surround a string with another surrounding string.
-
-
-
-
- Convert a string to an array of characters.
- TODO: optimize this.
-
-
-
-
- Get the string with the given ending.
-
-
-
-
- Textualize a string for usage as text.
-
-
-
-
- Converts a list of characters into a string.
-
-
-
-
- Converts a string into a list of characters.
-
-
-
-
- Pretty-print a symbol string in the form an symbolic-expression.
-
-
-
-
- Cascade a symbol string into multiple lines with proper tabbing.
-
-
-
-
- Attempt to a symbol index from a string.
-
-
-
-
- Try to get the Origin of the symbol if it has one.
-
-
-
-
- Convert a symbol to a string, with the following unparses:
-
- (* Atom values *)
- None
- CharacterAnimationFacing
-
- (* Number values *)
- 0
- -5
-
- (* String value *)
- "String with quoted spaces."
-
- (* Quoted value *)
- `[Some 1]'
-
- (* Symbols values *)
- []
- [Some 0]
- [Left 0]
- [[0 1] [2 4]]
- [AnimationData 4 8]
- [Gem `[Some 1]']
-
- ...and so on.
-
-
-
-
- Convert a string to a symbol, with the following parses:
-
- (* Atom values *)
- None
- CharacterAnimationFacing
-
- (* Number values *)
- 0
- -5
-
- (* String value *)
- "String with quoted spaces."
-
- (* Quoted value *)
- `[Some 1]'
-
- (* Symbols values *)
- []
- [Some 0]
- [Left 0]
- [[0 1] [2 4]]
- [AnimationData 4 8]
- [Gem `[Some 1]']
-
- ...and so on.
-
-
-
-
- Convert a value from given type using its assigned type converter.
-
-
-
-
- Convert a value to the given type using its assigned type converter.
-
-
-
-
- Query that a value of the destination type can be converted from the source type.
-
-
-
-
- Query that a value of the source type can be converted to the destination type.
-
-
-
-
- Uses a symbolic converter to convert a string to a value.
-
-
-
-
- Uses a symbolic converter to convert a value to a string.
-
-
-
-
- Convert a symbol to a value.
-
-
-
-
- Convert a value to a symbol.
-
-
-
-
- Make a triple.
-
-
-
-
- Map over triple member c.
-
-
-
-
- Map over triple member b.
-
-
-
-
- Map over triple member a.
-
-
-
-
- Replace triple member c.
-
-
-
-
- Replace triple member b.
-
-
-
-
- Replace triple member a.
-
-
-
-
- Append an item to a pair to build a triple.
-
-
-
-
- Insert an item in a pair to build a triple.
-
-
-
-
- Prepend an item to a pair to build a triple.
-
-
-
-
- The third item in a triple.
-
-
-
-
- The second item in a triple.
-
-
-
-
- The first item in a triple.
-
-
-
-
- The second and third items in a triple.
-
-
-
-
- The first and third items in a triple.
-
-
-
-
- The first and second items in a triple.
-
-
-
-
- The third item in a triple.
-
-
-
-
- The second item in a triple.
-
-
-
-
- The first item in a triple.
-
-
-
-
- Get the first property that is signalled to be preferred by the 'preference' predicate.
-
-
-
-
- Get an existing type with the given unqualified name. Time-intensive.
-
-
-
-
- Try to get an existing type with the given unqualified name. Time-intensive.
-
-
-
-
- Get all the properties, preferring those that can be written to if there is a name clash.
-
-
-
-
- Get all the properties that are signalled to be preferred by the 'preference' predicate.
-
-
-
-
- Get the property with the given name, preferring the variant that can be written to, or null if none found.
-
-
-
-
- Get the first property with the given name that is signalled to be preferred by the 'preference' predicate.
-
-
-
-
- Get all the properties with the give name that can be written to.
-
-
-
-
- Get all the properties that can be written to.
-
-
-
-
- Get all the properties with the given name.
-
-
-
-
- Get a property with the given name that can be written to, or null.
-
-
-
-
- Try to get a custom type converter for the given type.
-
-
-
-
- Get the type descriptor for this type as returned by the global TypeDescriptor.
-
-
-
-
- Get the default value for a type.
- Never returns null.
-
-
-
-
- A very fast persistent hash map.
- Works in effectively constant-time for look-ups and updates.
-
-
-
-
- Convert a sequence of keys and values to a Vmap.
-
-
-
-
- Convert a Vmap to a sequence of pairs of keys and values.
- NOTE: This function seems to profile as being very slow. I don't know if it's the seq / yields syntax or what.
- Don't use it unless you need its laziness or if performance won't be affected significantly.
-
-
-
-
- Filter a Vmap.
-
-
-
-
- Map over a Vmap.
-
-
-
-
- Fold over a Vmap.
-
-
-
-
- Combine the contents of two Vmaps, taking an item from the second map in the case of a key conflict.
-
-
-
-
- Query that a Vmap contains a value with the given key.
-
-
-
-
- Find a value with the given key in a Vmap.
- Constant-time complexity with approx. 1/3 speed of Dictionary.GetValue.
-
-
-
-
- Try to find a value with the given key in a Vmap.
- Constant-time complexity with approx. 1/3 speed of Dictionary.TryGetValue.
-
-
-
-
- Remove all values with the given keys from a Vmap.
-
-
-
-
- Remove a value with the given key from a Vmap.
-
-
-
-
- Add a list of values with associated keys to a Vmap.
-
-
-
-
- Add a value with the key to a Vmap.
-
-
-
-
- Query that a Vmap is empty.
-
-
-
-
- Create an empty Vmap.
-
-
-
-
- TODO: there's an F# issue where UseNullAsTrueValue does not work on unions with 4 or more cases
- https://github.com/Microsoft/visualfsharp/issues/711 . Once resolved, should use it and be able
- to make arrays with Array.zeroCreate alone without also copying over the empty array.
-
-
-
-
- OPTIMIZATION: Requires an empty array to use the source of new array clones in order to avoid Array.create.
-
-
-
-
- NOTE: This function seems to profile as being very slow. I don't know if it's the seq / yields syntax or what.
-
-
-
-
- OPTIMIZATION: Array.Clone () is not used since it's been profiled to be slower
-
-
-
-
- The VsyncBuilder instance.
- Used like: vsync { return 0 }
-
-
-
-
- The 'Vsync' (AKA, 'Variable Synchrony') monad.
- Allows code to run in either an async or synchronous fashion to aid in debugging.
- NOTE: to reference how all this stuff works in F#, see here - https://msdn.microsoft.com/en-us/library/dd233182.aspx
-
-
-
-
- Creates a potentially asynchronous operation that runs 'f' over computation of 'a'.
-
-
-
-
- Creates a potentially asynchronous computation that executes all the given computations
- Initially queues each as work item using a fork/join pattern when asynchronous.
- Executes each work item sequentially on the same thread otherwise.
-
-
-
-
- Creates a potentially asynchronous computation that executes computation.
- If this computation completes successfully, then return Choice1Of2 with the returned value.
- If this computation raises before completion, then return Choice2Of2 with the raised exception.
-
-
-
-
- Return a potentially asynchronous computation that will wait for the given task to complete and return its result.
-
-
-
-
- Return a potentially asynchronous computation that will wait for the given task to complete and return its result.
-
-
-
-
- Executes a computation in the thread pool when asynchronous, in the same thread otherwise.
-
-
-
-
- Starts the potentially asynchronous computation.
- Computation is run in the thread pool not awaiting its result when asynchronous.
- Computation is run in the current thread awaiting its result otherwise.
-
-
-
-
- Runs the potentially asynchronous computation and awaits its result.
-
-
-
-
- Creates a potentially asynchronous computation that will sleep for the given time.
- The operation will not block operating system threads for the duration of the wait when running asynchronously.
- The operation will block operating system thread for the duration of the wait otherwise.
-
-
-
-
- Creates a potentially asynchronous computation that runs the given computation and ignores its results.
-
-
-
-
- Creates a potentially asynchronous computation that runs computation.
- The action compensation 'h' is executed after the computation completes regardless of the outcome.
- If the computation raises and exception itself, the original exception is discarded and the new exception becomes the overall result.
-
-
-
-
- Creates a potentially asynchronous computation that runs computation and returns its result.
- If an exception happens, then handler 'h' is called and the resulting computation executes instead.
-
-
-
-
- Creates a potentially asynchronous computation that runs computation until guard 'g' becomes false.
-
-
-
-
- Creates a potentially asynchronous computation that enumerates the sequence 's', and runs the body 'f' for each element.
-
-
-
-
- Creates a potentially asynchronous computation that first runs computation 'a' and then computation 'b', returning the result of the latter.
-
-
-
-
- Creates a potentially asynchronous computation that just returns unit.
-
-
-
-
- Creates a potentially asynchronous computation that runs generator 'f'.
-
-
-
-
- Creates a potentially asynchronous computation that runs binder 'f' over resource 'd'.
- Dispose is executed as this computation yields its result or if the asynchronous computation raises or by cancellation.
-
-
-
-
- Delegates to input computation.
-
-
-
-
- Creates a potentially asynchronous operation that returns the result 'a'.
-
-
-
-
- Creates a potentially asynchronous operation that runs computation, and when computation results, runs binder resolution.
-
-
-
-
- Query whether Vsync is using synchronized or asynchronous processing.
-
-
-
-
- Initialize Vsync to use synchronized or asynchronous processing.
-
-
-
-
- Configures whether to use synchronized processing.
-
-
-
-
- Try to get the default value for a given xtension member, returning None when defaulting is disallowed.
-
-
-
-
- The dynamic assignment operator for an Xtension.
- Example:
- let entity = entity.Position <- Vector2 (4.0, 5.0).
-
-
-
-
- The dynamic look-up operator for an Xtension.
- Example:
- let parallax = entity?Parallax : single
-
-
-
-
- Get the default value of an instance of type 'r taking into account XDefaultValue decorations.
-
-
-
-
- Xtensions (and their supporting types) are a dynamic, functional, and semi-convenient way
- to implement dynamic properties.
-
-
-
-
- Convert an xtension to a sequence of its entries.
-
-
-
-
- Convert an xtension to a sequence of its entries.
-
-
-
-
- Detach multiple properties from an Xtension.
-
-
-
-
- Detach a property from an Xtension.
-
-
-
-
- Attach multiple properties to an Xtension.
-
-
-
-
- Attach a property to an Xtension.
-
-
-
-
- Try to get a property from an xtension.
-
-
-
-
- Get a property from an xtension.
-
-
-
-
- An Xtension that cannot default and isn't sealed.
-
-
-
-
- An Xtension that cannot default and is sealed.
-
-
-
-
- An Xtension that can default and isn't sealed.
-
-
-
-
- Make an extension with custom safety.
-
-
-
-
- Check that a predicate passes for NO items in a sequence.
-
-
-
-
- Implement a fold while folder results in Some.
-
-
-
-
- Project the first sequence onto the second.
-
-
-
-
- A more tolerant and open-minded take.
-
-
-
-
- Check if no elements satisfy a predicate in a seq.
-
-
-
-
- Fold-back for seqs.
-
-
-
-
- Fold, now with a counter!
-
-
-
-
- Fold with two inputs (plus state).
-
-
-
-
- Convert option values to definite values.
-
-
-
-
- Get a seq head or a default value if there is none.
-
-
-
-
- Get Some head of the seq or None.
-
-
-
-
- Add multiple values to a set.
-
-
-
-
- Make a singleton set.
-
-
-
-
diff --git a/Nu/Prime/Debug/Prime.exe b/Nu/Prime/Debug/Prime.exe
deleted file mode 100644
index 02ac626434..0000000000
Binary files a/Nu/Prime/Debug/Prime.exe and /dev/null differ
diff --git a/Nu/Prime/Debug/Prime.exe.config b/Nu/Prime/Debug/Prime.exe.config
deleted file mode 100644
index 0d2b407b0f..0000000000
--- a/Nu/Prime/Debug/Prime.exe.config
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Nu/Prime/Debug/Prime.pdb b/Nu/Prime/Debug/Prime.pdb
deleted file mode 100644
index 65ac2e40da..0000000000
Binary files a/Nu/Prime/Debug/Prime.pdb and /dev/null differ
diff --git a/Nu/Prime/Release/Prime.XML b/Nu/Prime/Release/Prime.XML
deleted file mode 100644
index 6871703347..0000000000
--- a/Nu/Prime/Release/Prime.XML
+++ /dev/null
@@ -1,2751 +0,0 @@
-
-
-Prime
-
-
-
- Try to find an index in reverse.
-
-
-
-
- Hash a list.
- NOTE: May be a pessimization.
-
-
-
-
- Compare a list of strings lexicographically.
-
-
-
-
- Stack a list from the left, starting with the empty list.
- Example - [0, 1, 2] becomes [[]; [0]; [0; 1]; [0; 1; 2]]
-
-
-
-
- Remove all elements from a list that satisfy a predicate.
-
-
-
-
- Implement a fold while folder results in Some.
-
-
-
-
- Convert a list to a HashSet.
-
-
-
-
- Convert a list of values to a Dictionary.
-
-
-
-
- Convert a list of pairs to a Dictionary.
-
-
-
-
- Add a list of values to a Dictionary.
-
-
-
-
- Add a list of pairs to a Dictionary.
-
-
-
-
- Get the set interesection of two lists.
-
-
-
-
- Query that the first list a superset of the second list.
-
-
-
-
- Query that the first list a subset of the second list.
-
-
-
-
- Runs a binary set operation on two lists that are converted to sets.
-
-
-
-
- Take elements until an element satisfies a predicate, taking also that element.
-
-
-
-
- Join a list of lists into a list separated by sep.
-
-
-
-
- Join a list into a string separated by sep.
- TODO: consider optimizing with a StringBuilder.
-
-
-
-
- Join a list into a string separated by sep.
-
-
-
-
- Pad a list with instances of its last item so that it is proportion to another list.
-
-
-
-
- Pad a list with count instances of its last item.
-
-
-
-
- Pad a list with count instances of its last item, removing items from back if count is negative.
-
-
-
-
- Make a transformed list of options an all or nothing proposition.
- TODO: optimize with program fusion.
-
-
-
-
- Make a list of options an all or nothing proposition.
- TODO: optimize with program fusion.
-
-
-
-
- Convert option values to definite values.
-
-
-
-
- Get all but the last item from a list.
-
-
-
-
- Foldi for lists.
-
-
-
-
- Fornone for lists.
-
-
-
-
- Replace a list's head.
-
-
-
-
- Project the first list onto the second.
-
-
-
-
- A more tolerant and open-minded take.
-
-
-
-
- Zip two lists by a function.
- TODO: optimize with program fusion.
-
-
-
-
- Threads a computation state through the adjacent members of a list.
-
-
-
-
- For all 2 that indicates uneven lists by returning false rather than raising.
-
-
-
-
- Try to find a value at index n.
-
-
-
-
- Try to find a value.
-
-
-
-
- Query that two lists are of the same length.
-
-
-
-
- Query that a list has at least n elements.
-
-
-
-
- Query that a list has exactly n elements.
-
-
-
-
- Query that a list has at most n elements.
-
-
-
-
- Query that a list has at least n elements.
-
-
-
-
- Partition a list.
-
-
-
-
- Check that a predicate passes for NO items in a list.
-
-
-
-
- Cons with flipped arguments.
-
-
-
-
- The missing cons function.
-
-
-
-
- Converts Address types.
-
-
-
-
- Describes an event subscription that can be boxed / unboxed.
-
-
-
-
- Monadic return for the chain monad.
-
-
-
-
- Monadic bind for the chain monad.
-
-
-
-
- Implements the chain monad.
-
-
-
-
- The Chain monad. Allows the user to define a chain of operations over the world that
- optionally spans across a bounded number of events.
-
- The following is a potentially tail-recursible representation as speculated by @tpetracek -
- 'w -> ('w * Either<'e -> Chain<'e, 'a, 'w>, 'a> -> 'a) -> 'a
-
-
-
-
- Haskell-style Either type.
-
-
-
-
- An event used by the event system.
-
-
-
-
- Adds the capability to use purely-functional events with the given program type 'w.
-
-
-
-
- Describes whether an in-flight event has been resolved or should cascade to down-stream handlers.
-
-
-
-
- A hash-key-value triple, implemented with a struct for efficiency.
-
-
-
-
- Along with the Label binding, is used to elaborate the name of a target without using a
- string literal.
-
-
-
-
- Specifies whether an event-based application is running or exiting.
-
-
-
-
- Converts Name types.
-
-
-
-
- An observation in the functional reactive style.
-
-
-
-
- A participant in the event system.
-
-
-
-
- The data for a change in a participant.
-
-
-
-
- Concatenate two addresses, takings the type of first address.
-
-
-
-
- Concatenate two addresses, forcing the type of first address.
-
-
-
-
- Operators for the Participant type.
-
-
-
-
- Converts Relation types.
-
-
-
-
- Effectively new-types the Regex type to implement custom type-conversation without needing
- explicit initialization by the client program.
-
-
-
-
- Converts Rexpr types.
-
-
-
-
- A map of event subscriptions.
-
-
-
-
- An entry in the subscription map.
-
-
-
-
- Abstracts over a subscription sorting procedure.
-
-
-
-
- Describes an event subscription.
-
-
-
-
- Compresses two unions into a single union in a symbolic-expression.
-
-
-
-
- A map of subscription keys to unsubscription data.
-
-
-
-
- The Vsync computation expression builder.
-
-
-
-
- An attribute to specify the default value of an XProperty.
-
-
-
-
- A map of XProperties.
-
-
-
-
- An Xtension property.
-
-
-
-
- Describes an XProperty.
-
-
-
-
- Concatenate two addresses, taking the type of the second address.
-
-
-
-
- Concatenate two addresses, forcing the type of second address.
-
-
-
-
- Concatenate two addresses, taking the type of first address.
-
-
-
-
- Concatenate two addresses, forcing the type of first address.
-
-
-
-
- Concatenate two addresses of the same type.
-
-
-
-
- Convert a single name into an address.
-
-
-
-
- Make an address from a '/' delimited string.
- NOTE: do not move this function as the AddressConverter's reflection code relies on it being exactly here!
-
-
-
-
- Convert a names list into an address.
-
-
-
-
- Hash an Address.
-
-
-
-
- Convert a full name into an address.
-
-
-
-
- Equate Addresses.
-
-
-
-
- Compare Addresses.
-
-
-
-
- Convert any address to an obj Address.
-
-
-
-
- Convert an address of type 'a to an address of type 'b.
-
-
-
-
- Concatenate two addresses, forcing the type of second address.
-
-
-
-
- Concatenate two addresses, taking the type of the second address.
-
-
-
-
- Concatenate two addresses, forcing the type of first address.
-
-
-
-
- Concatenate two addresses, taking the type of first address.
-
-
-
-
- Concatenate two addresses of the same type.
-
-
-
-
- Specifies the address of an identifiable value.
-
-
-
-
- Query that an address is devoid of names.
-
-
-
-
- Get the length of an address by its names.
-
-
-
-
- Take an address composed of all but the last name of an address.
-
-
-
-
- Take the last name of an address.
-
-
-
-
- Take an address composed of the given number of names of an address.
-
-
-
-
- Take an address composed of the name of an address minus a skipped amount of names.
-
-
-
-
- Take a name of an address.
-
-
-
-
- Take the tail of an address.
-
-
-
-
- Take the head of an address.
-
-
-
-
- Get the address's hash code.
-
-
-
-
- Get the name of an address.
-
-
-
-
- Get the full name of an address.
-
-
-
-
- Change the type of an address.
-
-
-
-
- Get the names of an address.
-
-
-
-
- Make an address from a '/' delimited string.
-
-
-
-
- Make an address from names.
-
-
-
-
- The empty address.
-
-
-
-
- Concatenate two addresses, forcing the type of second address.
-
-
-
-
- Concatenate two addresses, taking the type of the second address.
-
-
-
-
- Concatenate two addresses, forcing the type of first address.
-
-
-
-
- Concatenate two addresses, taking the type of first address.
-
-
-
-
- Concatenate two addresses of the same type.
-
-
-
-
- Convert any address to an obj Address.
-
-
-
-
- Convert a single name into an address.
-
-
-
-
- Convert a full name into an address.
-
-
-
-
- Convert a names list into an address.
-
-
-
-
- Convert an address of type 'a to an address of type 'b.
-
-
-
-
- Creates an asynchronous operation that runs 'f' over computation of 'a'.
-
-
-
-
- Async is missing a couple of functions, as we know...
-
-
-
-
- Run a chain over Nu's event system.
- Allows each chainhronized operation to run without referencing its source event, and
- without specifying its event handling approach by assuming Resolve.
-
-
-
-
- Run a chain over Nu's event system.
- Allows each chainhronized operation to run without referencing its source event, and
- without specifying its event handling approach by assuming Cascade.
-
-
-
-
- Run a chain to its end, providing unit for all its steps.
-
-
-
-
- Run a chain to its end, providing unit for all its steps.
-
-
-
-
- Run a chain to its end, providing 'e' for all its steps.
-
-
-
-
- Advance a chain value by one step, providing 'e'.
-
-
-
-
- Step once into a chain.
-
-
-
-
- Loop in a chain context while 'pred' evaluates to true.
-
-
-
-
- Loop in a chain context while 'pred' evaluate to true.
-
-
-
-
- React to the next event, discarding the event's value.
-
-
-
-
- React to the next event, using the event's value in the reaction.
-
-
-
-
- Pass over the next event.
-
-
-
-
- Get the next event.
-
-
-
-
- Update the world.
-
-
-
-
- Update the world with an additional transformed world parameter.
-
-
-
-
- Set the world.
-
-
-
-
- Get the world transformed by 'by'.
-
-
-
-
- Get the world.
-
-
-
-
- Monadic bind for the chain monad.
-
-
-
-
- Monadic return for the chain monad.
-
-
-
-
- Builds the chain monad.
-
-
-
-
- Like dict, but returns a concrete Dictionary instance with structural hashing.
-
-
-
-
- Try to find a value in a dictonary.
-
-
-
-
- Map over a dictionary. A new dictionary is produced.
-
-
-
-
- Make a dictionary with a single element.
-
-
-
-
- Add all the elements of another dictionary.
-
-
-
-
- Add multiple kvps to a dictionary.
-
-
-
-
- Check value equality of dictionary.
- NOTE: be wary the highly imperative nature of this code.
-
-
-
-
- Force the addition of an element, removing the existing one if necessary.
-
-
-
-
- Try to add an element, returning false upon failure.
-
-
-
-
- Builds an either monad.
-
-
-
-
- Split a sequences of Either values into a pair of left and right value lists.
-
-
-
-
- Map over the right side of an Either value.
-
-
-
-
- Map over the left side of an Either value.
-
-
-
-
- Get only the Right values of a sequence of an Either value.
-
-
-
-
- Get only the Left values of a sequence of an Either value.
-
-
-
-
- Get the Right value of an Either value, failing if not available.
-
-
-
-
- Get the Left value of an Either value, failing if not available.
-
-
-
-
- Query whether an Either value is a Right value.
-
-
-
-
- Query whether an Either value is a Left value.
-
-
-
-
- The computation expression builder for Either.
-
-
-
-
- Monadic 'return from' for Either.
-
-
-
-
- Monadic return for Either.
-
-
-
-
- Monadic bind for Either.
-
-
-
-
- Describes how events are filtered.
-
-
-
-
- Filter events.
-
-
-
-
- Describes how events are filtered.
-
-
-
-
- A publisher-neutral, purely functional event system.
-
-
-
-
- Make an event system.
-
-
-
-
- Log an event.
-
-
-
-
- Set the state of the event filter.
-
-
-
-
- Get the state of the event filter.
-
-
-
-
- Set whether events are being traced.
-
-
-
-
- Get whether events are being traced.
-
-
-
-
- Get event state.
-
-
-
-
- Set unsubscriptions.
-
-
-
-
- Set subscriptions.
-
-
-
-
- Get unsubscriptions.
-
-
-
-
- Get subscriptions.
-
-
-
-
- Remove event state.
-
-
-
-
- Add event state.
-
-
-
-
- Keep active a subscription for the lifetime of a participant.
-
-
-
-
- Keep active a subscription for the lifetime of a participant, and be provided with an unsubscription callback.
-
-
-
-
- Subscribe to an event.
-
-
-
-
- Subscribe to an event using the given subscriptionKey.
-
-
-
-
- Subscribe to an event, and be provided with an unsubscription callback.
-
-
-
-
- Subscribe to an event using the given subscriptionKey, and be provided with an unsubscription callback.
-
-
-
-
- Unsubscribe from an event.
-
-
-
-
- Publish an event with no subscription sorting.
-
-
-
-
- Publish an event, using the given publishSorter procedure to arrange the order to which subscriptions are published.
-
-
-
-
- Publish an event, using the given getSubscriptions and publishSorter procedures to arrange the order to which subscriptions are published.
-
-
-
-
- A 'no-op' for subscription sorting - that is, performs no sorting at all.
-
-
-
-
- Sort subscriptions using categorization via the 'by' procedure.
-
-
-
-
- Set the state of the event filter.
-
-
-
-
- Get the state of the event filter.
-
-
-
-
- Set whether events are being traced.
-
-
-
-
- Get whether events are being traced.
-
-
-
-
- Get event state from the world.
-
-
-
-
- Remove event state from the world.
-
-
-
-
- Add event state to the world.
-
-
-
-
- Set event unsubscriptions.
-
-
-
-
- Set event subscriptions.
-
-
-
-
- Get event unsubscriptions.
-
-
-
-
- Get event subscriptions.
-
-
-
-
- Update the event system in the world.
-
-
-
-
- Get the event system as tranformed via 'by'.
-
-
-
-
- Get the event system.
-
-
-
-
- Represents any event.
-
-
-
-
- Generic (and sectioned) division.
-
-
-
-
- Generic (and sectioned) multiplication.
-
-
-
-
- Generic (and sectioned) subtraction.
-
-
-
-
- Generic (and sectioned) addition.
-
-
-
-
- Generic (and sectioned) decrement.
-
-
-
-
- Generic (and sectioned) increment.
-
-
-
-
- The generic monoidal append operation.
-
-
-
-
- The generic monoidal empty value.
-
-
-
-
- The generic one value.
-
-
-
-
- The generic zero value.
-
-
-
-
- Make a hash set with a single element.
-
-
-
-
- Force the addition of an element, removing the existing one if necessary.
-
-
-
-
- Presents a purely-functional interface to a cached value.
- Works by associating a cached value with a given cache key such that the cached value remains valid when queried
- for using the same cache key (as decided by a simple key comparer function), automatically rebuilding the cached
- value and key (as done with a simple factory function).
-
-
-
- Make a keyed cache value.
- The current key against which to validate the cache.
- The value associated with the cache key.
-
-
- Get the cached value.
- Determines the equality of the key used to consider if the cache is valid.
- Generates a fresh key and corresponding value to cache.
- The current key against which to validate the cache.
- The keyed cache.
-
-
-
- The number of cache misses that have occured when using this type.
- Useful for performance trouble-shooting in Debug mode.
-
-
-
-
- The number of cache hits that have occured when using this type.
- Useful for performance trouble-shooting in Debug mode.
-
-
-
-
- Label for module names.
- Needed since we can't utter something like typeof<MyModule>.
-
-
-
-
- Along with the LabelName type, is used to elaborate the name of a target without
- using a string literal.
-
- Usage:
- let fieldName = Label?MyFieldName
-
-
-
-
- Initialize logging.
-
-
-
-
- Conditional trace message call where condition is eagerly evaluted.
-
-
-
-
- Log a trace message using Trace.Fail and call to info.
-
-
-
-
- Conditional debug message call where condition is lazily evaluated.
-
-
-
-
- Log a debug message with Debug.Fail and call to info.
-
-
-
-
- Log a purely informational message using Trace.WriteLine.
-
-
-
-
- Log a remark with a custom header using Trace.WriteLine.
-
-
-
-
- Combine the contents of two maps, taking an item from the second map in the case of a key
- conflict.
-
-
-
-
- Convert any map value to an obj.
-
-
-
-
- Convert a list of a map's values by a function.
-
-
-
-
- Get a list of a map's values.
-
-
-
-
- Convert a list of a map's keys by a function.
-
-
-
-
- Get a list of a map's keys.
-
-
-
-
- Convert a map to a list by a function.
- TODO: Optimize by program fusion.
-
-
-
-
- Make a map from a list by a function.
- TODO: Optimize by program fusion.
-
-
-
-
- Convert a seq of a map's values by a function.
-
-
-
-
- Get a seq of a map's values.
-
-
-
-
- Convert a seq of a map's keys by a function.
-
-
-
-
- Get a seq of a map's keys.
-
-
-
-
- Convert a map to a seq by a function.
- TODO: Optimize by program fusion.
-
-
-
-
- Make a map from a seq by a function.
- TODO: Optimize by program fusion.
-
-
-
-
- Add multiple values to a map.
-
-
-
-
- Make a singleton map.
-
-
-
-
- Combine the contents of two maps, taking an item from the second map in case of a key overlap.
-
-
-
-
- Presents a purely-functional interface to a mutable object / record / whatever.
- If it is not satisfactorily efficient to run a clone operation on the mutant for every get,
- just pass in the id function for make's cloneMutant arg, but make sure to NEVER mutate the
- returned mutant!
-
-
-
- Make a mutant cache.
-
- A function to clone the mutant before presenting it to the outside world.
- Feel free to pass id if you can ensure that the presented mutant will never be mutated externally.
-
- The mutant (mutable object / record / whatever) to be cached.
-
-
- Mutate the underlying mutant (mutable object / record / whatever).
- A function that rebuilds the mutant from scratch in case the current underlying mutant is out of date.
- A function that mutates the underlying mutant.
- The mutant cache.
-
-
- Get the underlying mutant (mutable object / record / whatever).
- A function that rebuilds the mutant from scratch in case the current underlying mutant is out of date.
- The mutant cache.
-
-
-
- The number of mutant rebuilds that have occured when using this type.
- Useful for performance trouble-shooting in Debug mode.
-
-
-
-
- Make a name from a non-empty string without whitespace.
-
-
-
-
- Equate Names.
-
-
-
-
- Compare Names.
-
-
-
-
- A name for optimized keying in hashing containers.
-
-
-
-
- The empty name, consisting of an empty string.
-
-
-
-
- Hash a list of names.
-
-
-
-
- Compare a list of names lexicographically.
-
-
-
-
- Query for equality a list of names lexicographically.
-
-
-
-
- Split a name on a separator char array.
-
-
-
-
- Join a list of names by a separator string.
-
-
-
-
- Get the name of a name key.
-
-
-
-
- Convert a name string to a name.
-
-
-
-
- Filter out participant change events that do not relate to those returned by 'valueGetter'.
-
-
-
-
- Filter out the events with non-unique data from an observation.
-
-
-
-
- Filter out the events with non-unique data as defined by 'by' from an observation.
-
-
-
-
- Transform an observation into a running minimum of it numeric data.
-
-
-
-
- Transform an observation into a running maximum of it numeric data.
-
-
-
-
- Filter out the None data values from an observation and strip the Some constructor from
- the remaining values.
-
-
-
-
- Take only the first event from an observation that satisfies 'p'.
-
-
-
-
- Take only the nth event from an observation.
-
-
-
-
- Skip the first event of an observation.
-
-
-
-
- Take only the first event from an observation.
-
-
-
-
- Skip the first n events in an observation.
-
-
-
-
- Take only the first n events from an observation.
-
-
-
-
- Transform an observation by duplicating its data into pairs.
-
-
-
-
- Transform an observation of pairs by a mapping of its snd values.
-
-
-
-
- Transform an observation's pairs by a mapping of its fst values.
-
-
-
-
- Transform an observation of pairs into its snd values.
-
-
-
-
- Transform an observation of pairs into its fst values.
-
-
-
-
- Transform an observation into a running product of its data.
-
-
-
-
- Transform an observation into a running sum of its data.
-
-
-
-
- Transform an observation into a running set of its event's unique data.
-
-
-
-
- Transform an observation into a running set of its event's unique data as defined by 'by'.
-
-
-
-
- Transform an observation into a running map from its event's data to keys as defined by 'f'.
-
-
-
-
- Transform an observation into a running average of its event's numeric data.
-
-
-
-
- Scan over an observation, accumulating state.
-
-
-
-
- Scan over an observation, accumulating state.
-
-
-
-
- Scan over an observation, accumulating state.
-
-
-
-
- Subscribe to an observation until the observer is removed from the world.
-
-
-
-
- Subscribe to an observation until the observer is removed from the world,
- returning both an unsubscription procedure as well as the world as augmented with said
- subscription.
-
-
-
-
- Terminate an observation when the observer is removed from the world.
-
-
-
-
- Terminate an observation when an event at the given address is raised.
-
-
-
-
- Subscribe to an observation, handling each event with the given 'handleEvent' procedure.
-
-
-
-
- Subscribe to an observation, handling each event with the given 'handleEvent' procedure,
- returning both an unsubscription procedure as well as the world as augmented with said
- subscription.
-
-
-
-
- TODO: document!
-
-
-
-
- TODO: document!
-
-
-
-
- TODO: document!
-
-
-
-
- Map an observation by the given 'mapper' procedure.
-
-
-
-
- Filter an observation by the given 'pred' procedure.
-
-
-
-
- Combine an observation with the events from the given address. Combination is in 'sum
- form', which is defined as an Either of the data of the combined events, where only data
- from the most recent event is available at a time.
- TODO: unit test for this!
-
-
-
-
- Combine an observation with the events from the given address. Combination is in 'product
- form', which is defined as a pair of the data of the combined events. Think of it as 'zip'
- for event streams.
- TODO: unit test for this!
-
-
-
-
- Make an observation of an event at the given address.
-
-
-
-
- Propagate the event data of an observation to a value in the observing participant when the
- observer exists (doing nothing otherwise).
-
-
-
-
- Make an observation of the observer's change events.
-
-
-
-
- Pipe-right arrow that provides special precedence for observations.
-
-
-
-
- Test just the value parts of a type for equality. Reflective and slow.
-
-
-
-
- Test for equality, usually faster than (=).
-
-
-
-
- Sequences two functions like Haskell ($).
-
-
-
-
- As close as we can get to F# implicits.
-
-
-
-
- Fail with an unexpected match failure.
-
-
-
-
- Make a Guid from a couple of ints.
- It is the user's responsibility to ensure uniqueness when using the resulting Guids.
-
-
-
-
- Make a Guid.
-
-
-
-
- Get the enumerator for a sequence.
-
-
-
-
- Short-hand for linq enumerable cast.
-
-
-
-
- Add a custom TypeConverter to an existing type.
-
-
-
-
- Perform an operation until a predicate passes.
-
-
-
-
- Apply a function recursively a number of times.
-
-
-
-
- Test just the value parts of a type for equality.
- NOTE: This function uses mad reflection, so is extremely slow, and should not be used in tight loops.
-
-
-
-
- Test for reference equality.
-
-
-
-
- Test for equality, usually faster than (=).
-
-
-
-
- Get the value of a property.
-
-
-
-
- Get the properties of a type.
-
-
-
-
- Get the value of a field.
-
-
-
-
- Get the fields of a type.
-
-
-
-
- Get the .NET type name of a target.
-
-
-
-
- Get the .NET type of a target.
-
-
-
-
- Compare two strings.
-
-
-
-
- Test for string equality.
-
-
-
-
- Convert a nullable value into an option.
-
-
-
-
- Test that the given type has null as an actual value.
-
-
-
-
- Test for non-null.
-
-
-
-
- Test for null.
-
-
-
-
- Transforms a function by flipping the order of its arguments.
-
-
-
-
- Transforms a function by flipping the order of its arguments.
-
-
-
-
- Transforms a function by flipping the order of its arguments.
-
-
-
-
- Uncurry two values.
-
-
-
-
- Curry up two values.
-
-
-
-
- Convert any value to an obj.
-
-
-
-
- The absurdity function with two arguments.
- No matter what you pass it, it evaluates to false.
-
-
-
-
- The absurdity function.
- No matter what you pass it, it evaluates to false.
-
-
-
-
- The tautology function with three arguments.
- No matter what you pass it, it evaluates to true.
-
-
-
-
- The tautology function with two arguments.
- No matter what you pass it, it evaluates to true.
-
-
-
-
- The tautology function.
- No matter what you pass it, it evaluates to true.
-
-
-
-
- Get an option's value, or missing that, return a default value.
-
-
-
-
- Join an option option.
-
-
-
-
- Sort pairs by fst in descending order.
-
-
-
-
- Make a pair.
-
-
-
-
- Map over pair member snd.
-
-
-
-
- Map over pair member fst.
-
-
-
-
- Replace pair member snd.
-
-
-
-
- Replace pair member fst.
-
-
-
-
- Performs some ad-hoc tests to compare performance of maps.
-
-
-
-
- An immutable random number generator using the xorshift* algorithm.
-
-
-
-
- Make a rand value generator from the default seed state.
-
-
-
-
- Make a rand value generator from the given int seed state.
- May not be zero.
-
-
-
-
- Make a rand value generator from the given seed state.
- May not be zero.
-
-
-
-
- Get the next random value below the given maximum as an int64 type.
-
-
-
-
- Get the next random value as an int64 type.
- NOTE: System.Random.Next will never return Int64.MaxValue, but this will.
-
-
-
-
- Get the next random value below the given maximum as an int type.
-
-
-
-
- Get the next random value as an int type.
- NOTE: System.Random.Next will never return Int32.MaxValue, but this will.
-
-
-
-
- Get the next random value below the given maximum as a single type.
-
-
-
-
- Get the next random value as a double type.
-
-
-
-
- Get the next random value below the given maximum as a double type.
-
-
-
-
- Get the next random value as a double type.
-
-
-
-
- The internal state of rand, useful for serialization and duplication.
-
-
-
-
- Advance the state of rand, thus yielding a new outcome.
-
-
-
-
- The default seed state for rand.
- NOTE: number generated via http://www.random.org/bytes/
-
-
-
-
- Get the sample value used to generate the current random value.
-
-
-
-
- Make a relation from a '/' delimited string where '.' are empty.
- NOTE: do not move this function as the RelationConverter's reflection code relies on it being exactly here!
-
-
-
-
- Hash a Relation.
-
-
-
-
- Equate Relations.
-
-
-
-
- A relation that can be resolved to an address via projection.
-
-
-
-
- Make an address from a '/' delimited string.
-
-
-
-
- Make a relation from a list of option names.
-
-
-
-
- Resolve a relationship to an address.
-
-
-
-
- Expand escaped characters in a string.
-
-
-
-
- Contract escaped characters in a string.
-
-
-
-
- Surround a string with another surrounding string.
-
-
-
-
- Convert a string to an array of characters.
- TODO: optimize this.
-
-
-
-
- Get the string with the given ending.
-
-
-
-
- Textualize a string for usage as text.
-
-
-
-
- Converts a list of characters into a string.
-
-
-
-
- Converts a string into a list of characters.
-
-
-
-
- Pretty-print a symbol string in the form an symbolic-expression.
-
-
-
-
- Cascade a symbol string into multiple lines with proper tabbing.
-
-
-
-
- Attempt to a symbol index from a string.
-
-
-
-
- Try to get the Origin of the symbol if it has one.
-
-
-
-
- Convert a symbol to a string, with the following unparses:
-
- (* Atom values *)
- None
- CharacterAnimationFacing
-
- (* Number values *)
- 0
- -5
-
- (* String value *)
- "String with quoted spaces."
-
- (* Quoted value *)
- `[Some 1]'
-
- (* Symbols values *)
- []
- [Some 0]
- [Left 0]
- [[0 1] [2 4]]
- [AnimationData 4 8]
- [Gem `[Some 1]']
-
- ...and so on.
-
-
-
-
- Convert a string to a symbol, with the following parses:
-
- (* Atom values *)
- None
- CharacterAnimationFacing
-
- (* Number values *)
- 0
- -5
-
- (* String value *)
- "String with quoted spaces."
-
- (* Quoted value *)
- `[Some 1]'
-
- (* Symbols values *)
- []
- [Some 0]
- [Left 0]
- [[0 1] [2 4]]
- [AnimationData 4 8]
- [Gem `[Some 1]']
-
- ...and so on.
-
-
-
-
- Convert a value from given type using its assigned type converter.
-
-
-
-
- Convert a value to the given type using its assigned type converter.
-
-
-
-
- Query that a value of the destination type can be converted from the source type.
-
-
-
-
- Query that a value of the source type can be converted to the destination type.
-
-
-
-
- Uses a symbolic converter to convert a string to a value.
-
-
-
-
- Uses a symbolic converter to convert a value to a string.
-
-
-
-
- Convert a symbol to a value.
-
-
-
-
- Convert a value to a symbol.
-
-
-
-
- Make a triple.
-
-
-
-
- Map over triple member c.
-
-
-
-
- Map over triple member b.
-
-
-
-
- Map over triple member a.
-
-
-
-
- Replace triple member c.
-
-
-
-
- Replace triple member b.
-
-
-
-
- Replace triple member a.
-
-
-
-
- Append an item to a pair to build a triple.
-
-
-
-
- Insert an item in a pair to build a triple.
-
-
-
-
- Prepend an item to a pair to build a triple.
-
-
-
-
- The third item in a triple.
-
-
-
-
- The second item in a triple.
-
-
-
-
- The first item in a triple.
-
-
-
-
- The second and third items in a triple.
-
-
-
-
- The first and third items in a triple.
-
-
-
-
- The first and second items in a triple.
-
-
-
-
- The third item in a triple.
-
-
-
-
- The second item in a triple.
-
-
-
-
- The first item in a triple.
-
-
-
-
- Get the first property that is signalled to be preferred by the 'preference' predicate.
-
-
-
-
- Get an existing type with the given unqualified name. Time-intensive.
-
-
-
-
- Try to get an existing type with the given unqualified name. Time-intensive.
-
-
-
-
- Get all the properties, preferring those that can be written to if there is a name clash.
-
-
-
-
- Get all the properties that are signalled to be preferred by the 'preference' predicate.
-
-
-
-
- Get the property with the given name, preferring the variant that can be written to, or null if none found.
-
-
-
-
- Get the first property with the given name that is signalled to be preferred by the 'preference' predicate.
-
-
-
-
- Get all the properties with the give name that can be written to.
-
-
-
-
- Get all the properties that can be written to.
-
-
-
-
- Get all the properties with the given name.
-
-
-
-
- Get a property with the given name that can be written to, or null.
-
-
-
-
- Try to get a custom type converter for the given type.
-
-
-
-
- Get the type descriptor for this type as returned by the global TypeDescriptor.
-
-
-
-
- Get the default value for a type.
- Never returns null.
-
-
-
-
- A very fast persistent hash map.
- Works in effectively constant-time for look-ups and updates.
-
-
-
-
- Convert a sequence of keys and values to a Vmap.
-
-
-
-
- Convert a Vmap to a sequence of pairs of keys and values.
- NOTE: This function seems to profile as being very slow. I don't know if it's the seq / yields syntax or what.
- Don't use it unless you need its laziness or if performance won't be affected significantly.
-
-
-
-
- Filter a Vmap.
-
-
-
-
- Map over a Vmap.
-
-
-
-
- Fold over a Vmap.
-
-
-
-
- Combine the contents of two Vmaps, taking an item from the second map in the case of a key conflict.
-
-
-
-
- Query that a Vmap contains a value with the given key.
-
-
-
-
- Find a value with the given key in a Vmap.
- Constant-time complexity with approx. 1/3 speed of Dictionary.GetValue.
-
-
-
-
- Try to find a value with the given key in a Vmap.
- Constant-time complexity with approx. 1/3 speed of Dictionary.TryGetValue.
-
-
-
-
- Remove all values with the given keys from a Vmap.
-
-
-
-
- Remove a value with the given key from a Vmap.
-
-
-
-
- Add a list of values with associated keys to a Vmap.
-
-
-
-
- Add a value with the key to a Vmap.
-
-
-
-
- Query that a Vmap is empty.
-
-
-
-
- Create an empty Vmap.
-
-
-
-
- TODO: there's an F# issue where UseNullAsTrueValue does not work on unions with 4 or more cases
- https://github.com/Microsoft/visualfsharp/issues/711 . Once resolved, should use it and be able
- to make arrays with Array.zeroCreate alone without also copying over the empty array.
-
-
-
-
- OPTIMIZATION: Requires an empty array to use the source of new array clones in order to avoid Array.create.
-
-
-
-
- NOTE: This function seems to profile as being very slow. I don't know if it's the seq / yields syntax or what.
-
-
-
-
- OPTIMIZATION: Array.Clone () is not used since it's been profiled to be slower
-
-
-
-
- The VsyncBuilder instance.
- Used like: vsync { return 0 }
-
-
-
-
- The 'Vsync' (AKA, 'Variable Synchrony') monad.
- Allows code to run in either an async or synchronous fashion to aid in debugging.
- NOTE: to reference how all this stuff works in F#, see here - https://msdn.microsoft.com/en-us/library/dd233182.aspx
-
-
-
-
- Creates a potentially asynchronous operation that runs 'f' over computation of 'a'.
-
-
-
-
- Creates a potentially asynchronous computation that executes all the given computations
- Initially queues each as work item using a fork/join pattern when asynchronous.
- Executes each work item sequentially on the same thread otherwise.
-
-
-
-
- Creates a potentially asynchronous computation that executes computation.
- If this computation completes successfully, then return Choice1Of2 with the returned value.
- If this computation raises before completion, then return Choice2Of2 with the raised exception.
-
-
-
-
- Return a potentially asynchronous computation that will wait for the given task to complete and return its result.
-
-
-
-
- Return a potentially asynchronous computation that will wait for the given task to complete and return its result.
-
-
-
-
- Executes a computation in the thread pool when asynchronous, in the same thread otherwise.
-
-
-
-
- Starts the potentially asynchronous computation.
- Computation is run in the thread pool not awaiting its result when asynchronous.
- Computation is run in the current thread awaiting its result otherwise.
-
-
-
-
- Runs the potentially asynchronous computation and awaits its result.
-
-
-
-
- Creates a potentially asynchronous computation that will sleep for the given time.
- The operation will not block operating system threads for the duration of the wait when running asynchronously.
- The operation will block operating system thread for the duration of the wait otherwise.
-
-
-
-
- Creates a potentially asynchronous computation that runs the given computation and ignores its results.
-
-
-
-
- Creates a potentially asynchronous computation that runs computation.
- The action compensation 'h' is executed after the computation completes regardless of the outcome.
- If the computation raises and exception itself, the original exception is discarded and the new exception becomes the overall result.
-
-
-
-
- Creates a potentially asynchronous computation that runs computation and returns its result.
- If an exception happens, then handler 'h' is called and the resulting computation executes instead.
-
-
-
-
- Creates a potentially asynchronous computation that runs computation until guard 'g' becomes false.
-
-
-
-
- Creates a potentially asynchronous computation that enumerates the sequence 's', and runs the body 'f' for each element.
-
-
-
-
- Creates a potentially asynchronous computation that first runs computation 'a' and then computation 'b', returning the result of the latter.
-
-
-
-
- Creates a potentially asynchronous computation that just returns unit.
-
-
-
-
- Creates a potentially asynchronous computation that runs generator 'f'.
-
-
-
-
- Creates a potentially asynchronous computation that runs binder 'f' over resource 'd'.
- Dispose is executed as this computation yields its result or if the asynchronous computation raises or by cancellation.
-
-
-
-
- Delegates to input computation.
-
-
-
-
- Creates a potentially asynchronous operation that returns the result 'a'.
-
-
-
-
- Creates a potentially asynchronous operation that runs computation, and when computation results, runs binder resolution.
-
-
-
-
- Query whether Vsync is using synchronized or asynchronous processing.
-
-
-
-
- Initialize Vsync to use synchronized or asynchronous processing.
-
-
-
-
- Configures whether to use synchronized processing.
-
-
-
-
- Try to get the default value for a given xtension member, returning None when defaulting is disallowed.
-
-
-
-
- The dynamic assignment operator for an Xtension.
- Example:
- let entity = entity.Position <- Vector2 (4.0, 5.0).
-
-
-
-
- The dynamic look-up operator for an Xtension.
- Example:
- let parallax = entity?Parallax : single
-
-
-
-
- Get the default value of an instance of type 'r taking into account XDefaultValue decorations.
-
-
-
-
- Xtensions (and their supporting types) are a dynamic, functional, and semi-convenient way
- to implement dynamic properties.
-
-
-
-
- Convert an xtension to a sequence of its entries.
-
-
-
-
- Convert an xtension to a sequence of its entries.
-
-
-
-
- Detach multiple properties from an Xtension.
-
-
-
-
- Detach a property from an Xtension.
-
-
-
-
- Attach multiple properties to an Xtension.
-
-
-
-
- Attach a property to an Xtension.
-
-
-
-
- Try to get a property from an xtension.
-
-
-
-
- Get a property from an xtension.
-
-
-
-
- An Xtension that cannot default and isn't sealed.
-
-
-
-
- An Xtension that cannot default and is sealed.
-
-
-
-
- An Xtension that can default and isn't sealed.
-
-
-
-
- Make an extension with custom safety.
-
-
-
-
- Check that a predicate passes for NO items in a sequence.
-
-
-
-
- Implement a fold while folder results in Some.
-
-
-
-
- Project the first sequence onto the second.
-
-
-
-
- A more tolerant and open-minded take.
-
-
-
-
- Check if no elements satisfy a predicate in a seq.
-
-
-
-
- Fold-back for seqs.
-
-
-
-
- Fold, now with a counter!
-
-
-
-
- Fold with two inputs (plus state).
-
-
-
-
- Convert option values to definite values.
-
-
-
-
- Get a seq head or a default value if there is none.
-
-
-
-
- Get Some head of the seq or None.
-
-
-
-
- Add multiple values to a set.
-
-
-
-
- Make a singleton set.
-
-
-
-
diff --git a/Nu/Prime/Release/Prime.exe b/Nu/Prime/Release/Prime.exe
deleted file mode 100644
index 5e918bc2d7..0000000000
Binary files a/Nu/Prime/Release/Prime.exe and /dev/null differ
diff --git a/Nu/Prime/Release/Prime.exe.config b/Nu/Prime/Release/Prime.exe.config
deleted file mode 100644
index 0d2b407b0f..0000000000
--- a/Nu/Prime/Release/Prime.exe.config
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Nu/Prime/Release/Prime.pdb b/Nu/Prime/Release/Prime.pdb
deleted file mode 100644
index a80852e36a..0000000000
Binary files a/Nu/Prime/Release/Prime.pdb and /dev/null differ