Skip to content

Commit 4002f4f

Browse files
committed
Clean up some markdown issues
1 parent 6883036 commit 4002f4f

11 files changed

+21
-20
lines changed

collections/_posts/2013-07-07-generic-numeric-programming.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -352,16 +352,16 @@ trait Fractional[A] extends Integral[A] with Field[A] with NRoot[A]
352352

353353
Spire also adds many new useful number types. Here's an incomplete list:
354354

355-
- **spire.math.Rational** is a fast, exact number type for working with
355+
- `spire.math.Rational` is a fast, exact number type for working with
356356
rational numbers,
357-
- **spire.math.Complex[A]** is a parametric number type for complex numbers,
358-
- **spire.math.Number** is a boxed number type that strives for flexibility
357+
- `spire.math.Complex[A]` is a parametric number type for complex numbers,
358+
- `spire.math.Number` is a boxed number type that strives for flexibility
359359
of use,
360-
- **spire.math.Interval** is a number type for interval arithmetic,
361-
- **spire.math.Real** is a number type for exact geometric computation that
360+
- `spire.math.Interval` is a number type for interval arithmetic,
361+
- `spire.math.Real` is a number type for exact geometric computation that
362362
provides exact n-roots, as well as exact division,
363-
- **spire.math.{UByte,UShort,UInt,ULong}** unsigned integer types, and
364-
- **spire.math.Natural** an arbitrary precision unsigned integer type.
363+
- `spire.math.{UByte,UShort,UInt,ULong}` unsigned integer types, and
364+
- `spire.math.Natural` an arbitrary precision unsigned integer type.
365365

366366
### Better Readability
367367

collections/_posts/2013-09-11-using-scalaz-Unapply.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ types are equal, and is much more powerful than scala-library's own
212212
`=:=`. We're using the core Leibniz operator, `subst`, directly to
213213
prove that, *as a consequence of that type equality*, `List[FA] ===
214214
List[U.M[U.A]]` is *also* a type equality, and that therefore this
215-
[constant-time] coercion is valid. This lifting is applicable in all
215+
(constant-time) coercion is valid. This lifting is applicable in all
216216
contexts, not just covariant ones like `List`'s. Take a look at
217217
[the full API](https://github.com/scalaz/scalaz/blob/v7.0.3/core/src/main/scala/scalaz/Leibniz.scala)
218218
for more, though you'll typically just need to come up with the right

collections/_posts/2013-10-18-treelog.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ There are a number of problems with this approach:
2323

2424
Treelog resolves these issues by making the log itself a tree, reflecting the computational tree it logs, and uses techniques described in the [Typeclassopedia](http://www.haskell.org/wikiupload/e/e9/Typeclassopedia.pdf) to bring logging closer to the computation: the `Writer` Monad, a Monad Transformer, and a cunning Monoid.
2525

26-
Note that this post is a more technical description of how Treelog was written. For a quick introduction of use please refer to the [README].
26+
Note that this post is a more technical description of how Treelog was written. For a quick introduction of use please refer to the README.
2727
I will also refer you to Eugene Yokota's [excellent Scalaz tutorial](http://eed3si9n.com/learning-scalaz/) to study the details of Scalaz where appropriate.
2828

2929
Logging with Treelog
@@ -87,7 +87,7 @@ Syntactic Sugar
8787

8888
Treelog makes use of some syntactic sugar inspired by [Tony Morris's post](http://blog.tmorris.net/posts/the-writer-monad-using-scala-example/) on `Writer`. In the example above, `~>` is a method on an implicitly constructed class which takes any value `x: T` and returns a `DescribedComputation[T]`, representing the value `x` and a leaf node containing the description.
8989

90-
There is special support for `Boolean`s, `Option`s, `Either`s and `Traversable`s which you can learn about from the Treelog [README].
90+
There is special support for `Boolean`s, `Option`s, `Either`s and `Traversable`s which you can learn about from the Treelog README.
9191

9292
`Writer` and Monoid
9393
-------------------

collections/_posts/2015-07-13-type-members-parameters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
layout: post
3-
title: Type members are [almost] type parameters
3+
title: Type members are almost type parameters
44
category: technical
55

66
meta:

collections/_posts/2015-07-23-type-projection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ even Java manages the task. But it just seems *odder* that merely
151151
calling a method can create a whole refinement `{...}` raincloud, from
152152
scratch, filling in the blanks with sensible types along the way.
153153

154-
It’s completely sound, though. An `StSource` [that exists as a value]
154+
It’s completely sound, though. An `StSource` (that exists as a value)
155155
*must* have an `S`, even if we existentialized it away. So, as with
156156
`_`s, let’s just give it a name to pass as the inferred type
157157
parameter. It makes a whole lot more sense than supposing

collections/_posts/2015-07-30-values-never-change-types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ didn’t work, but if we took that `xs` and passed it to a
122122
type-parameterized version, everything worked fine. Why is that?
123123

124124
If you have a *mutable* variable of an existential type, the
125-
existentialized part of the type may have different [type] values at
125+
existentialized part of the type may have different (type) values at
126126
different parts of the program. Let’s use
127127
[the `StSource` from the projection post]({% post_url 2015-07-23-type-projection %}#a-good-reason-to-use-type-members).
128128
Note that the `S` member is existential, because we did not bind it.

collections/_posts/2015-08-06-machinist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Introduction
2222

2323
> Is it correct, that this stuff is completely obsolete now due to
2424
> value classes or are there still some use cases? An example of using
25-
> value class for zero-cost implicit enrichment: [...]
25+
> value class for zero-cost implicit enrichment: (...)
2626
2727
The short answer is that value classes existed before the Machinist macros were implemented, and they do not solve the same problem Machinist solves.
2828

collections/_posts/2016-08-21-hkts-moving-forward.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ meta:
1212
As its opening sentence reminds the reader—a point often missed by
1313
many reviewers—the book
1414
[*Functional Programming in Scala*](https://www.manning.com/books/functional-programming-in-scala)
15-
is not a book about Scala. This [wise] choice occasionally manifests
15+
is not a book about Scala. This (wise) choice occasionally manifests
1616
in peculiar ways.
1717

1818
For example, you can go quite far into the book implementing its
1919
exercises in languages with simpler type systems. Chapters 1–8 and 10
2020
port quite readily to
21-
[Java [8]](https://github.com/sbordet/fpinscala-jdk8) and C#. So
21+
[Java 8](https://github.com/sbordet/fpinscala-jdk8) and C#. So
2222
*Functional Programming in Scala* can be a very fine resource for
2323
learning some typed functional programming, even if such languages are
2424
all you have to work with. Within these chapters, you can remain

collections/_posts/2017-03-01-four-ways-to-escape-a-cake.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ There’s a hint in that we had to write `val u`, not `u`, nor `private
214214
val u`, in order for the `implicit class` itself to compile. This
215215
signature tells us that there’s an *argument* of type
216216
`LittleUniverse`, and a *member* `u: LittleUniverse`. However, whereas
217-
with the function examples above, we [and the compiler] could trust
217+
with the function examples above, we (and the compiler) could trust
218218
that they’re one and the same, we have no such guarantee here. So we
219219
don’t know that an `lu.Needle` is a `u.Needle`. We didn’t get far
220220
enough, but we don’t know that a `u.Needle` is an `lu.Needle`, either.
@@ -420,7 +420,7 @@ Let’s walk through it one more time.
420420
1. `n: U#Needle`.
421421
2. `h.iter` expects a `u.type#Needle` for all `val u: U`.
422422
3. **Suppose that we constrain `U` to be a singleton type**:
423-
1. [The existential] `u.type = U`, by singleton equivalence.
423+
1. (The existential) `u.type = U`, by singleton equivalence.
424424
2. By `#` left side equivalence, `h.iter` expects a `U#Needle`.
425425

426426
The existential variable complicates things, but the rule is sound.
@@ -540,7 +540,7 @@ First, covariant:
540540
Secondly, contravariant. We’re going to have to make a best guess
541541
here, because it’s not entirely clear to me what’s going on.
542542

543-
1. Since [existential] path `u` has a singleton type `U` (if we define
543+
1. Since (existential) path `u` has a singleton type `U` (if we define
544544
“has a singleton type” as “having a type *X* such that
545545
*X*` <: Singleton`”), so `u.type = U` by the singleton equivalence.
546546
2. Since equivalence implies conformance, according to the first

collections/_posts/2017-12-20-who-implements-typeclass.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ because
392392
names with variable type patterns.
393393
1. You can’t use variable type patterns with the structural
394394
ADT-style” patterns; you must instead use inelegant and
395-
inconvenient [non-variable] type patterns. (This may be
395+
inconvenient (non-variable) type patterns. (This may be
396396
[improved in Typelevel Scala 4](https://github.com/typelevel/scala/blob/typelevel-readme/notes/typelevel-4.md#type-arguments-on-patterns-pull5774-paulp).)
397397

398398
Yet this remains entirely up to shortcomings in the current pattern

0 commit comments

Comments
 (0)